[Решено] iptables-restore сломал всю голову (не применяются правила при загрузке)
Модератор: Bizdelnick
-
falcol
- Сообщения: 79
- ОС: Debian
[Решено] iptables-restore сломал всю голову
Здравствуйте. Я уже и не знаю что делать? Весь инет перерыл, так и не нашел конкретного ответа.
Вобщем добавил несколько правил. Сделал iptables-save. Файл сохранился, все гуд.
После перезагрузки правила пропали.
Когда делаю service iptables start все правила применяются. Но вот именно при загрузке - нихотять. Где же зарылась собака?
Если сделать service iptables stop то правила удаляются service iptables start появляются. Вроди все гуд. Но разве при старте системы не это происходит???
пробовал делать chkconfig --level 235 iptables on
в /etc/rc.d/init.d/ iptables присутствует
Система Mandriva 2010
Вобщем добавил несколько правил. Сделал 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 сломал всю голову
Куда сохранились правила? При старте системы iptables читает /etc/sysconfig/iptables, если ничего не покурочено. Что откуда берётся - описано в /etc/rc.d/init.d/iptables. Редактировать последний файл строго не рекомендуется.
-
falcol
- Сообщения: 79
- ОС: Debian
Re: [Решено] iptables-restore сломал всю голову
Правила сохраняются в /etc/iptables я этот параметр поменял в /etc/rc.d/init.d/iptables
мне просто так ближе и удобнее... но я пробовал и туда, где было поумолчанию
-
SinClaus
- Сообщения: 1952
- Статус: Мучитель Мандривы
- ОС: Arch,BSD
Re: [Решено] iptables-restore сломал всю голову
Значит не до конца поменял, в разных ветках сценария грузит из разных мест.
-
falcol
- Сообщения: 79
- ОС: Debian
Re: [Решено] iptables-restore сломал всю голову
Я в нем не до конца разобрался... но тут написано:
Другим способом сохранить набор правил будет подача команды 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 сломал всю голову
Вопрос к вам (на засыпку): какие ещё системные файлы кроме iptables в rc.d/init.d были модифицированы?
-
falcol
- Сообщения: 79
- ОС: Debian
-
javasc
- Сообщения: 52
Re: [Решено] iptables-restore сломал всю голову
создай скрипт /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
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 сломал всю голову
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 сломал всю голову
Не обращай внимания, это тролль. В Мандриве нет такого понятия как update-rc.d, штатные средства - chkconfig. Чудесного заполнения iptables строками из левого скрипта тоже тоже не произойдёт просто так.
-
falcol
- Сообщения: 79
- ОС: Debian
Re: [Решено] iptables-restore сломал всю голову
Код: Выделить всё
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 сломал всю голову
пробовал добавлять во все уровни...
-
olelukoie
- Сообщения: 1248
- ОС: Linux, Win
-
falcol
- Сообщения: 79
- ОС: Debian
Re: [Решено] iptables-restore сломал всю голову
Код: Выделить всё
[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 сломал всю голову
Какой режим из которого пример? И, кстати, не вижу стартовых скриптов ни в 3м ни в 5м режимах.
-
Xandry
- Сообщения: 980
- ОС: openSUSE
Re: [Решено] iptables-restore сломал всю голову
Может быть стоит попробовать выключить shorewall, который свои правила подгружает?
-
olelukoie
- Сообщения: 1248
- ОС: Linux, Win
Re: [Решено] iptables-restore сломал всю голову
Есть они там, есть... Для 3-его режима - первый столбец, четвертая строка, для 5-ого - первый столбец, вторая строка... Мистика... Можеот отключить заставку при загрузке, отрубить speedboot и pinit и понаблюдать за выводом на экран при загрузке? И попробовать добавить в скрипт отладочные печати и посмотреть, где он ищет своих конфиги? Может все же дело в путях?
Кстати да, shorewall может затирать правила iptables, поскольку грузится после него...
-
falcol
- Сообщения: 79
- ОС: Debian
Re: [Решено] iptables-restore сломал всю голову
Кстати да, shorewall может затирать правила iptables, поскольку грузится после него...
АААААААА. вот она где собака зарылась... все этот долбаный shorewall. Я сначала не придал ему значения, т.к. в иксах (настройка копьютера>система>включение и отключение системных сервисов) shorewall был отключен. Всем спасибо! После отключения shorewall на все уровнях, правила стали подгружаться при загрузке
P.S. Иксы это красиво, но.... искы это зло!
-
SinClaus
- Сообщения: 1952
- Статус: Мучитель Мандривы
- ОС: Arch,BSD
Re: [Решено] iptables-restore сломал всю голову
Не-а, не согласен! Просто у сервера свои задачи, и иксы там не нужны. А у рабочей станции - свои, и в общем случае тонкая работа с файерволлом ей не нужна. Все проблемы либо от лени, либо от бедности. 
-
falcol
- Сообщения: 79
- ОС: Debian