Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
witam,
komputer pelni role workstation plus ograniczone ssh i dostepne www.
mam skrypt iptables, ktory ma za zadanie spelniac role firewalla.. czy szanowne forum mogloby wyrazic swoje komentarze odnosnie konstrukcji?
sa to regulki ogolnie zebrane w sieci jak i z mana, wyglada na to, ze dziala. kazda krytyka mile widziana jest.
Description: Debian GNU/Linux 5.0 (lenny)
dziekuje. ;)
#!/bin/bash ##################################################### # ip ktore maja wjazd na ssh - zmienic potem na dole ##################################################### IPSSH1=x IPSSH2=x ##################################################### # czysc stare wpisy ##################################################### iptables -t filter -F INPUT iptables -t filter -F FORWARD iptables -t filter -F OUTPUT iptables -F iptables -X ##################################################### # modul sledzenia polaczen ##################################################### modprobe ip_conntrack ##################################################### # domyslne polityki ##################################################### iptables --policy INPUT DROP iptables --policy OUTPUT ACCEPT iptables --policy FORWARD DROP ##################################################### # Loopback: na lokalnym interfejsie niech sie dzieje co chce ##################################################### iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT ##################################################### ## Security Ogolne ##################################################### # 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 #Blokada przed atakami typu SYN FLOODING echo 1 > /proc/sys/net/ipv4/tcp_syncookies # wlacza logowanie dziwnych (spoofed, source routed, redirects) pakietow echo 1 > /proc/sys/net/ipv4/conf/all/log_martians # Metoda ACK (nmap -sA) iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP # Skanowanie FIN (nmap -sF) iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -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 -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 -j DROP # syn-flood iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN iptables -A syn-flood -j DROP iptables -A INPUT -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # drop pakietow ze zlymi flagami iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP ##################################################### # www - input no limit ##################################################### iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT ##################################################### # ssh - konfiguracja dostepu dla danych IP ##################################################### iptables -A INPUT -p tcp -s $IPSSH1 --dport 22 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp -s $IPSSH2 --dport 22 -m state --state NEW -j ACCEPT ##################################################### # na input niech leca pakiety established i related ##################################################### iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ##################################################### # mozna mnie pingowac ##################################################### iptables -A INPUT -p ICMP -j ACCEPT ##################################################### # tv po multicascie ##################################################### iptables -A INPUT -p udp --dst 224.0.0.0/4 --dport 1025: -j ACCEPT iptables -A INPUT -p igmp -j ACCEPT
Offline
Witam
##################################################### # www - input no limit ##################################################### iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
Tak bym tego nie robił.
Nawiązanie nowych połączeń z jednego adresu IP np: 2000/s (atak DOS, lub przepełnienia bufora), lub z 2000 adresów IP w ciągu sekundy (DOS rozproszony) - to wszystko jest możliwe przy takiej regule.
Czy to wykonalne i groźne - znasz nmapa i netcata - to wiesz najlepiej.
Raczej radziłbym limit równoczesnych połączeń do serwera, oraz limit nowych połączeń (NEW) z jednego IP - podobnie jak się to robi np. z ssh.
##################################################### # mozna mnie pingowac ##################################################### iptables -A INPUT -p ICMP -j ACCEPT
Domagasz się Ping of Death i Buffer Overflow? - jeśli wpuszczasz icmp - to określ limit, maksymalny rozmiar pakietu i typy wpuszczanych pakietów.
np: tak możesz ograniczyć pakiety icmp do bezpiecznego poziomu:
iptables -A INPUT -p icmp -s 0/0 -m limit --limit 3/s -m length --length 32:16384 -m state --state NEW -j ACCEPT
możesz też dodać opcję --icmp-type - określając typy wpuszczanych pakietów.
Pozdrawiam
Ostatnio edytowany przez Jacekalex (2009-06-03 12:21:14)
Offline
żeby nie zakładać niepotrzebnie nowego tematu wrzucam tu swoją prośbę:
Witam, mam za dni parę kolokwium z firewalla, chciałem sobie poćwiczyć i tak znalazłem test i na poniższe pytania starałem się jakoś odpowiedzieć.
Czy mógłby ktoś miły sprawdzić czy mam to dobrze i ew. uzupełnić brakujące zadania ? (do których pomysłu nie mam już żadnego :( )
1. zapisz polecenie, które zapewni przekazywanie pakietów (niezbędne do pełnienia funkcji routera) na komputerze z firewallem.
iptables -P FORWARD ALLOW
2. utwórz regułę zezwalającą na komunikację z serwerami DNS o nazwach 'dns.tpsa.pl' i ‘dns2.tpsa.pl’.
iptables –A INPUT –s dns –p udp --sport 53 –j ACCEPT iptables –A OUTPUT –d dns –p udp --dport 53 –j ACCEPT iptables –A INPUT –s dns.tpsa.pl –p tcp --sport 80 -j ACCEPT iptables -A OUTPUT -d dns2.tpsa.pl -p tcp --dport 80 -j ACCEPT
3. utwórz własny łańcuch, o nazwie „logi", który będzie odpowiedzialny za logowanie pakietów z prefiksem „niedozwolony ruch", z limitem 10 pakietów na godzinę.
4. utwórz regułę zezwalającą na dostęp do uruchomionego na komputerze z firewallem serwera ftp. Połączenia nowe, przychodzące przez odpowiedni interfejs.
iptables –A OUTPUT –p tcp --dport 20:21 -j ACCEPT iptables –A INPUT –p tcp --sport 20:21 –j ACCEPT
5. utwórz regułę kasującą trzecią regułę w łańcuchu OUTPUT.
iptables –D OUTPUT 3
6. zezwól na dostęp do komputera z firewallem za pomocą protokołu SSH z sieci lokalnej.
iptables –A OUTPUT –d 213.227.9.3/24 –p tcp --dport 22 -j ACCEPT iptables –A INPUT –s 213.227.9.3/24 –p tcp --sport 22 –j ACCEPT
7. utwórz regułę zezwalającą na pełen ruch na interfejsie pętli zwrotnej.
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
8. utwórz regułę blokującą dostęp do serwera proxy WWW uruchomionego na serwerze o nazwie 'xxx’.
iptables –A OUTPUT –d xxx –p tcp --dport 3128, 8080 -j DROP
9. utwórz regułę, która zapewni możliwość zsynchronizowania czasu z komputerem o nazwie 'clock.redhat.com' - komenda ntpdate ... (protokół ntp)
10. zapewnij możliwość pingowania komputera z firewallem z komputerów sieci lokalnej,
iptables –A OUTPUT –d 213.227.9.3/24 –p icmp -type echo -request -j ACCEPT iptables –A INPUT –s 213.227.9.3/24 –p icmp -type echo -reply –j ACCEPT
11. sprawdź adres sieci uczelnianej i za pomocą odpowiedniej reguły zapewnij możliwość nawiązywania nowych połączeń z tej sieci, połączeń już nawiązanych i powiązanych z już istniejącymi, do uruchomionego na komputerze z firewallem serwera WWW.
ifconfig iptables -A INPUT -i 213.227.9.3/24 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
12. ustaw polityki domyślne dla łańcuchów na taką, która pozwoli odrzucić pakiety, którym nie zezwalamy na przejście przez firewall.
iptables -P INPUT DROP iptables -P OUTPUT DROP
13. wyczyść reguły w łańcuchach. I usuń puste łańcuchy.
iptables -F INPUT itpables -F OUTPUT
14. poprawne określenie kolejności reguł
Ostatnio edytowany przez otang (2009-06-02 20:22:54)
Offline
@otang
Ad. 1. Popatrz w kierunku ip_forward
Ad. 9. man ntpdate
Ad. 11. Jesli podajesz "-i" to po nim musi wystapic nazwa interfejsu.
Przejrzyj jeszcze man iptables W sieci znajdziesz i po polsku.
Podaje wskazówki do tego czego nie ruszyłeś, resztę (nie wszystko) musisz poprawić po lekturze iptables.
Ostatnio edytowany przez mariaczi (2009-06-02 20:20:54)
Offline
Czytałem co nieco, ale już mi się wszystko miesza :/ chciałem tylko, żeby ktoś potwierdził, czy to co napisałem jest dobrze, lub ew. poprawił coś za co z góry będę wdzięczny
czytałem o tym tu:
http://www.ziolek.piotrkow.pl/linux/iptablesi.htm
http://users.uj.edu.pl/~palacz/edu/200607-PI/linux-iptables.html
http://hoth.amu.edu.pl/~m_jurga/pld/firewall/
http://forum.slackware.pl/viewtopic.php?t=3778
http://linux.howto.pl/artykuly,linux-20-8-0.html
Offline
mariaczi napisał(-a):
@otang
Ad. 11. Jesli podajesz "-i" to po nim musi wystapic nazwa interfejsu.
czyli powinno to wyglądać tak?
iptables -A INPUT -i eth0 213.227.9.3/24 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
Offline
otang napisał(-a):
czyli powinno to wyglądać tak?
Kod:
iptables -A INPUT -i eth0 213.227.9.3/24 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
OK, ale podając adresy IP musisz przed nim podać parametr "-s". Dodatkowo w zadaniu masz, ze ma to byc zezwolenie na polaczenia do serwera www, czyli --dport 80
Proponuje odpalenie maszyny wirtualnej, jesli nie masz nigdzie linuxa zainstalowanego badz jakiejs wersji LIVE. Wziasc jeszcze kolege pod pache coby miec drugi komputer i na jednym wklepywac reguly, drugim probowac sie podlaczac. Usugi do testow mozesz spokojnie odpalic z ustawieniami domyslnymi :)
Powodzenia!
Offline
ok, czyli to 11 po poprawkach wygląda teraz tak:
iptables -A INPUT -i eth0 -s 10.0.224.0/24 -p tcp --dport 80 -m state --state NEW, ESTABLISHED, RELATED -j ACCEPT
czy ten kawałek "-i eth0" jest w ogóle potrzebny w tej regułce?
Niestety nie mam za bardzo warunków żeby skombinować 2 kompy i router :/
Ostatnio edytowany przez otang (2009-06-03 11:08:25)
Offline
Witam
6. zezwól na dostęp do komputera z firewallem za pomocą protokołu SSH z sieci lokalnej.
Kod:
iptables –A OUTPUT –d 213.227.9.3/24 –p tcp --dport 22 -j ACCEPT
iptables –A INPUT –s 213.227.9.3/24 –p tcp --sport 22 –j ACCEPT
O ile się nie mylę - w sieciach lokalnych nie używa się adresów takich jak: 213.227.9.3/24 czy 213.227.9.3/24 lecz:
Adresy zarezerwowane dla sieci prywatnych (lokalnych) to:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
Poza tym cała zabawa z dns-ami jest trochę nie praktyczna.
iptables -P INPUT DROP iptables -P OUTUP ACCEPT iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED
- ta podstawowa lista zabezpiecza desktopa całkiem nieźle - porty z zewnątrz są niedostępne - natomiast dla połączeń nawiązanych z hosta wszystkie usługi sa dostępne -DNS-y też.
Zainstaluj sobie Linuxa i sprawdź te reguły na działającym systemie - bo nauka "pływania na sucho" nie wystarczy ani na kolokwium -ani w życiu.
Pozdrawiam
Ostatnio edytowany przez Jacekalex (2009-06-03 12:44:28)
Offline
do otang :
po co te pytania zamieszczasz na takich forach jak je dostales osle to ich nie rozpowszechniaj... usun tego posta z pytaniami ... bo w google jest na pierwszym miejscu ...
Offline
ostani_sprawiedliwy napisał(-a):
do otang :
po co te pytania zamieszczasz na takich forach jak je dostales osle to ich nie rozpowszechniaj... usun tego posta z pytaniami ... bo w google jest na pierwszym miejscu ...
A Tobie co się stało ?? paliłeś coś ? Pierwszy post i przezwiska od razu.
Offline
Koledze srawiedliwemu chodzi chyba o skrypt do iptables, żeby pozostał niejawny :P pewnie żeby psor nie wygooglał że jego 100denci szukają pomocy na forach xD.
Offline
chodzi o to zeby nie wygooglal ze jego pytania sa juz jawne
Offline
Nieśmiało pytając: to co, nie można już szukać pomocy na forach? otang pyta czy dobrze kombinuje, to chyba dobrze? Poza tym, zlituj się. Jak zmieni pytania i pozmienia na ten przykład porty, to już nie dasz sobie rady z kolosem ?
Offline
ma od tego inne forum do dyskusji o kolosie, a tu chodzi o dobro ogółu a nie moje
Offline
Widać jak to 'drugie forum' jest skuteczne. Tutaj siedzą zaprawieni w bojach(?), więc chyba dobrze że o takie rzeczy pyta na forach tematycznych? Dobro ogółu, phi. Wychodzę z założenia, że jeśli ktoś jest na kierunku X, to nie będzie leciał w ciulki i zdawał po najmniejszej linii oporu, prawda? Innymi słowy, jeśli poczyta manuala do iptables to poradzi sobie z każdym zadaniem. A jeśli chce zdać bo zdać... Oj to cienko widzę przyszłość narodu...
Offline
Ja to rozumiem, tylko o tego osła mi poszło. Na PW trzeba było...
Ewentualnie trochę łagodniej np. Ty ciulu bosy :P
Dobra, nie wcinam się :)
Offline
Fajnie, że z mojego tematu zrobił się offtop
Kto powiedział, że ja te pytania dostałem??? Znalazłem tak jak właśnie pisałeś gdzieś na google i próbowałem rozwiązać w celach treningowych, chciałem tylko otrzymać odpowiedzi typu:
1. dobrze
2. źle dopisz coś tak i tak...
3. dobrze itd...
To że ktoś to wrzucił do sieci to już chyba nie moja wina, no nie??
Wracając do tematu prosiłbym o jakieś sugestie (jeszcze) :)
Offline
już po kolosie, temat do zamknięcia
Offline
Jacekalex napisał(-a):
Witam
6. zezwól na dostęp do komputera z firewallem za pomocą protokołu SSH z sieci lokalnej.
Kod:
iptables –A OUTPUT –d 213.227.9.3/24 –p tcp --dport 22 -j ACCEPT
iptables –A INPUT –s 213.227.9.3/24 –p tcp --sport 22 –j ACCEPTO ile się nie mylę - w sieciach lokalnych nie używa się adresów takich jak: 213.227.9.3/24 czy 213.227.9.3/24 lecz:
Adresy zarezerwowane dla sieci prywatnych (lokalnych) to:
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
jezeli masz wystarczajaca ilosc publicznych ip nie ma rzadnego powodu aby nie uzywac ich wewnatrz LAN ... oprocz tego w ramach jednego LAN moga biegac zarowno prywatne jak i publiczne ...
Offline
Strony: 1