Автор Тема: Переброс IP с помощью PF  (Прочитано 2440 раз)

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

Оффлайн cubespace

  • Начинающий
  • *
  • Сообщений: 16
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: страна ОС
Переброс IP с помощью PF
« : 24 октября 2011, 20:52:01 »
Здравствуйте!

Есть три сервера
1) FreeBSD 8.2-RC2
он же выступает в роли шлюза для нета, и раздает пользователям в сети!
его IP:
192.168.1.1
XX.XX.XX.XX - белый ІР

2) FreeBSD 8.2-RC2 - 192.168.1.101
веб сервер, и файлопомойка

3) FreeBSD 8.0-RELEASE-p2 - 192.168.1.103
тут стоят пару игр, веб сервер (пока локальный)

есть второй белый ІР: YY.YY.YY.YY
который нужно перенаправить на 192.168.1.103

( YY.YY.YY.YY ---> 192.168.1.103 )

Вот ifconfig

inet# ifconfig
igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
        ether 00:8b:13:4a:5e:b3
        inet XX.XX.XX.XX netmask 0xfffffffc broadcast XX.XX.XX.WW
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=1bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4>
        ether 00:8b:13:4a:5e:b4
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
        inet 192.168.3.1 netmask 0xffffff00 broadcast 192.168.3.255
        inet XX.XX.XX.OO netmask 0xfffffff0 broadcast XX.XX.XX.RR
        inet 192.168.100.100 netmask 0xffffff00 broadcast 192.168.100.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
re0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=389b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_UCAST,WOL_MCAST,WOL_MAGIC>
        ether 00:8b:13:01:3b:66
        media: Ethernet autoselect (10baseT/UTP <half-duplex>)
        status: no carrier
em0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4,WOL_MAGIC>
        ether 00:8b:13:50:0b:af
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
fxp0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC>
        ether 00:d4:a3:29:5e:7d
        media: Ethernet autoselect (none)
        status: no carrier
fxp1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2009<RXCSUM,VLAN_MTU,WOL_MAGIC>
        ether 00:a2:b5:a7:00:b1
        inet CC.CC.CC.CC netmask 0xfffffffc broadcast CC.CC.CC.VV
        media: Ethernet autoselect (none)
        status: no carrier
ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
        nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
pflog0: flags=0<> metric 0 mtu 33200
vlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=3<RXCSUM,TXCSUM>
        ether 00:2a:11:60:a4:b5
        inet BB.BB.BB.BB netmask 0xfffffffc broadcast BB.BB.BB.KK
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
        vlan: 78 parent interface: em0

Вот pf.conf

ext_ip="XX.XX.XX.XX"
ext_if="igb0"
ext_if2="fxp1"

nat on $ext_if from $internal_net to any -> ($ext_if:0)
nat on $ext_if2 from $internal_net to any -> {$ext_if2:0}

### 192.168.1.101
rdr on $ext_if proto tcp from any to $ext_ip port 80 -> 192.168.1.101 port 80
rdr on $ext_if proto tcp from any to $ext_ip port 20 -> 192.168.1.101 port 20
rdr on $ext_if proto tcp from any to $ext_ip port 471 -> 192.168.1.101 port 21
rdr on $ext_if proto tcp from any to $ext_ip port 472 -> 192.168.1.101 port 22
### 192.168.1.103
rdr on $ext_if proto tcp from any to $ext_ip port 83 -> 192.168.1.103 port 80
rdr on $ext_if proto tcp from any to $ext_ip port 473 -> 192.168.1.103 port 22
rdr on $ext_if proto udp from any to $ext_ip port 27015 -> 192.168.1.103 port 27015
rdr on $ext_if proto udp from any to $ext_ip port 27016 -> 192.168.1.103 port 27016

Часть конфига убрана, там настройки для нета и локалки

С Админом который все это настраивал, нет связи! А настроить нужно!

Перед тем как править конфиг хотел спросить у вас совета !!!

Нужно что бы запросы на YY.YY.YY.YY по порту 80, 27015, 27016
попадали на 192.168.1.103!

На 192.168.1.1 пакет белых ІР
если поставить на свой локальный комп (который в этой же сети) YY.YY.YY.YY
то в нете буду сидеть уже из YY.YY.YY.YY

Как сделать ? и не повлиять на нет пользователям

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
Переброс IP с помощью PF
« Ответ #1 : 25 октября 2011, 09:48:31 »
С Админом который все это настраивал, нет связи! А настроить нужно!
так может не стОит лазить в pf не зная что там к чему, а воспользоваться более легким вариантом - rinetd?
Not as ultimate as 42, but pretty close...

Оффлайн makc

  • Постоялец
  • ***
  • Сообщений: 170
  • Рейтинг: 3
  • Генератор случайных чисел
    • Просмотр профиля
Переброс IP с помощью PF
« Ответ #2 : 25 октября 2011, 13:15:28 »
Честно говоря, сколько я не пырился в распечатку ifconfig -- не получилось найти там YY.YY.YY.YY.

С Админом который все это настраивал, нет связи! А настроить нужно!
так может не стОит лазить в pf не зная что там к чему, а воспользоваться более легким вариантом - rinetd?
Отчасти да. Лезть в рабочую конфигу... Есть определённые риски. Хотя бэкап на случай фэйла никто не отменял.

Но с другой стороны, на мой взгляд, проще добавить 2-3 строчки в pf, чем поднимать rinetd. А может я слишком ленив. :)

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Переброс IP с помощью PF
« Ответ #3 : 31 октября 2011, 17:45:05 »
cubespace, мы вроде бы решили у нас тему, отпишись что решено.
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
Переброс IP с помощью PF
« Ответ #4 : 11 ноября 2011, 13:21:22 »
Процетирую ответ автора, мб будет полезно.
Да большое спасибо за совет з командой
Попробовал пару вариантов и получилось вот так :


ext_ip="X.XX.XX.XX.94"
ext_ip2="X.XX.XX.XX.82"

rdr on $ext_if proto tcp from any to $ext_ip2 port 80 -> 192.168.1.103 port 80
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.