[+] Jak dobrze skonfigurowa

Zagadnienia bezpieczeństwa w systemie
jareq000
Posty: 7
Rejestracja: 28 czerwca 2013, 18:52

[+] Jak dobrze skonfigurować Firewall?

Post autor: jareq000 »

Dzień dobry.

Interesuje mnie temat bezpieczeństwa w Debianie. Szukam informacji nt. firewalla w Linuksie.

W Windowsie posiadałem firewall, który sobie tak skonfigurowałem, że przy każdej próbie dostępu danego procesu do internetu mogłem zdecydować, czy zezwolić na dostęp, czy też zablokować i tworzyła się regułka.

W Linuksie wielu korzysta z uniwersalnej reguły blokowania połączeń przychodzących w iptables.
Jestem przyzwyczajony do tego, że o każdej nietypowej aktywności mojego komputera w sieci zostanę powiadomiony by zdecydować, co robić. Może istnieje jakiś interaktywny firewall, który wyświetli alert o połączeniu? Albo coś jak conky, co będzie pokazywało aktywne połączenia, na które będzie można jakoś zareagować?

Chciałbym wiedzieć, które połączenie zostało dopuszczone, a które zablokowane.

Możecie coś polecić?

I przepraszam za takie pytanie jak u początkującego, ale jakoś nie mogę się przekonać, że te kilka regułek w iptables całkowicie zabezpieczy mnie przed dostępem z zewnątrz.
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

jareq000
Posty: 7
Rejestracja: 28 czerwca 2013, 18:52

Post autor: jareq000 »

Nie mogę się przekonać do tego, że to wystarczy.

To na Windowsie nie można było tak zrobić? Po co tworzyli te wszystkie firewalle, które przy każdym połączeniu pozwalają dokonać wyboru?

I co, jeżeli np. do aplikacji obsługującej sieć gg ktoś doklei kod, dzięki któremu twoje pliki polecą w świat (tak jak np. ostatnio ktoś dokleił kod do Opery, wykradł klucz podpisujący aplikację i wrzucił na oficjalne serwery)? Nie zabezpieczacie się przed takim czymś, w 100% ufając programiście?
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

No to po co używasz Linuksa skoro Windows ma tak wspaniały firewall. Tu nie da się tak zrobić.
hucul
Beginner
Posty: 189
Rejestracja: 25 listopada 2007, 11:36
Lokalizacja: Warszawa

Post autor: hucul »

Jeśli poczujesz się lepiej mając graficzny interfejs i będziesz mógł sobie wyklikać to zainteresuj się tym programem http://badtuxwall.sourceforge.net/
Tak czy inaczej metoda podana przez Yampressa jest wystarczająca na dekstop
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

hucul to samo zrobisz w iptables co w tym programie.
BadTuxWall will help you to implement your own firewall on a Linux operating system using an efficient graphical user interface. It also allows you to generate iptables scripts, export them and share them with friends.

Nie będzie on miał niestety takiej funkcjonalności jak w windowsie kiedy przyporządkowuje się dany program aby system wpuszczał połączenia już nawiązane przez firewall do tego programu. Podobnie działa moj firewall tylko nie na poziomie aplikacji a całego nawiązanego ruchu...

Trzeba zmienić myślenie. filtrowanie na poziomie warstwy aplikacji? Do filtrowania ruchu na routerach (p2p/inne) nakładało się kiedyś łaty na kernel i iptables...
https://pl.wikipedia.org/wiki/Model_OSI
jareq000
Posty: 7
Rejestracja: 28 czerwca 2013, 18:52

Post autor: jareq000 »

Tu nie chodzi o to żebym czuł się lepiej, tylko żebym czuł się bezpiecznie.

I nie napisałem, że Windows ma tak wspaniały firewall, tylko że ktoś jednak wymyślił taką funkcję, żeby zrobić reguły dla danej aplikacji.
Gdy uruchomimy jakiś podejrzany program, firewall będzie wtedy furtką, pliki i hasła nie polecą w świat, myślałem, że na Linuksie też jest taka opcja, ale skoro tylko ludzie uważają, że te kilka reguł w iptables na desktop wystarczy, żeby chronić przed atakami z zewnątrz, no to pozostaje zaufać.

Dziękuję za odpowiedzi.
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Mylisz się.
Gdy uruchomimy jakiś podejrzany program, firewall będzie wtedy furtką i hasła nie polecą w świat
w jaki sposób?

Tak jest taka reguła, która nie wpuszcza nic do twojego komputera. Blokuje wszystko. I jest ona w moim przepisie.

Kod: Zaznacz cały

 iptables -P INPUT DROP
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

jareq000 pisze: I co, jeżeli np. do aplikacji obsługującej sieć gg ktoś doklei kod, dzięki któremu twoje pliki polecą w świat (tak jak np. ostatnio ktoś dokleił kod do Opery, wykradł klucz podpisujący aplikację i wrzucił na oficjalne serwery)? Nie zabezpieczacie się przed takim czymś, w 100% ufając programiście?
Zabezpieczeniem przed takim czymś nie jest zapora ogniowa. Masz np. swoje gg, chcesz gadać, więc pozwalasz na komunikację na określonym porcie i protokole, ale zapora nie sprawdza co przez ten 'kanał', na który zezwoliłeś jest transportowane. Iptables w pewnym zakresie potrafi to kontrolować ale jest to mało opłacalne, choć dla kilku wyjątków przydałoby się.

Akurat oprogramowanie otwarto źródłowe ma tą przewagę, że jest bardziej zaufane, bo jest wystawione otworem na świat. Gdyby było co wytykać w kodzie tych programów to szeroka rzesza przeciwników by to dawno zrobiła. To tak jak lustracja, albo imprezy typu Pwn2Own, których celem jest poddanie najlepszym testom na bezpieczeństwo. Gdy jesteś programistą i udzielasz się w projektach otwarto źródłowych to zrobisz najlepiej jak będziesz potrafił, a gdy pracujesz w Microsofcie a Twój szef to burak to zrobisz to na odwal - przecież i tak nikt tego nie zobaczy.
Awatar użytkownika
Yampress
Administrator
Posty: 6367
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

W ogóle firewall dziś nie ma takiego znaczenia jak kiedyś. Dzisiaj jak wspomina Grzesiek wystrzegać trzeba się ataków na aplikacje/ różnego rodzaju socjotechniki itp. Uruchomienia kodu specjalnie spreparowanego (tu od wiedzy użytkownika wszystko zależy skąd ma dany kod i co uruchamia) i przed tym firewall już nie uchroni.

Grzesiek, no tak bo komu by się chciało pisać firewalla typu:

kadu -> firewall (puść na firewallu w łańcuchu OUTGOING - przy polityce DROP): port i adres docelowy) i tak dla każdego programu.

Kod: Zaznacz cały

yampress@debian:~$ sockstat
USER     PROCESS              PID      PROTO  SOURCE ADDRESS            FOREIGN ADDRESS           STATE
yampress liferea              2875     tcp4   10.0.1.3:54243            80.252.0.131:80           ESTABLISHED
yampress thunderbird          2877     tcp4   10.0.1.3:42590            63.245.217.44:443         SYN_SENT
yampress thunderbird          2877     tcp4   10.0.1.3:60245            217.74.64.236:993         ESTABLISHED
yampress thunderbird          2877     tcp4   10.0.1.3:60256            217.74.64.236:993         CLOSE_WAIT
yampress kadu                 2930     tcp4   10.0.1.3:46111            91.214.237.34:443         ESTABLISHED
yampress ssh                  2943     tcp4   10.0.1.3:51595            XXX.XXX.XXX.XXX:22           ESTABLISHED
yampress ssh                  2943     tcp4   127.0.0.1:5555            *:*                       LISTEN
yampress opera                2981     tcp4   10.0.1.3:60245            217.74.64.236:993         ESTABLISHED
yampress opera                2981     tcp4   10.0.1.3:60256            217.74.64.236:993         CLOSE_WAIT
yampress@debian:~$ 
Więc widzisz drogi przyjacielu jareq000 . Budowanie ścisłego restrykcyjnego firewalla wygląda tak:
  1. Wyczyść wszystkie reguły wcześniejsze
  2. Zablokuj wszystko na wejściu
  3. Zablokuj wszystko na wyjściu
  4. Pozwól na komunikację pętli zwrotnej na hoście lokalnym.
  5. Wypuść z mojego komputera połączenie na ip 91.214.237.34 na port 443 ( to tylko dla samego kadu).
  6. I teraz dla każdej aplikacji musiałbyś coś takiego zrobić. Jak w punkcje 4
  7. I teraz dla każdej aplikacji musiałbyś coś takiego zrobić. Jak w punkcje 4
  8. ...
  9. ...
  10. I teraz dla każdej aplikacji musiałbyś coś takiego zrobić.... jak w punkcje 4
    ...
    100.
    ...
    200. koniec?
A łańcuch wpuść tylko na wejściu połączenia już nawiązanego z naszego komputera, jest najlepszym rozwiązaniem. No i polityka wypuść wszystko co chce wyjść.

Kod: Zaznacz cały

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ODPOWIEDZ