MPD5+IPFW в домовых сетях

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-29 18:14:41

Понимаю что чего то недопонимаю, а вот чего недопонимаю не понимаю.
Есть MPD5, подключаюсь к инету нормально. Тут вопросов нет, уже решил все. Вопрос в том как правильно настроить IPFW. Уже по перепробовал кучу вариантов. настраиваю через SSH, подключаться к компу напрямую - далеко, никак не удаётся запустить фаер - сразу рубится и соединение с инетом и всё вообще. Соответственно приходится просить что бы перезагружали машину, по умолчанию поставил фаеру тип OPEN так что после перезагрузки всё открывается и восстанавливается.

IFCONFIG

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

rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:0d:61:a3:f9:4d
        inet 10.19.10.97 netmask 0xfffffc00 broadcast 10.19.11.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1440
        inet 195.xx.xx.xx --> 172.21.1.1 netmask 0xffffffff
начальный конфиг моего IPFW

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

#!/bin/sh
FwCMD="/sbin/ipfw" # собственно где лежит бинарник ipfw
###
LanOut="ng0"          # внешний интерфейс - создан MPD
LanIn="rl0"            # внутренний интерфейс
IpOut="195.xx.xx.xx" # внешний IP адрес машины


# Сбрасываем все правила:
${FwCMD} -f flush

${FwCMD} allow tcp from any 1723 to any via ${LanIn}
${FwCMD} allow tcp from any to me dst-port 1723
${FwCMD} allow gre from any to any                          # как я понял открываем путь пакетам VPN соединения 

${FwCMD} allow tcp from any to any established
${FwCMD} allow ip from ${IpOut} to any out xmit ${LanIn} # эту сточку недопонял
${FwCMD} allow udp from any 53 to any via ${LanIn} 
${FwCMD} allow tcp from any 3389 to any via ${LanIn}
${FwCMD} allow tcp from any to any dst-port 3389 via ${LanIn}
${FwCMD} allow tcp from any 4899 to any via ${LanIn}
${FwCMD} allow tcp from any to any dst-port 4899 via ${LanIn}
${FwCMD} allow icmp from any to any icmptypes 0,8,11
${FwCMD} allow tcp from any to ${IpOut} dst-port 8090 via ${LanOut} # открыл порт для SSH, он у меня на 8090 повешен
${FwCMD} allow tcp from any to ${IpOut} dst-port 8090 via ${LanIn}

что ещё не добавил? что лишнее?
брал с чужого конфига, уже запутался что к чему куда и как - мозг пухнет :(
не могу до конца понять, что в фаере нужно открыть что бы не падал VPN канал
да ещё уточню - сетевой интерфейс один, машина под FreeBSD 7.1 работает только в качестве клиента, но нужно открыть входящие-исходящие подключения по порту 8080 и 8090

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
uHk
мл. сержант
Сообщения: 134
Зарегистрирован: 2008-05-21 15:16:48
Откуда: Москва
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение uHk » 2009-03-30 0:03:52

${FwCMD} allow tcp from any 1723 to any via ${LanIn}
${FwCMD} allow tcp from any to me dst-port 1723
это если у вас на freebsd поднят впн-сервер.
для клиента правильно будет:

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

${FwCMD} allow tcp from me to any 1723 via ${LanOut}
${FwCMD} allow tcp from any 1723 to me
после этого инет должен работать
${FwCMD} allow ip from ${IpOut} to any out xmit ${LanIn} # эту сточку недопонял
- тут наверно опечатка, имело ввиду ${LanOut}
надо сразу брать лошадь за рога

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-30 8:42:09

попробовал с таким изменением - всё равно рубит сразу. Попробовал так же убрать "via ${LanIn}" - не помогает.
Есть ещё такие вопросы:
  1. нужно ли перезапустить MPD после поднятия файервола или всё должно и так работать?
    где посмотреть какие правила срабатывают, а какие нет? (вроде надо указывать логирование пакетов в правиле насколько я понял)

Аватара пользователя
skeletor
майор
Сообщения: 2496
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение skeletor » 2009-03-30 11:37:06

Mobilesfinks писал(а):попробовал с таким изменением - всё равно рубит сразу.
рубит потому что идёт сброс всех правил, а у вас по дефолту ядро собрано с политикой deny from any to any. Для того, что бы правила загрузились и не приходилось каждый раз сервак бутать - перегружайте правила в фоне, то есть

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

#начальный_конфиг_моего_IPFW &
Mobilesfinks писал(а): нужно ли перезапустить MPD после поднятия файервола или всё должно и так работать?
нет
Mobilesfinks писал(а): где посмотреть какие правила срабатывают, а какие нет? (вроде надо указывать логирование пакетов в правиле насколько я понял)
Посмотреть срабатывает ли правило, можно командой ipfw show. Если показания счётчиков меняются, значит правило срабатывает. Так же можно включить логгирование, если нужно. Тогда логи будут писаться в /var/log/security
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-30 13:05:07

skeletor писал(а): перегружайте правила в фоне, то есть

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

 #начальный_конфиг_моего_IPFW &
 
немного не допонял каким образом в фоне, скрип запускать с ключом "&"?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение zingel » 2009-03-30 13:06:30

немного не допонял каким образом в фоне, скрип запускать с ключом "&"?
соглашусь, потому, что 1 амперсанд уже переведёт процесс в фон равнозначно как и Ctrl+Z
Z301171463546 - можно пожертвовать мне денег

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-30 13:11:18

Сейчас только попробовал - та же история, только успел увидеть что процесс фоном запустился и опять всё рубануло, стоит ли сброс всех правил делать в начале скрипта если говорите что переводит IPFW в режим блокировки по умолчанию?

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение zingel » 2009-03-30 13:12:34

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

filrewall_type="OPEN"
кто мешает?
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
skeletor
майор
Сообщения: 2496
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение skeletor » 2009-03-30 13:15:18

Mobilesfinks писал(а):
skeletor писал(а): перегружайте правила в фоне, то есть

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

 #начальный_конфиг_моего_IPFW &
 
немного не допонял каким образом в фоне, скрип запускать с ключом "&"?
да. а обрыв будет в любом случае. просто потом заново подключитесь и всё будет работать.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-30 13:25:54

да. а обрыв будет в любом случае. просто потом заново подключитесь и всё будет работать.
после такого запуска скрипта, комп теперь в инет не выходит даже после перезагрузки (( пошёл копать в чём проблем? наверное уже не сегодня, по результатам отпишусь, спасибо всем за советы будем пробовать

Аватара пользователя
skeletor
майор
Сообщения: 2496
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение skeletor » 2009-03-30 13:57:35

ну, за правильность вашего скрипта я не отвечаю.
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"

Mobilesfinks
мл. сержант
Сообщения: 128
Зарегистрирован: 2008-04-14 14:49:48
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение Mobilesfinks » 2009-03-31 11:15:56

РЕШЕНО

Странно что никто не заметил что у меня нет команды ADD перед всеми правилами :oops: :ROFL:
Сам врубился только когда вчера вечером подключился локально - по сообщениям в консоли. Ну а дальше в принципе всё заработало, в мелочах донастроил и всё тип топ. Правда потеря инета за ночь была, но это глянем... буду смотреть что к чему

Спасибо всем кто участвовал в обсуждении, советы помогли.

вот итоговый скрипт на фаерволл

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


#!/bin/sh
FwCMD="/sbin/ipfw  " # собственно где лежит бинарник ipfw
###
LanOut="ng0"            # внешний интерфейс
LanIn="rl0"             # внутренний интерфейс
IpOut="195.xx.xx.xx"   # внешний IP адрес машины
#IpVPN1="10.255.255.243" # 1-й IP адрес VPN сервера
#IpVPN2="10.255.255.243" # 2-й IP адрес VPN сервера

# Сбрасываем все правила:
${FwCMD} -f flush
${FwCMD} add accept ip from any to any via lo0

#${FwCMD} add accept all from me to ${IpVPN1}
#${FwCMD} add accept all from me to ${IpVPN2}
#${FwCMD} add accept all from ${IpVPN1} to me
#${FwCMD} add accept all from ${IpVPN2} to me
#не пригодились - все пакеты идут через нижеследующие правила


#разрешаем исходящий VPN траффик ______
${FwCMD} add accept tcp from me to any 1723
${FwCMD} add accept tcp from any 1723 to me
${FwCMD} add accept gre from any to any
${FwCMD} add accept tcp from any to any established
#______________________________________

${FwCMD} add accept ip from ${IpOut} to any out xmit ${LanOut}
${FwCMD} add accept udp from any 53 to any
${FwCMD} add accept tcp from any 3389 to any
${FwCMD} add accept tcp from any to any dst-port 3389
${FwCMD} add accept tcp from any 4899 to any
${FwCMD} add accept tcp from any to any dst-port 4899
${FwCMD} add accept icmp from any to any icmptypes 0,8,11
${FwCMD} add accept tcp from any to me dst-port 8090

#${FwCMD} add accept ip from any to any #Оставил для проверки


ну теперь дополнить скрипт правилами запрещающими частные сети и т.п. согласно тех манов что есть на сайте лиссяры и можно использовать.
Если будут замечания то оставляйте.

Аватара пользователя
RusBiT
лейтенант
Сообщения: 635
Зарегистрирован: 2007-08-03 11:43:53
Откуда: Красноярск
Контактная информация:

Re: MPD5+IPFW в домовых сетях

Непрочитанное сообщение RusBiT » 2009-04-01 8:34:32

1. проставь номера правил.
2. для сетей используй tables
3. когда не уверен в своих правилах , то лучше в крон добавить что то типа

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

*/10    *       *       *       *       root    /sbin/ipfw add 10 allow all from any to any
Чем больше я познаю FreeBSD, тем больше я считаю себя ламером :)