Strona 2 z 2
: 19 grudnia 2010, 16:55
autor: Sawko
rgl pisze:
Z ciekawości wstawiłem twoją regułkę do OUTPUT (oczywiście po zmianie celu na DROP) i wiesz co? Jakoś dalej mogłem się łączyć z hosta z sieci wewnętrznej. Wstawienie regułki do FORWARD jakoś dziwnie blokuje ruch (oczywiście jeśli wcześnie j przed nią nie ma jakiejś innej do która pakiet przepuści). Może mam jakieś inne iptables?
PS. Nie udaję mądrego tylko zapytałem czy regułka jest poprawna bo według mnie nic nie zatrzyma na routerze.
Przyznaję się od razu, że nie testowałem tej regułki ale pierwsze co mi się nasuwa to to, że Ty ją testujesz dzisiaj (NIEDZIELA) a w tej regułce jej nie ma, więc nie ma prawa Ci dzisiaj nic zablokować jeżeli dałeś DROP.
Pozdrawiam
: 19 grudnia 2010, 17:07
autor: rgl
Przecież ustawiłem właściwy czas oraz źródło
nie przepisywałem tego bezmyślnie.
Jak wytłumaczysz to że ta sama regułka umieszczona w FORWARD działała tak jak powinna (tzn. blokowała wszystkie nowe połączenia na port 80 z sieci wewnętrznej do internetu) a umieszczona w OUTPUT nie zatrzymała żadnego pakietu?
: 19 grudnia 2010, 17:15
autor: Sawko
rgl pisze:Przecież ustawiłem właściwy czas oraz źródło
nie przepisywałem tego bezmyślnie.
Jak wytłumaczysz to że ta sama regułka umieszczona w FORWARD działała tak jak powinna (tzn. blokowała wszystkie nowe połączenia na port 80 z sieci wewnętrznej do internetu) a umieszczona w OUTPUT nie zatrzymała żadnego pakietu?
Nie mogę w tym momencie tego przetestować i dlatego mam prośbę: ustaw dokładnie tę regułkę którą podał snejk na ACCEPT (tylko żeby w niej czasami nie znalazła się niedziela).
: 19 grudnia 2010, 17:44
autor: rgl
Ustawiłem - nie działa
.
Nie łapie żadnego pakietu
zamiast --days dałem --weekdays bo taka jest składnia.
Pierwszy raz napisałem z pamięci, ale po odpowiedzi Snejka sprawdziłem dokładnie u siebie gdyż rzeczywiście dawno nie używałem iptables.
Konfiguracja: host z sieci lokalnej FreeBSD -> router debian Squeeze (NAT)-> internet.
Wszystkie routowane pakiety idą przez FORWARD żaden nie trafia do INPUT czy OUTPUT
: 19 grudnia 2010, 19:47
autor: Pacek
Może zacznijmy od początku a nie od tyłu (tzw. d*py strony). Więc tak:
1. Skrypt przetwarzany jest sekwencyjnie, tak więc wszystko co jest z "przodu" i z "tyłu" skryptu ma wbrew pozorom duże znaczenie.
2. W skrypcie można określić domyślne polityki dla pakietów. Standardowo o ile się nic nie zmieniało to polityki są typu "zaakceptuj wszystkie i zewsząd" (accept anywhere) dla wszystkich łańcuchów o których mowa poniżej.
3. Podstawowe informacje na temat łańcuchów:
INPUT - obługa pakietów przychodzących na interfejsy obsługiwane na Twoim serwerze
OUTPUT - obsługa pakietów wypuszczanych w świat przez Twój serwer
FORWARD - obsługa pakietów, które trafiają na Twój serwer, ale nie są dla niego przeznaczone (np. gdy pakiet ma trafić do stacji roboczej za NATem)
Teraz to co wg mnie nie zagrało:
Skrypt przetwarzany jest sekwencyjnie i znając życie domyślną polityką jest tak jak napisałem w pkt.2. (zaakceptuj zewsząd) Więc nasz skrypt leci i trafia na Waszą regułę dotyczącą dostępu w określonych godzinach (żeby było jasne nie testowałem tej reguły nigdy więc pod względem jej poprawności nic nie będę mówił). Załóżmy teraz, że:
1. Jest godzina w której ma przepuszczać (9-18, pn-pt) - świetnie działa, reguła w tym czasie robi ACCEPT
2. Jest godzina w której ma nie przepuszczać (poza w/w godzinami) - reguła jest pomijana przez skrypt, ponieważ czas nie jest zgodny. Mimo wszystko pakiety są przekazywane, ponieważ domyślną polityką jest ACCEPT. Pakiet nie "zmieścił" się w żadnej regule więc został domyślnie przepuszczony.
Rozwiązaniem wg mnie będzie ustawienie w Waszym skrypcie DROP na godziny 18:00-8:00, sat,sun. Ewentualnie (co bardziej zalecam) zmianę domyślnej polityki dla łańcuchów INPUT i FORWARD na DROP a następnie otwieranie wszystkich potrzebnych portów. Łańcuch OUTPUT może być jako domyślna polityka ACCEPT, ponieważ to co my "wypluwamy" na świat jest nam z reguły zupełnie obojętne.