[Решено] iptables-restore сломал всю голову (не применяются правила при загрузке)

PCLinuxOS

Модератор: Bizdelnick

falcol
Сообщения: 79
ОС: Debian

[Решено] iptables-restore сломал всю голову

Сообщение falcol »

Здравствуйте. Я уже и не знаю что делать? Весь инет перерыл, так и не нашел конкретного ответа.
Вобщем добавил несколько правил. Сделал iptables-save. Файл сохранился, все гуд.
После перезагрузки правила пропали.
Когда делаю service iptables start все правила применяются. Но вот именно при загрузке - нихотять. Где же зарылась собака?
Если сделать service iptables stop то правила удаляются service iptables start появляются. Вроди все гуд. Но разве при старте системы не это происходит???
пробовал делать chkconfig --level 235 iptables on
в /etc/rc.d/init.d/ iptables присутствует
Система Mandriva 2010
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Куда сохранились правила? При старте системы iptables читает /etc/sysconfig/iptables, если ничего не покурочено. Что откуда берётся - описано в /etc/rc.d/init.d/iptables. Редактировать последний файл строго не рекомендуется.
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

SinClaus писал(а):
18.11.2010 13:52
Куда сохранились правила? При старте системы iptables читает /etc/sysconfig/iptables, если ничего не покурочено. Что откуда берётся - описано в /etc/rc.d/init.d/iptables. Редактировать последний файл строго не рекомендуется.

Правила сохраняются в /etc/iptables я этот параметр поменял в /etc/rc.d/init.d/iptables
мне просто так ближе и удобнее... но я пробовал и туда, где было поумолчанию
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Значит не до конца поменял, в разных ветках сценария грузит из разных мест.
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

SinClaus писал(а):
18.11.2010 17:18
Значит не до конца поменял, в разных ветках сценария грузит из разных мест.

Я в нем не до конца разобрался... но тут написано:
Другим способом сохранить набор правил будет подача команды service iptables save, которая полностью идентична вышеприведенной команде. Впоследствии, при перезагрузке компьютера, сценарий iptables из rc.d будет выполнять команду iptables-restore для загрузки набора правил из файла /etc/sysconfig/iptables.

Вот мой /etc/rc.d/init.d/iptables

Код:

#!/bin/sh # # Startup script to implement /etc/sysconfig/iptables pre-defined rules. # # chkconfig: 2345 03 92 # # description: Automates a packet filtering firewall with iptables. # # by bero@redhat.com, based on the ipchains script: # Script Author: Joshua Jensen <joshua@redhat.com> # -- hacked up by gafton with help from notting # modified by Anton Altaparmakov <aia21@cam.ac.uk>: # modified by Nils Philippsen <nils@redhat.de> # # config: /etc/sysconfig/iptables # ### BEGIN INIT INFO # Provides: iptables firewall # Default-Start: 2 3 4 5 # Short-Description: iptables packet filtering # Description: Automates a packet filtering firewall with iptables, # using /etc/sysconfig/iptables pre-defined rules. ### END INIT INFO # Source 'em up . /etc/init.d/functions IPTABLES_CONFIG=/etc/iptables if [ ! -x /sbin/iptables ]; then exit 0 fi iftable() { if fgrep -qsx $1 /proc/net/ip_tables_names; then iptables -t "$@" fi } check() { if [ -n "$1" ]; then rm -f /lib/iptables ln -s /lib/iptables.d/${1} /lib/iptables iftable nat -N __T__${1##*-}__ >/dev/null 2>&1 iftable nat -A __T__${1##*-}__ -j MASQUERADE >/dev/null 2>&1 res=$? iftable nat -F __T__${1##*-}__ >/dev/null 2>&1 iftable nat -X __T__${1##*-}__ >/dev/null 2>&1 return $res else IPTABLES_LIST=`/bin/ls /lib/iptables.d` if [ `echo $IPTABLES_LIST | wc -w` -gt 1 ] || [ ! -e /lib/iptables ]; then /sbin/modprobe ipt_MASQUERADE >/dev/null 2>&1 for i in $IPTABLES_LIST ; do check ${i} && break done /sbin/modprobe -r ipt_MASQUERADE >/dev/null 2>&1 else return 0; fi fi } start() { # don't do squat if we don't have the config file if [ -f $IPTABLES_CONFIG ]; then # We do _not_ need to flush/clear anything when using iptables-restore gprintf "Applying iptables firewall rules: \n" grep -v "^[[:space:]]*#" $IPTABLES_CONFIG | grep -v '^[[:space:]]*$' | /sbin/iptables-restore -c && \ success "Applying iptables firewall rules" || \ failure "Applying iptables firewall rules" echo touch /var/lock/subsys/iptables fi } stop() { chains=`cat /proc/net/ip_tables_names 2>/dev/null` for i in $chains; do iptables -t $i -F; done && \ success "Flushing all chains:" || \ failure "Flushing all chains:" for i in $chains; do iptables -t $i -X; done && \ success "Removing user defined chains:" || \ failure "Removing user defined chains:" gprintf "Resetting built-in chains to the default ACCEPT policy:" iftable filter -P INPUT ACCEPT && \ iftable filter -P OUTPUT ACCEPT && \ iftable filter -P FORWARD ACCEPT && \ iftable nat -P PREROUTING ACCEPT && \ iftable nat -P POSTROUTING ACCEPT && \ iftable nat -P OUTPUT ACCEPT && \ iftable mangle -P PREROUTING ACCEPT && \ iftable mangle -P OUTPUT ACCEPT && \ success "Resetting built-in chains to the default ACCEPT policy" || \ failure "Resetting built-in chains to the default ACCEPT policy" echo rm -f /var/lock/subsys/iptables } case "$1" in start) check start ;; stop) stop ;; restart|reload) # "restart" is really just "start" as this isn't a daemon, # and "start" clears any pre-defined rules anyway. # This is really only here to make those who expect it happy start ;; condrestart) [ -e /var/lock/subsys/iptables ] && start ;; status) tables=`cat /proc/net/ip_tables_names 2>/dev/null` for table in $tables; do gprintf "Table: %s\n" "$table" iptables -t $table --list done ;; panic) gprintf "Changing target policies to DROP: " iftable filter -P INPUT DROP && \ iftable filter -P FORWARD DROP && \ iftable filter -P OUTPUT DROP && \ iftable nat -P PREROUTING DROP && \ iftable nat -P POSTROUTING DROP && \ iftable nat -P OUTPUT DROP && \ iftable mangle -P PREROUTING DROP && \ iftable mangle -P OUTPUT DROP && \ success "Changing target policies to DROP" || \ failure "Changing target policies to DROP" echo iftable filter -F INPUT && \ iftable filter -F FORWARD && \ iftable filter -F OUTPUT && \ iftable nat -F PREROUTING && \ iftable nat -F POSTROUTING && \ iftable nat -F OUTPUT && \ iftable mangle -F PREROUTING && \ iftable mangle -F OUTPUT && \ success "Flushing all chains:" || \ failure "Flushing all chains:" iftable filter -X INPUT && \ iftable filter -X FORWARD && \ iftable filter -X OUTPUT && \ iftable nat -X PREROUTING && \ iftable nat -X POSTROUTING && \ iftable nat -X OUTPUT && \ iftable mangle -X PREROUTING && \ iftable mangle -X OUTPUT && \ success "Removing user defined chains:" || \ failure "Removing user defined chains:" ;; save) gprintf "Saving current rules to %s: " "$IPTABLES_CONFIG" touch $IPTABLES_CONFIG chmod 600 $IPTABLES_CONFIG /sbin/iptables-save -c > $IPTABLES_CONFIG 2>/dev/null && \ success "Saving current rules to %s" "$IPTABLES_CONFIG" || \ failure "Saving current rules to %s" "$IPTABLES_CONFIG" echo ;; check) check ;; *) gprintf "Usage: %s {start|stop|restart|condrestart|status|panic|save|check}\n" "$0" exit 1 esac exit 0



Повторюсь, что правила применяются если дать команду service iptables start
Почему он при загрузке не стартует?
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Вопрос к вам (на засыпку): какие ещё системные файлы кроме iptables в rc.d/init.d были модифицированы?
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

SinClaus писал(а):
19.11.2010 06:26
Вопрос к вам (на засыпку): какие ещё системные файлы кроме iptables в rc.d/init.d были модифицированы?

ды никаких...
Спасибо сказали:
javasc
Сообщения: 52

Re: [Решено] iptables-restore сломал всю голову

Сообщение javasc »

создай скрипт /etc/init.d/fw
chmod 700 /etc/init.d/fw
в него запиши все правила (но учти это скрипт запуска rc.d!!! составлятся он должен также как /etc/init.d/skel).

далее команда update-rc.d fw defaults. Теперь iptables заполняется правилами при загрузке.

p.s: и не нужны там никакие iptables-save iptables-restore, все правила в голом виде записывай в /etc/init.d/fw
"Корпорация интеллекта"
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

javasc писал(а):
19.11.2010 14:46
создай скрипт /etc/init.d/fw
chmod 700 /etc/init.d/fw
в него запиши все правила (но учти это скрипт запуска rc.d!!! составлятся он должен также как /etc/init.d/skel).

далее команда update-rc.d fw defaults. Теперь iptables заполняется правилами при загрузке.

p.s: и не нужны там никакие iptables-save iptables-restore, все правила в голом виде записывай в /etc/init.d/fw

Ды это то понятно... этот сервер у меня работает уже пол года. я их применял путем добавления в /etc/rc.conf
Но это же не так должно работать... хотел сделать до ума, как положено. напр. во freebsd я же не пишу в rc.d скрипт или напрямую правила.
как последний вариант это можно добавить в rc.conf команду service iptables start. Но сервис то должен стартовать сам...
Еще маленькая заметка... когда в иксах заходишь в настройка компьютера(центр управления)> система> Включение и отключение системных сервисов и нажать там на против iptables запустить/остановить правила применяются/удаляются соответственно. и галочка на против службы стоит.... ну вот че ей надо чтоб она при запуске системы стартовала как надо :(
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Не обращай внимания, это тролль. В Мандриве нет такого понятия как update-rc.d, штатные средства - chkconfig. Чудесного заполнения iptables строками из левого скрипта тоже тоже не произойдёт просто так.
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

SinClaus писал(а):
20.11.2010 13:28
Не обращай внимания, это тролль. В Мандриве нет такого понятия как update-rc.d, штатные средства - chkconfig. Чудесного заполнения iptables строками из левого скрипта тоже тоже не произойдёт просто так.

Код: Выделить всё

chkconfig --list
acpid           0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:вкл
alsa            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
atd             0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
avahi-daemon    0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
crond           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
dhcpd           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
dm              0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:вкл   6:выкл  7:вкл
firebird        0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
haldaemon       0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:вкл
hddtemp         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
ip6tables       0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
iptables        0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
jexec           0:вкл   1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:вкл   7:выкл
kheader         0:выкл  1:выкл  2:вкл   3:вкл   4:выкл  5:вкл   6:выкл  7:выкл
lm_sensors      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
mandi           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
messagebus      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:вкл
msec            0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
named           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
netconsole      0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
netfs           0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
network         0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
network-auth    0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
network-up      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
ntpd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
numlock         0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:вкл
partmon         0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
preload         0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:вкл   6:выкл  7:выкл
resolvconf      0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
shorewall       0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
smb             0:выкл  1:выкл  2:выкл  3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
sound           0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
squid           0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
sshd            0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
syslog          0:выкл  1:выкл  2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:вкл
udev-post       0:выкл  1:вкл   2:вкл   3:вкл   4:вкл   5:вкл   6:выкл  7:выкл
vnstat          0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл  7:выкл
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

пробовал добавлять во все уровни...
Спасибо сказали:
olelukoie
Сообщения: 1248
ОС: Linux, Win

Re: [Решено] iptables-restore сломал всю голову

Сообщение olelukoie »

falcol писал(а):
20.11.2010 13:50
пробовал добавлять во все уровни...

так а симлинки в соответствующих директориях создаются при этом?
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

olelukoie писал(а):
20.11.2010 16:56
falcol писал(а):
20.11.2010 13:50
пробовал добавлять во все уровни...

так а симлинки в соответствующих директориях создаются при этом?

Код: Выделить всё

[root@localhost rc2.d]# ls
K00netfs@      K20msec@        S10network@     S54udev-post@  S95jexec@
K00preload@    K20partmon@     S12syslog@      S55sshd@       S95kheader@
K00smb@        K49netconsole@  S17alsa@        S56ntpd@       S99local@
K02haldaemon@  K56acpid@       S18sound@       S56shorewall@
K09dm@         K60atd@         S26lm_sensors@  S57mandi@
K15numlock@    S03iptables@    S50network-up@  S90crond@
K20firebird@   S09resolvconf@  S53messagebus@  S90hddtemp@
[root@localhost rc3.d]# ls
K00preload@     S13msec@        S40atd@         S56ntpd@       S95jexec@
K09dm@          S13partmon@     S50network-up@  S56shorewall@  S95kheader@
K49netconsole@  S14acpid@       S51netfs@       S57mandi@      S99local@
S03iptables@    S17alsa@        S53messagebus@  S80firebird@
S09resolvconf@  S18sound@       S54haldaemon@   S90crond@
S10network@     S26lm_sensors@  S54udev-post@   S90hddtemp@
S12syslog@      S29numlock@     S55sshd@        S91smb@
[root@localhost rc4.d]# ls
K00preload@     S12syslog@      S29numlock@     S55sshd@       S91smb@
K09dm@          S13msec@        S40atd@         S56ntpd@       S95jexec@
K20kheader@     S13partmon@     S50network-up@  S56shorewall@  S99local@
K49netconsole@  S14acpid@       S51netfs@       S57mandi@
S03iptables@    S17alsa@        S53messagebus@  S80firebird@
S09resolvconf@  S18sound@       S54haldaemon@   S90crond@
S10network@     S26lm_sensors@  S54udev-post@   S90hddtemp@
[root@localhost rc5.d]# ls
K49netconsole@  S14acpid@       S51netfs@       S56preload@    S95jexec@
S03iptables@    S17alsa@        S53messagebus@  S56shorewall@  S95kheader@
S09resolvconf@  S18sound@       S54haldaemon@   S57mandi@      S99local@
S10network@     S26lm_sensors@  S54udev-post@   S80firebird@
S12syslog@      S29numlock@     S55dm@          S90crond@
S13msec@        S40atd@         S55sshd@        S90hddtemp@
S13partmon@     S50network-up@  S56ntpd@        S91smb@


вот после загрузки как происходит...

Код: Выделить всё

[root@localhost rc5.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@localhost rc5.d]# service iptables start
Применяются правила файервола iptables:
                                                                  [   ОК  ]
[root@localhost rc5.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  anywhere             anywhere            to:192.168.0.98

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@localhost rc5.d]#

Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Какой режим из которого пример? И, кстати, не вижу стартовых скриптов ни в 3м ни в 5м режимах.
Спасибо сказали:
Xandry
Сообщения: 980
ОС: openSUSE

Re: [Решено] iptables-restore сломал всю голову

Сообщение Xandry »

Может быть стоит попробовать выключить shorewall, который свои правила подгружает?
Спасибо сказали:
olelukoie
Сообщения: 1248
ОС: Linux, Win

Re: [Решено] iptables-restore сломал всю голову

Сообщение olelukoie »

SinClaus писал(а):
21.11.2010 10:04
... И, кстати, не вижу стартовых скриптов ни в 3м ни в 5м режимах.

Есть они там, есть... Для 3-его режима - первый столбец, четвертая строка, для 5-ого - первый столбец, вторая строка... Мистика... Можеот отключить заставку при загрузке, отрубить speedboot и pinit и понаблюдать за выводом на экран при загрузке? И попробовать добавить в скрипт отладочные печати и посмотреть, где он ищет своих конфиги? Может все же дело в путях?

Xandry писал(а):
21.11.2010 11:11
Может быть стоит попробовать выключить shorewall, который свои правила подгружает?

Кстати да, shorewall может затирать правила iptables, поскольку грузится после него...
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

Xandry писал(а):
21.11.2010 11:11
Может быть стоит попробовать выключить shorewall, который свои правила подгружает?

Кстати да, shorewall может затирать правила iptables, поскольку грузится после него...


АААААААА. вот она где собака зарылась... все этот долбаный shorewall. Я сначала не придал ему значения, т.к. в иксах (настройка копьютера>система>включение и отключение системных сервисов) shorewall был отключен. Всем спасибо! После отключения shorewall на все уровнях, правила стали подгружаться при загрузке :) Тему можно закрыть.

P.S. Иксы это красиво, но.... искы это зло!
Спасибо сказали:
Аватара пользователя
SinClaus
Сообщения: 1952
Статус: Мучитель Мандривы
ОС: Arch,BSD

Re: [Решено] iptables-restore сломал всю голову

Сообщение SinClaus »

Не-а, не согласен! Просто у сервера свои задачи, и иксы там не нужны. А у рабочей станции - свои, и в общем случае тонкая работа с файерволлом ей не нужна. Все проблемы либо от лени, либо от бедности. :)
Спасибо сказали:
falcol
Сообщения: 79
ОС: Debian

Re: [Решено] iptables-restore сломал всю голову

Сообщение falcol »

SinClaus писал(а):
22.11.2010 11:33
Не-а, не согласен! Просто у сервера свои задачи, и иксы там не нужны. А у рабочей станции - свои, и в общем случае тонкая работа с файерволлом ей не нужна. Все проблемы либо от лени, либо от бедности. :)

ну да, забыл добавить, что в сервере! :)
Спасибо сказали: