[Comm] iptables и локальная сеть

Прокопьев Евгений =?iso-8859-1?q?john_=CE=C1_rmts=2Edonpac=2Eru?=
Чт Апр 10 13:39:28 MSD 2003


Здравствуйте!

Есть компьютер, на котором сеть настроена так:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:80:48:EE:0A:2A
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:293038 errors:0 dropped:0 overruns:0 frame:0
           TX packets:6510 errors:0 dropped:0 overruns:0 carrier:0
           collisions:6
           RX bytes:28520591 (27.1 Mb)  TX bytes:2564094 (2.4 Mb)

eth1      Link encap:Ethernet  HWaddr 00:01:02:11:42:43
           inet addr:192.168.89.1  Bcast:192.168.89.255  Mask:255.255.255.0
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:577 errors:0 dropped:0 overruns:0 frame:0
           TX packets:283 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0
           RX bytes:69816 (68.1 Kb)  TX bytes:30227 (29.5 Kb)

lo        Link encap:Local Loopback
           inet addr:127.0.0.1  Mask:255.0.0.0
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:8059 errors:0 dropped:0 overruns:0 frame:0
           TX packets:8059 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0
           RX bytes:725652 (708.6 Kb)  TX bytes:725652 (708.6 Kb)

ppp0      Link encap:Point-to-Point Protocol
           inet addr:80.80.122.40  P-t-P:80.80.111.104  Mask:255.255.255.255
           UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
           RX packets:6770 errors:0 dropped:0 overruns:0 frame:0
           TX packets:5530 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0
           RX bytes:476957 (465.7 Kb)  TX bytes:2383572 (2.2 Mb)

eth0 и ppp0 - это adsl, но проблема не в них, а в eth1. От него идет 
витая пара (компьютер в компьютер) на 192.168.89.3 (Win XP). С опущенным 
iptables пинги ходят нормально. Если iptables поднять следующим скриптом

################################################################################
EXTERNAL_IFACE="ppp0"
INTERNAL_IFACE="eth0"
INTERNAL_IFACE_ATHLON="eth1"
LOCAL_IFACE="lo"
VIRTUAL_IFACE="vmnet1"
IPTABLES="/sbin/iptables"
################################################################################
# Проверка зависимостей в загружаемых IPTables modules
#
/sbin/depmod -a
/sbin/modprobe ip_conntrack_ftp
#
################################################################################
# Устанавливаем default policies для INPUT, FORWARD и OUTPUT chains
#
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
################################################################################
# Создаем дочерние chains для ICMP, TCP и UDP протоколов.
#
$IPTABLES -N icmp_in_ppp
$IPTABLES -N tcp_in_ppp
$IPTABLES -N udp_in_ppp
################################################################################
# Загружаем ICMP rules для входящих потоков
#
$IPTABLES -A icmp_in_ppp -p ICMP --icmp-type 3 -j ACCEPT
$IPTABLES -A icmp_in_ppp -p ICMP --icmp-type 0 -j ACCEPT
$IPTABLES -A icmp_in_ppp -p ICMP --icmp-type 11 -j ACCEPT
$IPTABLES -A icmp_in_ppp -m limit --limit 6/minute --limit-burst 1 -p 
ICMP --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_in_ppp -m limit --limit 2/minute --limit-burst 4 -j 
LOG --log-prefix "ICMP in ppp died: "
$IPTABLES -A icmp_in_ppp -p ICMP -j DROP
################################################################################
# Загружаем TCP rules для входящих потоков
#
$IPTABLES -A tcp_in_ppp -p TCP --syn --source 217.106.212.196 -j DROP
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 20 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 21 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 22 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 25 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 53 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --sport 53 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 80 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 993 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP --syn --dport 1250 -j ACCEPT
$IPTABLES -A tcp_in_ppp -p TCP -m state --state ESTABLISHED,RELATED -j 
ACCEPT
$IPTABLES -A tcp_in_ppp -m limit --limit 2/minute --limit-burst 4 -j LOG 
--log-prefix "TCP in ppp died: "
$IPTABLES -A tcp_in_ppp -p TCP -j DROP
################################################################################
# Загружаем UDP rules для входящих потоков
#
$IPTABLES -A udp_in_ppp -p UDP --dport 53 -j ACCEPT
$IPTABLES -A udp_in_ppp -p UDP --sport 53 -j ACCEPT
$IPTABLES -A udp_in_ppp -p UDP --dport 123 -j ACCEPT
$IPTABLES -A udp_in_ppp -p UDP --sport 123 -j ACCEPT
$IPTABLES -A udp_in_ppp -m limit --limit 3/minute --limit-burst 6 -j LOG 
--log-prefix "UDP in ppp died: "
$IPTABLES -A udp_in_ppp -p UDP -j DROP
################################################################################
# INPUT chain
#
# Регистрируем и удаляем "проблемные" TCP пакеты.
#
$IPTABLES -A INPUT -i $EXTERNAL_IFACE -p tcp ! --syn -m state --state 
NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A INPUT -i $EXTERNAL_IFACE -p tcp ! --syn -m state --state 
NEW -j DROP
################################################################################
# "Направляющие" для локальных и "перенаправляющие" для inet пакетов rules.
#
$IPTABLES -A INPUT -p TCP -i $LOCAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $VIRTUAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INTERNAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INTERNAL_IFACE_ATHLON -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $EXTERNAL_IFACE -j tcp_in_ppp

$IPTABLES -A INPUT -p UDP -i $LOCAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $VIRTUAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $INTERNAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $INTERNAL_IFACE_ATHLON -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $EXTERNAL_IFACE -j udp_in_ppp

$IPTABLES -A INPUT -p ICMP -i $LOCAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p ICMP -i $VIRTUAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p ICMP -i $INTERNAL_IFACE -j ACCEPT
$IPTABLES -A INPUT -p ICMP -i $INTERNAL_IFACE_ATHLON -j ACCEPT
$IPTABLES -A INPUT -p ICMP -i $EXTERNAL_IFACE -j icmp_in_ppp
################################################################################
# Регистрирующее rule для "неохваченных" пакетов.
#
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 6 -j LOG 
--log-prefix "IP INPUT packet died: "
################################################################################
# Корректировка уязвимости NAT
#
$IPTABLES -A OUTPUT -m state -p icmp --state INVALID -j DROP
modprobe ip_conntrack_ftp

то при попытках пинговать XP в логах вижу следующее

Apr 10 13:15:12 hostname kernel: IP INPUT packet died: IN=eth1 OUT= 
MAC=00:01:02:11:42:43:00:c0:26:31:62:ad:08:00 SRC=192.168.89.3 
DST=192.168.89.1 LEN=60 TOS=0x00 PREC=0x00 TTL=128 ID=837 PROTO=ICMP 
TYPE=8 CODE=0 ID=512 SEQ=10240

Ну и не проходят пинги. Аналогичная проблема с подключением к серверу 
Firebird на XP

Apr 10 13:20:50 hostname kernel: IP INPUT packet died: IN=eth1 OUT= 
MAC=00:01:02:11:42:43:00:c0:26:31:62:ad:08:00 SRC=192.168.89.3 
DST=192.168.89.1 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=882 DF PROTO=TCP 
SPT=3050 DPT=32833 WINDOW=64240 RES=0x00 ACK SYN URGP=0

Что я не так написал?
-- 
С уважением, Прокопьев Евгений




Подробная информация о списке рассылки community