Страница 1 из 1

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

Добавлено: 2009-03-29 18:14:41
Mobilesfinks
Понимаю что чего то недопонимаю, а вот чего недопонимаю не понимаю.
Есть 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

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

Добавлено: 2009-03-30 0:03:52
uHk
${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}

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

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

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

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

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

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

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

Добавлено: 2009-03-30 13:05:07
Mobilesfinks
skeletor писал(а): перегружайте правила в фоне, то есть

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

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

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

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

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

Добавлено: 2009-03-30 13:11:18
Mobilesfinks
Сейчас только попробовал - та же история, только успел увидеть что процесс фоном запустился и опять всё рубануло, стоит ли сброс всех правил делать в начале скрипта если говорите что переводит IPFW в режим блокировки по умолчанию?

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

Добавлено: 2009-03-30 13:12:34
zingel

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

filrewall_type="OPEN"
кто мешает?

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

Добавлено: 2009-03-30 13:15:18
skeletor
Mobilesfinks писал(а):
skeletor писал(а): перегружайте правила в фоне, то есть

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

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

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

Добавлено: 2009-03-30 13:25:54
Mobilesfinks
да. а обрыв будет в любом случае. просто потом заново подключитесь и всё будет работать.
после такого запуска скрипта, комп теперь в инет не выходит даже после перезагрузки (( пошёл копать в чём проблем? наверное уже не сегодня, по результатам отпишусь, спасибо всем за советы будем пробовать

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

Добавлено: 2009-03-30 13:57:35
skeletor
ну, за правильность вашего скрипта я не отвечаю.

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

Добавлено: 2009-03-31 11:15:56
Mobilesfinks
РЕШЕНО

Странно что никто не заметил что у меня нет команды 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 #Оставил для проверки


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

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

Добавлено: 2009-04-01 8:34:32
RusBiT
1. проставь номера правил.
2. для сетей используй tables
3. когда не уверен в своих правилах , то лучше в крон добавить что то типа

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

*/10    *       *       *       *       root    /sbin/ipfw add 10 allow all from any to any