Редиект запросов на 80 порт

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-17 16:26:41

Нужно сделать web сервер находящийся внутри локальной сети доступным из Интернет. Внешний IP есть, это IP шлюза.
Что надо прописать в фаерволе IPFW на шлюзе, чтобы он перенаправлял запросы на 80 порт - web серверу.

Пример: 85.x.x.x внешний IP
192.168.x.x IP web сервера

Заранее спасибо.
Чукчи мы , однако.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-17 16:56:41

Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-17 21:09:21

Не получилось...

Вот мои конфиги:

rc.conf

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

defaultrouter="85.x.x.29"
hostname="xxx.local" 
gateway_enable="YES"
ifconfig_rl0="inet 192.168.2.1  netmask 255.x.x.x" #внутренний IP
ifconfig_ed0="inet 85.x.x.30 netmask 255.x.x.x"    #внешний IP
firewall_enable="YES"
firewall_script="/etc/firewall.sh"
firewall_logging="YES"
top_drop_synfin="YES"
natd_enable="YES"
natd_interface="ed0"
natd_flags="-f /etc/natd.conf"
inetd_enable="YES"
sshd_enable="YES"
trafd_enable="YES"
trafd_ifaces="rl0 ed0"
/usr/local/etc/rc.d/trafd.sh
trafd_flags=""
trafd_log="/usr/local/var/trafd.log"
sandmail_enable="NO"
sandmail_submit_enable="NO"
keymap="ru.koi8-r"
font8x14="cp866-8x14"
font8x16="cp866-8x16"
font8x8="cp866-8x8"
scrnmap="koi8-r2cp866"
usbd_enable="NO"
allscreens_flags="VGA_80x30"
ntpd_enable="YES"
named_enable="YES"
named_flags="-u bind"
named_pidfile="/var/named"
name_chroot_autoupdate="YES"
name_symlink_enable="YES"
natd.conf

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

same_ports
unregistered_only
redirect_port tcp 192.168.2.222:80 80
firewall.sh

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

FwCMD="/sbin/ipfw" 
LanOut="ed0"            
LanIn="rl0"            
IpOut="85.x.x.x" # внешний IP адрес машины
IpIn="192.168.2.1"   # внутренний IP машины
NetMask="24"            
NetIn="192.168.2.1"    # Внутренняя сеть


${FwCMD} -f flush


${FwCMD} add check-state


${FwCMD} add allow ip from any to any via lo0


${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any


# Вводим запреты:
# режем частные сети на внешнем интерфейсе - по легенде он у нас 
# смотрит в интернет, а значит пакетам этим браться неоткуда на нём.
# рубим частные сeти
${FwCMD} add deny ip from any to 10.0.0.0/8 in via ${LanOut}
${FwCMD} add deny ip from any to 172.16.0.0/12 in via ${LanOut}
${FwCMD} add deny ip from any to 192.168.0.0/16 in via ${LanOut}
${FwCMD} add deny ip from any to 0.0.0.0/8 in via ${LanOut}
# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from any to 169.254.0.0/16 in via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from any to 240.0.0.0/4 in via ${LanOut}
# рубим фрагментированные icmp
${FwCMD} add deny icmp from any to any frag
# рубим широковещательные icmp на внешнем интерфейсе
${FwCMD} add deny log icmp from any to 255.255.255.255 in via ${LanOut}
${FwCMD} add deny log icmp from any to 255.255.255.255 out via ${LanOut}

# пропускаем траффик через трансляцию сетевых адресов (NAT)
${FwCMD} add divert natd ip from ${NetIn}/${NetMask} to any out via ${LanOut}
${FwCMD} add divert natd ip from any to ${IpOut} in via ${LanOut}

# рубим траффик к частным сетям через внешний интерфейс
${FwCMD} add deny ip from 10.0.0.0/8 to any out via ${LanOut}
${FwCMD} add deny ip from 172.16.0.0/12 to any out via ${LanOut}
${FwCMD} add deny ip from 192.168.0.0/16 to any out via ${LanOut}
${FwCMD} add deny ip from 0.0.0.0/8 to any out via ${LanOut}

# рубим автоконфигуреную частную сеть
${FwCMD} add deny ip from 169.254.0.0/16 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 224.0.0.0/4 to any out via ${LanOut}
# рубаем мультикастовые рассылки
${FwCMD} add deny ip from 240.0.0.0/4 to any out via ${LanOut}



${FwCMD} add allow tcp from any to any established

${FwCMD} add allow ip from ${IpOut} to any out xmit ${LanOut}

# разрешаем DNS снаружи (нам же надо узнавать IP по именам машин?)
${FwCMD} add allow udp from any 53 to any via ${LanOut}
# разрешаем DNS входящий снаружи - если на этой машине работает named
# и держит какую-то зону. В остальных случаях - не нужно
${FwCMD} add allow udp from any to any 53 via ${LanOut}
# разрешаем UDP (для синхронизации времени - 123 порт)
${FwCMD} add allow udp from any to any 123 via ${LanOut}
${FwCMD} add allow tcp from any to ${IpOut} 49152-65535 via ${LanOut}
${FwCMD} add allow icmp from any to any icmptypes 0,8,11

${FwCMD} add allow tcp from any to 192.168.2.222 80 via ${LanOut}

${FwCMD} add allow tcp from any to any via ${LanIn}
${FwCMD} add allow udp from any to any via ${LanIn}
${FwCMD} add allow icmp from any to any via ${LanIn}
${FwCMD} add deny ip from any to any
Где то вычитал:
unregistered_only
same_ports
use_sockets
redirect_port tcp 172.16.2.5:80 80
/etc/rc.conf

natd_enable="YES"
natd_interface="внешний интерфейс"
natd_flags="-f /etc/natd.conf"

Далее, проверить defaultroute для машины на которую передаётся обработка портов. Если не на ту, с которой идёт редирект - нужно добавить маршруты.
Какие маршруты и куда?
Вот у меня IP defaultrouter прописан IP шлюза провайдера и он отличается от IP моего шлюза может в этом дело?
У меня один внешний IP выделенный провайдером. На нем крутиться natd. Для моего web сервера нужен еще один внешний IP, или хватит одного?
Помогите настроить, очень нужно. Заранее спасибо.
Чукчи мы , однако.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-17 22:35:36

Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 8:38:22

Спасибо конечно, но что ты имел этим ввиду? viewtopic.php?f=14&t=2432
У кого-нибудь есть какие-нибудь идеи почему не могу достучаться до моего локально web сервера?
Чукчи мы , однако.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 9:11:59

Да и дело не в фаерволе вроде... все лишнее убрал, оставил только разрешить все... не работает всеравно :(
Чукчи мы , однако.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 10:41:17

Так на самом деле все работет, но не из локалки. Тоесть из других сетей запрос идет, а из своей локалки проверить я не могу, может есть идеи как можно это поправить, и вообще возможно ли ходить на свой локальный Web сервер не локально, а как бы через интернет?
Чукчи мы , однако.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-18 11:57:47

вообще возможно ли ходить на свой локальный Web сервер не локально, а как бы через интернет?
DNS?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 13:16:28

Не... DNS это по имени ходить, хотя...это тоже выход. Можно настроить, конечно, что когда набираешь имя Web сервера, Днс отправляет на внутренний IP...

Я вот просто по IP пытаюсь... не получается. Тоесть, если хожу с другого хоста, например из дома или с левого прокси какого-то, то все работает, если же лезу из локалки на внешний IP сервака то не получается. Что в фаерволе может поправить? Хотя я его отключал вообще, кроме NAT. Ничего не помогало всеравно.
Чукчи мы , однако.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-18 13:24:44

Я вот просто по IP пытаюсь... не получается.
Логи? В чём причина немогу?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 16:06:29

Спасибо, но вот логи не помогли...

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

Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.10:3557 194.186.121.68:80 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.10:3554 77.88.21.90:80 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.36:2984 205.188.7.192:5190 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.10:3559 77.88.21.90:80 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.10:3554 77.88.21.90:80 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.28:2572 64.12.25.108:5190 out via ed0
Apr 18 15:26:18 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.36:2984 205.188.7.192:5190 out via ed0
Apr 18 15:26:19 Gate kernel: ipfw: 2500 Divert 8668 TCP 192.168.1.10:3560 77.91.231.150:80 out via ed0
Apr 18 15:26:19 Gate last message repeated 4 times
Apr 18 15:26:19 Gate kernel: ipfw: limit 300 reached on entry 2500
Apr 18 15:26:32 Gate kernel: ipfw: 4500 Deny ICMP:3.0 10.10.66.1 192.168.1.10 in via ed0
Apr 18 15:26:41 Gate last message repeated 2 times
Apr 18 15:27:02 Gate kernel: ipfw: 4100 Accept TCP 85.25.138.58:37601 192.168.2.222:80 in via ed0 
Apr 18 15:27:03 Gate kernel: ipfw: 4100 Accept TCP 85.25.138.58:33257 192.168.2.222:80 in via ed0
Apr 18 15:27:03 Gate kernel: ipfw: 4100 Accept TCP 85.25.138.58:60738 192.168.2.222:80 in via ed0
Apr 18 15:27:25 Gate kernel: ipfw: 4500 Deny ICMP:3.1 85.114.0.3 192.168.1.20 in via ed0
Apr 18 15:28:56 Gate kernel: ipfw: 4100 Accept TCP 85.25.138.58:43701 192.168.1.222:80 in via ed0 
Из последних строк видно что я заходил на 192.168.2.222(Мой Web Сервер), но заходил я через левый прокси (85.25.138.58), если просто из локалки записей я не вижу!
Чукчи мы , однако.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 16:34:24

Вот что нарыл на форуме, может в этом дело?

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

Чтоб все ходило как надо
ядро нужно собрать с опцией IPFIREWALL_FORWARD_EXTENDED но это для IPFW
и тогда можна форвардить пакеты на любой внешний IP и они будут
ходить в мир и возвращаться через этот интерфейс
По сути мне так и нада. Чтобы пакет из локальной сети отправился на внешний интерфейс оттуда вернулся на внешний же интерфейс и перенаправился на внутренний Web Сервер... во... как бы петля такая...
по сути это не правильно, просто для проверки работоспособности своего же Web Сервера пришлось ходить на него через проксю, или из другой сети!
Чукчи мы , однако.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-18 16:59:52

Чё ты мудришь я никак не пойму.

Если компьютер имеет IP-Адрес в локальной сети, то связываться он будет напрямую. (шлюз тут непричём)

С любого компьютера набираешь в браузере http://192.168.2.222/ и наслаждаешься.

Если не работает что-то:
1. Смотришь логи на сервере.
2. Смотришь tcpdump'ом приходят ли пакеты на сервер от внутреннего IP. (С которого ты пытаешься попасть)
3. Смотришь VLAN'ы
и т.д. по списку ищешь проблему.


или ты хочешь набрать http://85.x.x.x и чтобы попадать на WEB-Сервер?
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
3t0n
мл. сержант
Сообщения: 122
Зарегистрирован: 2006-05-06 7:41:04
Откуда: Москва-Владимир
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение 3t0n » 2008-04-18 17:13:29

anton284 писал(а):Не получилось...
у меня тоже не получилось, непомню что подправил чтоб заработало, в моем случае нужно было RDP одной из машин в одной из подсетей вывести наружу, но знаю что там какаято мелоч
О человеке можно судить по его Temporary Internet Files

Аватара пользователя
serge
майор
Сообщения: 2132
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение serge » 2008-04-18 17:24:09

а если апач+mod-proxy или nginx в режиме прокси на шлюзе :?: :roll:

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-18 17:44:54

dikens3 писал(а):или ты хочешь набрать http://85.x.x.x и чтобы попадать на WEB-Сервер?
Ну да...именно это я и хотел. Я просто не понимаю почему у меня через инет не заходит на сервак... локально
http://192.168.2.222 все пашет а http://85.x.x.x пашет только не из моей локальной сетки.
Чё ты мудришь я никак не пойму
Вот что...
Существует ли возможность организовать удаленный доступ к серверу IBN? В нашем случае, мы имеем статический внешний IP адрес.

Re: Удаленный доступ
Да, существует.

1. Настройте firewall/router так, чтобы запросы приходящие на внешний IP-адрес на порт 80 перенаправлялись на компьютер, на котором установлен IBN-сервер.

2. Выберите новое имя для IBN-сервера, которое будет одинаковым и в локальной сети, и в Интернет, и указывать на внешний IP-адрес. Например, ibn.mycompany.ru. Также в качестве имени можно использовать сам внешний IP-адрес.

3. Переименуйте IBN-сервер:
<IbnInstallDir>\Tools\IbnServerSetup.exe /act:rename /from:старое.имя /to:ibn.mycompany.ru

Можно в локальной сети настроить ещё один DNS-сервер, который для имени ibn.mycompany.ru будет возвращать локальный адрес IBN-сервера. Тогда при работе в локальной сети все запросы будут идти напрямую на IBN-сервер, а не через маршрутизатор.
Вот такая вот тема... и не получается у меня выйти из локалки через инет на свой же Web Сервер.
Чукчи мы , однако.

Аватара пользователя
dikens3
подполковник
Сообщения: 4856
Зарегистрирован: 2006-09-06 16:24:08
Откуда: Нижний Новгород
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение dikens3 » 2008-04-18 17:59:00

rinetd
datapipe
...
и всё прочее.
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.

Аватара пользователя
anton284
мл. сержант
Сообщения: 96
Зарегистрирован: 2007-07-02 9:38:02
Откуда: Санкт-Петербург
Контактная информация:

Re: Редиект запросов на 80 порт

Непрочитанное сообщение anton284 » 2008-04-22 15:30:41

Вобщем так и не разобрался... может дело в NAT? Поставил себе прозрачную проксю все заработало как часы. А вот через NAT так и не получилось достучаться до внутреннего web сервера через внешний интерфейс... может и не должно было получиться? Что-то подсказывает мне что так делать нельзя.
dikens3 писал(а): rinetd
datapipe
...
и всё прочее.
Да все проще сделал... по статьям выше которые мне указали. NAT - редирект портов, и в DNS сервере прописал настройки возврата для домина - локального IP. Все теперь работает, спасибо еще раз за поддержку.
Чукчи мы , однако.