Я в настоящее время пытаюсь настроить ufw на Ubuntu 12.04, но к моему пониманию это ведет себя странно. я пытался разрешить просто некоторые сервисы на удаленную машину, отклоняя все остальное. Я думал - так или иначе, я, возможно, понял его превратно - что, отклоняя все по умолчанию и затем разрешая некоторые сервисы будут служить моей цели, следовательно я испустил следующие команды
ufw allow ssh
ufw default deny incoming
ufw default deny outgoing
К моему пониманию последней команды только заблокировал бы каждое соединение, которое я пытаюсь установить с удаленного компьютера на некоторый другой компьютер, но это вызвало все соединения, которые я пытаюсь установить к окончанию удаленного компьютера быть отклоненным. Я вполне уверен, что эта команда а не отклонять поступление вызвала это поведение. Мне это довольно парадоксально. Я предположил бы, что, если бы я явно позволил ssh, я смог бы установить соединение с удаленной машиной, независимой от настроек по умолчанию. Еще больше кажется довольно странным, что блокирование исходящих соединений повреждает мой ssh.
Я был бы очень благодарен, если кто-либо мог бы объяснить это мне.
Предположим, что у вас SSH на сервереА на порту 22. serverB пытается к нему подключиться.
Он посылает пакет со случайного порта в net.ipv4.ip_local_port_range (например, 3252) на порт serverA 22.
serverB:3252 -> ufw входящее разрешение 22 -> serverA:22
Так что на serverA соединение разрешено, потому что входящие соединения по 22 порту разрешены, но когда ваш ssh сервер отвечает, он посылает ответный пакет с 22 порта на порт serverB 3252 и исходящие соединения из-за ufw по умолчанию отказывают в исходящих
блокируются.
serverB:3252 <- ufw outgoing default deny <- serverA:22
Так что вы должны добавить правило разрешения в исходящую цепочку либо для пакетов с портом источника 22, либо с портом назначения в пределах local_port_range - обычно 32768-61000, но может отличаться, поэтому лучше использовать фильтрацию по портам источника.
.