Co oznacza ruch „przychodzący” i „wychodzący”?

20

Widziałem wiele zasobów wyjaśniających, jak skonfigurować zaporę ogniową serwera, aby zezwalać na ruch przychodzący i wychodzący na standardowych portach HTTP ( 80i 443), ale nie mogę zrozumieć, dlaczego miałbym potrzebować któregoś z nich. Czy muszę odblokować oba, aby „zwykła” strona internetowa działała? Aby przesłane pliki działały? Czy istnieją sytuacje, w których wskazane byłoby odblokowanie jednego i pozostawienie drugiego zablokowanego?

Przepraszam, jeśli to podstawowe pytanie, ale nie mogłem go nigdzie wyjaśnić (nie jestem również native speakerem angielskiego). Wiem, że na „zwykłej” stronie internetowej klient jest zawsze tym, który inicjuje żądanie, więc zakładam, że serwer sieciowy musi akceptować ruch przychodzący na tych portach, a mój zdrowy rozsądek mówi mi, że serwer może wysłać odpowiedź bez odblokowywania czegokolwiek innego (inaczej nie byłoby sensu mieć dwóch rodzajów reguł). Czy to jest poprawne?

Ale czym jest wychodzący ruch sieciowy (usługi) i jaki byłby z niego użytek? AFAIK, jeśli serwer chciałby nawiązać połączenie z innym komputerem, konkretny port, który ma znaczenie, to ten na drugim końcu (tj. Port docelowy byłby 80), na jego końcu można by użyć dowolnego wolnego portu ( port źródłowy byłby losowy ). Mogę otwierać żądania HTTP z mojego serwera (używając wgetna przykład) bez odblokowywania czegokolwiek. Zakładam więc, że moje pojęcia „przychodzące” i „wychodzące” są w jakiś sposób błędne.

mgibsonbr
źródło

Odpowiedzi:

22

„Przychodzące” i „wychodzące” są z perspektywy danej maszyny.

„Przychodzące” odnosi się do pakietów, które pochodzą z innego miejsca i docierają do maszyny, podczas gdy „wychodzące” odnosi się do pakietów, które pochodzą z urządzenia i docierają gdzie indziej.

Jeśli odwołujesz się do swojego serwera internetowego, przeważnie akceptuje on połączenia przychodzące do jego usługi internetowej i tylko sporadycznie (a może nigdy) nie nawiązuje połączeń wychodzących.

Jeśli odwołujesz się do swojego klienta internetowego, najczęściej wykonuje on połączenia wychodzące z innymi usługami i tylko sporadycznie (a może nigdy) akceptuje połączenia przychodzące.

Czysty jak błoto?

Michael Hampton
źródło
3
Chciałbym dodać, że aby wysłać odpowiedź do klienta, należy zezwolić na ruch wychodzący dla ustanowionych połączeń. Dlatego za każdym razem, gdy klient ustanawia połączenie z twoim portem 80, twój serwer może oddzwonić do dowolnego portu klienta.
Heks
1
Całkiem słusznie. Chociaż każda zapora stanowa powinna obsługiwać to automatycznie.
Michael Hampton
1
Mój serwer internetowy powinien więc odblokowywać połączenia przychodzące na portach 80i 433nie musi martwić się połączeniami wychodzącymi na tych portach, ale musi zezwalać na połączenia wychodzące w zakresie portów dynamicznych / efemerycznych, prawda? Nadal jestem trochę mylony z wychodzącą rzeczą: jeśli klient sieciowy spróbuje połączyć się z witryną, portem docelowym będzie 80, ale portem źródłowym może być każdy. Który port bierze pod uwagę zapora ogniowa na tym komputerze , podejmując decyzję o zablokowaniu / odblokowaniu?
mgibsonbr
@mgibsonbr Teraz przechodzisz do teorii. Wolimy praktyczne pytania tutaj. :)
Michael Hampton
1
Biorąc pod uwagę, że masz ograniczoną wiedzę na temat zapór ogniowych i ruchu, zalecam użycie skryptu budującego zaporę ogniową. UFW to dobry początek. Strona projektu to help.ubuntu.com/community/UFW , spójrz na nią, a uzyskasz podstawową wiedzę na temat zapór ogniowych i zarządzania ruchem. Jeśli nadal potrzebujesz pomocy, postaram się szczegółowo wyjaśnić twoje pytanie.
Heks
6

W twoim przypadku musisz zezwolić tylko na przychodzące żądania do portu 80.

Po ustanowieniu połączenia zapora automatycznie wypuści pakiety z powrotem do portu klienta. Nie musisz tworzyć do tego reguł, ponieważ zapora zna.

humpty
źródło
1
To nie odpowiada na całe pytanie, ale tak, jeśli używa stanowej zapory ogniowej, potrzebne są tylko 80 i 443.
89c3b1b8-b1ae-11e6-b842-48d705
3

Bez żadnego kontekstu, co oznacza konkretny tekst, który czytasz, gdy odnoszą się one do ruchu „wychodzącej usługi internetowej”, w mojej odpowiedzi przyjmuję najprostsze podejście:

  1. Masz zaporę na wejściu / wyjściu z sieci.

  2. Zapora jest w stanie całkowicie zablokowanym i nie pozwala na ruch przychodzący ani wychodzący.

  3. Aby Twoi klienci wewnętrzni mogli przeglądać zewnętrzne strony internetowe, musisz skonfigurować regułę „wychodzącej usługi internetowej”, która pozwala im łączyć się ze wspomnianymi zewnętrznymi stronami internetowymi.

Mówiąc najprościej, zasada brzmiałaby mniej więcej tak:

DOWOLNY host wewnętrzny na DOWOLNY host zewnętrzny, gdzie miejsce docelowe = Port TCP 80, a następnie ZEZWALAJ.

joeqwerty
źródło
Wyrażenie „wychodzący ruch serwis internetowy” pochodzi od tego . W moim szczególnym przypadku próbuję skonfigurować zaporę w instancji serwera (chmura IBM). Domyślna instalacja zawierała większość rzeczy zablokowanych (mogłem uruchomić Apache, ale nie uzyskiwać do niego dostępu z zewnątrz), i chciałbym wiedzieć, jakie zbrodnicze rzeczy powinienem odblokować, aby móc wyświetlać strony i pobierać pliki (z przeglądarki klienta) itd. I nie mogłem powiedzieć, czy ten konkretny fragment dotyczy mojej sprawy, czy nie - ponieważ mówi tylko jak, a nie dlaczego.
mgibsonbr