Bonjour,
Je viens partager mon script iptables et apporter des nouveautés ou corriger si il le faut.
#!/bin/bash
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[1;31m"
### IPTABLE
# Provides: iptables
# Description: Gestions des iptables du serveur.
# toute les ouvertures de port, les bannissements
# les drop les rejects... seront indiques ici.
### END INFO
#Netoyage des regles si execution manuel
#iptables -F
#iptables -X
echo -e "$VERT""LOAD"
# On refuse tout
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
echo -e "$ROUGE""- Interdire toutes les connexions entrantes et sortantes: [OK]"
# On ne ferme pas les connexions etablie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo -e "$ROUGE""- Ne pas casser les connexions etablies: [OK]"
# Loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
echo -e "$ROUGE""- Loopback autorise: [OK]"
# SSH // Pour plus de sécurité et eviter les robots scan, changer le port par défaut (etc/ssh/sshd_config).
iptables -A INPUT -p tcp --dport 1337 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 22,1337 -j ACCEPT
echo -e "$ROUGE""- SSH IN/OUT: [OK]"
# Sortie DNS
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 953 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 953 -j ACCEPT
iptables -A INPUT -p udp --dport 953 -j ACCEPT
iptables -A OUTPUT -p udp --dport 953 -j ACCEPT
echo -e "$ROUGE""- DNS 53 - 953: [OK]"
# Sortie NTP
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
echo -e "$ROUGE""- NTP OUT: [OK]"
#DHCP
iptables -I INPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
echo -e "$ROUGE""- DHCP: [OK]"
# ICMP
iptables -A OUTPUT -p icmp --icmp-type destination-unreachable -m state --state RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type time-exceeded -m state --state RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -m state --state RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type parameter-problem -m state --state RELATED -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -m state --state RELATED -j ACCEPT
echo -e "$ROUGE""- ICMP sur destination-unreachable, time-exceeded et parameter-problem: [OK]"
# Autoriser le monitoring OVH
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 5.135.74.212 -j ACCEPT
iptables -A INPUT -p tcp -s 178.32.31.73 -j ACCEPT
iptables -A INPUT -p tcp -s 94.23.76.117 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -s netmon-1-gra.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -s netmon-1-gra.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -s netmon-1-rbx.ovh.net -j ACCEPT
echo -e "$ROUGE""- Monitoring OVH: [OK]"
# Teamspeak 3
# Port voix IP
iptables -A INPUT -p udp --dport 9987 -j ACCEPT
# Port transfert de fichier
iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
# Unknown doc TS
iptables -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -A OUTPUT -m multiport -p udp --dports 2011:2110 -j ACCEPT
# Port TS3 Query default port
iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
#iptables -t filter -A INPUT -s VOTRE_IP -p tcp --dport 10011 -j ACCEPT #IP FIXE
# license & weblist teamspeak 3
iptables -A INPUT -p tcp -d accounting.teamspeak.com --sport 2008 -j ACCEPT
iptables -A OUTPUT -p tcp -d accounting.teamspeak.com --dport 2008 -j ACCEPT
iptables -A OUTPUT -p udp -d weblist.teamspeak.com --dport 2010 -j ACCEPT
iptables -A OUTPUT -p tcp -d weblist.teamspeak.com --dport 2010 -j ACCEPT
echo -e "$ROUGE""- TEAMSPEAK: [OK]"
# HTTP(S)
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
echo -e "$ROUGE""- Port 80 - 443: [OK]"
# FTP
#modprobe ip_conntrack_ftp
iptables -A INPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 1024 --dport 1024 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 1024 --dport 1024 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
echo -e "$ROUGE""- Autoriser serveur FTP: [OK]"
# Mail
#iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
#iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
#echo -e "$ROUGE""- Autoriser serveur Mail: [OK]"
# Iptable une IP
iptables -A INPUT -s xx.xx.xx.xx -j DROP
echo -e "$ROUGE""- Bloquer ip/plage: [OK]"
#LOG IN/OUT
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A LOGGING -j DROP
echo -e "$ROUGE""- Log des drops IN/OUT: [OK]"
### tcpdump -n udp dst port 9987
### tcpdump -i venet0:0 | grep ICMP
### telnet accounting.teamspeak.com 2008 -b xx.xx.xxx
###### Fin Regles ######
echo -e "$VERT""Firewall mis a jour avec succes: [OK]"
echo -e "$NORMAL"""