iptables MASQUERADE

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Antoni
Сообщения: 18

iptables MASQUERADE

Сообщение Antoni »

Сервер доступа к Интернет для внутренней локальной сети.
Две сетевые карты.
Чтобы дать пользователю работать через маскарад IP адресов:
iptables -t nat -A POSTROUTING -o eth0 -s 10.254.0.12 -j MASQUERADE

Вопрос. Пользователю открываются все порты. Как закрыть некоторые?
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: iptables MASQUERADE

Сообщение n2j2r »

Код: Выделить всё

iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 10.254.0.12 -j MASQUERADE --to-ports список портов
Спасибо сказали:
Аватара пользователя
vtur
Сообщения: 29
ОС: ALT Linux

Re: iptables MASQUERADE

Сообщение vtur »

может целесообразней сделать
iptables -P FORWARD DROP
iptables -A FORWARD -s 10.254.0.12 -p tcp -m multiport --destination-port 80,443,8080 -j ACCEPT
iptables -A FORWARD -d 10.254.0.12 -p tcp -m multiport --source-port 80,443,8080 -j ACCEPT
т.е. сначала запрещаем пользователю любую активность, а потом разрешаем использовать только опеределенные порты\службы
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

а можно сделать как-то, чтобы запросы на определенные порты перенаправлялись на ту машину, которая за "маскарадингом"?

тобишь, обращались к "серверу", к примеру на 5000 порт, а это соединение сервер перенаправлял на определенный компьютер пользователя, который выходит в сеть через этот "сервер".

реально сделать? если да, то как?
Спасибо сказали:
Аватара пользователя
gordon01
Сообщения: 216

Re: iptables MASQUERADE

Сообщение gordon01 »

-A PREROUTING -d ipмаршрутизатора -p tcp -m tcp --dport порт -j DNAT --to-destination ipкомпавлокалке
«Hello World!» 17 errors, 31 warnings
Mandriva Cooker
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: iptables MASQUERADE

Сообщение n2j2r »

gordon01
-t nat не забыли?
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

Код: Выделить всё

debian:~# iptables -t nat -A POSTROUTING -d 10.10.10.10 -p tcp -m tcp --dport 5000 -j DNAT --to-destination 172.16.0.10
iptables: Invalid argument



однако

и заодно, а как 1024-5000 сразу 1 командой перекинуть, как писать?
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: iptables MASQUERADE

Сообщение n2j2r »

user

Код: Выделить всё

-m multiport --dport 1024:5000
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

Гм.

Код: Выделить всё

debian:~# iptables -t nat -A POSTROUTING -d х.х.х.х -p tcp -m multiport --dport 1024:5000 -j DNAT --to-destination 172.16.0.10
iptables v1.2.11: invalid port/service `1024:5000' specified
Try `iptables -h' or 'iptables --help' for more information.
debian:~#


:(
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: iptables MASQUERADE

Сообщение n2j2r »

user
вы бы почитали про iptables что нибудь...
Цепочку postrouting транзитный пакет проходит последней. Крайне неумно пытаться сделать фильтрацию по портам в этом месте. Думаю, что по портам нужно отсеивать тогда, когда пакет приходит на интерфейс (цепочка INPUT) и тем более, что критерий -m multiport ни в какой другой цепочке(кроме INPUT) работать не будет!
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

во-первых вопрос был про переброс порта, а не про фильтрацию.
а во-вторых, как вышло, нужно было писать:

iptables -t nat -A PREROUTING -p tcp -d хх.хх.хх.хх --dport 5000 -j DNAT --to-destination 172.16.0.10:5000

так - 1 порт работает, но надо не 1 перекинуть, а те, что писал выше.

а в-третьих, я linux первую неделю пока тока юзаю, так что просьба громко не кричать :D
Спасибо сказали:
Аватара пользователя
n2j2r
Сообщения: 494
Статус: najar

Re: iptables MASQUERADE

Сообщение n2j2r »

user
так что ли попробуйте....

Код: Выделить всё

iptables -P DROP
iptables -A FORWARD -p tcp -m multiport --ports 1024:5000 -j ACCEPT
iptables -t nat -A POSTROUTING -d 10.10.10.10 -p tcp  -j DNAT --to-destination 172.16.0.10

так мы пытаемся разрешить форвардинг пакетов на вышеозначенные порты. остальным - дроп.
далее выжившие пакеты попадают в цепочку POSTROUTING.

p.s не забудьте включить форвардинг...
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: iptables MASQUERADE

Сообщение TuLiss »

я бы вообще в поиск отправил. Так как неоднократно это обсуждалось на опеннет почитать по Iptables.
Если влом некогда или тд. Ставьте графический клиент
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Pavel Ghost
Сообщения: 13
ОС: openSUSE 10.2

Re: iptables MASQUERADE

Сообщение Pavel Ghost »

user писал(а):
07.01.2007 04:50
во-первых вопрос был про переброс порта, а не про фильтрацию.
а во-вторых, как вышло, нужно было писать:

iptables -t nat -A PREROUTING -p tcp -d хх.хх.хх.хх --dport 5000 -j DNAT --to-destination 172.16.0.10:5000

так - 1 порт работает, но надо не 1 перекинуть, а те, что писал выше.

а в-третьих, я linux первую неделю пока тока юзаю, так что просьба громко не кричать :D



Для множества портов:

iptables -t nat -A PREROUTING -p tcp -d хх.хх.хх.хх --dport 1024:5000 -j DNAT --to-destination 172.16.0.10

или если диапазон не непрерывный (перечень нескольких), то можно юзать -m multiport, который (для n2j2r) работает далеко не только в INPUT, просто писать нужно аккуратно:

iptables -t nat -A PREROUTING -p tcp -d хх.хх.хх.хх -m multiport --dports 1024,2222,33333,5000 -j DNAT --to-destination 172.16.0.10

т.е. в --to-destination порт не указываем и пакеты на IP:DPT уйдут на 172.16.0.10:DPT

у меня такой синтаксис работает на iptables v1.3.1 под RH,FC,SUSE, не думаю, что на чуть раньших версиях как-то было кардинально по-другому.


в качестве "графического пакета" для управления fw я видел как-то FWBuilder (http://www.fwbuilder.org), но руками у меня получается быстрее, дело привычки.

Удачи
Oracle DBA
GeneGO
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

Pavel Ghost писал(а):
13.01.2007 01:50
Для множества портов:

iptables -t nat -A PREROUTING -p tcp -d хх.хх.хх.хх --dport 1024:5000 -j DNAT --to-destination 172.16.0.10

Спасибо, работает. :)
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

А можно сделать, чтобы VPN работало через маскарадинг? 619 ошибку выдает...
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

+ Как пробрость icmp на машину за натом (маскарадингом)?
Т.е., чтобы в трейсе, предпоследним хопом была linux-тачка, а последним - машина за натом?

И еще, как сделать, чтобы машина посылала Destination Host Unreachable или тому подобное?

И напоследок, как все вернуть по дефолту? :)
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: iptables MASQUERADE

Сообщение Olden Gremlin »

user писал(а):
13.02.2007 23:47
А можно сделать, чтобы VPN работало через маскарадинг? 619 ошибку выдает...

Если под обширным понятием VPN кроется более мелкое понятие PPTP то можно попробовать предварительно загрузить модуль ядра nf_nat_pptp (потянет за собой модули nf_conntrack_pptp и nf_conntrack_proto_gre) или, если ядро постарее, ip_nat_pptp.
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

А можно сделать работоспособным сетевое окружение через NAT? Т.е. как перебросить NetBIOS? В сетевом окружении и так отображаются машины, но при клике - не найден сетевой путь.


Как? И можно ли вообще?
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: iptables MASQUERADE

Сообщение Olden Gremlin »

user писал(а):
10.05.2007 18:54
А можно сделать работоспособным сетевое окружение через NAT? Т.е. как перебросить NetBIOS? В сетевом окружении и так отображаются машины, но при клике - не найден сетевой путь.
Как? И можно ли вообще?


подгрузить модель ядра ip_conntrack_netbios_ns (или nf_conntrack_netbios_ns) не пробовали? ;)
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

чота я не нахожу таких модулей.

а разве не в сторону самбы надо копать? когда оно не запущено, даже имен компов не выводит.
Спасибо сказали:
Аватара пользователя
Olden Gremlin
Сообщения: 365
Статус: RAP22-RIPE
ОС: Debian GNU/Linux Wheezy

Re: iptables MASQUERADE

Сообщение Olden Gremlin »

user писал(а):
11.05.2007 21:18
чота я не нахожу таких модулей.
а разве не в сторону самбы надо копать? когда оно не запущено, даже имен компов не выводит.


мы разговариваем про маршрутизацию из сети в сеть или про нат из одной сети в другую?
имхо, в первом случаем копаем в сторону WINS, во втором - читаем выше...
«Когда у общества нет цветовой дифференциации штанов — то нет цели!»
nic-hdl: RAP22-RIPE
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

Olden Gremlin писал(а):
14.05.2007 11:11
мы разговариваем про маршрутизацию из сети в сеть или про нат из одной сети в другую?
имхо, в первом случаем копаем в сторону WINS, во втором - читаем выше...

я про то, чтобы с машины, соединенной с сервером кроссовером (через который выходим в сеть через маскарадинг) работало сетевое окружение, как будто комп включен напрямую. вот.

реально? или нет?
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

..... удалите этот пост. вопрос уже отпал )
Спасибо сказали:
Vector08
Сообщения: 16

Re: iptables MASQUERADE

Сообщение Vector08 »

Доброго времени суток. Вопрос в следующем. Есть нат и iptables. Необходимо что бы все обращения например на 5000 порт переадресовывались в 50. А так же запретить всем пользователям локалки испоьзоватьвсе порты кроме определенных, но тут одно, пользователи из под сети 192.168.0.0 имеют доступ например к 80 и 110 порту, а пользователи 192.168.1.0 только к 80, все остальные никуда доступа не имеют.

Как я вижу решение вопроса (адрес сервера 192.168.0.1):
1. Необходимо что бы все обращения например на 5000 порт переадресовывались в 50

iptables -t nat -A POSTROUTING -d 192.168.0.1 -p tcp -m tcp --dport 5000 -j DNAT --to-destination 192.168.0.1:25
Верно ли это ?

2. так же запретить всем пользователям локалки испоьзоватьвсе порты кроме определенных, но тут одно, пользователи из под сети 192.168.0.0 имеют доступ например к 80 и 110 порту, а пользователи 192.168.1.0 только к 80, все остальные никуда доступа не имеют.

iptables -t nat -A FORWARD -s 192.168.0.0/255.255.255.0 -p tcp -m multiport --destination-port 80,110, -j ACCEPT
iptables -t nat -A FORWARD -d 192.168.0.0/255.255.255.0 -p tcp -m multiport --source-port 80,110 -j ACCEPT

Или я ошибаюсь, спасибо.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: iptables MASQUERADE

Сообщение KiWi »

Думаю, не мне одному кажется, что проверить самому будет быстрее.
Спасибо сказали:
homa
Сообщения: 4

Re: iptables MASQUERADE

Сообщение homa »

gordon01 писал(а):
06.01.2007 10:19
-A PREROUTING -d ipмаршрутизатора -p tcp -m tcp --dport порт -j DNAT --to-destination ipкомпавлокалке



кстати если хочешь чтобы из локалки доступ на эту машину был по доменному имени(например шлюз на реальном айпи а веб сервер внутри локалки), то советую


iptables -t nat -A PREROUTING --dst $real_ip -p tcp --dport NomerPorta -j DNAT --to-destination localIP
iptables -t nat -A POSTROUTING -p tcp --dst localIP --dport NomerPorta -j SNAT --to-source localIPofGateway

:rolleyes:
мож пригодится))

Vector08 писал(а):
02.04.2008 14:10
Доброго времени суток. Вопрос в следующем. Есть нат и iptables. Необходимо что бы все обращения например на 5000 порт переадресовывались в 50. А так же запретить всем пользователям локалки испоьзоватьвсе порты кроме определенных, но тут одно, пользователи из под сети 192.168.0.0 имеют доступ например к 80 и 110 порту, а пользователи 192.168.1.0 только к 80, все остальные никуда доступа не имеют.

Как я вижу решение вопроса (адрес сервера 192.168.0.1):
1. Необходимо что бы все обращения например на 5000 порт переадресовывались в 50

iptables -t nat -A POSTROUTING -d 192.168.0.1 -p tcp -m tcp --dport 5000 -j DNAT --to-destination 192.168.0.1:25
Верно ли это ?

2. так же запретить всем пользователям локалки испоьзоватьвсе порты кроме определенных, но тут одно, пользователи из под сети 192.168.0.0 имеют доступ например к 80 и 110 порту, а пользователи 192.168.1.0 только к 80, все остальные никуда доступа не имеют.

iptables -t nat -A FORWARD -s 192.168.0.0/255.255.255.0 -p tcp -m multiport --destination-port 80,110, -j ACCEPT
iptables -t nat -A FORWARD -d 192.168.0.0/255.255.255.0 -p tcp -m multiport --source-port 80,110 -j ACCEPT

Или я ошибаюсь, спасибо.




Думаю ошибаешься ДНАТ используется для подмені айпи.., попробуй подумать насчет REDIRECT
да и более подробно объясни откуда и к чему обращений порты менять
Спасибо сказали:
Vector08
Сообщения: 16

Re: iptables MASQUERADE

Сообщение Vector08 »

Обьясняю в сети есть сервер с поднятым натом, необходимо что бы все коннекты в 25 порт были закрыты, в тоже время в почтовых клиентах как порт исходящей почты мы ставим например 5000, соответственно все запросы через нат на нашем сервере из 5000 заворачиваются в 25 и почта уходит, прямой запрос в 25 порт не проходит.
Спасибо сказали:
user
Сообщения: 163
Статус: ~
ОС: Debian GNU/Linux

Re: iptables MASQUERADE

Сообщение user »

Подскажите, а возможно ли, чтобы правило

Код: Выделить всё

iptables -t nat -A PREROUTING -p tcp -d 10.10.10.10 --dport 443 -j DNAT --to-destination 10.10.10.10:6669

работало внутри локальной машины?

Т.е. имеем eth0 с ипом 10.10.10.10, надо чтобы при коннекте на 443 порт с этой же машины соединяло с 10.10.10.10:6669
( 10.10.10.10 -> 10.10.10.10:443 => 10.10.10.10:6669 )

Это можно сделать?

Данное правило работает только "из вне", а внутри получаем connection refused...
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: iptables MASQUERADE

Сообщение KiWi »

user писал(а):
28.04.2008 01:38
Данное правило работает только "из вне", а внутри получаем connection refused...

http://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGOFTABLES
Почитайте на досуге.
Спасибо сказали: