Динамическое открытие порта в iptables
Динамическое открытие порта в iptables — механизм защиты порта, использующий файервол iptables. Заключается в том, что для того, чтобы соединиться на значимый порт, например порт для Secure Shell, необходимо сперва сделать пустой запрос на другой порт — при этом доступ разрешается только для того IP-адреса, который дал запрос: таким образом, для взлома надо знать не только логин, пароль и порт, но и порт, который используется для открытия.
[править] Скрипт
#!/usr/bin/bash ipt=`which iptables` port=`cat /etc/ssh/sshd_config | grep Port | sed -e 's/^Port //'` $ipt -N sshp $ipt -A sshp -m state --state NEW -m recent --rcheck --name SSH -j ACCEPT $ipt -A sshp -m state --state ESTABLISHED, RELATED -j ACCEPT $ipt -A sshp -j DROP $ipt -A INPUT -m state --state NEW -m tcp -p tcp --dport 4815 -m recent --name SSH --set -j DROP $ipt -A INPUT -m state --state NEW -m tcp -p tcp --dport 16234 -m recent --name SSH --remove -j DROP $ipt -A INPUT -p tcp --dport $port -j sshp
Данный скрипт добавляет несколько правил, которые позволяют соединяться на порт SSH лишь после того, как клиент подолбится в порт 4815. Если соединение больше не нужно (например, произведено через публичный компьютер или прокси), отправка запроса на порт 16234 удалят IP-адреса из белого списка. Наличие listening приложения на портах не обязательно.
[править] См. также
Динамическое открытие порта в iptables относится к темам: |