Рандомизация порта источника для новых соединений

Обычно, когда исходный порт выбирается сетевым приложением, он выбирается последовательно между свободными портами, такими как 32000, 32001 и т. Д. Я хочу рандомизировать выбор порта источника. Я пробовал это с помощью iptables следующим образом, но это не помогло.

Chain POSTROUTING (policy ACCEPT 462 packets, 31025 bytes) 743 44580 MASQUERADE tcp -- * !lo 0.0.0.0/0 0.0.0.0/0 masq ports: 32768-61000 random 

Может ли кто-нибудь помочь мне в решении этого?

  • iptables --tcp-flags
  • Разница между SNAT и Masquerade
  • Изменение настроек брандмауэра после установки CentOS через kickstart
  • Почему правила iptables исчезают при перезагрузке моей системы Debian?
  • Ограничить пропускную способность с помощью DD-WRT
  • iptables ОШИБКА
  • Не будут ли затронуты пакеты, обрабатываемые цепочкой iptables при обновлении правил iptables?
  • Как ограничить количество соединений на хост, проходящих через маршрутизатор / мост?
  • One Solution collect form web for “Рандомизация порта источника для новых соединений”

    Диапазон эфемерных портов легко настраивается с помощью sysctl net.ipv4.ip_local_port_range="32768 61000" , и вы также можете исключать порты с параметром net.ipv4.ip_local_reserved_ports .

    Для большей настройки я хотел бы начать с изучения источника ядра, AFAIK – это net / ipv4 / inet_connection_sock.c, где мое первое впечатление заключается в том, что назначение является случайным, а не последовательным.

     # net/ipv4/inet_connection_sock.c ... /* Obtain a reference to a local port for the given sock, * if snum is zero it means select any available local port. */ int inet_csk_get_port(struct sock *sk, unsigned short snum) { ... inet_get_local_port_range(net, &low, &high); remaining = (high - low) + 1; smallest_rover = rover = net_random() % remaining + low; 
    Interesting Posts

    Блокировка привода CD / DVD (предотвращение извлечения)

    загрузить файл / резервное копирование с удаленного сервера на рабочий стол без SSH или SCP?

    Прерывания Linux

    Контейнер LXC получает два назначенных ему IP-адреса

    Как установить пароль нового пользователя после того, как учетная запись уже создана?

    Есть ли у меня два VGA-совместимых контроллера?

    Как я могу найти объем памяти, потребляемый процессом?

    системный таймер каждые 2 часа через 30 минут после часа?

    Производительность виртуальных дисковых файлов vs rawdisk

    Grep_color на mac

    Почему $ TERM var равен linux с виртуальными терминалами

    Как вы загружаете Puppy Linux Slacko в командную строку?

    Возможно ли синхронизировать дату реального времени от источника к месту назначения?

    Перенаправление / grep'ing STDOUT существующей оболочки

    Как я могу постоянно устанавливать разрешения на работу rw на ubuntu 16.04?

    Linux и Unix - лучшая ОС в мире.