| Iptables pod serwer DNS [wiadomość #34544] |
pią, 02 kwiecień 2010 08:35  |
czater
Wiadomości:
67
Dołączył(a): grudzień 2007
|
Doświadczony pingwin |
|
|
Witam
Skonfigurowałem server DNS (Bind9) oraz napisałem firewalla do niego. W związku z tym że dopiero poznaję temat iptables-a, proszę o weryfikację, wszelkie uwagi mile widziane. Zalożenie było takie, żeby przepuszczać tylko ruch po porcie 53 dla usługi DNS oraz port 80 dla aktualizacji systemu, wszystkie pozostałe porty poblokować (nawet ssh).
Kod:
#!/bin/bash
#Kasuje wszystkie reguly
iptabes -F
#Odrzucamy domyslnie wszystie pakiety wchodzace i wychodzace
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#Akceptujemy wszystko na interfejsie lokalnym
iptables -A INPUT -i do -j ACCEPT
#Akceptuje wszystkie połaczenia ustanowione na lancuchach OUTPUT i INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLOSHED,RELATED -j ACCEPT
#Akceptujemy nowe połaczenia tcp i udp na dozwolonych portach
#Polaczenia po 53 porcie dla DNS
iptables -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
#Polaczenia po porcie 80 dla aktualizacji
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --dport 80 -m state --state NEW -j ACCEPt
[Uaktualnione dnia: pią, 02 kwiecień 2010 08:35]
|
|
|
| Odp: Iptables pod serwer DNS [wiadomość #34978 (odpowiedź na #34544) ] |
pon, 19 kwiecień 2010 22:33   |
Lechu
Wiadomości:
4
Dołączył(a): lipiec 2009
|
Młody pingwin |
|
|
| czater napisał(a) dnia pią, 02 kwiecień 2010 08:35 |
iptables -A INPUT -i do -j ACCEPT
|
Jak już to
iptables -A INPUT -i lo -j ACCEPT
Zastanawiam się czy to będzie działać ponieważ masz DROP na tablicy OUTPUT.
|
|
|
| Odp: Iptables pod serwer DNS [wiadomość #37364 (odpowiedź na #34544) ] |
pon, 26 lipiec 2010 12:26   |
czater
Wiadomości:
67
Dołączył(a): grudzień 2007
|
Doświadczony pingwin |
|
|
Oto ostateczna wersja, będę bardzo wdzieczny za opinie:
SERVER_IP numer IP gdzie BIND(named) słucha na porcie 53 przychodzące zapytania DNS.
DNS2_IP numer serwera secondary gdzie plik strefy jest transferowany z serwera Primary DNS
Kod:
#!/bin/bash
#Kasuje wszystkie reguly
iptabes -F
#Odrzucamy domyslnie wszystkie pakiety wchodzace i wychodzace
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#Akceptujemy wszystko na interfejsie lokalnym
iptables -A INPUT -i lo -j ACCEPT
SERVER_IP="202.54.10.20"
iptables -A INPUT -p udp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -s $SERVER_IP --sport 53 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 53 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -s $SERVER_IP --sport 53 -d 0/0 --dport 53 -m state --state ESTABLISHED -j ACCEPT
DNS2_IP="202.54.10.2"
iptables -A INPUT -p tcp -s $DNS2_IP --sport 1024:65535 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 53 -d $DNS2_IP --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
[Uaktualnione dnia: pon, 26 lipiec 2010 12:27]
|
|
|
| Odp: Iptables pod serwer DNS [wiadomość #37366 (odpowiedź na #34544) ] |
pon, 26 lipiec 2010 12:44   |
czater
Wiadomości:
67
Dołączył(a): grudzień 2007
|
Doświadczony pingwin |
|
|
Oto ostateczna wersja, czekam na Wszelkie Wasze opinie
SERVER_IP numer IP gdzie BIND(named) słucha na porcie 53 przychodzące zapytania DNS.
DNS2_IP numer serwera secondary gdzie plik strefy jest transferowany z serwera Primary DNS
#!/bin/bash
#Kasuje wszystkie reguly
iptables -F
#Odrzucamy domyslnie wszystie pakiety wchodzace i wychodzace
iptables -P INPUT DROP
iptables -P OUTPUT DROP
#Akceptujemy wszystko na interfejsie lokalnym
iptables -A INPUT -i lo -j ACCEPT
SERVER_IP="202.54.10.20"
iptables -A INPUT -p udp -s 0/0 --sport 1024:65535 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -s $SERVER_IP --sport 53 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s 0/0 --sport 53 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -s $SERVER_IP --sport 53 -d 0/0 --dport 53 -m state --state ESTABLISHED -j ACCEPT
DNS2_IP="202.54.10.2"
iptables -A INPUT -p tcp -s $DNS2_IP --sport 1024:65535 -d $SERVER_IP --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s $SERVER_IP --sport 53 -d $DNS2_IP --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
|
|
|
| Odp: Iptables pod serwer DNS [wiadomość #37374 (odpowiedź na #34544) ] |
pon, 26 lipiec 2010 21:06   |
carramba
Wiadomości:
425
Dołączył(a): grudzień 2007
|
Genialny pingwin |
|
|
bez sensu.
1. czy cokolwiek innego ma na tym hoscie otwarte porty? co?
2. czy sa tam konta shellowe? czy wpuszczasz innych uzytkowników?
jesli 1. nie albo dodatkowe uslugi sa mocno ograniczone i kontrolowane oraz 2. nie to...
nie rozumiem manii i maniery wycinania wszystkiego w pien kiedy nie ma takiej potrzeby.
są 2 metody budowania fwalla:
pierwsza, 'dla debili', ktorzy nie znaja slowa iptables, a do firewalla potrzebuja gui. metoda polega wlasnie na wycieciu wszystkiego i ewentualnym otwarciu jakiegos portu. fajna metoda, ale dla desktopow, laptopow, gdzie wlasciwie pracowac moze 100 roznych procesow, nad którymi uzytkownik nie panuje.
druga. dopuszczony jest caly ruch ograniczone są procesy, konta maja tylko ludzie ktorzy naleza do wheel, moga wykonac sudo i ogolnie widza czego w systemie nie robic.
jesli nie odpalasz nasuchu na porcie to nikt ci sie nie jest w stanie przez ten port wbic.
Co wiecej nt. samego dnsa, wcale nie jest powiedziane, że transfer stref jest po tcp a zapytania po udp. pytac można rownie dobrze po tcp. wynika to tylko i wylacznie z ograniczenia wielkosci datagramu udp do ok. 64k. natomiast rozpoznanie czy jest to transfer strefy czy odpowiedz na zapytanie o konkretny rekord jest zawarte w pytaniu i to w demonie dns konfiguruje sie kto ma prawo do transferu a kto tylko do zapytania.
probujesz sterowac ruchem w miejscu, w ktorym:
1. ze wzgledu na dowolnosc wyboru protoklu tcp/udp nie masz prawa ingerować.
2. na masz wplywu na port zrodlowy zapytania
3. probujesz ograniczyc ruch wychodzacy tak jakbys zalozyl, ze demon sam z siebie nie pytany bedzie wysylal jakiekolwiek dane.
4. wycinasz nawet icmp, gdize echo nie jest jedynym rodzajem zapytania/odpowiedzi.
5. nie ma potrzeby stosowania fwalla stanowego do uslug jednoportowych (dwuportowy moze byc np. ftp) i niepowiazanych (a nie wiem z czym mozna powiazac dnsa) gdzie kryterium jest port docelowy adres nadawcy/odbiorcy lub interfejs. zwykly bezstanowy fwall sprawdza sie rownie dobrze a jest o wiele prostszy.
jesli potrzebujesz cokolwiek ograniczyc proponuje nastepujaca metode:
iptables -A INPUT -p [proto] -s [zrodlo] -d [cel] -i [interfejs] --dport [usluga] -j ACCEPT // -s/-d/-i do wyboru
iptables -A INPUT -p [proto] --dport [usluga] -j REJECT
dodatkowo, DROP jesli nie jest to absolutnie konieczne jest brzydkim zwyczajem. duzo lepsze jest REJECT, bo na grzeczne zapytanie grzecznie odpowiada icmp 'port unreachable'
[Uaktualnione dnia: pon, 26 lipiec 2010 21:15]

registered linux user #361045
|
|
|
| Odp: Iptables pod serwer DNS [wiadomość #37509 (odpowiedź na #34544) ] |
śro, 04 sierpień 2010 22:02  |
fenoms
Wiadomości:
1
Dołączył(a): sierpień 2010
|
Młody pingwin |
|
|
Osobiście uważam, że nie ma sensu robić takich firewalli.
Jeśli chcesz zabronić dostęp do jakiejś usługi to po prostu skonfigurują ją tak by nasłuchiwała tylko na interfejsie lo zamiast filtrować ruch iptables.
Jeśli jakąś usługę musisz wystawić "na świat" aby powiedzmy ktoś mógł dokonać jakichś modyfikacji możesz wtedy przefiltrować ruch tak by dostęp miała tylko i wyłącznie dana osoba ( konkretny ip ).
Kompleksowa administracja linux dla małych i średnich przedsiębiorstw.
|
|
|