Tout d’abord bonne année à tous !
Je viens d’établir un remake de script iptables j’attends vos avis en me corrigeant s’il le faut !
#!/bin/bash
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[1;31m"
BLEU="\\033[1;34m"
### 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
echo -e "$ROUGE""LOAD"
# On refuse tout
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo -e "$ROUGE""- Interdire toutes les connexions entrantes et sortantes : [OK]"
# On ne ferme pas les connexions etablie
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
echo -e "$ROUGE""- Ne pas casser les connexions etablies : [OK]"
# boucle locale (On autorise tout sur 127.0.0.1)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
echo -e "$ROUGE""- Loopback autorise: [OK]"
# Autoriser le monitoring OVH
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source ping.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.p19.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.rbx2.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.sbg.ovh.net -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --source proxy.bhs.ovh.net -j ACCEPT
echo -e "$ROUGE""- Ping du monitoring OVH:[OK]"
# Autoriser Ping (entrant et sortant)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
echo -e "$ROUGE""- Autoriser Ping:[OK]"
# SSH // Pour plus de sécurité changer le port par défaut (etc/ssh/sshd_config).
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
# SSH (Pour se connecter a d'autres serveurs)
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
echo -e "$ROUGE""- SSH IN/OUT 22:[OK]"
# HTTP (Connection entrante)
# iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# HTTP (Connection sortante)
#iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
# HTTPS (Connection entrante)
#iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
# HTTPS (Connection sortante)
#iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
#echo -e "$ROUGE""- HTTP/HTTPS IN/OUT:[OK]"
# Sortie DNS
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
echo -e "$ROUGE""- DNS OUT:[OK]"
# Sortie NTP
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
echo -e "$ROUGE""- NTP OUT:[OK]"
# Teamspeak 3
# Port Voix IP
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --sport 9987 -j ACCEPT
# Port transfert de fichier
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
#
iptables -t filter -A INPUT -p tcp --dport 41144 -j ACCEPT
iptables -A OUTPUT -p udp --sport 2011:2110 -j ACCEPT
# Port TS3 Query
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --sport 10011 -j ACCEPT
# Si vous avez une license teamspeak 3
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
# Un tcpdump sur du trafic teamspeak légitime semble montrer que la taille des paquets UDP ne dépasse pas les 600 octets
iptables -A INPUT -p udp --dport 9987 -m length --length 600:65535 -j DROP
echo -e "$ROUGE""- TEAMSPEAK:[OK] "
# Mumble (Décomentez pour utiliser)
# iptables -t filter -A INPUT -p tcp --dport 64738 -j ACCEPT
# iptables -t filter -A INPUT -p udp --dport 64738 -j ACCEPT
# Iptable une plage IP (UDP) sur le service Teamspeak (Add les ports si plusieur serveurs 9987,9988,xxxx...) (vpn,...)
iptables -I INPUT -s 5.196.0.0/16 -p udp --dport 9987 -j DROP #OVH IPV4 BANNED LOAD ...
iptables -I INPUT -s 185.15.68.0/22 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 5.135.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 5.196.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 5.39.0.0/17 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 37.187.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 37.59.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 109.190.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 176.31.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 46.105.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 178.32.0.0/15 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 188.165.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 94.23.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 92.222.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 91.121.0.0/16 -p udp --dport 9987 -j DROP
iptables -I INPUT -s 87.98.128.0/17 -p udp --dport 9987 -j DROP #OVH IPV4 BANEED END
echo -e "$ROUGE""- IPTABLES OVH SUR TS3:[OK] "
# Iptable une ip
iptables -A INPUT -s 81.65.xx.xx -j DROP
echo -e "$ROUGE""- OWNED:[OK]"
### tcpdump -n udp dst port 9987
### telnet accounting.teamspeak.com 2008 -b ure.ip.xx.xx #Pour test la comm avec le server de licence
###### Fin Regles ######
echo -e "$VERT""- Firewall mis a jour avec succes :[OK]"
echo -e "$NORMAL"""
J’hésite a ajouter ça mais je ne sais pas vraiment :
[code]# Syn Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo - Syncookies : [OK]
Syn-Flood
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
echo - Limiter le Syn-Flood : [OK]
Spoofing
iptables -N SPOOFED
iptables -A SPOOFED -s 127.0.0.0/8 -j DROP
iptables -A SPOOFED -s 169.254.0.0/12 -j DROP
iptables -A SPOOFED -s 172.16.0.0/12 -j DROP
iptables -A SPOOFED -s 192.168.0.0/16 -j DROP
iptables -A SPOOFED -s 10.0.0.0/8 -j DROP
echo - Bloquer le Spoofing : [OK] [/code]
