Изменение диапазона, доступных для автоматического назначения портов.
Как по умолчанию
По умолчанию порты, доступные для автоматического назначения, находятся в диапазоне от 32768 до 60999.
Если зарезервированных портов нет:
Непривилегированные порты начинаются с порта 1024.
$ sysctl net.ipv4.ip_unprivileged_port_start
net.ipv4.ip_unprivileged_port_start = 1024
Пользовательские значения
Определим зарезервированные порты.
Определим порты, доступные для автоматического назначения портов.
Сделаем эту модификацию постоянной.
Убедитесь, что он будет загружаться при загрузке.
Дополнительные примечания
Пожалуйста, прочитайте статью IP Sysctl для получения более подробной информации.
IP Sysctl — The Linux Kernel documentation
Вы можете использовать простой скрипт Python, чтобы проверить, работает ли он так, как ожидалось.
import socket repeat_count = 20000 opened_ports = set() def open_port(): with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: sock.bind(('', 0)) _, port = sock.getsockname() return port def main(): for _ in range(repeat_count): opened_ports.add(open_port()) print("Opened ports:") print(" Min: ", min(opened_ports)) print(" Max: ", max(opened_ports)) if __name__=="__main__": main()
Opened ports: Min: 4097 Max: 60981
см. также:
🐧 Как правильно защитить sysctl на Linux от спуффинга и Syn-флуда