Linux Ephemeral Port 범위를 변경하는 것이 얼마나 안전합니까


14

Linux 상자에 다음과 같은 임시 포트 범위가 표시됩니다.

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

포트 범위를 약 16000에서 시작하도록 확장하고 싶습니다. 여기서 빠른 질문은 다른 응용 프로그램에 따라 범위를 변경하는 것이 얼마나 안전합니까? 다른 응용 프로그램이이 변경의 영향을 받습니까? 응용 프로그램이 지정된 포트 범위에서 포트를 사용하는 경우에만 영향을 받는다는 것을 이해합니다. 그러나 일반적으로 이러한 종류의 문제는 어떻게 처리됩니까?


다른 응용 프로그램에는 영향이 없다고 생각하지만 확실하지 않습니다. 흥미로운 질문입니다.
ikrabbe 2016 년

권리. 심지어 다른 문서를 찾으려고 시도했지만 다른 응용 프로그램에는 영향을 미치지 않았습니다. 다음 두 링크는이 문제가 발생한 이유에 대한 훌륭한 설명입니다. vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin Tumma 2016 년

@ikrabbe 예를 들어, 브라우저가 임시 포트를 열어 웹 사이트에 연결 한 다음 누군가 / 사물이 우연히 해당 포트를 사용하는 응용 프로그램을 시작하려고 시도하면 다른 응용 프로그램에 영향을 미칩니다. 응용 프로그램이 실패합니다.
goldilocks

3
완전성을 위해 포트 번호 범위를 편집하는 구문은 다음과 같습니다. $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ashwin Tumma

답변:


10

임시 포트 범위를 변경하면 Mesos를 사용하는 경우 문제가 발생할 수 있습니다 .

Mesos는 호스트의 리소스를 다양한 Mesos Framework에 알리고 광고 된 리소스를 사용하도록 선택할 수 있습니다. 보급 자원에는 CPU, 메모리, 포트 등이 포함 됩니다. Mesos가 보급하는 기본 포트 세트는 31000-32000 입니다. 이것은 기본 Linux 임시 포트 범위 32768-61000 과의 충돌을 피합니다 .

특히 Mesos는 다른 프로세스에서 포트가 사용되는지 여부를 알지 못하고 오케스트레이션하는 엔티티에 대한 포트 할당을 추적합니다 ( Mesos Tasks & Mesos Executors ). 따라서 임시 포트 범위를 Mesos 포트 범위와 겹치도록 변경하면 임의의 프로세스에서 실제로 "Mesos 포트"중 하나 인 임시 포트를 사용하게됩니다. 이로 인해 Mesos는 해당 포트를 Mesos Framework 에 제공 할 수 있으며,이 포트는 해당 포트에 바인딩 할 수 없으므로 Mesos Executor 및 / 또는 Mesos Tasks가 무작위로 실패하는 것처럼 보입니다 .

임시 포트 범위를 늘려야하고 Mesos를 실행해야하는 경우의 구성 매개 변수 mesos-slave를 곧바로 변경하여 광고 포트를 수정할 수 있습니다 .mesos-agent--resources


4

다음과 같이 로컬 /etc/services파일 에서 해당 범위의 내용을 확인하여 잠재적으로 영향을받는 서비스 목록을 얻을 수 있습니다 .

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

또는 권위있는 장소에서 :

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

awk 스크립트를 사용해 주셔서 감사합니다. 서비스에 나열된 포트를 식별하는 데 도움이됩니다.
Ashwin Tumma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.