Jak bezpieczna jest zmiana zakresu portów efemerycznych systemu Linux


14

Widzę następujący efemeryczny zakres portów na moim Linux-ie.

sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

Chcę rozszerzyć zakres portów, zaczynając od około 16000. Tutaj jest szybkie pytanie: jak bezpiecznie jest zmieniać zakres w kontekście na inne aplikacje? Czy zmiana wpłynie na inne aplikacje? Rozumiem, że wpływ na aplikację ma tylko sytuacja, gdy używa ona portów w określonym zakresie portów. Ale ogólnie, w jaki sposób rozwiązuje się tego rodzaju problemy?


Nie sądzę, że ma to wpływ na inne aplikacje, ale nie jestem pewien. Interesujące pytanie.
ikrabbe

Dobrze. Nawet próbowałem poszukać innej dokumentacji i nie znalazłem żadnego wpływu na inne aplikacje. Poniższe dwa łącza stanowią doskonałe wyjaśnienie powodu, dla którego napotkałem ten problem: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin Tumma

@ikrabbe Z pewnością będzie to miało wpływ na inne aplikacje, jeśli np. twoja przeglądarka otworzy efemeryczny port, aby skontaktować się ze stroną internetową, wtedy ktoś / rzecz spróbuje uruchomić aplikację, która przypadkiem używa tego portu. Aplikacja się nie powiedzie.
goldilocks

3
Dla zachowania kompletności składnia edycji zakresu numerów portów jest następująca: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ashwin Tumma

Odpowiedzi:


10

Zmiana efemerycznego zakresu portów może powodować problemy, jeśli używasz Mesos .

Mesos reklamuje zasoby hosta na różnych platformach Mesos, które mogą następnie wybrać wykorzystanie reklamowanych zasobów. Reklamowane zasoby obejmują procesor, pamięć, porty itp. Domyślny zestaw portów reklamowanych przez Mesos to 31000-32000 . Pozwala to uniknąć kolizji z domyślnym zakresem portów efemerycznych systemu Linux 32768-61000 .

W szczególności Mesos nie wie, czy port jest używany przez inny proces, po prostu śledzi przypisanie portów do encji, które koordynuje ( Mesos Tasks & Mesos Executors ). Jeśli więc zmienisz zakres portu efemerycznego tak, że pokrywa się on z zakresem portu Mesos, prawdopodobnie jakiś arbitralny proces użyje portu efemerycznego, który jest w rzeczywistości jednym z tych „portów Mesos”. Może to doprowadzić do zaoferowania Mesosowi tego portu do szkieletu Mesos , który napotka pozornie przypadkowe awarie jego wykonawców Mesos i / lub Zadań Mesos, ponieważ nie będą w stanie powiązać się z tym portem.

Jeśli musisz zwiększyć swój efemeryczny zakres portów, a także uruchomić Mesos, możesz zmodyfikować reklamowane porty za pomocą parametru konfiguracyjnego mesos-slave(wkrótce zmienimy nazwę na mesos-agent) --resources.


4

Możesz uzyskać listę usług, na które potencjalnie może mieć wpływ, sprawdzając, co znajduje się w tym zakresie w /etc/servicespliku lokalnym , np .:

awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services

Lub w wiarygodnym miejscu:

wget http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
awk -F, '$2+0 >= 16000 && $2+0 < 32768 { print }' service-names-port-numbers.csv

Dzięki za skrypt awk zdecydowanie pomaga w identyfikacji portów wymienionych w usługach!
Ashwin Tumma
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.