NAT один в один (iptables+iproute)

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mrBuG
рядовой
Сообщения: 23
Зарегистрирован: 2009-01-27 7:05:47
Откуда: Томск
Контактная информация:

NAT один в один (iptables+iproute)

Непрочитанное сообщение mrBuG » 2009-02-16 7:30:18

Задача: сделать трансляцию адресов 192.168.168.0/24 в 10.9.8.0/24 и обратно соответственно
Используется iproute2 + iptables, но...
В общем по порядку
ip rules list:

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

0:      from all lookup local
13:     from 192.168.168.3 lookup rspd map-to 10.9.8.3
14:     from 192.168.168.4 lookup rspd map-to 10.9.8.4
15:     from 192.168.168.5 lookup rspd map-to 10.9.8.5
16:     from 192.168.168.6 lookup rspd map-to 10.9.8.6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
1253:   from 192.168.168.253 lookup rspd map-to 10.9.8.253
32766:  from all lookup main
ip route list table rspd:

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

192.168.168.0/24 dev eth0  scope link
127.0.0.0/8 dev lo  scope link
default via 10.9.8.1 dev eth2
ip route list table local | grep ^nat:

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

nat 10.9.8.3 via 192.168.168.3  scope host
nat 10.9.8.4 via 192.168.168.4  scope host
nat 10.9.8.5 via 192.168.168.5  scope host
nat 10.9.8.6 via 192.168.168.6  scope host
При таком раскладе частично работает, но... iptables не пропускает пакеты по правилам

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

iptables -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
Не мог понять в чем дело, пока не глянул в /proc/net/ip_conntrack и в случае попытки установить соединение с 80.93.57.207 увидел следующее:

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

tcp      6 119 SYN_SENT src=80.93.57.207 dst=10.9.8.203 sport=80 dport=2088 [UNREPLIED] src=10.9.8.203 dst=80.93.57.207 sport=2088 dport=80 use=1
tcp      6 119 SYN_SENT src=192.168.168.203 dst=80.93.57.207 sport=2088 dport=80 [UNREPLIED] src=80.93.57.207 dst=192.168.168.203 sport=80 dport=2088 use=1
Источник имеет адрес 192.168.168.203 а ответ классифицируется как на 10.9.8.203
Получается, что трассировщик состояния tcp пакетов в данном случае бессилен или я что напутал?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение zingel » 2009-02-16 7:40:41

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

tcpdump -xxx -vvv -ttt

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

iptables -L
Z301171463546 - можно пожертвовать мне денег

mrBuG
рядовой
Сообщения: 23
Зарегистрирован: 2009-01-27 7:05:47
Откуда: Томск
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение mrBuG » 2009-02-16 8:15:55

tcpdump -xxx -vvv -ttt -i eth2 -n | grep 80.93.57:

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

392156 10.9.8.203.2833 > 80.93.57.207.http: S [tcp sum ok] 2621085679:2621085679(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 127, id 5248, len 48)
060575 80.93.57.207.http > 10.9.8.203.2833: S [tcp sum ok] 1782951761:1782951761(0) ack 2621085680 win 32768 <mss 1380,sackOK,eol> (DF) (ttl 51, id 64987, len 48)
001353 10.9.8.203.2833 > 80.93.57.207.http: S [tcp sum ok] 2621085679:2621085679(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 127, id 5255, len 48)
011099 80.93.57.207.http > 10.9.8.203.2833: S [tcp sum ok] 1782951761:1782951761(0) ack 2621085680 win 32768 <mss 1380,sackOK,eol> (DF) (ttl 51, id 1190, len 48)
300831 80.93.57.207.http > 10.9.8.203.2832: S [tcp sum ok] 2991366314:2991366314(0) ack 966727225 win 32768 <mss 1380,sackOK,eol> (DF) (ttl 51, id 1817, len 48)
073898 80.93.57.207.http > 10.9.8.203.2833: S [tcp sum ok] 1782951761:1782951761(0) ack 2621085680 win 32768 <mss 1380,sackOK,eol> (DF) (ttl 51, id 2121, len 48)
1. 246726 10.9.8.203.2833 > 80.93.57.207.http: S [tcp sum ok] 2621085679:2621085679(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 127, id 5315, len 48)
059918 80.93.57.207.http > 10.9.8.203.2833: S [tcp sum ok] 1782951761:1782951761(0) ack 2621085680 win 32768 <mss 1380,sackOK,eol> (DF) (ttl 51, id 2539, len 48)
tcpdump -xxx -vvv -ttt -i eth0 -n | grep 80.93.57:

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

tcpdump: listening on eth0
283935 192.168.168.203.2832 > 80.93.57.207.http: S [tcp sum ok] 966727224:966727224(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 128, id 4988, len 48)
223274 192.168.168.203.2832 > 80.93.57.207.http: S [tcp sum ok] 966727224:966727224(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 128, id 4999, len 48)
101912 192.168.168.203.2832 > 80.93.57.207.http: S [tcp sum ok] 966727224:966727224(0) win 65535 <mss 1460,nop,nop,sackOK> (ttl 128, id 5058, len 48)
iptables -L:

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

Chain INPUT (policy DROP)
target     prot opt source               destination
bad_tcp_packets  tcp  --  anywhere             anywhere
icmp_packets  icmp --  anywhere             anywhere
ACCEPT     all  --  192.168.168.0/24      anywhere
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere           tcp dpt:smtp
ACCEPT     udp  --  anywhere             anywhere           udp spt:domain
ACCEPT     all  --  anywhere             anywhere           state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     250  --  anywhere             anywhere

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
bad_tcp_packets  tcp  --  anywhere             anywhere
icmp_packets  icmp --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
bad_tcp_packets  tcp  --  anywhere             anywhere
icmp_packets  icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain bad_tcp_packets (3 references)
target     prot opt source               destination
REJECT     tcp  --  anywhere             anywhere           tcp flags:SYN,ACK/SYN,ACK state NEW reject-with tcp-reset
DROP       tcp  --  anywhere             anywhere           tcp flags:!SYN,RST,ACK/SYN state NEW

Chain icmp_packets (3 references)
target     prot opt source               destination
ACCEPT     icmp --  anywhere             anywhere           limit: avg 10/sec burst 5

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение zingel » 2009-02-16 9:13:22

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

netstat -antup
Z301171463546 - можно пожертвовать мне денег

mrBuG
рядовой
Сообщения: 23
Зарегистрирован: 2009-01-27 7:05:47
Откуда: Томск
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение mrBuG » 2009-02-16 9:38:06

netstat -antup:

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

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:1024            0.0.0.0:*               LISTEN      745/rpc.statd
tcp        0      0 127.0.0.1:1025          0.0.0.0:*               LISTEN      909/xinetd
tcp        0      0 217.29.29.29:17575     0.0.0.0:*               LISTEN      13917/rinetd
tcp        0      0 0.0.0.0:2601            0.0.0.0:*               LISTEN      1296/zebra
tcp        0      0 0.0.0.0:2602            0.0.0.0:*               LISTEN      1298/ripd
tcp        0      0 0.0.0.0:1100            0.0.0.0:*               LISTEN      1055/_httpd
tcp        0      0 192.168.168.2:110        0.0.0.0:*               LISTEN      909/xinetd
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      726/portmap
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      946/httpd
tcp        0      0 10.9.8.254:53         0.0.0.0:*               LISTEN      878/named
tcp        0      0 172.16.254.20:53        0.0.0.0:*               LISTEN      878/named
tcp        0      0 192.168.168.2:21         0.0.0.0:*               LISTEN      909/xinetd
tcp        0      0 217.29.29.29:53        0.0.0.0:*               LISTEN      878/named
tcp        0      0 192.168.168.2:53         0.0.0.0:*               LISTEN      878/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      878/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      30889/sshd
tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      17204/(squid)
tcp        0      0 192.168.168.2:1080       0.0.0.0:*               LISTEN      909/xinetd
tcp        0      0 217.29.29.29:25        0.0.0.0:*               LISTEN      349/sendmail: accep
tcp        0      0 192.168.168.2:25         0.0.0.0:*               LISTEN      349/sendmail: accep
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      349/sendmail: accep
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      878/named
tcp        0      0 217.29.29.29:3389      0.0.0.0:*               LISTEN      13917/rinetd
tcp        0      0 192.168.168.2:3128       192.168.168.203:1944     ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.246:1205     ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:3580      205.188.5.234:5190      ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:1051      64.12.26.66:5190        ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.5:1224       ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:3197      64.12.25.145:5190       ESTABLISHED 17204/(squid)
tcp    52791      0 217.29.29.29:2182      92.255.72.14:80         CLOSE_WAIT  17204/(squid)
tcp        0      0 127.0.0.1:2126          127.0.0.1:2125          ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:2293      205.188.8.229:5190      ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2125          127.0.0.1:2126          ESTABLISHED 1382/(ncsa_auth)
tcp        0      0 127.0.0.1:2128          127.0.0.1:2127          ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2127          127.0.0.1:2128          ESTABLISHED 1383/(ncsa_auth)
tcp        0      0 192.168.168.2:3128       192.168.168.239:3302     ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2130          127.0.0.1:2129          ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.247:1103     ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2129          127.0.0.1:2130          ESTABLISHED 1384/(ncsa_auth)
tcp        0      0 217.29.29.29:2691      194.186.55.19:443       ESTABLISHED 17204/(squid)
tcp        0  12927 192.168.168.2:3128       192.168.168.5:1169       ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2132          127.0.0.1:2131          ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:2459      63.216.49.209:80        TIME_WAIT   -
tcp        0      0 217.29.29.29:4243      205.188.9.45:5190       ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2131          127.0.0.1:2132          ESTABLISHED 1385/(ncsa_auth)
tcp        0      0 127.0.0.1:2134          127.0.0.1:2133          ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.213:1097     ESTABLISHED 17204/(squid)
tcp        0      0 127.0.0.1:2133          127.0.0.1:2134          ESTABLISHED 1386/(ncsa_auth)
tcp        0      0 217.29.29.29:1998      64.12.28.106:5190       ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.223:1168     ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.238:1089     ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:2249      217.29.89.42:700        ESTABLISHED 1306/vtund[c]: tumi
tcp        0      0 217.29.29.29:2455      84.53.136.145:80        TIME_WAIT   -
tcp        0      0 192.168.168.2:22         192.168.168.203:1193     ESTABLISHED 27134/sshd
tcp        0      0 192.168.168.2:3128       192.168.168.248:1110     ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:2757      64.12.25.156:5190       ESTABLISHED 17204/(squid)
tcp        0      0 217.29.29.29:2782      205.188.9.220:5190      ESTABLISHED 17204/(squid)
tcp        0      0 192.168.168.2:3128       192.168.168.244:1322     ESTABLISHED 17204/(squid)
udp        0      0 0.0.0.0:1024            0.0.0.0:*                           745/rpc.statd
udp        0      0 0.0.0.0:1025            0.0.0.0:*                           878/named
udp        0      0 0.0.0.0:520             0.0.0.0:*                           1298/ripd
udp        0      0 0.0.0.0:3632            0.0.0.0:*                           17204/(squid)
udp        0      0 10.9.8.254:53         0.0.0.0:*                           878/named
udp        0      0 172.16.254.20:53        0.0.0.0:*                           878/named
udp        0      0 217.29.29.29:53        0.0.0.0:*                           878/named
udp        0      0 192.168.168.2:53         0.0.0.0:*                           878/named
udp        0      0 127.0.0.1:53            0.0.0.0:*                           878/named
udp        0      0 192.168.168.2:3130       0.0.0.0:*                           17204/(squid)
udp        0      0 0.0.0.0:111             0.0.0.0:*                           726/portmap

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение zingel » 2009-02-16 9:39:17

даже CLOSE_WAIT не одного нет, нда, а в sysctl чего крутил?
Z301171463546 - можно пожертвовать мне денег

mrBuG
рядовой
Сообщения: 23
Зарегистрирован: 2009-01-27 7:05:47
Откуда: Томск
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение mrBuG » 2009-02-16 9:53:51

Ничего не крутил :) Роутер достался в нагрузку от старого админа
Переустанавливать нет времени, да и в Linux покопаться не грех для опыта

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: NAT один в один (iptables+iproute)

Непрочитанное сообщение zingel » 2009-02-16 9:56:55

по-хорошему, конечно, если работает, то и пёс с ним
Z301171463546 - можно пожертвовать мне денег