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/.
Witam
Chcialbym zminimalizowac do minimum (DNS?) caly "niepozadany" ruch wychodzacy w lancuchu OUTPUT, kiedy ruch IN w tym lancuchu powinien zostac swobodny. Innymi slowy chcialbym zamknac drzwi wyjsciowe dla wszystkich "mrowek"
Stworzylem taki skrypt, ktory niestety odcina mnie od Sieci.
iptables -F iptables -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT
Jak to poprawic?
Offline
3046
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:41:33)
Offline
Przestań to robić na pałę metodą prób i błędów tylko wreszcie poczytaj sobie jak działa TCP/IP i do czego służą te magiczne literki po Iptables.
Na razie skutecznie zabroniłeś swojemu hostowi nawiązywania połączeń TCP/IP - więc czego się dziwisz że ci sieć nie działa?
Jak to poprawić?
Pisałem w pierwszym zdaniu.
Offline
@Novi-cjusz
Znowu zaorałeś system i wszystko pogubiłeś?
Przecież cgroup (cgstart i konfig /etc/cgrules.conf) miałeś zrobione, filtrowanie w firewallu modułem dopasowania cgroup na podstawie grupy net_cls też.
Znowu od nowa chcesz to rzeźbić?
Ostatnio edytowany przez Jacekalex (2016-06-09 21:05:31)
Offline
Nic nic nie zaoralem, wszystko co dot cgroups mam zachowane i dziala pieknie.Ponadto mam najnowsze materialy odnosnie cgroupsv2 z NetDev 1.1 conference, Seville, February 2016: Link: http://www.netdevconf.org/1.1/proceedings/slides/ro … roups-lxc.pdf
Wy bedziecie mieli wiecej pozytku. Wracajac do tematu, o polaczeniach TCP/IP naczytalem sie tez wiele, ale to teoria a najlepiej weryfikuje wlasnie budowanie regolek iptables. Gdzies przeczytalem, ze mozna teoretycznie stworzyc do 38 mln regolek, natomiast w korpo niektorzy stosuja nawet do 27 tys, bo na tyle pozwala hardware i nastepuje wyrazne zwolnienie dzialania. Wiem, ze polityce domyslnej jest 3 x DROP ale od tego zrobilem wyjatki, ktore powinny przepuscic ruch w lancuchu OUTPUT zakwalifikowany jako " powiazany ustanowiony"
Probuje jedynie czegos innego. Zapominamy o cgroups. Jest tylko desktop z Jessie v3 (a mamy juz 5) zadaniem iptables na wyjsciu jest zminimalizowanie ruchu wyjsciowego do krytycznego minimum ( tylko zapytania DNS? pakiety ICMP?) Chce zamknac drzwi wyjsciowe do internetu dla:komunikatow rogue software, backdorow, i temu podobnej swoloczy. Natomiast ruch wejsciowy w lancuchu OUTPUT moze pozostac swobodny. Mam nadzieje, ze prosto to przedstawilem.
Wczesniejsza wersja poszukiwanego przeze mnie rozwiazania wygladala tak:
iptables -A OUTPUT -m state –state ESTABLISHED -j ACCEPT iptables -A OUTPUT -j REJECT
A jak zrobic nowsza wersje rozwiazania z modulem conntrack?
Ostatnio edytowany przez Novi-cjusz (2016-06-09 21:58:35)
Offline
Może lepiej napisz, jak według ciebie odbywa się połączenie sieciowe w oparciu o te regułki z pierwszego posta. Co się dzieje, gdy jakaś aplikacja jest przesłać pakiet przez sieć. xD
Offline
Rozumowalem w ten sposob (kolokwialnie) host jest odciety od Sieci przez 3 x DROP w ktorym to ogniomorku sa 2 przejscia:
- pierwsze dla polaczen nawiazanych na wejsciu
- drugie dla polaczen nawiazanych na wyjsciu. Zadne nowe pakiety z flaga SYN nie maja prawa opuscic mojego desktopa.
- Dolozylem do tego regolki umozliwiajace dzialanie Domain Name System na porcie zrodlowym i docelowym 53.
Albo inaczej, tylko polaczenia zainicjowane przeze mnie maja prawo opuscic kompa, tylko pojawia sie pytanie jak odroznic w regolkach iptables polaczenia legalne od nazwijmy je " samozwanczych "?
Ostatnio edytowany przez Novi-cjusz (2016-06-09 22:24:06)
Offline
Przeciez napisalem ze w ogniomorku sa dziury (wyjatki)
Najpierw zamykam wszystko a nastepnie wybijam drzwi dla wybranych.
Offline
Inicjuje polaczenie wysylajac pakiety ze statusem NEW i flaga SYN ktore po przetlumaczeniu zapytania HTTPS przez DNS szukaja poprzez system ruterow serwera ktory odpowie flaga ACK, i tym samym zestawi polaczenie ktore jako SYN ACK wroci do mojego kompa.
Moglem sie pomylic bo pisalem na szybko.
Offline
No właśnie nie. Przeglądarka pierw odpytuje resolver, który wysyła zapytanie DNS do serwera DNS. Tu masz pierwsze połączenie w stanie NEW. Potem pakiet z odpowiedzią na zapytanie DNS wraca do ciebie i uderza w ESTABLISHED,RELATED w INPUT. Potem przeglądarka ma już adres serwera www i tworzy nowe połączenie znów w stanie NEW i kieruje pakiet na port 80 dajmy na to na ten serwer. Gdzie masz regułkę w OUTPUT co by zezwoliła na to? xD
Offline
O carramba, racja, ale jak odfiltrowac "samozwancze" proby nawiazania polaczenia od "legalnych"?
Chcialem uniknac wyszczegolniania, protokolow, portow i rozwiazac to za pomoca ogolnego algorytmu " RELATED, ESTABLISHED"
Ostatnio edytowany przez Novi-cjusz (2016-06-09 22:49:26)
Offline
Nie rozumiem pytania. xD
Przecie nawet za pomocą tej reguły od DNS co masz, to można by cię hacknąć. Wystarczy, że złapiesz syf, który będzie słał ruch na port 53, na który będzie jakiś demon gdzieś w necie nasłuchiwał i też masz pozamiatane. xD
Ostatnio edytowany przez morfik (2016-06-09 22:51:37)
Offline
Ruch legalny dla mnie to np:
- zapytania DNS
- ruch ICMP
- zainicjowane przezemnie nowe polaczenia
Ruch "samozwanczy" to komunikaty:
- backdorow
- rogue software
- itp/itd
Jak to odsiac od siebie?
Jeszcze jedno pytanie, to dlaczego te 2 regoly (ktora znalazlem w Internecie)
iptables -A OUTPUT -m state –state ESTABLISHED -j ACCEPT iptables -A OUTPUT -j REJECT
mialy blokowac na wyjsciu caly ruch z wyjatkiem ustanowionego? I dlaczego to nie dziala?
Ostatnio edytowany przez Novi-cjusz (2016-06-09 23:01:57)
Offline
Dla iptables to ten sam ruch. On operuje na szeregu dopasowań i nie ma w nich takiego czegoś, że połączenia NEW od trojana są be, a od ciebie są ok. xD ICMP, o który mówisz niesie pełno zagrożeń. A DNS? Hmm... A jak ci ktoś podmieni adres resolvera, to co wtedy? Zapytanie pójdzie do jakiegoś syfiastego serwera i zwróci ci jakąś zafishowaną stronę i nawet nie będziesz o tym wiedział.
Zobacz post 12 jeszcze raz. xD
Ostatnio edytowany przez morfik (2016-06-09 23:03:11)
Offline
Wiem ruchu ICMP jest kilkanascie rodzajow i odpowiednie do nich regoly, gdzies mam cala liste, na DNS to moze DNSCrypt, moze regola blokujaca DNS spoofing?
Mysle, ze duzo by pomogl jakis skaner uslug, skaner bootow sieciowych, czy komenda w konsoli ktora listowalaby polaczenia na wyjsciu wg wybranego kryterium.
Ostatnio edytowany przez Novi-cjusz (2016-06-09 23:11:03)
Offline
Wlasnie, moja ulubiona komenda:
netstat --inet --inet6 -a -n
Lub troche wiecej:
http://www.binarytides.com/linux-netstat-command-examples/
http://www.tecmint.com/20-netstat-commands-for-linu … k-management/
Przy okazji - jak zzucic wynik dowolnej komendy netstat w konsoli do pliku?
Ostatnio edytowany przez Novi-cjusz (2016-06-10 08:27:14)
Offline
Novi-cjusz napisał(-a):
...
Przy okazji - jak zzucic wynik dowolnej komendy netstat w konsoli do pliku?
Czyżby chodziło o to?
dowolna_komenda_netstat > plik
Ostatnio edytowany przez arecki (2016-06-10 13:19:33)
Offline
arecki napisał(-a):
Novi-cjusz napisał(-a):
...
Przy okazji - jak zzucic wynik dowolnej komendy netstat w konsoli do pliku?Czyżby chodziło o to?
Kod:
dowolna_komenda_netstat > plik
Dokladnie, dziala swietnie - bardzo dziekuje.
Offline
morfik napisał(-a):
Co do netstat, to korzystaj z przełączników -tupan (łatwo zapamiętać). xD
Pozwole sobie dodac:
- sprawdzanie otwartych portow - netstat -tulpn
- netstat -lntu
- sprawdzanie czy port 80 jest otwarty - netstat -tulpn | grep :80
- sprawdzanie czy iptables umozliwia dostep dp ww portu - iptables -L INPUT -v -n | grep 80
Gdybym chcial udostepnic dostep do Netu wylacznie dla przegladarki, to otwarcie portu 80 powinno zalatwic sprawe/
iptables -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
"Wypuszczanie" innych uslug i aplikacji do Internetu oznacza koniecznosc selektywnego otwierania wlasciwych dla nich portow.
Szkoda, ze jest tak wiele grafik dot "3-way handshaking" a nie ma nic pokazujacego relacje miedzy regola skryptu iptables a trawersem pakietow polaczenia internetowego, co fantastycznie zrozumiale (jak dla mnie) ujol "morfik" w slowach:
Przeglądarka pierw odpytuje resolver, który wysyła zapytanie DNS do serwera DNS. Tu masz pierwsze połączenie w stanie NEW. Potem pakiet z odpowiedzią na zapytanie DNS wraca do ciebie i uderza w ESTABLISHED,RELATED w INPUT. Potem przeglądarka ma już adres serwera www i tworzy nowe połączenie znów w stanie NEW i kieruje pakiet na port 80 dajmy na to na ten serwer
Moze ktos ma lub wie skad sciagnosc grafiki demonstrujace rozne trawersy pakietow nalozone na rozne konfigi skryptu iptables?
Ludzie sa wzrokowcami i 80% informacji przyjmuja wzrokiem jako obrazy.
Ostatnio edytowany przez Novi-cjusz (2016-06-11 15:04:13)
Offline
3052
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:41:40)
Offline
Skoro o filtrowaniu portow rozmowa jest strata czasu to moze, limitowac dostep do Sieci uzywajac dopasowania "match"?
Ladujemy modul: modprobe ipt_owner
Korzystamy z rozszerzen:
- uid-owner UID (pakiety nalezace do procesow generowanych przez uzytkownika ...)
- gid-owner GID (pakiety nalezace do procesow w grupie GID)
- pid-owner PID ( pakiety nalezace do procesu PID)
- sid-owner SID (pakiety nalezace do sesji SID)
Przyklad:
iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -o eth0 -m owner --uid-owner Novi-cjusz -j ACCEPT iptables -A OUTPUT -j DROP
https://dug.net.pl/tekst/82/uzytkownicy_w_systemie_linux/
Moze zrobic liste czego nie warto robic, bo jest strata czasu - a na czym sie skoncentrowac?
Przydatne: https://neverendingsecurity.wordpress.com/2015/02/1 … de-for-linux/
Ostatnio edytowany przez Novi-cjusz (2016-06-11 14:40:13)
Offline