
Kod: Zaznacz cały
#!/bin/sh
#stała ścieżka iptables
#f="/usr/sbin/iptables"
f="iptables"
echo "Dodaje Reguły dla IPtables"
echo "Czyszczenie starych reguł"
# CZYSZCZENIE STARYCH REGUŁ
$f -F
$f -X
$f -F -t nat
$f -X -t nat
$f -F -t filter
$f -X -t filter
echo "Ustawienie polityki działania"
# USTAWIENIE POLITYKI DZIAŁANIA
$f -P INPUT DROP
$f -P FORWARD DROP
$f -P OUTPUT DROP
echo "Dopuszczenie localhostu"
# Odblokowanie / Dopuszczenie localhostu
$f -A INPUT -i lo -j ACCEPT
$f -A FORWARD -o lo -j ACCEPT
$f -A OUTPUT -o lo -j ACCEPT
# Protokół SMB
#$f -A INPUT -p tcp --dport 137:139 -j ACCEPT
#$f -A INPUT -p tcp --dport 445 -j ACCEPT
#$f -A INPUT -p udp --dport 137:139 -j ACCEPT
#$f -A INPUT -p udp --dport 445 -j ACCEPT
# SSH
#$f -A INPUT -p tcp --dport 22 -j ACCEPT
#$f -A INPUT -p tcp --dport 10025 -j ACCEPT
echo "Nawiązanie połączenia"
# NAWIĄZANIE POŁĄCZENIA
$f -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
$f -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
$f -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Blokada skanowania portów..."
# Skanowanie SYN (nmap -sS)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie SYN"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -m limit --limit 2/min -j DROP
# Metoda ACK (nmap -sA)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie ACK"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -m limit --limit 2/min -j DROP
# Skanowanie FIN (nmap -sF)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie FIn"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -m limit --limit 2/min -j DROP
# Metoda Xmas Tree (nmap -sX)
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie Xmas Tre"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -m limit --limit 2/min -j DROP
# Skanowanie Null (nmap -sN)
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -m limit --limit 2/min -j LOG --log-prefix " $LOG skanowanie Null"
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp ! --tcp-flags SYN,RST,ACK,FIN,PSH,URG SYN,RST,ACK,FIN,PSH,URG -m limit --limit 2/min -j DROP
echo "Reguła SSH"
# SSH
#$f -A OUTPUT -p tcp --dport 22 -j ACCEPT
#$f -A OUTPUT -p tcp --dport 10025 -j ACCEPT
fz="/etc/iptables/rules.v4"
if [[ -n $fz ]] && [[ -w $fz ]]
then iptables-save > $fz
echo "-Konfiguracja zastosowana i zapamiętana"
else
echo "-Konfiguracja zastosowana lecz nie zapamiętana. Brak uprawnień do zapisu lub brak pakietu iptables-persistent"
exit 1
fi
exit 0;