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

портфорвардинг. Опять.

 ,


0

3

Прошло больше года с моей первой темы о проброске портов. Совет, который я там получил, успешно выручал меня долгое время, но сейчас почему-то он не хочет работать.
Ситуация стандартная: есть комп-роутер, с внешним интерфейсом eth2 с белым адресом, внутренним интерфейсом eth0 192.168.1.0/24. Во внутренней сети есть машина, 22й порт которой я хочу пробросить в «мир».

# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source         
# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             anywhere            tcp dpt:itap-ddtp to:192.168.1.48:22 

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Aug  1 03:18:52 2012
*filter
:INPUT ACCEPT [1399:166166]
:FORWARD ACCEPT [29519:24544494]
:OUTPUT ACCEPT [1175:144398]
COMMIT
# Completed on Wed Aug  1 03:18:52 2012
# Generated by iptables-save v1.4.7 on Wed Aug  1 03:18:52 2012
*nat
:PREROUTING ACCEPT [1225:117371]
:POSTROUTING ACCEPT [2:120]
:OUTPUT ACCEPT [119:8948]
-A POSTROUTING -o eth2 -j MASQUERADE 
COMMIT
# Completed on Wed Aug  1 03:18:52 2012
# Generated by iptables-save v1.4.7 on Wed Aug  1 03:18:52 2012
*mangle
:PREROUTING ACCEPT [52886:36464456]
:INPUT ACCEPT [3419:407648]
:FORWARD ACCEPT [49467:36056808]
:OUTPUT ACCEPT [2989:354824]
:POSTROUTING ACCEPT [52451:36410800]
COMMIT
# Completed on Wed Aug  1 03:18:52 2012
Затем пишу:
iptables -t nat -I PREROUTING -p tcp --dport 10000 -j DNAT --to-destination 192.168.1.48:22
и пытаюсь подконнектиться на 10000 порт внешнего адреса. Безуспешно.
cat /proc/sys/net/ipv4/ip_forward
1

Deleted

Ответ на: комментарий от sdio

запустил tcpdump -i eth2 -v | grep 10000 и попробовал зайти по ссх и просканить нмапом этот порт: в тцпдампе ничего не вылезло.

nmap -p 10000 <внешний ип>
Starting Nmap 6.01 ( http://nmap.org ) at 2012-07-31 23:39 MSK
Nmap scan report for hellheim.net (95.143.221.124)
Host is up (0.0014s latency).
PORT      STATE    SERVICE
10000/tcp filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 0.49 seconds

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

спасибо

# tcpdump -i any port 10100 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
03:43:02.498050 IP 192.168.1.8.51804 > 95.143.221.124.itap-ddtp: Flags [S], seq 291481051, win 14600, options [mss 1460,sackOK,TS val 60814145 ecr 0,nop,wscale 
7], length 0
03:43:02.498050 IP 192.168.1.8.51804 > 95.143.221.124.itap-ddtp: Flags [S], seq 291481051, win 14600, options [mss 1460,sackOK,TS val 60814145 ecr 0,nop,wscale 
7], length 0
03:43:03.501590 IP 192.168.1.8.51804 > 95.143.221.124.itap-ddtp: Flags [S], seq 291481051, win 14600, options [mss 1460,sackOK,TS val 60814446 ecr 0,nop,wscale 
7], length 0
03:43:03.501590 IP 192.168.1.8.51804 > 95.143.221.124.itap-ddtp: Flags [S], seq 291481051, win 14600, options [mss 1460,sackOK,TS val 60814446 ecr 0,nop,wscale 
7], length 0
....

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

Я не знаток iptables, так что использовал бы для проброса xinetd или сам ssh, как наименее геморройные и простые в отладке способы.
Так что оставлю вас наедине с вашей проблемой.
Ну точнее не наедине, а в надёжных руках sdio
Еще можно можно позвать mky для комплекта

zolden ★★★★★ ()
Последнее исправление: zolden (всего исправлений: 1)

iptables -t nat -I PREROUTING -i eth2 -p tcp --dport 10000 -j DNAT --to-destination 192.168.1.48:22
и на 192.168.1.48 default gw прописан?

lnx ()

EXT_IP=«x.x.x.x» # Он всё равно чаще всего один и тот же.

INT_IP=«y.y.y.y» # См. выше.

EXT_IF=eth0 # Внешний и внутренний интерфейсы.

INT_IF=eth1 # Для шлюза они вряд ли изменятся, поэтому можно прописать вручную.

FAKE_PORT=2222 # Вначале передаём скрипту «неправильный» порт на внешнем интерфейсе,

LAN_IP=192.168.1.48 # затем - локальный адрес сервера

SRV_PORT=22 # и в конце - реальный порт для подключения к серверу

# Здесь опять надо сделать проверку ввода данных, потому что операции всё ещё серьёзные.

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT

iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP

iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP

iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT

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

гейт на 1.48 есть и этото комп вполне себе выходит в инет через нат на 1.1

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

во-первых посмотри
tcpdump -i eth0 host 192.168.1.48

во-вторых: у 192.168.1.48 default gateway кто? этот комп-роутер

в-третьих: не проверяй изнутри (192.168.1.8), проверяй снаружи.

в-четвертых: iptables -t nat -I PREROUTING -i eth2 -p tcp --dport 10000 -j DNAT --to-destination 192.168.1.48:22

sdio ★★★★★ ()
Ответ на: комментарий от sdio
# iptables-save
# Generated by iptables-save v1.4.7 on Wed Aug  1 13:17:28 2012
*mangle
:PREROUTING ACCEPT [1243:219882]
:INPUT ACCEPT [572:88572]
:FORWARD ACCEPT [590:109889]
:OUTPUT ACCEPT [486:56993]
:POSTROUTING ACCEPT [1077:166914]
COMMIT
# Completed on Wed Aug  1 13:17:28 2012
# Generated by iptables-save v1.4.7 on Wed Aug  1 13:17:28 2012
*nat
:PREROUTING ACCEPT [194:34729]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [129:9035]
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
# Completed on Wed Aug  1 13:17:28 2012
# Generated by iptables-save v1.4.7 on Wed Aug  1 13:17:28 2012
*filter
:INPUT ACCEPT [572:88572]
:FORWARD ACCEPT [590:109889]
:OUTPUT ACCEPT [486:56993]
COMMIT
# Completed on Wed Aug  1 13:17:28 2012

к этому добавляю

iptables -t nat -I PREROUTING -i eth2 -p tcp --dport 10000 -j DNAT --to-destination 192.168.1.48:22
попробовал зайти с телефона - сработало, с самого шлюза - нет.
Сканю nmap'ом с самого hellheim.net:
# nmap -A -p 10000 hellheim.net
Starting Nmap 5.51 ( http://nmap.org ) at 2012-08-01 13:23 MSK
Nmap scan report for hellheim.net (95.143.221.124)
Host is up (0.000031s latency).
PORT      STATE  SERVICE          VERSION
10000/tcp closed snet-sensor-mgmt
Too many fingerprints match this host to give specific OS details
Network Distance: 0 hops
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.83 seconds
Почему так?

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