Перейти до

Проброс из Интернета в локалку


Рекомендованные сообщения

Мужики помогите: нужно на время открыть доступ к апачу, который стоит на машине, находящейся за шлюзом. Эта машина имеет адрес 192.168.100.210.

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

 

Вот настроики моего файера на шлюзе:

 

#!/bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward # forwarding paketov (esli eshe ne vkliu4en)

IPT="/sbin/iptables"

ext_ip="ххх.ххх.ххх.ххх"

int_ip="192.168.100.200"

ext_if="eth1"

int_if="eth0"

 

## Clear all rules

$IPT -t filter -F

$IPT -t filter -X

$IPT -t nat -F

$IPT -t nat -X

 

$IPT -t filter -P INPUT DROP

$IPT -t filter -P FORWARD DROP

$IPT -t filter -P OUTPUT ACCEPT

 

$IPT -t nat -P PREROUTING ACCEPT

$IPT -t nat -P POSTROUTING ACCEPT

$IPT -t nat -P OUTPUT ACCEPT

 

 

## lo # dobavliaem sebia v rules

$IPT -t filter -A INPUT -d 127.0.0.1 -j ACCEPT

 

## DNS # Pozvoliaen DNS prohodit'

$IPT -t filter -A INPUT -p tcp --dport 53 -j ACCEPT

$IPT -t filter -A INPUT -p udp --dport 53 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 53 -j ACCEPT

$IPT -t filter -A INPUT -p udp --sport 53 -j ACCEPT

 

 

#SMTP from Internet

$IPT -t filter -A INPUT -p tcp -i $ext_if --dport 25 -j ACCEPT

 

 

## Squid

$IPT -t filter -A INPUT -p tcp -i $ext_if -m state --state ESTABLISHED --state RELATED -j ACCEPT

 

## SSH

$IPT -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

$IPT -t filter -A OUTPUT -p tcp --sport 22 -j ACCEPT

 

## Avtorizator

$IPT -t filter -A INPUT -p udp -d $ext_ip --dport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A INPUT -p udp -d $ext_ip --sport 5555 -j REJECT

$IPT -t filter -A OUTPUT -p udp -s $ext_ip --dport 5555 -j REJECT

$IPT -t filter -A INPUT -p udp -d $int_ip --dport 5555 -j ACCEPT

$IPT -t filter -A INPUT -p udp --sport 5555 -d $int_ip -j ACCEPT

 

## Configurator

$IPT -t filter -A INPUT -p tcp -d $int_ip --dport 5550 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $int_ip --sport 5550 -j ACCEPT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --dport 5550 -j REJECT

$IPT -t filter -A INPUT -p tcp -d $ext_ip --sport 5550 -j REJECT

 

## Ping

$IPT -t filter -A INPUT -p icmp -j ACCEPT

$IPT -t filter -A OUTPUT -p icmp -j ACCEPT

 

## Apache

$IPT -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

$IPT -t filter -A INPUT -p tcp --sport 80 -j ACCEPT

 

 

Пробовал сделать:

 

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 95 -j DNAT --to 192.168.100.210:80

 

iptables -A FORWARD -d 192.168.100.210 -j ACCEPT

 

iptables -A FORWARD -s 192.168.100.210 -j ACCEPT

 

iptables -t nat -A POSTROUTING -s 192.168.100.210 -j SNAT --to-source $ext_ip

 

Но что-то это не помогает. При вводе в браузер www.mysite.net:95 вылетает ошибка. Что я пропустил?

Ссылка на сообщение
Поделиться на других сайтах
Отца русской демократии спасает DNAT

Конечно спасет. Я его и пытался использовать:

 

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 95 -j DNAT --to 192.168.100.210:80

 

Но что-то нихрена не работает

Ссылка на сообщение
Поделиться на других сайтах
iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 95 -j DNAT --to 192.168.100.210:80

 

Но что-то нихрена не работает

1) нужно обязательно писать http т.е.: http://www.mysite.net:95

2) на серваке на который пробрасывается соединение нужно прописать дефолтовый шлюз на тачку которая пробрасывает соединения

Ссылка на сообщение
Поделиться на других сайтах

С ДНС всё ОК.

 

Еще раз прошу посмотреть сюда:

 

iptables -t nat -A PREROUTING -p tcp -i eth1 --dport 95 -j DNAT --to 192.168.100.210:80

iptables -A FORWARD -d 192.168.100.210 -j ACCEPT

iptables -A FORWARD -s 192.168.100.210 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.100.210 -j SNAT --to-source $ext_ip

 

Может что-то здесь неправильно?

Ссылка на сообщение
Поделиться на других сайтах

Согласно статьи http://www.opennet.ru/base/net/dnat_linux.txt.html нет строки

# iptables -A FORWARD -i eth0 -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT

$LOCAL_IP - внутренний "фэйковый" адрес машины, которую надо "выкидывать" наружу

$PORT2 - Порт, который "выбрасывается" наружу(например, 80 - http, либо 21 - ftp)

Допиши мож поможет.

Вот мой пример но он не с портами а полностью выкидывает всю машину в инет

 

ifconfig eth2:0 212.42.84.161 netmask 255.255.255.224 broadcast 212.42.84.191

route add 212.42.84.161 gw 212.42.84.165 netmask 0.0.0.0

iptables -t nat -A PREROUTING -p tcp -d 212.42.84.161 -j DNAT --to-destination 192.168.8.4

iptables -t nat -I POSTROUTING -s 192.168.8.4 -j SNAT --to-source 212.42.84.161

iptables -A FORWARD -i eth2 -d 192.168.8.4 -j ACCEPT

 

если есть лишний адрес проверь так.

Ссылка на сообщение
Поделиться на других сайтах

Короче сделал.

POSTROUTING действительно не нужен.

 

iptables -t nat -A PREROUTING -p tcp -d $ext_ip --dport 100 -j DNAT --to-destination 192.168.100.210:80

iptables -A FORWARD -d 192.168.100.210 -j ACCEPT

iptables -A FORWARD -s 192.168.100.210 -j ACCEPT

 

Эта конструкция работает у меня 100%

Ссылка на сообщение
Поделиться на других сайтах

а вот у меня с фтп не получается :(

 

[root@srv rc.d]# iptables -t nat -A PREROUTING -p tcp -d $ext_ip --dport 21 -j DNAT --to-destination 10.10.10.2:21

[root@srv rc.d]# iptables -I FORWARD 1 -s 10.10.10.2 -j ACCEPT

[root@srv rc.d]# iptables -I FORWARD 1 -d 10.10.10.2 -j ACCEPT

Ссылка на сообщение
Поделиться на других сайтах

насколько помню там и удп юзается

заруби файрволом сервак и открывай порты поочереди, верный способ проверки :(

а можешь почитать де нить какие порты фтп юзает

http://www.opennet.ru/tips/sml/65.shtml

Ссылка на сообщение
Поделиться на других сайтах

открыл tcp и udp 20 и 21 порты.... никак....

 

попробовал 4899 (radmin) промапить - всё отлично......

 

может есть какие-то особенности у фтп?

Ссылка на сообщение
Поделиться на других сайтах

фтп юзает tcp 20 и tcp 21. По крайней мере, у меня после открытия этих портов фтп заработал (файер режет всё подряд, кроме www и почты)

Ссылка на сообщение
Поделиться на других сайтах

Мммда. И кто сказал, что Линукс проще фри?

В общем для фряшников рецепт такой:

В конфиге natd или в качестве аргумента для natd прописать:

redirect_port tcp комп_в_локалке:порт внешний_порт

И все.

Ссылка на сообщение
Поделиться на других сайтах

А ты вот возьми и попробуй на той же фри промапить фтп.....

 

на линухе прекрастно у меня промаплен хттп и радмин..... а вот с фтп не получается....

 

з.ы. присмотрелся что фар пишет при коннекте к фтп серверу. Там постоянно разные порты скачут.... :( Может в этом беда?

Ссылка на сообщение
Поделиться на других сайтах

При использовании протокола ftp используется 2 соединения.

Одно для управления. Т.е. для отправки комманд и для получения ответа на них. Второе для передачи файлов.

Когда вы подсоединяетесь к серверу по протоколу ftp по адресу ftp://host:port/, то вы открываете соединение с портом port сервера host для передачи комманд. Когда вы в процессе общения с сервером набираете команды get/mget/put/mput e.t.c., то устанавливается ещё одно соединение, по которому происходит передача файла. Насколько я понял, для каждого файла устанавливается 1 соединение. Даже если вы передаете последовательно 1000 файлов, будет последовательно создано 1000 соединений, одно после другого.

 

В реализации ftp протокола есть 2 способа установления соединения для передачи файла. Активное - когда клиент говорит серверу номер своего порта для установления соединения, по которому пойдет файл, а сервер цепляется к клиенту на этот порт.

Пассивное - когда сервер говорит клиенту номер порта, а клиент цепляется к серверу на этот порт.

 

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

 

С одной стороны в твоем случае лучше использовать активный режим, когда при установлении соединения ftp-сервер в локальной сети цепляется на порт клиента.

С другой стороны, если клиент сам будет в локалке за шлюзом, то даже этот активный режим не поможет.

 

В качестве решения можео сделать так: на ftp-сервере настроить систему так, чтобы урезать количество портов, используемых для установления исходящих соединений до 1000. Например с 49500 до 50500. На шлюзе настроить систему так, чтобы эти порты не использовались для установления исходящих соединений. И сделать на шлюзе проброс этих 1000 соединений на ftp-сервер в локалке. Я думаю, это самый простой вариант. Могу подсказать, как это реализовать, если шлюз и ftp-сервер работают на фряхе. Если на любой другой операционной системе - то тут хуз.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

Ребята Нужна помаш на eth1 192.168.99.54 надо сделат перекидку с сервака на сервак в локалке что бі игралив контру

тоесть в лакалке стаит линух гейм сервер контрі там ип 10,0,0,204 как сделать что с eth1 192,168,99,54 eth0 10.0.0.3 попадали на 10,0,0,204 и играли

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Вот что-то читаю Iptables HOW-TO и вижу тут про нат DNS порта, а нужно ли делать елси у меня уже и так маскарад прописан на весь внешний интерфейс??

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...