У меня есть сервер под управлением CentOS 5.5, работающий как хост OpenVZ. Один из контейнеров рассылает спам, и мне нужно заблокировать его возможность подключаться к исходящему порту 25. Я посмотрел на http://wiki.openvz.org/Setting_up_an_iptables_firewall, но эта настройка предназначена для предотвращения ВХОДЯЩЕГО трафика, и я не нашел рабочего правила IPTABLES, которое препятствовало бы подключению определенного IP-адреса к OUTBOUND-порту.
Я пробовал:
iptables -I OUTPUT --source [CONTAINER_IP] --protocol tcp --destination-port 25 -j DROP
но это, похоже, не блокирует его. Любые идеи были бы хорошы.
Таблица OUTPUT используется для отправки трафика, исходящего от хоста. С виртуализацией я не уверен, использует ли трафик цепочку OUTPUT или он маршрутизируется с виртуального устройства. через хост, он может использовать вместо этого цепочку FORWARD. Попробуйте заменить OUTPUT на FORWARD в своем правиле.
Ответ Кайла Смита верен с небольшим примечанием: это правило должно быть помещено перед любыми другими правилами FORWARD:
iptables -L
Цепочка ВПЕРЕД (политика ПРИНЯТЬ)
target prot opt источник назначения
DROP tcp - [CONTAINER_IP] в любом месте tcp dpt: smtp
RH-Firewall-1-INPUT все - в любом месте в любом месте
/ и т. д. / sysconfig / iptables
: INPUT ACCEPT [0: 0]
: FORWARD ACCEPT [0: 0]
: OUTPUT ACCEPT [0: 0]
: RH-Firewall-1-INPUT - [0: 0]
/ * Блокируем исходящий 25 порт для контейнеров * /
-A FORWARD -p tcp --destination-port 25 -s [CONTAINER_IP] -j DROP
/ * Основной конфиг * /
-A INPUT -j RH-Firewall-1-INPUT
-A ВПЕРЕД -j RH-Firewall-1-INPUT