не сохраняются правила iptables

вот по этому руководству http://www.gentoo.org/doc/ru/home-router-howto.xml настроил на компе маршрутизацию, для выхода в инет других устроиств.
использовал листинги:
-Листинг 5.1: Настройка DHCP-сервера
-Листинг 5.2: Настройка iptables
всё работает без проблем
но после перезагрузки инет не доступен, пока не забьешь по-новой правила iptables

после перезагрузки

# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
LOG tcp – anywhere anywhere tcp dpts:0:1023 LOG level warning
LOG udp – anywhere anywhere udp dpts:0:1023 LOG level warning
DROP tcp – anywhere anywhere tcp dpts:0:1023
DROP udp – anywhere anywhere udp dpts:0:1023
LOG udp – anywhere anywhere udp dpt:nfs LOG level warning
LOG tcp – anywhere anywhere tcp dpt:nfs LOG level warning
DROP udp – anywhere anywhere udp dpt:nfs
DROP tcp – anywhere anywhere tcp dpt:nfs
LOG tcp – anywhere anywhere tcp dpts:x11:6063 LOG level warning
DROP tcp – anywhere anywhere tcp dpts:x11:6063
LOG tcp – anywhere anywhere tcp dpt:font-service LOG level warning
DROP tcp – anywhere anywhere tcp dpt:font-service
LOG tcp – anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning
DROP tcp – anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
DROP icmp – anywhere anywhere icmp echo-request

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

# cat /var/lib/iptables/rules-save
# Generated by iptables-save v1.4.3.2 on Thu Jul 16 19:25:59 2009
nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Thu Jul 16 19:25:59 2009
# Generated by iptables-save v1.4.3.2 on Thu Jul 16 19:25:59 2009
filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT [572197:753983411]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT ! -i eth1 -p udp -m udp --dport 67 -j REJECT --reject-with icmp-port-unreachable
-A INPUT ! -i eth1 -p udp -m udp --dport 53 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT ! -i eth1 -p tcp -m tcp --dport 0:1023 -j DROP
-A INPUT ! -i eth1 -p udp -m udp --dport 0:1023 -j DROP
-A FORWARD -d 192.168.0.0/16 -i eth1 -j DROP
-A FORWARD -s 192.168.0.0/16 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/16 -i ppp0 -j ACCEPT
COMMIT
# Completed on Thu Jul 16 19:25:59 2009

после вбивания правил

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere
REJECT udp – anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable
REJECT udp – anywhere anywhere udp dpt:domain reject-with icmp-port-unreachable
ACCEPT tcp – anywhere anywhere tcp dpt:ssh
DROP tcp – anywhere anywhere tcp dpts:0:1023
DROP udp – anywhere anywhere udp dpts:0:1023

Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all – anywhere 192.168.0.0/16
ACCEPT all – 192.168.0.0/16 anywhere
ACCEPT all – anywhere 192.168.0.0/16

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

# cat /var/lib/iptables/rules-save
# Generated by iptables-save v1.4.3.2 on Thu Jul 16 22:36:35 2009
filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT ! -i eth1 -p udp -m udp --dport 67 -j REJECT --reject-with icmp-port-unreachable
-A INPUT ! -i eth1 -p udp -m udp --dport 53 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i ppp0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT ! -i eth1 -p tcp -m tcp --dport 0:1023 -j DROP
-A INPUT ! -i eth1 -p udp -m udp --dport 0:1023 -j DROP
-A FORWARD -d 192.168.0.0/16 -i eth1 -j DROP
-A FORWARD -s 192.168.0.0/16 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.0.0/16 -i ppp0 -j ACCEPT
COMMIT
# Completed on Thu Jul 16 22:36:35 2009
# Generated by iptables-save v1.4.3.2 on Thu Jul 16 22:36:35 2009
nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Thu Jul 16 22:36:35 2009

куда копать,штоб инет был после перезагрузки

попробуй

rc-update add iptables default

попробуй

rc-update add iptables default

не помогает :frowning:

чтобы они сохранялись, сначала создаем правила, затем выполняем

/etc/init.d/iptables save

и далее то что я написал выше. Проверить можно, выполнив

/etc/init.d/iptables save
/etc/init.d/iptables stop
iptables -L # Правила должны очиститься
/etc/init.d/iptables start
iptables -L # Правила должны восстановиться

Если в файле /etc/conf.d/iptables опция SAVE_ON_STOP=“yes”, то правила будут сохраняться при остановке iptables.

чтобы они сохранялись, сначала создаем правила, затем выполняем

/etc/init.d/iptables save

и далее то что я написал выше. Проверить можно, выполнив

/etc/init.d/iptables save
/etc/init.d/iptables stop
iptables -L # Правила должны очиститься
/etc/init.d/iptables start
iptables -L # Правила должны восстановиться

Если в файле /etc/conf.d/iptables опция SAVE_ON_STOP=“yes”, то правила будут сохраняться при остановке iptables.

сделано всё что Вы написали
/etc/conf.d/iptables опция SAVE_ON_STOP=“yes” - такое в файле есть
iptables -L правила на месте

фигня какая-то получается:

  • перезагрузился
  • делаю # iptables -L

# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all – anywhere anywhere
ACCEPT all – anywhere anywhere
REJECT udp – anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable
REJECT udp – anywhere anywhere udp dpt:domain reject-with icmp-port-unreachable
DROP tcp – anywhere anywhere tcp dpts:0:1023
DROP udp – anywhere anywhere udp dpts:0:1023
ACCEPT tcp – anywhere 192.168.0.1 tcp dpt:49152
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DROP all – anywhere 192.168.0.0/16
ACCEPT all – 192.168.0.0/16 anywhere
ACCEPT all – anywhere 192.168.0.0/16
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

правила на месте

  • подключаюсь командой pppoe-start к инету
  • делаю # iptables -L , картина такая, инета нет, iptables_stop-start не помогает

# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
LOG tcp – anywhere anywhere tcp dpts:0:1023 LOG level warning
LOG udp – anywhere anywhere udp dpts:0:1023 LOG level warning
DROP tcp – anywhere anywhere tcp dpts:0:1023
DROP udp – anywhere anywhere udp dpts:0:1023
LOG udp – anywhere anywhere udp dpt:nfs LOG level warning
LOG tcp – anywhere anywhere tcp dpt:nfs LOG level warning
DROP udp – anywhere anywhere udp dpt:nfs
DROP tcp – anywhere anywhere tcp dpt:nfs
LOG tcp – anywhere anywhere tcp dpts:x11:6063 LOG level warning
DROP tcp – anywhere anywhere tcp dpts:x11:6063
LOG tcp – anywhere anywhere tcp dpt:font-service LOG level warning
DROP tcp – anywhere anywhere tcp dpt:font-service
LOG tcp – anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning
DROP tcp – anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
DROP icmp – anywhere anywhere icmp echo-request
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

чё делать не пойму.

на всякий случай.
iptables настраивал так:

Настройка iptables
Сначала обнуляем наши текущие правила
# iptables -F
# iptables -t nat -F
Установим политики по умолчанию для трафика, не соответствующего ни одному из правил
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
Скопируйте и вставьте для примера…
# export LAN=eth1
# export WAN=ppp0
Теперь закроем наши сервисы так, чтобы они могли работать только для LAN
# iptables -I INPUT 1 -i ${LAN} -j ACCEPT
# iptables -I INPUT 1 -i lo -j ACCEPT
# iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT
# iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT
(Необязательно) Разрешаем доступ к нашему ssh-серверу из интернета
# iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
Отбросим все TCP/UDP-пакеты, обращающиеся к привилегированным портам
# iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
# iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP
В конце добавляем правила для NAT
# iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP
# iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -A FORWARD -i ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
для медиатомба
# iptables -A INPUT -d 192.168.0.1 -p TCP --dport 49152 -j ACCEPT
Сообщаем ядру, что ip-форвардинг разрешен
# echo 1 > /proc/sys/net/ipv4/ip_forward
# for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
Сохраняем правила, чтобы потом не вводить все вручную заново при перезагрузке
# /etc/init.d/iptables save
# rc-update add iptables default
# nano /etc/sysctl.conf
Добавьте/Раскомментируйте следующие строки:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1

  • подключаюсь командой pppoe-start к инету
  • делаю # iptables -L , картина такая, инета нет, iptables_stop-start не помогает

похоже что после подключения к впн-серверу выполняется скрипт, который все правила и переписывает. Надо курить конфиги.

iptables_stop-start не поможет, потому что SAVE_ON_STOP=“yes”. Нужно поставить SAVE_ON_STOP=“no”, тогда после рестарта iptables загрузятся правила, сохраненные iptables save

какие конфиги-то хоть покурить :slight_smile: