Назад | Перейти на главную страницу

Вроде бы приемлемое правило iptables, запрещающее NIS (ypbind) работать

Я не эксперт по iptables.

У меня есть вариант использования для блокировки всего исходящего трафика, не предназначенного ни для 10.0.0.0/8, ни для 167.114.0.0/16. У меня два сервера NIS (10.57.132.11, 10.57.132.40). Я создал следующий набор правил iptables, который, как я думал, будет работать, но если я запустил запуск службы iptables, Я также не могу получить ypbind загружать. Время ожидания истекает при попадании на два сервера NIS. Я не вижу в журналах ничего, кроме таймаута.

# Generated by iptables-save v1.4.7 on Fri Jul 17 11:08:39 2015
*filter
:INPUT ACCEPT [78622:10507056]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-I OUTPUT -d 10.57.132.11 -j ACCEPT
-I OUTPUT -d 10.57.132.40 -j ACCEPT
-I OUTPUT -d 167.114.0.0/16 -j ACCEPT 
-I OUTPUT -d 10.0.0.0/8 -j ACCEPT 
-P OUTPUT DROP

COMMIT
# Completed on Fri Jul 17 11:08:39 2015

Есть мысли о том, что я делаю не так? Спасибо, Джек.

ОБНОВЛЕНИЕ: Чтобы уточнить, ypbind связывается, когда iptables выключен, но не связывается, когда я включаю вышеуказанный набор правил. Поскольку это только фильтрация OUTPUT, и эти правила кажутся правильными, я не понимаю проблемы и не могу найти ничего полезного в журналах.

tl; dr: iptables действительно буквальный, не забывайте правила localhost.

Ладно! Понял. Майкл Хэмптон подал мне идею использовать правило регистрации (это был мой первый раз). Итак, я сделал следующее:

 Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  10.0.0.0/8           anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             10.0.0.0/8
ACCEPT     all  --  anywhere             167.114.0.0/16
ACCEPT     all  --  anywhere             nis1.example.com
ACCEPT     all  --  anywhere             nis2.example.com
LOGGING    all  --  anywhere             anywhere

Chain LOGGING (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            limit: avg 2/min burst 5 LOG level warning prefix `IPTables-Dropped: '
DROP       all  --  anywhere             anywhere

Оттуда я запустил iptables, а затем попытался перезапустить ypbind и сразу увидел следующее:

Jul 22 22:53:04 host1 ypbind[9844]: Unable to register (YPBINDPROG, YPBINDVERS, udp).
Jul 22 22:53:31 host1 kernel: IPTables-Dropped: IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=1476 DF PROTO=TCP SPT=18660 DPT=7606 WINDOW=2305 RES=0x00 ACK URGP=0 
Jul 22 22:53:50 host1 ypbind: NIS server for domain example is not responding.
Jul 22 22:54:01 host1 kernel: IPTables-Dropped: IN= OUT=lo SRC=127.0.0.1 DST=127.0.0.1 LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=1506 DF PROTO=TCP SPT=18660 DPT=7606 WINDOW=2305 RES=0x00 ACK URGP=0

О НЕТ! Блокирует локальный хост. Я добавил это в правило вывода и получил:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  10.0.0.0/8           anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  localhost            localhost
ACCEPT     all  --  anywhere             10.0.0.0/8
ACCEPT     all  --  anywhere             167.114.0.0/16
ACCEPT     all  --  anywhere             nis1.example.com
ACCEPT     all  --  anywhere             nis2.example.com
LOGGING    all  --  anywhere             anywhere

Chain LOGGING (1 references)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            limit: avg 2/min burst 5 LOG level warning prefix `IPTables-Dropped: '
DROP       all  --  anywhere             anywhere

Еще один ypbind перезапустить и

Jul 22 22:54:38 host1 ypbind: NIS domain: example, NIS server: nis1.example.com

Вот и все!