Przyk

Konfiguracja serwerów, usług, itp.
mdfelix
Posty: 4
Rejestracja: 11 listopada 2008, 13:11

Przykładowy kod FIREWALL-a (czy to się nadaje ?)

Post autor: mdfelix »

Napisałem skrypt firewall, lecz nie jestem pewny czy będzie odpowiedni do ochrony serwera. Proszę o ocenienie i w razie jakiś braków opisanie co by się jeszcze przydało.
Sieć ma udostępniać internet DSL w przyszłości będzie połączenie z radiolinią lecz do tego na pewno wrócę. Ilości osób obecnie 20.

Kod: Zaznacz cały

# !/bin/sh
# # # # # # # # # # # # # # # # # # # # # # #
# adres serwera naszego komputera
SERWER='192.168.1.1'

# adres IP komputera z którego loguje się admin
ADMIN='192.168.1'

# zakres adresów sieci wewnętrznej i karta obsługująca sieć LAN
WEW_ADRESY='192.168.1.1/24'
WEW_KARTA='eth1'

# adres wyjściowy zewnętrzny i karta je obsługująca
ZEW_ADRESY='0/0'
ZEW_KARTA='eth0'

# usługi TCP które będą przepuszczane
TCP_IN='WWW,ftp,ftp-data,ssh,smtp'
TCP_OUT='WWW,ftp,ftp-data,ssh,irc,smtp'

# usługi UDP, które będą przepuszczane
UDP_IN='443,465,995'
UDP_OUT=' '

# usługi ICMP które chce się przepuszczać
ICMP_IN=' '
ICMP_OUT=' ' 

# # # # # # # # # # # # # # # # # # # # # # #

# Adresy IP komputerów w sieci które będą miały dostęp do Internetu
#+++++++++++++++++++
#komputer1
IP_USER1='192.168.1.2'
MAC_USER1='00:00:00:00:00:00'
#+++++++++++++++++++
#komputer2
I
# # # # # # # # # # # # # # # # # # # # # # #

# usunięcie poprzednich regul
iptables -F INPUT 
iptables -F OUTPUT
iptables -F FORWARD
iptables -X 
iptables - t nat -F
iptables -t nat -X 

# Ustawienie polityki działania
iptables - P INPUT DROP
iptables - P OUTPUT ACCEPT
iptables - P FORWARD DROP

# -----------------------------------------------------------------------------------------------
# włączenie forwardowania
echo 1 > /sys/net/ipv4/ip_forward

# wylączenie odpowiedzi na pingi
echo 0 > /sys/net/ipv4/icmp_echo_ignore_all

# Ochrona przed atakiemSmurf
echo 1 > /sys/net/ipv4/icmp_echo_ignore_broadcast

# wlączenie ochorny przed komunikacja ICMP error
echo 1 > /sys/net/ipv4/icmp_bogus_error_responses

# włączenie logowania nieznanych pakietów (spoofed. Source router. Redirects)
echo >  /sys/net/ipv4/conf/all/log_martians

# nieakcpetowanie datagramu IP z opcją “source route”
echo 0 > /sys/net/ipv4/conf/accept_source_route

# nie przyjmowanie pakietów ICMP redict
echo 0 > ys/net/ipv4/conf/all/accept_redirects

# wszystkie karty nie przyjmują pakietów z sieci niż te z routingu
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter

# ---------------------------------------------------------------------------------------------

# odblokowanie pętli zwrotnej LOOPBACK
iptables -A INPUT -i lo -j ACCEPT

# zezwolenie na korzystanie z protokołu passive on
iptables -A INPUT -m state  - - state ESTABLISHED, RELATED -j ACCEPT
iptables -A OUTPUT -m state  - - state ESTABLISHED, RELATED -j ACCEPT
iptables -A FORWARD -m state  - - state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -p icmp - -icmp-type echo-replay  -j ACCEPT

# zezwolenie dla zewnętrznej sieci na łączenie się z naszymi usługami serwera
iptables -A INPUT -p tcp -s 0/0 - -dport 20:22 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 - -dport 80 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 - -dport 20:22 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 - -sport 20:22 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 - -sport 80 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 - -sport 20:22 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 - -dport 113 -j ACCEPT
iptables -A INPUT -p udp -s 0/0 - -dport 1025:1100 -j ACCEPT

# odblokowanie uslug na serwerze dla administratora
iptables -A INPUT -p tcp -s $ADMIN -m multiport - - dport $TCP_IN -j ACCEPT
iptables -A INPUT -p udp -s $ADMIN - m multiport - -  dport $UDP_IN -j ACCEPT
iptables -A INPUT -p udp -s $ADMIN - -dport 137:139 -j ACCEPT

# udostępnienie dla adresu administratora
iptables -A INPUT -s $ADMIN - j ACCEPT

# dostęp do serwerów nazw DNS
iptables -A INPUT -p tcp -s 0/0 - -sport 53 - d $SERWER -j ACCEPT
iptables -A INPUT -p udp -s 0/0 - -sport 53 -d $SERWER -j ACCEPT

# zabezpieczenie przed atakami typu Land
iptables -A INPUT -i $WEW_KARTA -s $SERWER -j DROP

# pakiety z adresów nierutowalnych z klas A,B,C, multicast I zarezerwowanych
iptables -A INPUT -I $WEW_KARTA -s 10.0.0.0/8 -j DROP
iptables -A INPUT -I $WEW_KARTA -s 172.16.0.0/12 -j DROP
iptables -A INPUT -I $WEW_KARTA -s 192.168.0.0/16 -j DROP
iptables -A INPUT -I $WEW_KARTA -s 224.0.0.0/4 -j DROP
iptables -A INPUT -I $WEW_KARTA -d 224.0.0.0/4 -j DROP
iptables -A INPUT -I $WEW_KARTA -s 240.0.0.0/5 -j DROP
iptables -A INPUT -I $WEW_KARTA -s 127.0.0.0/5 -j DROP

#----------------------------------------------------------------------------------------------------------------

# udostępnienie Internetu sieci lokalnej
#++++++++++++++++++++++++
# komputer 1
iptables -t nat -A POSTROUTING -s $IP_USER1 -j MASQUERADE
iptables -A FORWARD -m mac - - mac-source $MAC_USER1 -j ACCEPT

#--------------------------------------------------------------------------------------------------------
Proszę o pomoc
Z góry dziękuję
Pozdrawiam

Bez potrzeby nie korzystamy z dużych czcionek. //Rad
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Nie wiem czemu ludzie sobie odpuszczają

Kod: Zaznacz cały

iptables - P OUTPUT ACCEPT 
a mimo wszystko wstawiłeś

Kod: Zaznacz cały

iptables -A OUTPUT -m state  - - state ESTABLISHED, RELATED -j ACCEPT 
Poza tym wydaje mi się, że nie koniecznie RELATED jest potrzebne, bo nie widze zebyś załawoeał moduły do ftp aczkolwiek porty przepuszczasz.
Poza tym dlaczego w łańcuchu INPUT ustalasz reguły na źródło

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0/0 - -sport 80 -j ACCEPT 
chcesz z serwera przeglądać internet? nawet jeżeli tak to ty inicjujesz połączenie i wtedy to wychodzi z OUTPUT ACCEPT - gdyby nawet nie ACCEPT - to potem by i tak szło po ESTABLISHED dla INPUT.
Chyba i tak samo ma się DNS Ty pytasz OUTPUT a wraca po ESTABLISHED, gdybyś wcześniej nie zezwolił ogólnie na OUTPUT.
To takie ogólne uwagi.
mdfelix
Posty: 4
Rejestracja: 11 listopada 2008, 13:11

Post autor: mdfelix »

Wstawiłem RELATED bo zamierzam odnieść się do modułów ftp, fakt nie uwzględniłem ich teraz, ale dopiszę. Nie jestem orłem dlatego wolę się skonsultować. Co do tego:

Kod: Zaznacz cały

iptables -A INPUT -p tcp -s 0/0 - -sport 80 -j ACCEPT
Mam rozumieć że jest to zbędne? I tylko bzdurę napisałem.
Z góry dziękuję za uwagi.
Pozdrawiam.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

mdfelix pisze: Mam rozumieć że jest to zbędne? I tylko bzdurę napisałem.
Nie wiem co chcesz przez to osiągnąć - domyślam się, że tego nie potrzebujesz.
Usuń i sprawdź czy coś nie dział Ci z tego co chciałeś.
ODPOWIEDZ