napisałem dzisiaj skrypt iptables wzorując się na poznajdowanych w sieci.
Wygląda mniej więcej tak:
Kod: Zaznacz cały
#!/bin/bash
#
# USTAWIENIA POCZATKOWE
#
# PRZYPISANIE ZMIENNEJ ORAZ SCIEZKA DO PLIKU
IPT="/sbin/iptables"
# PRZYPISANIE ZMIENNEJ ORAZ SCIEZKA DO PROGRAMU ECHO
ECHO="/bin/echo"
echo "KONFIGUROWANIE ZAPORY SIECIOWEJ ROZPOCZETE"
# CZYSZCZENIE £ANCUCHOW Z POPRZEDNICH REGUL
$IPT -t filter -F INPUT
$IPT -F FORWARD
$IPT -F OUTPUT
### BEZPIECZENSTWO
# WLACZONE ZOSTAJE IGNOROWANIE PAKIETOW ICMP - SMURF PRZECIAZENIE LACZA
$ECHO 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
$ECHO 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# BRAK AKCEPTACJI ICMP REDIRECT – ZMIANA TABLIC ROUTINGU
$ECHO 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# BRAK REAKCJI NA FALSZYWE KOMUNIKATY O BLEDACH
$ECHO 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# BRAK AKCEPTACJI PAKIETOW SOURCE ROUTE – ZMIANA TABLIC ROUTINGU
$ECHO 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# WLACZENIE OCHRONY PRZED SPOOFINGIEM – PODSZYWANIE SIE POD INNE PAKIETY
$ECHO 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# WLACZENIE OCHRONY PRZED SYN COOKIES
$ECHO 1 >/proc/sys/net/ipv4/tcp_syncookies
# LOGOWANIE W/W PAKIETOW
$ECHO 1 > /proc/sys/net/ipv4/conf/all/log_martians
# USTAWIENIE DOMYSLNEJ POLITYKI
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
# ODZUCENIE PAKIETOW Z BLEDNIE USTAWIONYMI FLAGAMI – SKANOWANIE NMAP
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
# LOGOWANIE RUCHU / PRZYKLADOWA ILOSC LOGOW NA GODZINE
$IPT -A INPUT -j LOG -m limit --limit 15/hour
$IPT -A OUTPUT -j LOG -m limit --limit 15/hour
$IPT -A FORWARD -j LOG -m limit --limit 15/hour
### POLACZENIA
# SWOBODNY PRZEPLYW INFORMACJI NA INTERFEJSIE LOKALNYM
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# NAWIAZANE POLACZENIA
$IPT -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
$IPT -A OUTPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
#LOGOWANIE NA SSH Z WYBRANEGO IP
$IPT -A INPUT -p tcp -s 192.168.1.103 --dport 22 -m state --state NEW -j ACCEPT
# OTWARCIE PORTOW DLA USLUG HTTP
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p udp --dport 80 -j ACCEPT
# OTWARCIE PORTU DLA USLUGI HTTPS
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
$IPT -A INPUT -p udp --dport 443 -j ACCEPT
# KASOWANIE ZMIENNYCH
unset IPT ECHO
W konsoli dostaję informację że:
Kod: Zaznacz cały
3d-debian:/home/z3d/Desktop# sh zapora.sh
KONFIGUROWANIE ZAPORY SIECIOWEJ ROZPOCZETE
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
iptables: No chain/target/match by that name
: Nie ma takiego pliku ani katalogupv4/icmp_echo_ignore_broadcasts
: Nie ma takiego pliku ani katalogupv4/conf/all/accept_redirects
: Nie ma takiego pliku ani katalogupv4/icmp_ignore_bogus_error_responses
: Nie ma takiego pliku ani katalogupv4/conf/all/accept_source_route
: command not found
: Nie ma takiego pliku ani katalogupv4/conf/all/rp_filter
: Nie ma takiego pliku ani katalogupv4/tcp_syncookies
iptables: Bad policy name
iptables: Bad policy name
iptables: Bad policy name
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `DROP
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: bad rate `15/hour
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Bad state `RELATED
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.1.1: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
Co może być przyczyną takiego stanu rzeczy, tym bardziej że reguły wpisywane kolejno w konsoli działają.
Moje jajko to 2.6.22-3-686, a iptables v1.4.2.
Skrypt zapisałem w pliku zapora.sh i nadałem jej prawa do uruchomienia.
Bardzo proszę o pomoc.
Edit:
Więc tak, nie wiem jakim cudem, ale przy kopiowaniu przez scp w mc do każdej linii dodało mi znaczek na jej końcu, który mylił iptables. Już wszystko działa jak ta lala.
Konfig działa super, polecam.