Par feu
creer le fichier par
touch.par-feu.sh
##
## test iptables
#
# vider et supprimer les chaines
iptables -F
iptables -X
#
# pointer par defaut sur DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#
# ACCEPT NAT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#
# MANGLE
#
# ouvrir les portes
#
iptables -A INPUT -i lo -d 0.0.0.0/0 -s 0.0.0.0/0 -j ACCEPT
iptables -A OUTPUT -o lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
#
iptables -A INPUT -i eth0 -d 192.168.1.0/24 -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT
#
# eth2
#
iptables -A OUTPUT -o eth2 -s 82.66.178.173 -d 0.0.0.0/0 -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o eth2 -s 82.66.178.173 -d 0.0.0.0/0 -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -i eth2 -s 0.0.0.0/0 -d 82.66.178.173 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth2 -s 66.150.40.75 -d 0.0.0.0/0 -p all -j DROP
iptables -A INPUT -i eth2 -s 0.0.0.0/0 -d 82.66.178.173 -p tcp --dport 22 -j ACCEPT
#
## ip_contrack
#
iptables -A OUTPUT -o eth2 -s 82.66.178.173 -d 0.0.0.0/0 -p all -m state --state ! INVALID -j ACCEPT
iptables -A INPUT -i eth2 -s 0.0.0.0/0 -d 82.66.178.173 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -d 82.66.178.173 -p tcp --dport 80 -m state --state ! INVALID -j ACCEPT
#####iptables -A INPUT -i eth2 -d 82.66.178.173 -p tcp --dport 80 -m state --state ! 66.150.40.75 -j DROP
iptables -A OUTPUT -o eth2 -s 82.66.178.173 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth2 -d 82.66.178.173 -p tcp --dport 22 -m state --state ! INVALID -j ACCEPT
iptables -A OUTPUT -o eth2 -s 82.66.178.173 -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
## forward
#
iptables -A FORWARD -i eth0 -o eth2 -s 192.168.1.0/24 -d 0.0.0.0/0 -m state --state ! INVALID -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -s 0.0.0.0/0 -d 192.168.1.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
#
## masquerade
#
iptables -t nat -A POSTROUTING -o eth2 -s 192.168.1.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
#
## icmp-pings
#
#iptables -A INPUT -i eth2 -s 0.0.0.0/0 -d 82.66.178.173 -p icmp -m state --state ! INVALID
#iptables -A OUTPUT -o eth2 -s 82.66.178.173 -d 0.0.0.0/0 -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
#
##FLAGS
#
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 10/s -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#
## Logger les scans
#
iptables -N PSCAN
iptables -A PSCAN -p tcp -m limit --limit 10/s -j LOG --log-prefix "TCP Scan?"
iptables -A PSCAN -p udp -m limit --limit 10/s -j LOG --log-prefix "UDP Scan?"
iptables -A PSCAN -p icmp -m limit --limit 10/s -j LOG --log-prefix "ICMP Scan?"
iptables -A PSCAN -f -m limit --limit 10/s -j LOG --log-prefix "FLAG Scan?"
iptables -A PSCAN -j DROP
#
## Dropper et logger les Scan
#
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j PSCAN
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j PSCAN
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j PSCAN
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j PSCAN
#
## logs
#iptables -A INPUT -j LOG
#### FIN ####
On rend exécutable le script et on le lance.
chmod o+x nom du par feu.sh