Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Неполучается сделать проброс портов  (Прочитано 604 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Неполучается сделать проброс из изнета на машину в локалку, настройки iptables закидываю запуском во такого файлика.
 Что здесь не так?
Может гдето еще чтото не включено? Извините, просто мозк уже сломал...  :-\


#!/bin/sh
# eth0 - inet
# eth1 - lan
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -F
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 --match state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 --match state --state ESTABLISHED -j ACCEPT

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.3:3389

iptables -A POSTROUTING -t nat -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

Сдесь должна быть какаято подпись...

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Неполучается сделать проброс портов
« Ответ #1 : 18 Ноябрь 2011, 22:24:02 »
#!/bin/sh
# eth0 - inet
# eth1 - lan
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -F
iptables -F FORWARD
iptables -F INPUT
iptables -F OUTPUT
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
iptables -A INPUT -i eth1 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD  -i eth1 -m conntrack --ctstate NEW -j ACCEPT
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.3:3389
/sbin/sysctl -w net.ipv4.ip_forward=1

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: Неполучается сделать проброс портов
« Ответ #2 : 18 Ноябрь 2011, 23:04:28 »


Спасибо вам добрый человек!
Еще бы понять что к чему :)
Снаружи все впорядке захожу!
Но, еще один немаловажный нюанс, сам я сижу в этой же сети, соответственно через этот же шлюз выхожу,
каким волшебным образом можно это подправить, чтоб еще я смог подключаться изнутри используя внешний ип?
« Последнее редактирование: 18 Ноябрь 2011, 23:25:19 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Неполучается сделать проброс портов
« Ответ #3 : 18 Ноябрь 2011, 23:55:37 »
Вот пример
br0=LAN
vlan1=WAN
172.16.5.160 - IP адрес WAN интерфейса
192.168.1.1 - IP адрес LAN интерфейса
192.168.1.0/24 - подсеть за маршрутизатором
# Generated by iptables-save v1.3.8 on Fri Nov 18 22:43:14 2011
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:VSERVER - [0:0]
-A PREROUTING -d 172.16.5.160 -j VSERVER
-A POSTROUTING -s ! 172.16.5.160 -o vlan1 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -o br0 -j MASQUERADE
-A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.20:80
COMMIT
# Completed on Fri Nov 18 22:43:14 2011
# Generated by iptables-save v1.3.8 on Fri Nov 18 22:43:14 2011
*mangle
:PREROUTING ACCEPT [931576:773052057]
:INPUT ACCEPT [8251:672631]
:FORWARD ACCEPT [921645:772132710]
:OUTPUT ACCEPT [8133:692751]
:POSTROUTING ACCEPT [930097:772835917]
COMMIT
# Completed on Fri Nov 18 22:43:14 2011
# Generated by iptables-save v1.3.8 on Fri Nov 18 22:43:14 2011
*filter
:INPUT ACCEPT [1735:138212]
:FORWARD ACCEPT [41127:2893067]
:OUTPUT ACCEPT [8133:692439]
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -m state --state NEW -j ACCEPT
-A INPUT -i br0 -m state --state NEW -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p igmp -j ACCEPT
-A INPUT -d 224.0.0.0/240.0.0.0 -p udp -m udp ! --dport 1900 -j ACCEPT
-A FORWARD -i br0 -o br0 -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -d 224.0.0.0/240.0.0.0 -p udp -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ! br0 -o vlan1 -j DROP
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT
COMMIT
# Completed on Fri Nov 18 22:43:14 2011

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: Неполучается сделать проброс портов
« Ответ #4 : 19 Ноябрь 2011, 02:53:26 »
Пытался понять как сделать, так и не получилось,
тоесть мне нужно замаскироваться так, чтобы заходя на сервер из локалки но указав внешний адрес сервера, сервер меня видел с внешним ип адресом (тоесть со своим внешним), а сейчас он видит только мой внутренний 192.168.1.10, но при этом, конечно, чтобы если я заходил на него из локалки используя его локальный ип, он видел вот это самый мой локальный.
да что там, я даже здесь не все понимаю, если будет время, не могли бы хотябы в кратце сказать, что означают эти строки:

iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT

iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW -j ACCEPT

iptables -A FORWARD  -i eth1 -m conntrack --ctstate NEW -j ACCEPT


и какие плюсы минусы замены вот этого? (сервер домашний)
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

спасибо.
« Последнее редактирование: 19 Ноябрь 2011, 10:35:21 от [*_*]pivo »
Сдесь должна быть какаято подпись...

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Неполучается сделать проброс портов
« Ответ #5 : 19 Ноябрь 2011, 12:58:11 »
Цитировать
нужно замаскироваться так, чтобы заходя на сервер из локалки но указав внешний адрес сервера, сервер меня видел с внешним ип адресом (тоесть со своим внешним)
это должно быть очень сильное колдунство, т.е. довольно тяжелый костыль

первый пример в ответе №1 набора правил для МЭ - это широкое  использование модуля conntrack для фильтрации транзитных и входящих соединений
второй пример в ответе №3 набора правил для МЭ - это использование модуля state и conntrack

Цитировать
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED,DNAT -j ACCEPT
для транзитного трафика принимать соединения в состоянии ESTABLISHED и RELATED, если в таблице nat цепочки PREROUTING есть правило для изменения IP адреса назначения (DNAT), то принять такое соединение

Цитировать
iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate NEW -j ACCEPT
если интерфейс, на который прибежал ICMP пакет eth0, и это первый для данного соединения ICMP, тогда принимаем

Цитировать
iptables -A FORWARD  -i eth1 -m conntrack --ctstate NEW -j ACCEPT
Если интерфейс назначения eth1 и это первый для данного соединения пакет любого типа, тогда принять

iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
не используется ни модуль state, ни conntrack, что затруднит составление сложных правил.
Кроме полезных состояний, есть состояние INVALID, которое будет отбиваться правилом по умолчанию DROP для FORWARD и INPUT
при таких правилах надо следить за порядком правил, для каждого DNAT действия в PREROUTING  разрешать соединения в цепочке FORWARD таблицы filter

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: Неполучается сделать проброс портов
« Ответ #6 : 19 Ноябрь 2011, 14:10:45 »
спасибо огромное, и за icmp спасибо!
Сдесь должна быть какаято подпись...

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: Неполучается сделать проброс портов
« Ответ #7 : 21 Ноябрь 2011, 10:50:43 »
Возникла небольшая проблема
Добавил
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
пытается установить соединение и зависает фтп, не то чтобы зависает, и нет явного отрицания, что мол немогу соединиться, но и на фтп не заходит, то же самое и с многими другими портами, но при этом, ssh (22) работает
Как быть? в чем проблема?
Сдесь должна быть какаято подпись...

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Неполучается сделать проброс портов
« Ответ #8 : 21 Ноябрь 2011, 10:58:14 »
sudo modprobe -v nf_conntrack_ftp

Оффлайн [*_*]pivo

  • Автор темы
  • Участник
  • *
  • Сообщений: 162
  • Сдесь должна быть подпись под аватаром...
    • Просмотр профиля
    • xstrike.ru
Re: Неполучается сделать проброс портов
« Ответ #9 : 21 Ноябрь 2011, 18:16:35 »
sudo modprobe -v nf_conntrack_ftp
insmod /lib/modules/2.6.38-11-server/kernel/net/netfilter/nf_conntrack_ftp.ko

извините, возможно и не в этом дело, тк со старым конфигом тоже самое,
просто кроме этого за последнее время никаких изменений не делал на сервере :(
и соврал, остальное все работает....

Пользователь решил продолжить мысль 21 Ноябрь 2011, 22:10:07:
из локалки подключаюсь нормально в том же терминале, из вне вот что пишет:

331 Необходим пароль для пользователя xees
Password:
230 Пользователь xees подключён
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 Команда PORT успешно обработана
« Последнее редактирование: 21 Ноябрь 2011, 22:10:07 от [*_*]pivo »
Сдесь должна быть какаято подпись...

 

Страница сгенерирована за 0.083 секунд. Запросов: 26.