Привет всем!
Столкнулся с траблом, когда выдавал в локальную сеть "белый" ип через линуксовый маршрутизатор (gentoo linux-2.6.19-r5, iptables, nat). Ядро не пересобирал, на аналогичном роутере все работает на ура. Здесь же, навешал ип, пробросил, форварднул локальный ип:
ifconfig eth0:0 inet x.x.x.x netmask 255.255.255.248 up
iptables -t nat -A PREROUTING -d x.x.x.x -j DNAT --to-destination 10.10.10.1
iptables -A FORWARD -s 10.10.10.1 -j ACCEPT
iptables -A FORWARD -d 10.10.10.1 -j ACCEPT
Всё, вижу машину из инета по адресу x.x.x.x. Машина инет не видит в упор... Захожу по ssh на машину из инета(!), пингую оттуда инет, а его нет! Внешние интерфейсы роутера пингуются. Локалка пингуется. Инет нет( Где могут быть грабли? Все запрещающие правила снес уже с iptables, все равно не помогает(
Проброс "белого" IP в сеть - работает в одну сторону (iptables + nat)
Модераторы: SLEDopit, Модераторы разделов
-
Axell
- Сообщения: 11
- ОС: Gentoo Linux
-
Amper13
- Сообщения: 551
- ОС: Fedora 26, CentOS 7
Re: Проброс "белого" IP в сеть - работает в одну сторону
iptables -t nat -A POSTROUTING -s x.x.x.x -j SNAT --to-destination 10.10.10.1
Только что просматривал этот топик, нашёл у себя ошибку, сори, то что написано выше неправельно, правильно вот так iptables -t nat -A POSTROUTING -s x.x.x.x -j SNAT --to-source 10.10.10.1
Только что просматривал этот топик, нашёл у себя ошибку, сори, то что написано выше неправельно, правильно вот так iptables -t nat -A POSTROUTING -s x.x.x.x -j SNAT --to-source 10.10.10.1
-
Axell
- Сообщения: 11
- ОС: Gentoo Linux
Re: Проброс "белого" IP в сеть - работает в одну сторону
Логично. Попробую. Но почему тогда в других случаях работало только на -d? Как попробую - отпишусь.
-
Amper13
- Сообщения: 551
- ОС: Fedora 26, CentOS 7
Re: Проброс "белого" IP в сеть - работает в одну сторону
SNAT допускается выполнять только в таблице nat, в цепочке POSTROUTING. Другими словами, только здесь допускается преобразование исходящих адресов. Если первый пакет в соединении подвергся преобразованию исходящего адреса, то все последующие пакеты, из этого же соединения, будут преобразованы автоматически и не пойдут через эту цепочку правил.
Таблица 6-22. Действие SNAT
Ключ --to-source
Пример iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
Описание Ключ --to-source используется для указания адреса, присваемового пакету. Все просто, вы указываете IP адрес, который будет подставлен в заголовок пакета в качестве исходящего. Если вы собираетесь перераспределять нагрузку между несколькими брандмауэрами, то можно указать диапазон адресов, где начальный и конечный адреса диапазона разделяются дефисом, например: 194.236.50.155-194.236.50.160. Тогда, конкретный IP адрес будет выбираться из диапазона случайным образом для каждого нового потока. Дополнительно можно указать диапазон портов, которые будут использоваться только для нужд SNAT. Все исходящие порты будут после этого перекартироваться в заданный диапазон. iptables старается, по-возможности, избегать перекартирования портов, однако не всегда это возможно, и тогда производится перекартирование . Если диапазон портов не задан, то исходные порты ниже 512 перекартируются в диапазоне 0-511, порты в диапазоне 512-1023 перекартируются в диапазоне 512-1023, и, наконец порты из диапазона 1024-65535 перекартируются в диапазоне 1024-65535. Что касается портов назначения, то они не подвергаются перекартированию.
А вообще советую прочитать http://www.opennet.ru/docs/RUS/iptables/#SNATTARGET