skrypt firewalla - iptables co poprawi

Konfiguracja serwerów, usług, itp.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

UDP jest potrzebne dla serwera, jeżeli jesteś tylko klientem wystarczy tylko TCP.
Andros
Posty: 48
Rejestracja: 11 marca 2009, 17:27
Lokalizacja: Lublin

Post autor: Andros »

Jeżeli UDP jest tylko potrzebne dla serwera to zablokuj sobie w iptables UDP i spróbuj otworzyć jakąś stronę www.
cassius7
Posty: 20
Rejestracja: 05 kwietnia 2009, 22:07
Lokalizacja: ¦l±sk

Post autor: cassius7 »

Nie, no nie ma opcji sprawdzałem i jako zwykły klient tylko tcp potrzebne. Pytałem jeszcze kolegi po fachu i mnie wyśmiał...
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Działa, działa, poza tym strona stronie nie równa, ale jeżeli chodzi o czysty protokół http to TCP 80 (docelowy) jako klient.
Awatar użytkownika
szmergiell
Beginner
Posty: 195
Rejestracja: 20 maja 2008, 00:16
Lokalizacja: Poznań

Post autor: szmergiell »

Odświeżając temat:
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"
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?
z3d
Posty: 71
Rejestracja: 27 lutego 2008, 20:28
Lokalizacja: ~/

Post autor: z3d »

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 :)
pure_linux
Posty: 2
Rejestracja: 24 maja 2009, 00:00

Post autor: pure_linux »

Hej dziewczyny i chłopaki!
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ń.
ODPOWIEDZ