skrypt firewalla - iptables co poprawi
- szmergiell
- Beginner
- Posty: 195
- Rejestracja: 20 maja 2008, 00:16
- Lokalizacja: Poznań
Odświeżając temat:
Zmodyfikowałem powyższy skrypt do ogniomurka. Wygląda następująco:
Z powyższego usunąłem wszelkie INPUT-y ponieważ komputer jest tylko "odbiorcą" Internetu i nie posiada żadnego serwera FTP, WWW itp. Pozostawiłem jedynie SSH, ponieważ będę kombinował z łączeniem się przez niego.
To, co zostało to wszelkie ESTABLISHED, gdyż połączenia wywołane z komputera mogą do niego wracać.
Powyższy skrypt działa dobrze. Z początku był jakiś problem z BitTorrentem (wolne pobieranie pliku, ale już działa OK). Mam również problem z pobieraniem aktualizacji poprzez apt, gdyż bardzo wolno to działa (chociaż niekoniecznie jest to problem z firewallem, gdyż bez niego jest podobnie).
Czy powyższy skrypt może być, drodzy koledzy?
Zmodyfikowałem powyższy skrypt do ogniomurka. Wygląda następująco:
Kod: Zaznacz cały
#!/bin/sh
#########################################
#sudo chmod 700 firewall.sh #
#sudo cp firewall.sh /etc/init.d/ #
#sudo update-rc.d firewall.sh defaults #
#########################################
#czyszczenie firewalla
iptables -F
echo "Konfiguracja firewalla rozpoczeta"
MOJEIP=`/sbin/ifconfig | grep 'inet addr' | grep Bcast | awk '{print $2}' | awk -F: '{print $2}'`
echo "moje IP: $MOJEIP"
# blokujemy #
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# ustawienia wstepne #
#~~~~~~~~~~~~~
# ochrona przed atakiem typu Smurf
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# nie akceptujemy pakietow "source route" (zmieniaja tablice routingu)
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# nie przyjmujemy pakietow ICMP redirect, ktore moga zmienic nasza tablice routingu
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
# wlaczamy ochrone przed blednymi pakietami ICMP error
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# ochrona przed spoofingiem -kazdy interfejs sieciowy bedzie przyjmowal
# tylko te pakiety ktore znajduja sie w tablicy routingu
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
#Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
# Dodanie do tablicy INPUT reguł wpuszczających pakiety należące do
#już nawiązanych (ESTABLISHED) połączeń.
iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state RELATED
# ssh
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p udp --dport 22 -j ACCEPT
echo "Konfiguracja firewalla zakonczona"
To, co zostało to wszelkie ESTABLISHED, gdyż połączenia wywołane z komputera mogą do niego wracać.
Powyższy skrypt działa dobrze. Z początku był jakiś problem z BitTorrentem (wolne pobieranie pliku, ale już działa OK). Mam również problem z pobieraniem aktualizacji poprzez apt, gdyż bardzo wolno to działa (chociaż niekoniecznie jest to problem z firewallem, gdyż bez niego jest podobnie).
Czy powyższy skrypt może być, drodzy koledzy?
Cześć
Myślę że spokojnie może być.
Jedno co bym zmienił to port dla ssh i ewentualnie logowanie na port z przydzielonego IP (dla bezpieczeństwa - paranoja )
Gdzieś ostatnio wkleiłem swojego firewalla,
siedziałem nad nim trochę czasu, możesz spróbować coś z nim zrobić.
Tylko jedna rzecz, mój firewall pisany był pod serwer, delikatne zmiany i wszystko będzie cacy
Myślę że spokojnie może być.
Jedno co bym zmienił to port dla ssh i ewentualnie logowanie na port z przydzielonego IP (dla bezpieczeństwa - paranoja )
Gdzieś ostatnio wkleiłem swojego firewalla,
siedziałem nad nim trochę czasu, możesz spróbować coś z nim zrobić.
Tylko jedna rzecz, mój firewall pisany był pod serwer, delikatne zmiany i wszystko będzie cacy
-
- Posty: 2
- Rejestracja: 24 maja 2009, 00:00
Hej dziewczyny i chłopaki!
Wszystko fajnie ale niestety to nie jest dynamiczny firewall:
I teraz porównajcie sobie, polecam sprawdzić. Ile rzeczy mam na ,,INPUT ='' ile mam zagrożeń.
Wszystko fajnie ale niestety to nie jest dynamiczny firewall:
Kod: Zaznacz cały
###################################################
###################################################
###################################################
########### ###########
########### ###########
########### rc.firewall ###########
########### ###########
###################################################
###################################################
###################################################
###################################################
ip=123.123.123.123
################################################
##############################
iptables -F
#################################################
#### polityka DROP dla INPUT
iptables -P INPUT DROP
#################################################
#### polityka DROP dla OUTPUT
iptables -P OUTPUT DROP
###################################################
#### polityka ACCEPT dla FORWARD
iptables -P FORWARD ACCEPT
#### wlaczenie loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
#####################################################################
####### WWW & DNS ##################################################
iptables -A OUTPUT -p tcp --syn -s $ip --dport 80 -j ACCEPT -m state --state NEW
iptables -A OUTPUT -p udp -s $ip --dport 53 -j ACCEPT -m state --state NEW
#####################################################################
####### kadu ########################################################
iptables -A OUTPUT -p tcp -s 0/0 --dport 8074 -j ACCEPT -m state --state NEW
####################################################################
###### ssh -1/min- #################################
iptables -A INPUT -p tcp --dport 22 -m hashlimit --hashlimit 1/min --hashlimit-mode srcip --hashlimit-name ssh -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT -m state --state NEW
####################################################################
##### auth #########################################################
iptables -A INPUT -p tcp --source-port 113 -j ACCEPT
#####################################################################
#### ftp ###########################################################
#iptables -A INPUT -p tcp ! --syn --sport 20:21 -d $ip --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p tcp -s $ip --sport 1024:65535 --dport 20:21 -j ACCEPT -m state --state NEW
######################################################################
#### Zabezpieczenie przed powodzia SYN (Syn-flood):###################
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
######################################################################
#### Ping of death: ##################################################
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#####################################################################
#### Wlaczenie przekazywania IP######################################
#echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/ip_forward
#####################################################################
#### Wlaczenie blokady komunikatow echo (ping) jesli : 0 --true , 1 --false
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#####################################################################
#### Blokada przed atakami typu SYN FLOODING
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#####################################################################
# Weryfikacja adresu zrodlowego na poziomie kernela
# zeby zdalne hosty nie mogly sie podszyc pod moj komputer
#####################################################################
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
################################################
#PING
iptables -A INPUT -p icmp -s 0/0 -d 0/0 -j DROP
####################################################################
#### połączenia https, skype ######################################
iptables -A OUTPUT -p tcp -s $ip --sport 1024:65535 --dport 443 -j ACCEPT -m state --state NEW
#############################################################################
iptables -A OUTPUT -p tcp -s $ip -d 0/0 --dport 1024:65535 -j ACCEPT -m state --state NEW
#############################################################################
#############################################################################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
I teraz porównajcie sobie, polecam sprawdzić. Ile rzeczy mam na ,,INPUT ='' ile mam zagrożeń.