Консультация № 175551
23.12.2009, 00:01
35.00 руб.
0 2 1
Добрый день ув. эксперты.

У меня уст. Suse 11.0 (2.6.25.5-1.1-pae), на нем крутятся апач, самба, фтп.

На сьюзи 2 интерфейса внешний 77.77.77.77 и внутренний 192.168.0.100 - смотрит во внутр. сетку офиса
Как мне пробросить (НАТить) коннект с внешней сети на внутренний сервер в офисе, да так чтобы я мог уст. привязку "внешний айпи - внутркнний айпи"

2 Примера:
машина с аипи 88.88.88.88 коннектится на 77.77.77.77:80, Сузи его натит в 192.168.0.101 и направляет на внутрениий сервер 192.168.0.1:80
машина с аипи 99.99.99.99 коннектится на 77.77.77.77:80, Сузи его натит в 192.168.0.102 и направляет на внутрениий сервер 192.168.0.1:80
.. и тд.

важно чтобы внешний коннект натился именно во внутренний конкретный айпи либо хотя бы в айпи из пула внутренних айпи (192.168.0.0/24) а не только в один айпи адрес самого сузи (192.168.0.100)
Ну и конечно если есть возм - чтоб было можно менять порты, тоесть коннектится к примеру на 80й а напрвляет на 8080.

На данный момент я пока настраивал fw через yast - пробовал включить галку NAT и добавил правило но не получилось.
И соотв дальше - я бы хотел уйти от ГАЙ версии бранмаура и админить через консоль, опыт имею такой только с WIPFW - очень просто наглядно и быстро - как в съюзи это сделать? Подск пж.
может есть для сузи несложный fw типа ipfw или ufw.

Надеюсь понятно более менее объяснил, Заранее Благодарен Всем!

Обсуждение

Неизвестный
23.12.2009, 08:05
общий
это ответ
Здравствуйте, skatet.
Напишу общие правила проброса портов.
Если у вас на фаерволе закрыты все лишние соединения, то нужны такие правила:

где eth0 это внешний интерфейс.
Разрешаем пакетам ходить с внешнего адреса на внутренний адрес сети.
iptables -A FORWARD -i eth0 -s 88.88.88.88 -d 192.168.0.1 -p tcp --dport 80 -j ACCEPT

Прокидываем порт

iptables -t nat -A PREROUTING -s 88.88.88.88 -p tcp -d 77.77.77.77 --dport 80 -j DNAT --to-destination 192.168.0.1:80

Разрешаем пакетикам ходить с внутреннего адреса обратно на адрес инициатор.

iptables -A FORWARD -s 192.168.0.1 -d 88.88.88.88 -p tcp -j ACCEPT

Если у вас ни чего не запрещено, то хватит и вот этого:

iptables -t nat -A PREROUTING -s 88.88.88.88 -p tcp -d 77.77.77.77 --dport 80 -j DNAT --to-destination 192.168.0.1:80

Только совершенно не понятно, что это за адреса такие 192.168.0.101, а потом направляет на внутренний 192.168.0.1:80, если б они из разных подсетей были, тогда понятен смысл.
Но напишу правила вам именно по вашей схеме.
iptables -A FORWARD -i eth0 -s 88.88.88.88 -d 192.168.0.101 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 88.88.88.88 -p tcp -d 77.77.77.77 --dport 80 -j DNAT --to-destination 192.168.0.101:80
iptables -A FORWARD -s 192.168.0.101 -d 88.88.88.88 -p tcp -j ACCEPT

iptables -A FORWARD -i eth0 -s 99.99.99.99 -d 192.168.0.102 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -s 99.99.99.99 -p tcp -d 77.77.77.77 --dport 80 -j DNAT --to-destination 192.168.0.102:80
iptables -A FORWARD -s 192.168.0.102 -d 99.99.99.99 -p tcp -j ACCEPT

А на адресах 192.168.0.* делаем переадресацию на адрес 192.168.0.1:80

Только еще раз повторяю, пересмотрите свою топологию сети, за 14 лет администрирования такого не встречал ни разу.
Неизвестный
23.12.2009, 17:17
общий
с маппингом действительно не очень понятно, но если действительно надо, то Вам пригодятся расширеня xtables RAWSNAT и RAWDNAT:
iptables -t nat -A PREROUTING -s 88.88.88.88 -j DNAT --to-destination 192.168.0.1
iptables -t rawpost -A POSTROUTING -s 88.88.88.88 -j RAWSNAT --to-source 192.168.0.101
и для ответов:
iptables -t raw -A PREROUTING -d 192.168.0.101 -j RAWDNAT --to-destination 88.88.88.88

обратное преобразование для таблицы nat теоретически должен сделать conntrack. Если нет можно пробовать обойтись исключительно RAWSNAT/RAWDNAT правилами.

И не могу не согласится с автором ответа: таблицы маршрутизации при указаных IP-адресах у Вас должны быть ОЧЕНЬ аккуратно настроены.
Форма ответа