Dlaczego potrzebujemy zapory ogniowej, jeśli na twoich portach nie działają żadne programy?

14

Kiedy próbuję telnet do portu na serwerze i jeśli nie ma żadnego programu nasłuchującego na tym porcie, telnet umiera z błędem „Nie można się połączyć ...”. Rozumiem, że. Ale dlaczego potrzebujemy zapory ogniowej, jeśli żaden port nie nasłuchuje?

Khaja Minhajuddin
źródło

Odpowiedzi:

31

W tej chwili może nie być uruchomiona usługa, ale co powiesz na jutro? Masz je wszystkie wyłączone, ale co z twoimi użytkownikami? Każdy w systemie unix / windows / mac może otworzyć port> 1024 na dowolnym komputerze, do którego ma dostęp. Co ze złośliwym oprogramowaniem? Co z wirusem? Mogą również otwierać porty i zacząć przekazywać informacje światu lub zacząć nasłuchiwać połączeń z sieci.

Głównym celem zapory nie jest blokowanie portów dla usług, o których wiesz, że są wyłączone, to blokowanie portów w usługach, o których możesz nie wiedzieć. Pomyśl o tym jako o domyślnej odmowie z tylko pewnymi dziurami dla autoryzowanych usług. Każdy użytkownik lub program uruchomiony przez użytkownika może uruchomić serwer w systemie, do którego ma dostęp, a zapora ogniowa uniemożliwia komuś połączenie z tą usługą.

Dobry administrator wie, jakie usługi powinny zostać ujawnione, i może je włączyć. Zapora ogniowa służy przede wszystkim zmniejszeniu ryzyka związanego z nieznanymi serwerami działającymi w systemie lub sieci, a także zarządzaniu dostępem do sieci z centralnego miejsca.

Ważne jest, aby wiedzieć, co działa na twoim komputerze / serwerze i włączyć tylko to, czego potrzebujesz, ale zapora zapewnia dodatkową ochronę przed rzeczami, o których nie wiesz.

Gabe.
źródło
1
> „Każdy użytkownik lub program uruchomiony przez użytkownika może uruchomić serwer w systemie, do którego ma dostęp, zapora ogniowa uniemożliwia komuś innemu połączenie się z tą usługą”. Ale czy to nie sprawi, że usługa będzie bezużyteczna?
Khaja Minhajuddin
5
@KhajaMinhajuddin yes! Właśnie o to chodzi. (-:
gabe.
2
@KhajaMinhajuddin Chcesz, aby usługi, które skonfigurowałeś, były dostępne dla całego świata. Nie chcesz, aby serwer smtp uruchomił plik super_spam_virus.exe, gdy nie szukałeś połączeń z innych zainfekowanych systemów. Zapora ogniowa temu zapobiegnie, choć nie jest to panaceum.
Gabe.
super_spam_virus.exe nie brzmi jak Unix i Linux :)
użytkownik nieznany
@ userunknown true ... co powiesz na a.out lub skompromitowaną wersję / bin / ls, która została skopiowana do twojego systemu. Lub jeśli jesteś programistą, hg servektóry uruchamia serwer WWW na twoim komputerze. Chodzi o to, że uruchomienie serwera na dowolnym komputerze jest banalne, niezależnie od tego, czy jest on używany jako „pulpit” czy „serwer”, nie ma znaczenia. A kiedy ten serwer zostanie uruchomiony, a ty nie wiesz o tym ... cóż, wtedy zaczyna się zabawa.
Gabe.
3

JEŻELI nie ma żadnego programu nasłuchującego na żadnym porcie, nie potrzebujesz firewalla, ale nie możesz również połączyć się z serwerem, ponieważ jest on „zapieczętowany” od reszty świata.

Z drugiej strony ... powiedzmy, że twój serwer nie ma lokalnego programu nasłuchującego na żadnym porcie, ale służy jako brama dla innych komputerów za nim. W takim przypadku używasz zapory do zarządzania maskaradowaniem (NAT) i opcjonalnie możesz filtrować niektóre rzeczy podczas przekazywania pakietów.

Patkos Csaba
źródło
To dobra uwaga, ale jeśli chcę, aby serwer robił różne rzeczy (zwykle umieszczałbym openssh i serwer WWW). Nawet z zaporą ogniową muszę otworzyć porty, aby działające aplikacje, takie jak openssh i serwery WWW, były przydatne. Myślę więc, że pytam: czy są jakieś programy, które otwierają porty na świat zewnętrzny, które muszą być zablokowane przez zaporę ogniową i które byłyby nadal przydatne.
Khaja Minhajuddin
1
Tak, są. Nie jest to konieczny przykład dla serwera, ale załóżmy, że masz maszynę Linux z zainstalowanym X-em i X-em działającym na porcie sieciowym. Chciałbyś zezwolić swojemu komputerowi, być może innym komputerom z sieci LAN, na połączenie się z twoim X. Jednak nie chciałbyś, aby Joe z Francji się z nim łączył. Kolejny przykład, załóżmy, że konfigurujesz wiele usług VPN na swoim serwerze i musisz kontrolować, które sieci mogą widzieć inne sieci (lub nie). Lub, powiedzmy, że masz OpenSSH, ale chcesz zezwolić na połączenie tylko z komputera domowego. Istnieje wiele innych przykładów.
Patkos Csaba
1
@KhajaMinhajuddin: W przypadku ssh należy użyć /etc/ssh/sshd_configdo zabezpieczenia komputera. PermitRootLoginpowinno być ustawione na Nie, powinieneś używać bezpiecznego hasła i utrzymywać maszynę w sudo (możesz używać sudo po zalogowaniu się na konto z uprawnieniami sudo). Ustawienie ograniczeń za pomocą zapory ogniowej jest po prostu niewłaściwym narzędziem do tego zadania. To samo dotyczy postgresqlbazy danych: Użyj konfiguracji bazy danych, aby ustawić i odwołać uprawnienia.
użytkownik nieznany
3

Ściśle mówiąc, może nie być to konieczne, należy jednak pamiętać, że zapora może zapewnić więcej funkcji niż po prostu odmawianie połączeń przez porty sieciowe. Na przykład zachowanie DROP kontra REJECT.

Tok
źródło
1
Jaka jest zaleta DROP w porównaniu z REJECT?
użytkownik nieznany
Nie jestem pewien, ale uważam, że DROP po prostu nie odpowiada, więc osoba żądająca nawet nie wie, czy żądanie zostało odebrane lub czy twoja maszyna istnieje. REJECT mówi, że zdecydowanie tam jesteś i po prostu nie chcesz o tym rozmawiać. A jeśli coś jest za zamkniętymi drzwiami, warto spróbować znaleźć sposób, aby dowiedzieć się, co warto chronić.
Joe
-5

Ale dlaczego potrzebujemy zapory ogniowej, jeśli żaden port nie nasłuchuje?

Jeśli masz pulpit dla jednego użytkownika , a nie serwer, nie potrzebujesz zapory, jeśli nie ma uruchomionej usługi, jak w przypadku domyślnej instalacji Ubuntu.

Windows miał czasem, po tym, jak mógł nawiązać sieć, niektóre usługi działające domyślnie w celu konserwacji, aktualizacji, przekazywania wiadomości wewnętrznych i tak dalej. Nie można ich zatrzymać bez zatrzymania działania okien, ale są one narażone na ataki zewnętrzne. Użytkownicy systemu Windows potrzebowali zapory ogniowej, a mem, że wszyscy potrzebują zapory ogniowej, rozprzestrzeniał się szybko.

Kiedy spotkali ludzi z Linuksem, którzy często byli administratorami serwerów, nie powiedzieli „nie potrzebujesz firewalla na Linuksie”, ale „mamy darmowe zapory ogniowe, takie jak iptables od prawie dekady”.

Osobista zapora sieciowa , siedząc na system powinien ją chronić, nie jest najlepszym pomysłem.

W systemie stacjonarnym dla jednego użytkownika nie potrzebujesz osobistej zapory ogniowej.

nieznany użytkownik
źródło
3
Spójrz na odpowiedź gabe i zastanów się. Szczególnie klienci komputerów stacjonarnych są podatni na ataki.
Nils
1
@ userunknown: wirus może być użytkownikiem twojego pulpitu. Demon, który instalujesz i którego nie konfigurujesz, jest również.
André Paramés
1
Testy bezpieczeństwa przeprowadzam od wielu lat, a dostęp przez komputery stacjonarne jest bardzo przydatną drogą do propagowania ataku. Nie ma znaczenia, czy to Windows, Linux, Solaris, cokolwiek. Zablokuj go lub zgub atakującemu. Prawidłowa fraza powinna oznaczać, że możesz potrzebować zapory ogniowej na pulpicie - w pełni oszacuj ryzyko w swoim środowisku
Rory Alsop
2
@ userunknown tylko dlatego, że używasz komputera jako desktopnie oznacza, że ​​nadal nie serversą to tylko słowa. Twoje desktopma wiele tego, serversktóre potencjalnie mogłyby na nim działać, i prawdopodobnie już są.
Gabe.
1
Pomyśl o CUPS (dowolny Linux), SLPD (SuSE) i innych rzeczach (zdalne KDE, serwer / klient iSCSI), które mogą działać na Linuksie po aktualizacji. Nawet jeśli sprawdziłeś wcześniej, te rzeczy mogą się pojawić. Jeśli to zrobią, dobrze je zablokować. BTW - aktywuj zaporę za pomocą GUI (don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`: Voila - port CUPS jest otwarty, nie pokazuje się w interfejsie ...
Nils,