Есть linux Fedora Core4 в ней две сетевухи:
eth0 y.y.y.78 (локалка)
eth1 x.x.x.163(инет)
Есть lotus Domino IP: y.y.y.80Надо открыть порт 1352, чтобы все пакеты с x.x.x.163 он перекилывал на y.y.y.80.
Прописал командой
iptables -t nat -A PREROUTING -p tcp -d x.x.x.163 --dport 1352 -j DNAT --to-destination y.y.y.80:1352
iptables -A FORWARD -i eth0 -d y.y.y.80 -p tcp --dport 1352 -j ACCEPT
Проверям доступ к лотусу telnet y.y.y.80:1352 и получаем
Trying y.y.y.80...
Connected to svd (y.y.y.80).
Escape character is '^]'. и все
если же проверем по 25 порту то все ок.Trying y.y.y.80...
Connected to svd (y.y.y.80).
Escape character is '^]'.
220 svd.mail.zzz.ru ESMTP Service (Lotus Domino Release 7.0) ready at Fri, 12 Sep 2008 13:34:20 +0400
$SUBJ А в чём вопрос? :-P---
iptables-save в студию; копай в сторону _все_ правила про "port 25" повторять на "порт 1352" лад...
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1352 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
Еще посоветовали сделать так
iptables -t nat -A PREROUTING -p tcp -d x.x.x.163 --dport 1352 -j DNAT --to-destination y.y.y.80:1352
iptables -A FORWARD -i eth1 -d y.y.y.80 -p tcp --dport 1352 -j ACCEPT
а проверять:
telnet y.y.y.163:1352
Если Вам нужен именно порт 1352 на машине с лотусом.После это произошло вот что:
x.x.x.163:25/telnet: Name or service not known
тоже самое и по y.y.y.80
># Firewall configuration written by system-config-securitylevel1/ Это не вывод iptables-save, не так ли?
Либо Вы показываете _одно_ (текущее, полное) состояние netfilter-а, и те, кто берётся помогать - пляшут от печки, либо вы продолжаете писать много-много несвязных сообщений про "и так не работает, и эдак, а ещё советовали - и тоже никак" -- в одиночестве?
># Manual customization of this file is not recommended.
>*filter2/ Таблица nat - пустая?...
...
3/ telnet с _самого_ роутера никогда не попадёт на (D)NAT в PREROUTING. Как "у них" всё запутано, правда?---
0/ RH-Firewall... http://linux.ncl.ac.uk/firewall/ - с картинками проще? ...по-русски? http://wiki.linuxformat.ru/index.php/LXF87-88:%D0%... не, не то.
>eth0 y.y.y.78 (локалка)
>eth1 x.x.x.163(инет)
>iptables -t nat -A PREROUTING -p tcp -d x.x.x.163 --dport 1352 -j DNAT --to-destination y.y.y.80:1352А SNAT вы добавили?
>iptables -A FORWARD -i eth0 -d y.y.y.80 -p tcp --dport 1352 -j
>ACCEPT-i это входящий интерфейс, а увас входящим будет eth1, более того его можно вообще не писать в правилах. Кроме того все правила ната лучше проверять при полностью открытом forward и только после этого начинать его закрывать.
>Trying y.y.y.80...
И откуда вы это делаете из инета или с шлюза? В зависимости от ответа SNAT нужно делать разным. То есть если y.y.y.80 работает из инета, то вам нужно подменить адресс уходящих на y.y.y.80 пакетов дабы они возвращались на шлюз, а не напрямую. Если нет, то нужен snat приходящих с y.y.y.80 пакетов, хотя можно опять таки обойтись и первым вариантом.
>[оверквотинг удален]
>его закрывать.
>
>>Trying y.y.y.80...
>
>И откуда вы это делаете из инета или с шлюза? В зависимости
>от ответа SNAT нужно делать разным. То есть если y.y.y.80 работает
>из инета, то вам нужно подменить адресс уходящих на y.y.y.80 пакетов
>дабы они возвращались на шлюз, а не напрямую. Если нет, то
>нужен snat приходящих с y.y.y.80 пакетов, хотя можно опять таки обойтись
>и первым вариантом.А можно чуть поподробней
>А SNAT вы добавили?
>>iptables -A FORWARD -i eth0 -d y.y.y.80 -p tcp --dport 1352 -j
>>ACCEPTА куда его добавить надо?
>И откуда вы это делаете из инета или с шлюза?Делаю со шлюза.
>
>>И откуда вы это делаете из инета или с шлюза?
>
>Делаю со шлюза.со шлюза нормально проброс не проверите или из инета, или на внешний интерфейс временно подключите другую машину, пропишите ей адрес как у шлюза провайдера и проверьте с нее.
>>
>>>И откуда вы это делаете из инета или с шлюза?
>>
>>Делаю со шлюза.
>
>со шлюза нормально проброс не проверите или из инета, или на внешний
>интерфейс временно подключите другую машину, пропишите ей адрес как у шлюза
>провайдера и проверьте с нее.
>
>http://www.opennet.me/docs/RUS/iptables/Результат тот же:(
>[оверквотинг удален]
>>>
>>>Делаю со шлюза.
>>
>>со шлюза нормально проброс не проверите или из инета, или на внешний
>>интерфейс временно подключите другую машину, пропишите ей адрес как у шлюза
>>провайдера и проверьте с нее.
>>
>>http://www.opennet.me/docs/RUS/iptables/
>
>Результат тот же:(так а NAT сделан? в показанных правилах ни про SNAT, ни про DNAT ничего не видно.
покажите весь вывод iptables-save, а если это и был весь, то никакого проброса там нет.
>так а NAT сделан? в показанных правилах ни про SNAT, ни про
>DNAT ничего не видно.
>покажите весь вывод iptables-save, а если это и был весь, то никакого
>проброса там нет.NAT в другой таблице =) показана таблица filter
http://www.opennet.me/docs/RUS/iptables/#DNATTARGET
Ваш случай, читайте внимательней
INTIF=eth0 #y.y.y.78 (локалка)
EXTIF=eth1 #x.x.x.163 (инет)
LAN_IP=$(ifconfig $INTIF | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
DOMINO=y.y.y.80iptables -t nat -A PREROUTING -i $EXTIF -p tcp --dport 1352 -j DNAT --to-destination $DOMINO
iptables -t nat -A POSTROUTING -o $INTIF -p tcp --dport 1352 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i $EXTIF -m state --state NEW -p tcp -d $DOMINO --dport 1352 -j ACCEPT
Последние действия/etc/init.d/iptables restart
iptables -t nat -A PREROUTING -p tcp -d x.x.x.163 --dport 1352 -j DNAT --to-destination y.y.y.80:1352 #подмена адреса назначения
iptables -A FORWARD -d y.y.y.80 -p tcp --dport 1352 -j ACCEPT #разрешаем форвард к локальной машине
iptables -t nat -A POSTROUTING -d y.y.y.80 -p tcp --dport 1352 -j SNAT --to-source y.y.y.78 #подмена адреса источника (для целей маршрутизации в локалке)
iptables -t nat -A OUTPUT -d x.x.x.163 -p tcp --dport 1352 -j DNAT --to-destination y.y.y.80 #подмена адреса назначения (для работы с роутера)
/etc/init.d/iptables saveНо почему то все равно не работает:(
>[оверквотинг удален]
>iptables -A FORWARD -d y.y.y.80 -p tcp --dport 1352 -j ACCEPT #разрешаем
>форвард к локальной машине
>iptables -t nat -A POSTROUTING -d y.y.y.80 -p tcp --dport 1352 -j
>SNAT --to-source y.y.y.78 #подмена адреса источника (для целей маршрутизации в локалке)
>
>iptables -t nat -A OUTPUT -d x.x.x.163 -p tcp --dport 1352 -j
>DNAT --to-destination y.y.y.80 #подмена адреса назначения (для работы с роутера)
>/etc/init.d/iptables save
>
>Но почему то все равно не работает:(если не будите отвечать на дополнительные вопросы, то так гадать можно очень долго
1 если из локалки обращаться на y.y.y.80:1352, то работает?
и если в локалке серые адреса то зачем прячите их, если белые то понятно, но маску подсети не мешало бы показать?
2 вывод cat /proc/sys/net/ipv4/ip_forward
3 весь вывод iptables-save
4 ifconfig
5 route -n
>1 если из локалки обращаться на y.y.y.80:1352, то работает?Trying y.y.y.80...
Connected to suv.mail.zzz.ru (y.y.y.80).
Escape character is '^]'.
>и если в локалке серые адреса то зачем прячите их, если белые
>то понятно, но маску подсети не мешало бы показать?адреса серые маска 255.255.255.0
>2 вывод cat /proc/sys/net/ipv4/ip_forward0
>3 весь вывод iptables-save# Generated by iptables-save v1.3.5 on Tue Sep 16 13:21:08 2008
*nat
:PREROUTING ACCEPT [14086:1620410]
:POSTROUTING ACCEPT [10945:605186]
:OUTPUT ACCEPT [10949:605394]
-A PREROUTING -d x.x.x.163 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.61.10:3389
-A PREROUTING -d x.x.x.163 -p tcp -m tcp --dport 1352 -j DNAT --to-destination 192.168.61.80:1352
-A POSTROUTING -d 192.168.61.10 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.61.78
-A POSTROUTING -d 192.168.61.80 -p tcp -m tcp --dport 1352 -j SNAT --to-source 192.168.61.78
-A OUTPUT -d x.x.x.163 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.61.10
-A OUTPUT -d x.x.x.163 -p tcp -m tcp --dport 1352 -j DNAT --to-destination 192.168.61.80
COMMIT
# Completed on Tue Sep 16 13:21:08 2008
# Generated by iptables-save v1.3.5 on Tue Sep 16 13:21:08 2008
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [117683:62826199]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A FORWARD -d 192.168.61.10 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -d 192.168.61.80 -p tcp -m tcp --dport 1352 -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1352 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT>4 ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:95:FC:4B:1B
inet addr:192.168.61.78 Bcast:192.168.61.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fefc:4b1b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1531889 errors:0 dropped:0 overruns:0 frame:0
TX packets:1864008 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:256431045 (244.5 MiB) TX bytes:1638291727 (1.5 GiB)
Interrupt:18 Base address:0xe000eth1 Link encap:Ethernet HWaddr 00:01:6C:DE:BC:C8
inet addr:x.x.x.163 Bcast:x.x.x.167 Mask:255.255.255.248
inet6 addr: x::x:6cff:fede:bcc8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1517321 errors:0 dropped:0 overruns:0 frame:0
TX packets:1156957 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1585000241 (1.4 GiB) TX bytes:200978292 (191.6 MiB)lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:34742 errors:0 dropped:0 overruns:0 frame:0
TX packets:34742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11475582 (10.9 MiB) TX bytes:11475582 (10.9 MiB)peth1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:1526228 errors:0 dropped:0 overruns:0 frame:0
TX packets:1169510 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1585592976 (1.4 GiB) TX bytes:202586891 (193.2 MiB)
Interrupt:19 Base address:0xc000vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:1156957 errors:0 dropped:0 overruns:0 frame:0
TX packets:1517321 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:200978292 (191.6 MiB) TX bytes:1585000241 (1.4 GiB)xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:5980 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:279144 (272.6 KiB) TX bytes:0 (0.0 b)>5 route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.x.x.160 0.0.0.0 255.255.255.248 U 0 0 0 eth1
192.168.61.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 x.x.x.161 0.0.0.0 UG 0 0 0 eth1
>[оверквотинг удален]
> 0 eth0
>169.254.0.0 0.0.0.0
> 255.255.0.0 U
> 0 0
> 0 eth1
>0.0.0.0 x.x.x.161
> 0.0.0.0
> UG 0
> 0 0 eth1
>разрешить пересылку между интерфейсами
echo 1 > /proc/sys/net/ipv4/ip_forwardпро lotus незнаю
>[оверквотинг удален]
>>0.0.0.0 x.x.x.161
>> 0.0.0.0
>> UG 0
>> 0 0 eth1
>>
>
>разрешить пересылку между интерфейсами
>echo 1 > /proc/sys/net/ipv4/ip_forward
>
>про lotus незнаюладно слотусом одновременно я пытаюсь открыть порт 3389 для подключения к терминалу (192.168.61.10) такая же байда:(
>[оверквотинг удален]
>>> 0 0 eth1
>>>
>>
>>разрешить пересылку между интерфейсами
>>echo 1 > /proc/sys/net/ipv4/ip_forward
>>
>>про lotus незнаю
>
>ладно слотусом одновременно я пытаюсь открыть порт 3389 для подключения к терминалу
>(192.168.61.10) такая же байда:(с другой машины, из сети 192.168.61.0 тоже не подключается, только пробуйте на 192.168.61.10, а не на внешний? если соединение нет, то это проблема не на FC4, а скорей всего на 192.168.61.10 / 192.168.61.80
>с другой машины, из сети 192.168.61.0 тоже не подключается, только пробуйте на
>192.168.61.10, а не на внешний? если соединение нет, то это проблема
>не на FC4, а скорей всего на 192.168.61.10 / 192.168.61.80Внутри сетки все замечательно работает, а вот когда извне подключаюсь тут облом:(
>
>>с другой машины, из сети 192.168.61.0 тоже не подключается, только пробуйте на
>>192.168.61.10, а не на внешний? если соединение нет, то это проблема
>>не на FC4, а скорей всего на 192.168.61.10 / 192.168.61.80
>
>Внутри сетки все замечательно работает, а вот когда извне подключаюсь тут облом:(
>из таблицы фильтров можете временно удалить
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
и попробывать
>[оверквотинг удален]
>>>с другой машины, из сети 192.168.61.0 тоже не подключается, только пробуйте на
>>>192.168.61.10, а не на внешний? если соединение нет, то это проблема
>>>не на FC4, а скорей всего на 192.168.61.10 / 192.168.61.80
>>
>>Внутри сетки все замечательно работает, а вот когда извне подключаюсь тут облом:(
>>
>
>из таблицы фильтров можете временно удалить
>-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
>и попробыватьНЕ помогло:(
>[оверквотинг удален]
>>>>не на FC4, а скорей всего на 192.168.61.10 / 192.168.61.80
>>>
>>>Внутри сетки все замечательно работает, а вот когда извне подключаюсь тут облом:(
>>>
>>
>>из таблицы фильтров можете временно удалить
>>-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
>>и попробывать
>
>НЕ помогло:(на 192.168.61.10 точно разрешено устанавливать соединение с 192.168.61.78?
проверяли из инета?
и это было сделано?
echo 1 > /proc/sys/net/ipv4/ip_forward
если да, то без просмотра что творится на интерфейсах трудно что-то предположить.
>на 192.168.61.10 точно разрешено устанавливать соединение с 192.168.61.78?На 192.168.61.10 yиках ограничений нет брандмауэр отключен
>проверяли из инета?Из инета проверяю не конектит.
>и это было сделано?
>echo 1 > /proc/sys/net/ipv4/ip_forwardСделал
>если да, то без просмотра что творится на интерфейсах трудно что-то предположить.
>[оверквотинг удален]
>
>На 192.168.61.10 yиках ограничений нет брандмауэр отключен
>>проверяли из инета?
>
>Из инета проверяю не конектит.
>>и это было сделано?
>>echo 1 > /proc/sys/net/ipv4/ip_forward
>
>Сделал
>>если да, то без просмотра что творится на интерфейсах трудно что-то предположить.кстати я просмотрел, что SNATа на внешнем интерфейсе нет
-A POSTROUTING -o eth1 -j SNAT --to-source x.x.x.163
смотрите tcpdump -i eth1 , приходят ли пакеты на x.x.x.163.3389
и tcpdump -i eth0 , уходят ли на 192.168.61.10.3389 и ответы с него
а зачем SNAT на внешнем интерфейсе? в задаче не сказано настроить нат для локалки, а просто порт пробросить, так что мимо ваше замечание
>а зачем SNAT на внешнем интерфейсе? в задаче не сказано настроить нат
>для локалки, а просто порт пробросить, так что мимо ваше замечание
>вообще то, да