Bonjour suite au crash total et complet de mon dd système (RIP) je doit me retaper pas mal de chose, notamment mon script iptables, même si globalement je connaissais mes règles et que je ne suis plus débutant en script j'ai remarquer que iptables me posait pas mal de soucis notamment niveau variables, voici le scripts
#!/bin/bash
IP_LAN=192.168.1.0/24
IP_SERV=192.168.1.10/24
SSH=2230
DNS=192.168.1.1/24
fw_start()
{
### sécurité de base ###
# Active la protection broadcast echo
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Active la protection TCP syn cookie
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Enregistre les paquets avec des adresses impossibles
# (cela inclut les paquets usurpés (spoofed), les paquets routés
# source, les paquets redirigés), mais faites attention à ceci
# sur les serveurs web très chargés
echo 1 >/proc/sys/net/ipv4/conf/all/log_martians
#Active la protection sur les mauvais messages d'erreur
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Maintenant la protection ip spoofing
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Désactive l'acceptation Redirect ICMP
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
# Désactive Source Routed
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
########### Régle ###################
#on efface tous
iptables -F INPUT;
iptables -F OUTPUT;
iptables -F FORWARD;
iptables -X;
echo "Drop de input, output et forward [ok]";
#on garde les connexion existante
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT;
# on ferme tous
iptables -P INPUT DROP;
iptables -P OUTPUT DROP;
iptables -P FORWARD DROP;
echo "fermeture des entrées, sorties et traffics transitoires [ok]";
#on autorise la boucle local
iptables -I INPUT -i lo -j ACCEPT;
iptables -A OUTPUT -o lo -j ACCEPT;
echo "autorisation boucle local [ok]";
#on interdit le scan de port (enfin on essai)
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT;
echo "interdiction des scans de ports [ok]";
#on autorise le ping
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
echo "autorisation du ping"
#on autorise le web
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d 0.0.0.0/0 --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d 0.0.0.0/0 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d $IP_SERV --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d $IP_SERV --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d $IP_SERV --dport 8443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
echo "autorisations du oueb [ok]"
#on autorise le DNS
iptables -A INPUT -p tcp -i eth0 -s $DNS -d $IP_SERV --sport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -s $DNS -d $IP_SERV --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -s $IP_SERV -d $DNS --dport 53 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -s $IP_SERV -d $DNS --dport 53 -j ACCEPT
echo "autorisation DNS [ok]"
#on autorise ssh
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d $IP_SERV --sport $SSH -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d 0.0.0.0/0 --dport $SSH -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
echo "autotisation ssh [ok]"
#on autorise samba
iptables -A INPUT -p udp -i eth0 -s $IP_LAN -d $IP_SERV --dport 137 -j ACCEPT;
iptables -A INPUT -p udp -i eth0 -s $IP_LAN -d $IP_SERV --dport 138 -j ACCEPT;
iptables -A INPUT -p tcp -i eth0 -s $IP_LAN -d $IP_SERV --dport 139 -j ACCEPT;
iptables -A INPUT -p tcp -i eth0 -s $IP_LAN -d $IP_SERV --dport 445 -j ACCEPT;
iptables -A INPUT -p udp -i eth0 -s $IP_LAN -d $IP_SERV --dport 445 -j ACCEPT;
iptables -A OUTPUT -p udp -o eth0 -s $IP_SERV -d $IP_LAN --sport 137 -j ACCEPT;
iptables -A OUTPUT -p udp -o eth0 -s $IP_SERV -d $IP_LAN --sport 138 -j ACCEPT;
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d $IP_LAN --sport 139 -j ACCEPT;
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d $IP_LAN --sport 445 -j ACCEPT;
iptables -A OUTPUT -p udp -o eth0 -s $IP_SERV -d $IP_LAN --sport 445 -j ACCEPT;
echo "autorisation samba [ok]";
#on autorise netatalk
iptables -A INPUT -p tcp -i eth0 -s $IP_LAN -d $IP_SERV --dport 548 -j ACCEPT;
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d $IP_LAN --sport 548 -j ACCEPT;
echo "autorisation AFP [ok]"
#on autorise avahi
iptables -A INPUT -p udp -i eth0 -s $IP_LAN -d $IP_SERV --dport 5353 -j ACCEPT;
iptables -A OUTPUT -p udp -o eth0 -s $IP_LAN -d $IP_SERV --sport 5353 -j ACCEPT;
echo "autorisation avahi [ok]"
#on autorise torrentflux
iptables -A INPUT -p tcp -i eth0 -s 0.0.0.0/0 -d $IP_SERV --dport 30000:60000 -j ACCEPT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 -s $IP_SERV -d 0.0.0.0/0 --sport 30000:60000 -j ACCEPT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
echo "autorisations torrents [ok]"
}
fw_clear()
{
iptables -F
iptables -t nat -F
iptables -t mangle -F
echo "vidage des tables [ok]"
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo "acceptation du traffic entrants/sortant et suivant [ok]"
}
case "$1" in start|restart)
echo "mise en place des régles..."
fw_start
echo "fini!"
;;
clear)
echo "remise à 0 des tables (sauf fail2ban)"
fw_clear
echo "fini"
;;
*)
echo "tu t'es plantén c'est comme sa : $0 {start|restart|clear}"
exit 1
;;
esac
et les superbes message d'erreur
mise en place des régles...
Drop de input, output et forward [ok]
fermeture des entrées, sorties et traffics transitoires [ok]
autorisation boucle local [ok]
interdiction des scans de ports [ok]
autorisation du ping
autorisations du oueb [ok]
Bad argument '192.168.1.10/24'
try iptables....
autorisation DNS [ok]
autotisation ssh [ok]
autorisation samba [ok]
autorisation AFP [ok]
autorisation avahi [ok]
multiple -j flags not allowed
try iptables.....
multiple -j flags not allowed
try iptables.....
autorisations torrents [ok]
fini!
et le résultat de iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere 192.168.1.0/24 tcp dpt:www state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- anywhere 192.168.1.0/24 tcp dpt:https state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- anywhere 192.168.1.0/24 tcp dpt:8443 state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp spt:domain
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp dpt:domain
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp dpt:domain
ACCEPT tcp -- anywhere 192.168.1.0/24 tcp spt:2230 state NEW,RELATED,ESTABLISHED
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp dpt:netbios-ns
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp dpt:netbios-dgm
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp dpt:netbios-ssn
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp dpt:microsoft-ds
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp dpt:microsoft-ds
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp dpt:afpovertcp
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp dpt:mdns
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- 192.168.1.0/24 anywhere tcp dpt:www state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- 192.168.1.0/24 anywhere tcp dpt:https state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- 192.168.1.0/24 anywhere tcp dpt:2230 state NEW,RELATED,ESTABLISHED
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp spt:netbios-ns
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp spt:netbios-dgm
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp spt:netbios-ssn
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp spt:microsoft-ds
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp spt:microsoft-ds
ACCEPT tcp -- 192.168.1.0/24 192.168.1.0/24 tcp spt:afpovertcp
ACCEPT udp -- 192.168.1.0/24 192.168.1.0/24 udp spt:mdns
et quelque chose que je comprend pas, mais alors pas du tous (peux être la colère, bref passons), c'est d'une par le 192.168.1.0/24 qui se promène un peux partout en lieux et place d'un 192.168.1.10/24 et que lorsque j'applique mon script en ssh, ma connexion est coupé, le script s'exécute bien, mais ensuite je suis obliger de vider tous mes tables si je veux accéder a mon serveur...
tous fonctionnait à merveille avant
merci
Dernière modification par Pollux (19-06-2010 09:55:34)