LINUX.ORG.RU
решено ФорумAdmin

RHEL4 конфигурация (правила) iptables


0

1

Достался мне сервер, на сервере нужно внести изменение в правила iptables, но не могу найти где они вообще хранятся и подгружаются.

На сервере стоит RedHat

# cat /etc/redhat-release 
Red Hat Enterprise Linux ES release 4 (Nahant Update 1)
имеется некорое количество правил iptables
# iptables -nL | wc -l
286
при перезагрузке сервера правила подгружаются (проверено).

При этом:

# ls -l /etc/sysconfig/ip*
-rw-------  1 root root 1375 Nov 11  2004 /etc/sysconfig/iptables-config
т.е., файла /etc/sysconfig/iptables в наличии не имеется, сохранения правил тоже не настроено:
# cat /etc/sysconfig/iptables-config | grep -v ^#
IPTABLES_MODULES=""
IPTABLES_MODULES_UNLOAD="yes"
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
IPTABLES_SAVE_COUNTER="no"
IPTABLES_STATUS_NUMERIC="yes"

Пробую найти где происходит подгрузка правил:

# grep -r  iptables /etc/init.d
/etc/init.d/iptables:# iptables	Start iptables firewall
/etc/init.d/iptables:# description:	Starts, stops and saves iptables firewall
/etc/init.d/iptables:# config: /etc/sysconfig/iptables
/etc/init.d/iptables:# config: /etc/sysconfig/iptables-config
/etc/init.d/iptables:IPTABLES=iptables
/etc/init.d/iptables:    # Do not stop if iptables module is not loaded.
/etc/init.d/iptables:    # Do not print status if lockfile is missing and iptables modules are not 
/etc/init.d/arptables_jf:# by fenlason@redhat.com: based on iptables.init from the iptables package
grep -r iptables /etc/rc* ничего более нового (не симлинков тех же файлов) не находит.

Где ещё стоит поискать, может есть какие-то специфические для RHEL тайные места?


Набор правил находится в /etc/sysconfig/iptables, дополнительные параметры — в /etc/sysconfig/iptables-config.

nnz ★★★★ ()

может быть где-то спрятан запускаемый скрипт, при старте ОС вносит правила iptables

Kiteman ()

Скорее всего загрузку этих правил обеспечивает не сам инит-скрипт, а вызываемая им программа. Интересно было бы взглянуть на «ls -al /etc/rc$(runlevel | cut -d' ' -f2).d/» и «cat /etc/rc.local».

nnz ★★★★ ()

при загрузке там подмонтируется виртуальный диск из которых читаются правила. есть команда которая туда записывает. сходу не помню но механизм точно такой

ssbury ()
Ответ на: комментарий от nnz

В rc.local уже смотрел, там и близко нет:

# cat /etc/rc.local 
#!/bin/sh

touch /var/lock/subsys/local

/usr/bin/nohup /usr/sbin/vsftpd &

route add -net xxx.xxx.xxx.0/24 gw yy.yy.yy.yy

Из стартовых скриптов ничего кроме кроме штатных arptables_jf и iptables в глаза не бросается:

# ls -al /etc/rc$(runlevel | cut -d' ' -f2).d/
total 280
drwxr-xr-x   2 root root 4096 Aug  7  2008 .
drwxr-xr-x  10 root root 4096 Jan 18  2007 ..
lrwxrwxrwx   1 root root   24 Jan 18  2007 K02NetworkManager -> ../init.d/NetworkManager
lrwxrwxrwx   1 root root   19 Jan 18  2007 K05saslauthd -> ../init.d/saslauthd
lrwxrwxrwx   1 root root   16 Jan 18  2007 K10psacct -> ../init.d/psacct
lrwxrwxrwx   1 root root   13 Jan 19  2007 K15gpm -> ../init.d/gpm
lrwxrwxrwx   1 root root   13 Jan 18  2007 K20nfs -> ../init.d/nfs
lrwxrwxrwx   1 root root   14 Jan 19  2007 K24irda -> ../init.d/irda
lrwxrwxrwx   1 root root   19 Jan 18  2007 K35vncserver -> ../init.d/vncserver
lrwxrwxrwx   1 root root   17 Jan 18  2007 K35winbind -> ../init.d/winbind
lrwxrwxrwx   1 root root   14 Jan 18  2007 K36lisa -> ../init.d/lisa
lrwxrwxrwx   1 root root   17 Jan 18  2007 K50netdump -> ../init.d/netdump
lrwxrwxrwx   1 root root   19 Jan 18  2007 K50snmptrapd -> ../init.d/snmptrapd
lrwxrwxrwx   1 root root   16 Jan 19  2007 K50vsftpd -> ../init.d/vsftpd
lrwxrwxrwx   1 root root   16 Jan 18  2007 K73ypbind -> ../init.d/ypbind
lrwxrwxrwx   1 root root   14 Jan 19  2007 K74apmd -> ../init.d/apmd
lrwxrwxrwx   1 root root   14 Jan 18  2007 K74nscd -> ../init.d/nscd
lrwxrwxrwx   1 root root   14 Jan 18  2007 K74ntpd -> ../init.d/ntpd
lrwxrwxrwx   1 root root   15 Jan 18  2007 K85mdmpd -> ../init.d/mdmpd
lrwxrwxrwx   1 root root   18 Jan 18  2007 K89netplugd -> ../init.d/netplugd
lrwxrwxrwx   1 root root   19 Jan 18  2007 K90bluetooth -> ../init.d/bluetooth
lrwxrwxrwx   1 root root   14 Jan 19  2007 K91isdn -> ../init.d/isdn
lrwxrwxrwx   1 root root   18 Jan 18  2007 K94diskdump -> ../init.d/diskdump
lrwxrwxrwx   1 root root   19 Jan 18  2007 K99readahead -> ../init.d/readahead
lrwxrwxrwx   1 root root   25 Jan 18  2007 K99readahead_early -> ../init.d/readahead_early
lrwxrwxrwx   1 root root   23 Jan 18  2007 S00microcode_ctl -> ../init.d/microcode_ctl
lrwxrwxrwx   1 root root   15 Jan 18  2007 S05kudzu -> ../init.d/kudzu
lrwxrwxrwx   1 root root   18 Jan 18  2007 S06cpuspeed -> ../init.d/cpuspeed
lrwxrwxrwx   1 root root   22 Jan 18  2007 S08arptables_jf -> ../init.d/arptables_jf
lrwxrwxrwx   1 root root   18 Jan 18  2007 S08iptables -> ../init.d/iptables
lrwxrwxrwx   1 root root   16 Jan 18  2007 S09pcmcia -> ../init.d/pcmcia
lrwxrwxrwx   1 root root   17 Jan 18  2007 S10network -> ../init.d/network
lrwxrwxrwx   1 root root   16 Jan 18  2007 S12syslog -> ../init.d/syslog
lrwxrwxrwx   1 root root   20 Jan 18  2007 S13irqbalance -> ../init.d/irqbalance
lrwxrwxrwx   1 root root   17 Jan 18  2007 S13portmap -> ../init.d/portmap
lrwxrwxrwx   1 root root   17 Jan 18  2007 S14nfslock -> ../init.d/nfslock
lrwxrwxrwx   1 root root   19 Jan 18  2007 S15mdmonitor -> ../init.d/mdmonitor
lrwxrwxrwx   1 root root   17 Jan 18  2007 S18rpcgssd -> ../init.d/rpcgssd
lrwxrwxrwx   1 root root   19 Jan 18  2007 S19rpcidmapd -> ../init.d/rpcidmapd
lrwxrwxrwx   1 root root   20 Jan 18  2007 S19rpcsvcgssd -> ../init.d/rpcsvcgssd
lrwxrwxrwx   1 root root   15 Jan 18  2007 S25netfs -> ../init.d/netfs
lrwxrwxrwx   1 root root   20 Jan 18  2007 S26lm_sensors -> ../init.d/lm_sensors
lrwxrwxrwx   1 root root   16 Jan 18  2007 S28autofs -> ../init.d/autofs
lrwxrwxrwx   1 root root   16 Jan 18  2007 S40smartd -> ../init.d/smartd
lrwxrwxrwx   1 root root   15 Jan 18  2007 S44acpid -> ../init.d/acpid
lrwxrwxrwx   1 root root   15 Aug  7  2008 S50snmpd -> ../init.d/snmpd
lrwxrwxrwx   1 root root   14 Jan 18  2007 S55cups -> ../init.d/cups
lrwxrwxrwx   1 root root   14 Jan 18  2007 S55sshd -> ../init.d/sshd
lrwxrwxrwx   1 root root   20 Jan 18  2007 S56rawdevices -> ../init.d/rawdevices
lrwxrwxrwx   1 root root   16 Jan 18  2007 S56xinetd -> ../init.d/xinetd
lrwxrwxrwx   1 root root   15 Jan 18  2007 S90crond -> ../init.d/crond
lrwxrwxrwx   1 root root   13 Jan 18  2007 S90xfs -> ../init.d/xfs
lrwxrwxrwx   1 root root   17 Jan 18  2007 S95anacron -> ../init.d/anacron
lrwxrwxrwx   1 root root   13 Jan 18  2007 S95atd -> ../init.d/atd
lrwxrwxrwx   1 root root   19 Jan 18  2007 S95firstboot -> ../init.d/firstboot
lrwxrwxrwx   1 root root   20 Jan 18  2007 S97messagebus -> ../init.d/messagebus
lrwxrwxrwx   1 root root   15 Jan 18  2007 S97rhnsd -> ../init.d/rhnsd
lrwxrwxrwx   1 root root   28 Jan 18  2007 S98cups-config-daemon -> ../init.d/cups-config-daemon
lrwxrwxrwx   1 root root   19 Jan 18  2007 S98haldaemon -> ../init.d/haldaemon
-rwx--x--x   1 root root  350 Oct 16  2009 S99iptables.sh
lrwxrwxrwx   1 root root   11 Jan 18  2007 S99local -> ../rc.local
-rwxr--r--   1 root root 5636 Oct 16  2009 S99mysql
-rwx--x--x   1 root root  669 Oct 16  2009 S99tcptune.sh
lrwxrwxrwx   1 root root   18 Jan 18  2007 _S80sendmail.orig -> ../init.d/sendmail

/etc/init.d/iptables целиком постить не буду, там всё стандартно:

IPTABLES=iptables
IPTABLES_DATA=/etc/sysconfig/$IPTABLES
IPTABLES_CONFIG=/etc/sysconfig/${IPTABLES}-config
IPV=${IPTABLES%tables} # ip for ipv4 | ip6 for ipv6
PROC_IPTABLES_NAMES=/proc/net/${IPV}_tables_names
VAR_SUBSYS_IPTABLES=/var/lock/subsys/$IPTABLES

IPTABLES_MODULES=""
IPTABLES_MODULES_UNLOAD="yes"
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
IPTABLES_SAVE_COUNTER="no"
IPTABLES_STATUS_NUMERIC="yes"

[ -f "$IPTABLES_CONFIG" ] && . "$IPTABLES_CONFIG"
сам $IPTABLES_CONFIG приведён в верхнем сообщении, далее:
start() {
    # Do not start if there is no config file.
    [ -f "$IPTABLES_DATA" ] || return 1

    echo -n $"Applying $IPTABLES firewall rules: "

    OPT=
    [ "x$IPTABLES_SAVE_COUNTER" = "xyes" ] && OPT="-c"

    $IPTABLES-restore $OPT $IPTABLES_DATA
    if [ $? -eq 0 ]; then
	success; echo
    else
	failure; echo; return 1
    fi
    
    # Load additional modules (helpers)
    if [ -n "$IPTABLES_MODULES" ]; then
	echo -n $"Loading additional $IPTABLES modules: "
	ret=0
	for mod in $IPTABLES_MODULES; do
	    echo -n "$mod "
	    modprobe $mod > /dev/null 2>&1
	    let ret+=$?;
	done
	[ $ret -eq 0 ] && success || failure
	echo
    fi
    
    touch $VAR_SUBSYS_IPTABLES
    return $ret
}

Т.е., отсылка к несуществующему файлу $IPTABLES_DATA

В тоже ничего что могло бы правила подгрузить.

han ()

Нашёл!
Грепнул по IP из правил iptables'а и нашёл файл с описанием правил:
/home/XXX/j2ee/home/firewall.xml
XXX - основная служба на этом сервере, получается что она формирует и загружает правила для iptables.

Чуть моск пополам не раскололся пока искал))

han ()
Ответ на: комментарий от nnz

Нет, это стандартный init-скрипт iptables, т.к. файла с правилами для него нет, то он и не исполняется. Там отдельная софтина свой xml-конфиг разбирает и создаёт правила iptables'а.

han ()
Ответ на: комментарий от han

Хотя, пардон, стандартный выше. Но этот я смотрел, там нет ничего что могло бы подгружать правила. По файрволу разобрались с админом этого софта, там дейсвительно через админскую веб-морду файрвол конфигурируется, там похоже кроме статических вручную написанных правил софтина на основе своего конфига ещё и динамические привила в файрвол добавляет/удаляет, потому так всё хитро и сделано.

han ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.