Дано:
Офисная сеть, сервер OS Linux.
eth0 - 10.108.114.205 (Сетевая, которая смотрит во внешку и создает pppoe туннель)
eth1 - 192.168.10.1 (Сетевая, которая смотрит в локалку и раздает IP адреса через DHCP.
ppp0 - 82.199.106.93 (PPPoE туннель).Через eth1 раздаются IP адреса посредством DHCP. Стоит NAS хранилище, которое получает IP 192.168.10.106.
Требуется: сквозной проброс порта 21 через ppp0 на IP 192.168.10.106.
Т.е. клиент, подключающийся по протоколу FTP извне на IP 82.199.106.93 должен попасть на внутренний IP 192.168.10.106.
Правила IPTABLES:
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 21 -j DNAT --to-destination 192.168.10.106:21
iptables -A FORWARD -i ppp0 -d 192.168.10.106 -p tcp --dport 21 -j ACCEPT.
Если на сервер слушать tcpdump на интерфейсе ppp0 на порту 21, а с клиента подключатся telnet на 21 порту, то TCPDUMP показывает запросы(2 packets captured
2 packets received by filter).Если слушать tcpdump на интерфейсе eth0 - тишина.
Голову сломал, не могу найти ошибку, буду благодарен за любую помощь!
>Правила IPTABLES:
>
>iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 21 -j
>DNAT --to-destination 192.168.10.106:21
>iptables -A FORWARD -i ppp0 -d 192.168.10.106 -p tcp --dport 21 -j
>ACCEPTВы ошибаетесь. Это не правила iptables. Это две команды изменения _набора_ правил.
Какой набор получается в сумме, в результате исполнения скриптов _до_ этих двух команд, и после этих двух команд - совершенно никому не известно.
>Если слушать tcpdump на интерфейсе eth0 - тишина.Так и должно быть.
>Голову сломал, не могу найти ошибку, буду благодарен за любую помощь!
Всего лишь Ваша невнимательность.
>>Если слушать tcpdump на интерфейсе eth0 - тишина.
>
>Так и должно быть.
>
>>Голову сломал, не могу найти ошибку, буду благодарен за любую помощь!
>
>Всего лишь Ваша невнимательность.Скорее всего невнимательность, вы могли бы помочь мне и указать на место, где искать ошибку?
для ftp только 21 порта мало, читайте как работает ftp.что бы говорить о корректности правил iptables нужно видеть их все iptables-save.
так же tcpdump на интерфейсе eth1, отправляются ли пакеты на 192.168.10.106:21
>для ftp только 21 порта мало, читайте как работает ftp.
>
>что бы говорить о корректности правил iptables нужно видеть их все iptables-save.
>
>
>так же tcpdump на интерфейсе eth1, отправляются ли пакеты на 192.168.10.106:21Если в строке
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 21 -j DNAT --to-destination 192.168.10.106:21
вместо 192.168.10.106 написать 10.108.114.205 (IP внешнего интерфейса сервера) то по 21 порту можно подключится, но на FTP самого сервера соответственно.
Вот iptables-save:
# Generated by iptables-save v1.4.4 on Fri Mar 19 11:29:04 2010
*nat
:PREROUTING ACCEPT [1696:114455]
:POSTROUTING ACCEPT [186:15016]
:OUTPUT ACCEPT [287:22617]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.10.106:21
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri Mar 19 11:29:04 2010
# Generated by iptables-save v1.4.4 on Fri Mar 19 11:29:04 2010
*mangle
:PREROUTING ACCEPT [513:45651]
:INPUT ACCEPT [334:30859]
:FORWARD ACCEPT [156:13490]
:OUTPUT ACCEPT [241:32962]
:POSTROUTING ACCEPT [357:45745]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Fri Mar 19 11:29:04 2010
# Generated by iptables-save v1.4.4 on Fri Mar 19 11:29:04 2010
*filter
:INPUT ACCEPT [265:24667]
:FORWARD DROP [1:84]
:OUTPUT ACCEPT [193:21482]
:icmp_packets - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -d 82.199.106.93/32 -p icmp -j icmp_packets
-A INPUT -d 82.199.106.93/32 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -d 82.199.106.93/32 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -d 82.199.106.93/32 -p tcp -m tcp --dport 139 -j ACCEPT
-A INPUT -d 82.199.106.93/32 -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -d 82.199.106.93/32 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -d 82.199.106.93/32 -j DROP
-A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/16 -j ACCEPT
-A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/24 -j ACCEPT
-A FORWARD -d 192.168.10.106/32 -i ppp0 -p tcp -m tcp --dport 21 -j ACCEPT
-A FORWARD -j QUEUE
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 21 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
COMMIT
# Completed on Fri Mar 19 11:29:04 2010
>[оверквотинг удален]
>>
>>так же tcpdump на интерфейсе eth1, отправляются ли пакеты на 192.168.10.106:21
>
>Если в строке
>
>iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 21 -j
>DNAT --to-destination 192.168.10.106:21
>
>вместо 192.168.10.106 написать 10.108.114.205 (IP внешнего интерфейса сервера) то по 21 порту
>можно подключится, но на FTP самого сервера соответственно.при этом пакеты пойдут не через FORWARD, а через INPUT где для этого адреса все разрешено.
>
>Вот iptables-save:
>-A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/16 -j ACCEPT
>-A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/24 -j ACCEPT
>-A FORWARD -d 192.168.10.106/32 -i ppp0 -p tcp -m tcp --dport 21
>-j ACCEPT
>-A FORWARD -j QUEUEу вас если запрос приходит не от 192.168.0.0/24, ответы от 192.168.10.106 запрещены
tcpdump на интерфейсе eth1 смотрели?
>[оверквотинг удален]
>>-A FORWARD -s 192.168.0.0/24 -d 192.168.0.0/16 -j ACCEPT
>>-A FORWARD -s 192.168.0.0/16 -d 192.168.0.0/24 -j ACCEPT
>>-A FORWARD -d 192.168.10.106/32 -i ppp0 -p tcp -m tcp --dport 21
>>-j ACCEPT
>>-A FORWARD -j QUEUE
>
>у вас если запрос приходит не от 192.168.0.0/24, ответы от 192.168.10.106 запрещены
>
>
>tcpdump на интерфейсе eth1 смотрели?tcpdump -i eth1 tcp port 21 показывает кучу пакетов.
79 packets captured
79 packets received by filter
>[оверквотинг удален]
>>
>>у вас если запрос приходит не от 192.168.0.0/24, ответы от 192.168.10.106 запрещены
>>
>>
>>tcpdump на интерфейсе eth1 смотрели?
>
>tcpdump -i eth1 tcp port 21 показывает кучу пакетов.
>
>79 packets captured
>79 packets received by filterпри этом ответные от 192.168.10.106 есть?
>[оверквотинг удален]
>>>
>>>
>>>tcpdump на интерфейсе eth1 смотрели?
>>
>>tcpdump -i eth1 tcp port 21 показывает кучу пакетов.
>>
>>79 packets captured
>>79 packets received by filter
>
>при этом ответные от 192.168.10.106 есть?tcpdump -i eth1 tcp port 21 :
12:48:04.910901 IP 192.168.10.106.ftp > noname-vpn3.trancom.ru.51789: Flags [S.], seq 2299273655, ack 2079079591, win 5792, options [mss 1460,sackOK,TS val 69842666 ecr 9547175,nop,wscale 2], length 0
12:48:05.110904 IP 192.168.10.106.ftp > noname-vpn3.trancom.ru.51791: Flags [S.], seq 2298601304, ack 2077089798, win 5792, options [mss 1460,sackOK,TS val 69842686 ecr 9547226,nop,wscale 2], length 0
tcpdump -i ppp0 tcp port 21 :
12:49:03.546490 IP noname-vpn3.trancom.ru.51823 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3016542224, win 5840, options [mss 1420,sackOK,TS val 9555261 ecr 0,nop,wscale 4], length 0
12:49:03.929008 IP noname-vpn3.trancom.ru.51824 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3014892140, win 5840, options [mss 1420,sackOK,TS val 9555301 ecr 0,nop,wscale 4], length 0
>[оверквотинг удален]
>>>tcpdump -i eth1 tcp port 21 показывает кучу пакетов.
>>>
>>>79 packets captured
>>>79 packets received by filter
>>
>>при этом ответные от 192.168.10.106 есть?
>
>tcpdump -i eth1 tcp port 21 :
>
>12:48:04.910901 IP 192.168.10.106.ftp > noname-vpn3.trancom.ru.51789: Flags [S.], seq 2299273655, ack 2079079591, win 5792, options [mss 1460,sackOK,TS val 69842666 ecr 9547175,nop,wscale 2], length 0ответ идет, но iptables наверно эти пакеты убивает
iptables -I FORWARD -p tcp -s 192.168.10.106 -j ACCEPT
это разрешит все, что идет с 192.168.10.106>
>12:48:05.110904 IP 192.168.10.106.ftp > noname-vpn3.trancom.ru.51791: Flags [S.], seq 2298601304, ack 2077089798, win 5792, options [mss 1460,sackOK,TS val 69842686 ecr 9547226,nop,wscale 2], length 0
>
>tcpdump -i ppp0 tcp port 21 :
>
>12:49:03.546490 IP noname-vpn3.trancom.ru.51823 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3016542224, win 5840, options [mss 1420,sackOK,TS val 9555261 ecr 0,nop,wscale 4], length 0
>
>12:49:03.929008 IP noname-vpn3.trancom.ru.51824 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3014892140, win 5840, options [mss 1420,sackOK,TS val 9555301 ecr 0,nop,wscale 4], length 0
>[оверквотинг удален]
>это разрешит все, что идет с 192.168.10.106
>
>>
>>12:48:05.110904 IP 192.168.10.106.ftp > noname-vpn3.trancom.ru.51791: Flags [S.], seq 2298601304, ack 2077089798, win 5792, options [mss 1460,sackOK,TS val 69842686 ecr 9547226,nop,wscale 2], length 0
>>
>>tcpdump -i ppp0 tcp port 21 :
>>
>>12:49:03.546490 IP noname-vpn3.trancom.ru.51823 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3016542224, win 5840, options [mss 1420,sackOK,TS val 9555261 ecr 0,nop,wscale 4], length 0
>>
>>12:49:03.929008 IP noname-vpn3.trancom.ru.51824 > 82.199.106.93.iskratelecom.ru.ftp: Flags [S], seq 3014892140, win 5840, options [mss 1420,sackOK,TS val 9555301 ecr 0,nop,wscale 4], length 0Спасибо за помощь! Это действительно помогло! Я не очень хорошо еще знаю iptables, буду учить мат часть :)