Проброс портов

Автор oblomkrs, 04 декабря 2012, 09:23:51

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

oblomkrs

Здраствуйте.Я начинающий пользователь линукс так что если можете поясните попроще.Есть серверная машина с двумя сетевухами.В первую сетевуху (eth0) напрямую воткнуть кабель интернета.Вторая сетевуха (eth1)раздаёт инет в сеть.Так вот как мне пробросить порт 4898 для радмина(чтоб я мог из вне подключатся ко второй машине с виндовс по радмину).То есть как я понимаю мне нужно с eth0 пробросить порт 4898 на eth1.Заранее спасибо за ответы.
P.S
Делаю вот так ничего неполучается:
iptables -t nat -A PREROUTING -p tcp -m tcp -d 37.205.48.186 --dport 4898 -j DNAT --to-destination 192.168.56.1:4898
iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.56.1 --sport 4898 -j SNAT --to-source 37.205.48.186:4898

corner


oblomkrs

Пишет команда sysctl-a не найдена

qupl

Цитата: oblomkrs от 05 декабря 2012, 04:41:02
Пишет команда sysctl-a не найдена
пробел пропустили

oblomkrs

непойму какой пробел?

qupl


oblomkrs

root@server:~# sysctl -a|grep ip_forwarding
error: "Success" reading key "dev.parport.parport0.autoprobe"
error: "Success" reading key "dev.parport.parport0.autoprobe0"
error: "Success" reading key "dev.parport.parport0.autoprobe1"
error: "Success" reading key "dev.parport.parport0.autoprobe2"
error: "Success" reading key "dev.parport.parport0.autoprobe3"
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush'
root@server:~#

corner

Опечатка вышла... сорри.
Цитировать# sysctl -a |grep forward
Эта команда проверяет, включен ли форвардинг в системе.
Если выдаст нули, значит орвардинг не включен, тогда команды iptables по перенаправлению пакетов теряют смысл. Чтобы заработало, нужно включить соответсвующий параметр, обычно net.ipv4.conf.all.forwarding или net.ipv4.ip_forward  правкой /etc/sysctl.conf. К сожалению в man страницах этого нет, читать нужно в linux-doc раздел sysctl.

fry

iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 4898 -j DNAT --to-destination 192.168.56.1
iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.56.1 --sport 4898 -j SNAT --to-source 37.205.48.186

В /etc/sysctl.conf раскомментируйте net.ipv4.ip_forward=1
Перезагрузите шлюз и пробуйте. Если не поможет, то вывод iptables -vL приложите сюда.
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум

oblomkrs

#9
Цитата: fry от 05 декабря 2012, 13:38:33Опечатка вышла... сорри.Цитировать (выделенное)# sysctl -a |grep forward
Открыть содержимое (спойлер)
root@server:~# sysctl -a |grep forward
error: "Success" reading key "dev.parport.parport0.autoprobe"
error: "Success" reading key "dev.parport.parport0.autoprobe0"
error: "Success" reading key "dev.parport.parport0.autoprobe1"
error: "Success" reading key "dev.parport.parport0.autoprobe2"
error: "Success" reading key "dev.parport.parport0.autoprobe3"
error: permission denied on key 'net.ipv4.route.flush'
error: permission denied on key 'net.ipv6.route.flush'
net.ipv4.conf.all.forwarding = 1
net.ipv4.conf.all.mc_forwarding = 0
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.mc_forwarding = 0
net.ipv4.conf.lo.forwarding = 1
net.ipv4.conf.lo.mc_forwarding = 0
net.ipv4.conf.eth0.forwarding = 1
net.ipv4.conf.eth0.mc_forwarding = 0
net.ipv4.conf.eth1.forwarding = 1
net.ipv4.conf.eth1.mc_forwarding = 0
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth1.forwarding = 0
net.ipv6.conf.eth1.mc_forwarding = 0
root@server:~#
[свернуть]

Строка net.ipv4.ip_forward=1 раскоментированна

iptables -vL
Открыть содержимое (спойлер)
root@server:~# iptables -vL
Chain INPUT (policy ACCEPT 5143 packets, 315K bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 901 packets, 246K bytes)
pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     udp  --  eth0   eth1    anywhere             192.168.56.1        udp dpt:4898
    0     0 ACCEPT     tcp  --  eth0   eth1    anywhere             192.168.56.1        tcp dpt:4898

Chain OUTPUT (policy ACCEPT 8941 packets, 13M bytes)
pkts bytes target     prot opt in     out     source               destination
root@server:~#
[свернуть]






fry

А если еще так попробовать? iptables -vL -t nat
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум

oblomkrs

Цитата: fry от 05 декабря 2012, 14:32:50А если еще так попробовать? Код: [Выделить]iptables -vL -t nat 
Открыть содержимое (спойлер)

root@server:~# iptables -vL -t nat
Chain PREROUTING (policy ACCEPT 3904 packets, 265K bytes)
pkts bytes target     prot opt in     out     source               destination
    1    60 DNAT       tcp  --  any    any     anywhere             host-37-205-48-186.bbcustomer.zsttk.net tcp dpt:4898 to:192.168.56.1
    0     0 DNAT       udp  --  any    any     anywhere             host-37-205-48-186.bbcustomer.zsttk.net udp dpt:4898 to:192.168.56.1
    0     0 DNAT       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:4898 to:192.168.56.1

Chain POSTROUTING (policy ACCEPT 164 packets, 9752 bytes)
pkts bytes target     prot opt in     out     source               destination
  963 94452 MASQUERADE  all  --  any    eth0    anywhere             anywhere   
    0     0 SNAT       tcp  --  any    eth0    192.168.56.1         anywhere            tcp spt:4898 to:37.205.48.186

Chain OUTPUT (policy ACCEPT 415 packets, 29784 bytes)
pkts bytes target     prot opt in     out     source               destination
root@server:~#
[свернуть]

fry

Должно все работать. Правила дублируются, правда, но это не критично. Я так понимаю, это на виртуальную машину проброс. Может сделать в настройках сети виртуальной машины тип подключения nat и там же добавить проброс портов?
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум

oblomkrs

Это не на виртуальную машину проброс.Это вторая машина с виндой.И там стоит радмин который работает на порту 4898.И из вне я немогу к ней приконектится

fry

Тогда
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t nat -A PREROUTING  -i eth0 -p tcp --dport 4898 -j DNAT --to-destination 192.168.56.1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Не добавляя других правил. При политиках по умолчанию ACCEPT (а у вас я вижу их), этого вполне достаточно для работы при условии, что форвардинг разрешен в systemctl (что я тоже наблюдаю в листингах)
Товарищи призывники! Надо понимать всю глубину наших глубин!

Руководство по добавлению изображений на форум