У меня есть сервер Debian, с которого я хочу заблокировать все входящие и исходящие порты (особенно все исходящие порты электронной почты), кроме тех, которые я специально добавляю в iptables. Текущая установка у меня работает и кажется достаточно ограничительной, но когда я запускаю телнет
сеанс для проверки, например, порта 25 для smtp, он просто подключается без проблем, хотя я специально не открывал порт 25 как порт OUTPUT. Я заметил, что когда я очищаю iptables с помощью iptables-F
, соединение блокируется, но тогда DNS-разрешение и http-трафик также не работают. Возможно, важно упомянуть, что я также запускаю Docker на этом сервере, а это означает, что Docker поддерживает свои собственные цепочки iptables, которые я не буду специально перечислять в этом вопросе. Ни в одном из правил Docker нет порта 25, но, может быть, Docker слишком свободно устанавливает общие правила?
Я не нашел простого способа отправить электронную почту на smtp-порт 25, но я предположил, что успешная установка сеанса telnet также позволит использовать то же соединение для отправки почты.
Может ли кто-нибудь указать мне правильное направление?
Вывод телнета:
$ телнет smtp-relay.gmail.com 25
Попытка 2a00:1450:4013:c03::1c...
Подключен к smtp-relay.gmail.com.
Экранирующий символ '^]'.
220 smtp-relay.gmail.com ESMTP k6sm844273wms.37 - gsmtp
Цепочки INPUT и OUTPUT моих текущих iptables:
Цепь INPUT (политика DROP)
целевая защита выбор источника назначения
УДАЛИТЬ все -- в любом месте и в любом месте match-set blacklist src
ПРИНЯТЬ icmp -- 192.168.4.0/24 в любом месте эхо-запрос icmp
ПРИНЯТЬ tcp -- 192.168.4.0/24 в любом месте tcp dpt:ssh
ПРИНЯТЬ tcp -- в любом месте многопортовые порты http, состояние https СВЯЗАННО, УСТАНОВЛЕНО
ACCEPT icmp -- в любом месте состояние эхо-ответа icmp ESTABLISHED
ПРИНЯТЬ tcp -- в любом месте tcp spt: состояние домена СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ udp -- в любом месте udp spt: состояние домена СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ tcp -- где угодно и где угодно многопортовый спорт http, состояние https СВЯЗАННО, УСТАНОВЛЕНО
Цепочка OUTPUT (политика DROP)
целевая защита выбор источника назначения
ПРИНЯТЬ udp -- где угодно udp dpt:domain
ПРИНЯТЬ tcp -- в любом месте tcp dpt:domain
ПРИНЯТЬ icmp -- где угодно и где угодно эхо-запрос icmp
ПРИНЯТЬ icmp -- где угодно 192.168.4.0/24 Состояние эхо-ответа icmp СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ tcp -- везде 192.168.4.0/24 tcp spt: состояние ssh СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ tcp -- в любом месте многопортовые порты http,https
Iptables + telnet не блокирует порты