Malheureusement, je n'ai jamais vu un tel script qui puisse fonctionner en mode d'apprentissage ou en mode passif, enregistrant toute votre utilisation du réseau, prenant ses résultats et générant un pare-feu réel à iptables
partir de ses journaux.
Votre meilleur pari va être de commencer simplement et de continuer à ajouter les différentes pièces au fur et à mesure que vous commencez à bien comprendre quels services votre système fournit. Vous devrez utiliser des outils tels que netstat
pour voir quels ports sont utilisés pour les différents services que vous hébergez, ainsi que les adresses IP qui y accèdent.
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
REMARQUE: Dans ce qui précède, vous pouvez voir les services que j'exécute sur un serveur qui acceptent les connexions TCP, c'est-à-dire qu'ils "écoutent" les connexions sur différents ports.
Il est plus simple de commencer avec des choses comme SSH (port 22) et HTTP (port 80), si elles sont typiques de votre système, donc je ferais ces types de services en masse en même temps. Pour d'autres services tels que LDAP ou NIS, vous souhaiterez peut-être les faire de manière plus contrôlée, en vous assurant que les choses ne se cassent pas lorsque vous les introduisez.
Des outils tels que FireHOL , Firewall Builder (fwbuilder) et eztables peuvent être utiles lorsque vous attaquez ce projet, car ils fournissent une belle couche d'abstraction d'avoir à créer des iptable
règles personnalisées à la main, ce qui peut être délicat.
FireHOL
FireHOL est un langage (et un programme pour l'exécuter) qui crée des pare-feu sécurisés et dynamiques de toute complexité à partir de configurations faciles à comprendre et lisibles par l'homme.
exemple
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilder est un outil de pare-feu graphique unique qui permet à l'utilisateur de créer des objets, puis de faire glisser et déposer ces objets dans des pare-feu, pour créer un système de sécurité puissant pour un seul PC ou un réseau de PC. Fwbuilder prend en charge une large gamme de pare-feu (Cisco ASA / PIX, iptables Linux, ipfilter de FreeBSD, pf d'OpenBSD, etc.), de sorte que ses règles peuvent être déployées sur plusieurs plates-formes. Jetons un coup d'œil à l'utilisation de Fwbuilder sur Linux, qui pourrait bien devenir une affaire à vie avec un puissant système de sécurité.
exemple
eztables
Eztables vous permet de configurer rapidement un pare-feu sans jamais toucher à iptables. La syntaxe des règles de pare-feu est conçue pour être facile à lire et à appliquer.
Voici comment vous autorisez l'ensemble d'Internet à accéder à votre serveur Web sur le port TCP 80:
allow_in any $eth0 any 80/tcp
Eztables est conçu pour être simple, mais puissant. Peu importe si vous souhaitez protéger votre ordinateur portable, configurer un routeur domestique ou créer un pare-feu d'entreprise.
Utilisation de Fail2Ban
Avec un iptables
pare-feu rudimentaire en place, vous voudrez probablement le complimenter en utilisant un outil tel que Fail2Ban .
extrait
Fail2ban analyse les fichiers journaux (par exemple / var / log / apache / error_log) et interdit les adresses IP qui montrent les signes malveillants - trop de défaillances de mot de passe, recherche d'exploits, etc. Généralement Fail2Ban est ensuite utilisé pour mettre à jour les règles de pare-feu pour rejeter les adresses IP pendant une durée spécifiée, bien que toute autre action arbitraire (par exemple l'envoi d'un e-mail) puisse également être configurée. Prêt à l'emploi, Fail2Ban est livré avec des filtres pour divers services (apache, courrier, ssh, etc.).
L'utilisation d'outils tels que celui-ci contribuera à limiter l'exposition que votre système devra supporter pendant que vous continuez à le durcir. Même après avoir été assez convaincu que votre système a été renforcé, vous souhaiterez peut-être continuer à utiliser Fail2Ban dans le cadre de vos mesures de sécurité.
Références