После этих правил:
-A OUTPUT -p tcp --dport 22022 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --dport 443 -j ACCEPT
-A OUTPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -j DROP
все, что вы можете отправить с машины, это HTTP(S) запросы, некоторые FTP соединения и SSH соединения, предназначенные для порта 22022. Но не например, ответы, исходящие от вашего SSH сервера, так как их назначением будет какой-то случайный порт, выбранный клиентом (скорее всего, не 22022, разве что случайно). Точно так же не будут отправляться ответы от вашего HTTP-сервера, и ICMP-эхо-ответы тоже не разрешены.
Если вы хотите разрешить только пакеты, отправленные, скажем, вашим SSH-сервером, вам нужно разрешить пакеты отправленные с порта 22022, так что -порт 22022
.
Хотя даже если вы разрешите SSH-серверу отвечать, вы вскоре заметите, что не можете делать много исходящих запросов. Вы разрешили HTTP-запросы, но, например, исходящие DNS-запросы не будут отправляться. Подумайте, насколько жесткими вы готовы сделать правила вывода. Я бы предложил, по крайней мере, добавить -m state --state ESTABLISHED -j ACCEPT
и правило -j LOG
в цепочку OUTPUT
для начала.