Здравствуйте.
С Linux работаю давно, но с iptables только на днях начал знакомиться. Вообщем требуется помощь в следующем. Есть машина, которая натится в и-нет. В этой же подсети находится такая же машина и нужно настроить проброс пакетов так, чтобы с этой машины было видно инет как будто я хожу от имени первой. На аппаратных маршрутизаторах и фаерволах настраивал с помощью NAT. Имею подозрение, что это можно сделать программным способом с помощью iptables.
Если можно, прошу показать приблизительные настройки.
Заранее спасибо.
> Здравствуйте.
> С Linux работаю давно, но с iptables только на днях начал знакомиться.не верю!
>> Здравствуйте.
>> С Linux работаю давно, но с iptables только на днях начал знакомиться.
> не верю!Это же почему?
И вообще, есть что-нибудь по сути?
iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE
iptables -t nat -A POSTROUTING -o ethX -j SNAT --to-source XXX.XXX.XXX.XXX
> iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE
> iptables -t nat -A POSTROUTING -o ethX -j SNAT --to-source
> XXX.XXX.XXX.XXXЭто нужно прописать на второй машине? Если так, то не работает. Сейчас пробую разбираться.
>> iptables -t nat -A POSTROUTING -o ethX -j MASQUERADE
>> iptables -t nat -A POSTROUTING -o ethX -j SNAT --to-source XXX.XXX.XXX.XXXСделал то, что написано выше и еще установил "1" в ip_forvard:
echo 1 > /proc/sys/net/ipv4/ip_forward
Хосты определяет (ДНС прописан), а пинг не идет на внешние адреса.
Еще раз подробно опишу вопрос. Может что-то и сам пойму ))).
Машина имеет одну сетевую карточку eth0 и адрес 10.100.100.21. Другая машина так же имеет одну сетевую и адрес 10.100.100.17. Обе в одной подсети. И вот 10.100.100.17 идет в и-нет через NAT на другой железяке. Хочется сделать так, чтобы 10.100.100.21 НАТила на выходе своего интерфейса пакеты как будто они имеют сорс-адрес не 10.100.100.21, а 10.100.100.17, то-есть тоже могли ходить в и-нет. Соответственно я сделал так:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.100.17
echo 1 > /proc/sys/net/ipv4/ip_forwardМожет надо какое-то еще правило? И реально ли вообще так сделать. Как может быть два хоста с одинаковым адресом пакетов на выходе?
если 21 нужно выпустить в инет через 17 (что бы железяка видела адрес источника как 10.100.100.17), то на 10.100.100.21 шлюзом по умолчанию указываете 10.100.100.17, dns сервера прописываете, а на 10.100.100.17 уже делаетеiptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.100.17
echo 1 > /proc/sys/net/ipv4/ip_forward
> если 21 нужно выпустить в инет через 17 (что бы железяка видела
> адрес источника как 10.100.100.17), то на 10.100.100.21 шлюзом по умолчанию указываете
> 10.100.100.17, dns сервера прописываете, а на 10.100.100.17 уже делаете
> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.100.17
> echo 1 > /proc/sys/net/ipv4/ip_forwardСпасибо!
> если 21 нужно выпустить в инет через 17 (что бы железяка видела
> адрес источника как 10.100.100.17), то на 10.100.100.21 шлюзом по умолчанию указываете
> 10.100.100.17, dns сервера прописываете, а на 10.100.100.17 уже делаете
> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.100.17
> echo 1 > /proc/sys/net/ipv4/ip_forwardА если машины находятся в разных подсетях, то какой установить шлюз?
>> если 21 нужно выпустить в инет через 17 (что бы железяка видела
>> адрес источника как 10.100.100.17), то на 10.100.100.21 шлюзом по умолчанию указываете
>> 10.100.100.17, dns сервера прописываете, а на 10.100.100.17 уже делаете
>> iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.100.100.17
>> echo 1 > /proc/sys/net/ipv4/ip_forward
> А если машины находятся в разных подсетях, то какой установить шлюз?ip пограничной машины из подсети клиента