web-dev-qa-db-fra.com

Liste blanche autorisée IP (entrée / sortie) utilisant iptables

J'ai quelques plages d'adresses IP auxquelles je veux que mon serveur puisse se connecter et à partir duquel les utilisateurs peuvent se connecter. Tout le reste doit être bloqué.

Comment dois-je faire cela avec iptables?

Mon système d'exploitation est une distribution Linux basée sur Debian.

22
Frank Bannister

Je suggère de saisir un outil de configuration de pare-feu, tel que Firestarter , et de partir de là. Voici cependant quelques notions de base.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this Host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
27
Zenham
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Cela transformera votre système en un système inexistant pour les ordinateurs non autorisés.

15
Kevin M

Si vous souhaitez autoriser des plages arbitraires plutôt que des sous-réseaux entiers, vous pouvez utiliser le module iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

par exemple, autorisera le trafic provenant de toutes les machines dont l'adresse est comprise entre 192.168.1.30 et 192.168.1.50.

Si vous souhaitez autoriser le trafic entrant et sortant vers la même plage d'adresses IP, je vous suggère de créer une chaîne spécifique autorisant ces IP et ciblant toutes les cibles d'entrée et de sortie:

--définissez les politiques par défaut à abandonner:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

--créer la nouvelle chaîne:

iptables -N allowed_ips

--si la source fait partie de la plage autorisée, acceptez

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- Sinon, retournez à la chaîne d'appel pour poursuivre le traitement

iptables -A allowed_ips -j RETURN

- faire en sorte que tout le trafic entrant et sortant de la machine passe par notre nouvelle chaîne

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

et c'est tout! bien sûr, vous devrez peut-être des règles supplémentaires, telles que celle autorisant tout le trafic depuis/vers l'interface lo, etc.

7
Thiagodrv

Une fois que vous êtes satisfait de vos règles, vous voulez probablement les enregistrer . Les commentaires dans ce lien ont plusieurs options sur la façon de procéder.

Un générateur de règles iptables facile à utiliser pour les besoins simples est fw . Le paquet est disponible dans debian unstable.

Essayez également Firestarter . Disponible en lenny.

1
Not Now

Vous pouvez également utiliser ferm que j'utilise également depuis un an et qui m'a beaucoup aidé dans des cas tels que les règles de pare-feu conditionnelles.

0
giomanda