Building Linux Firewall

Premièrement, nous devons mettre en place un serveur proxy Squid pour être en mesure d'effectuer proxy transparent pour l'ordinateur de l'enfant et refuser l'accès aux sites pornographiques et certains virus.
Squid peut être trouvé à www.squid-cache.org, et est le serveur proxy les plus utilisés sous Linux, la plupart des distributions ont des forfaits pour Squid. La meilleure documentation de Squid est le fichier de configuration lui-même, qui est largement commenté.
Nous allons exécuter Squid sur son port par défaut, 3128. Pour être en mesure d'utiliser Squid comme proxy transparent, il faut ajouter les informations suivantes dans le fichier de configuration (habituellement / etc / squid / squid.conf):

httpd_accel_host virtuelle
httpd_accel_port 80
httpd_accel_with_proxy sur
httpd_accel_uses_host_header sur

Ensuite, nous avons besoin de définir des listes d'accès Squid pour le réseau interne d'avoir accès à Squid et de refuser les sites porno et les fichiers dangereux. Nous allons le faire pour notre réseau interne tout entier, mais nous allons utiliser le proxy transparent uniquement pour l'ordinateur de l'enfant. Tout fichier peut être un virus, et les extensions de fichiers qui suivent ne sont là à titre d'exemple, de sorte s'il vous plaît n'hésitez pas à ajouter une extension de fichier que vous jugent dangereuse. Dans le fichier squid.conf, nous ajoutons les lignes suivantes:

acl tous src 0.0.0.0/0.0.0.0
acl our_network src 192.168.1.0/24
acl url_regex porn-i adulte sexe porno hardcore fetish
acl téléchargements urlpath_regex \. exe $ \. rar $ \. zip $ \. pif $ \. scr $
http_access deny porn
http_access deny téléchargements
http_access allow our_network
http_access deny all

L'ACL nommée «porno» contient une liste de noms qui ne sont pas admis dans l'URL, donc vous ne pourrez pas accéder à un site qui a un de ces mots dans son nom en utilisant le serveur proxy.
L'ACL nommé "Downloads" contient une liste de types de fichiers qui ne sont pas autorisés à y accéder; si vous ne serez pas en mesure de télécharger des fichiers avec les extensions de cette liste en utilisant le serveur proxy.
Maintenant que nous avons mis en place le serveur proxy, nous allons mettre en œuvre le pare-feu pour correspondre à la politique de sécurité que nous venons de construire.
Pour le dispositif de jeu, nous avons besoin pour savoir comment ça fonctionne quand nous hébergeons GameSpy Arcade jeux sur elle. Nous allons à leurs sites Web et nous voyons que nous avons besoin de rediriger les ports suivant à l'appareil de jeu:

  • 6500 UDP: pour GameSpy Arcade
  • 6700 UDP: pour GameSpy Tunnel
  

Let's transmettre ces ports:

iptables-t nat-A PREROUTING-p udp - dport 6500-j DNAT - to 192.168.1.200
iptables-t nat-A PREROUTING-p udp - dport 6700-j DNAT - to 192.168.1.200

Pour le dispositif de jeu au travail, nous avons également d'effectuer NAT pour elle, qui seront inclus dans la règle NAT pour tout notre réseau, qui sera à la fin.
Ensuite, nous avons besoin pour refuser l'accès à l'imprimante réseau à l'Internet. Normalement, nous ne faisons pas de filtrage dans la table de NAT, mais nous ne voulons pas faire passer pour de l'adresse IP de l'imprimante. Depuis l'imprimante possède une adresse IP privée, il ne sera pas accessible de l'extérieur et nous allons aussi déposer les paquets qui sortent de eth0 dans la chaîne POSTROUTING de la table nat sorte que l'imprimante l'adresse IP ne soit pas NAT.

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.100-j DROP

Pour l'ordinateur de l'enfant, nous effectuerons proxy transparent, ce qui signifie que l'ordinateur utilise le serveur proxy sans avoir à configurer le navigateur Web. Nous avons déjà mis en place le serveur proxy, donc maintenant nous avons besoin de rediriger tout le trafic pour le port 80 TCP vers le serveur proxy. Nous voulons aussi que l'ordinateur de l'enfant l'accès au port TCP 443, qui est https:

iptables-t nat-A PREROUTING-s 192.168.1.55-p tcp - dport 80-j REDIRECT - to-port 3128
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p tcp - dport 443-j MASQUERADE

Maintenant, les demandes de 192.168.1.55 à tout hôte ayant la destination du port 80 ou 443 irons à notre serveur proxy; si tout est fait localement et nous n'avons pas de se faire passer pour 192.168.1.55 ces demandes.
Ensuite, nous devons faire passer l'ordinateur des enfants, quand il envoie des requêtes DNS à notre prestataire:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-p udp - dport 53-j MASQUERADE

Requêtes DNS utilisent le port UDP 53; ainsi maintenant l'ordinateur des enfants peuvent accéder à tous les serveurs DNS.
Nous voulons leur permettre d'utiliser Yahoo! Messenger uniquement pour le Chat (pas la voix ou le transfert de fichiers). La lecture de Yahoo! Aide Messenger, nous voyons que Yahoo! Messenger utilise les ports 20, 23, 25, 80, 119, 5050, 8001 et 8002. Aussi, nous voyons que les hôtes requis pour la messagerie instantanée en utilisant Yahoo! Messenger:

  1. scs.msg.yahoo.com
  2. scsa.msg.yahoo.com
  3. scsb.msg.yahoo.com
  4. scsc.msg.yahoo.com

Donc il vaut mieux se faire passer pour l'ordinateur de l'enfant adresse IP pour accéder à ces hôtes, nous devrions faire comme ceci:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scs.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsa.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsb.msg.yahoo.com-j MASQUERADE
iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-d scsc.msg.yahoo.com-j MASQUERADE

Lorsque vous utilisez un nom canonique, au lieu d'une adresse IP dans la syntaxe d'iptables, le routeur Linux va résoudre l'adresse IP (es) du nom canonique et insérer les règles dans le noyau en utilisant ces adresses IP. Si un nom canonique est résolu à plusieurs adresses IP, puis iptables devra insérer dans le noyau d'un certain nombre de règles égales au nombre d'adresses IP résolue, chaque ligne ayant l'une des adresses IP résolue.

 

Maintenant que nous avons mis en place l'accès de l'ordinateur de l'enfant, nous devons refuser l'accès à d'autres ports et des hôtes. Nous le faisons dans la chaîne POSTROUTING de la table nat:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.55-j DROP

L'ordinateur portable et ordinateur de bureau doit être en mesure de quoi que ce soit l'accès, et donc, pas de règles spéciales sont insérées pour eux, à l'exception la règle de mascarade pour notre réseau, que nous allons maintenant ajouter:

iptables-t nat-A POSTROUTING-o eth0-s 192.168.1.0/24-j MASQUERADE

Une configuration plus doit être fait dans la table de NAT pour fournir la capacité de se connecter à distance à l'ordinateur de bureau en utilisant VNC. Nous mettons en place VNC serveur pour utiliser le port TCP 9112 sur l'ordinateur de bureau, donc nous devons effectuer DNAT pour ce port comme suit:

iptables-t nat-A PREROUTING-p tcp - dport 9112-j DNAT - to 192.168.1.11

C'est tout ce que la configuration que nous avons besoin pour le réseau local. Nous avons besoin de mettre en place certaines règles de pare-feu pour sécuriser le routeur Linux.
Premièrement, nous avons besoin de SSH pour exécuter sur le routeur Linux si on peut l'administrer à distance. Pour sécuriser l'accès SSH, il est préférable de créer une chaîne appelée SSH dans lequel nous autoriser ou refuser l'accès à SSH. Si une vulnérabilité est découverte dans OpenSSH, il est très probable que les vers de balayage pour les serveurs OpenSSH sur le port 22 apparaîtra dans quelques heures. Par conséquent, nous pourrions lancer le serveur SSH sur un autre port que le standard (par exemple, 1234). La chaîne de SSH est créé par:

iptables-N SSH

Ensuite, nous insérons une règle qui indique au noyau de rechercher la chaîne de SSH pour les connexions TCP entrantes sur le port 1234:

iptables-A INPUT-p tcp - dport 1234-j SSH

Nous devons insérer des règles dans la chaîne de SSH pour autoriser l'accès uniquement à partir des hôtes de confiance. Disons que l'adresse IP à notre bureau est 1.2.3.4:

iptables-A SSH-s 1.2.3.4-j ACCEPT
iptables-A SSH-s 192.168.1.0/27-j ACCEPT
iptables-A SSH-s 0 / 0-j DROP

La première règle accepte les connexions de notre bureau de l'adresse IP 1.2.3.4. La deuxième règle permet les connexions SSH entrantes uniquement de 192.168.1.0/27, qui contient des adresses IP de 192.168.1.1 à 192.168.1.32, car nous ne voulons pas autoriser l'accès SSH à partir de l'ordinateur de l'enfant, l'imprimante et l'appareil de jeu . La troisième règle supprime toutes les autres connexions entrantes sur le port 1234.
Le serveur proxy (Squid) a sa propre sécurité en utilisant des listes d'accès. Toutefois, la meilleure façon de le sécuriser et le routeur est de laisser tomber des paquets TCP SYN à partir d'Internet dans la chaîne d'entrée. Ainsi, aucune connexion entrante au routeur Linux peuvent être fabriqués à partir de l'Internet, sauf ssh sur le port 1234 de 1.2.3.4, qui est compensé avant cette règle. Nous tenons également à accepter tous les paquets sur l'interface loopback (lo) pour l'IPC (communication des processus internes).

iptables-A INPUT-i lo-j ACCEPT
iptables-A INPUT-i eth0-p tcp - syn-j DROP

Tomber des paquets SYN offre une bonne protection pour les processus qui pourrait avoir des bugs. Toutefois, cette baisse que les connexions TCP entrantes avec le drapeau SYN (la demande de constitution d'une connexion TCP), et ne proposent pas de protection à un logiciel qui ouvre les ports UDP.

un article présenté par Ronald T Besser


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Building Linux Firewall" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 397 users browsing the articles directory