Страница 1 из 2
IPFW для новичка
Добавлено: 2008-07-30 14:04:58
Владимир
Прочитал статьи про настройку IPFW , на основе них примерно понял структуру правил.
ситуация такая :
есть машина, которая подключена к инету по локальной сети. IP она получила путем DHCP без проблем. добавил в ядро
options IPFIREWALL
options IPDIVERT
пересобрал ядро.
По дефолту правила deny for any to any
Динамически создал такие правила :
Код: Выделить всё
ipfw add allow udp for any to me
ipfw add allow tcp for me to 194.67.57.226 80
ну и к этому конечно осталось дефолтовое правило
deny ip for any to any
Но эти все правила удалялись автоматом, после перезагрузки. Начал решать проблему так :
rc.conf :
Код: Выделить всё
firewall_enable="YES" - если файрволл грузится модулем
firewall_type="/etc/rules"
firewall_script="/etc/rules"
firewall_script="/etc/rules" = эту строчку добавил т.к. не подгружались правила с файла
rules
rules :
Код: Выделить всё
#!/bin/sh
FwCMD="/sbin/ipfw"
${FwCMD} -f flush
${FwCMD} add allow udp for any to me
${FwCMD} add allow tcp for me to 194.67.57.226 80
Задача данной машины:
Пускать пользователя только на сайт mail.ru и никуда больше.
Понимаю, что правила в файле, надо по-другому писать, но голова уже бо-бо, подскажите как правильно правила оформлять, если это просто локальная машина, приведите пример.
спасибо зараннее...
статью читал:
http://www.lissyara.su/?id=1127
Re: IPFW для новичка
Добавлено: 2008-07-30 14:16:30
squid
Владимир писал(а):firewall_type="/etc/rules"
тип может быть OPEN, CLOSSED, UNKNOWN
в зависимости от типа и задач пишутся правила
Re: IPFW для новичка
Добавлено: 2008-07-30 14:30:40
Владимир
т.е. мне лучше, как я понимаю, лучше значение данной строки изменить на OPEN или RULES?
и решиться моя проблема? или это только исправление одной из ошибок мною допущенных?;)
а сами то строчки правил.. то верные?
Re: IPFW для новичка
Добавлено: 2008-07-30 14:37:57
freak
типы вообще-то нужны для дефолтового скрипта с правилами. убери эту строку вообще, если свои правила подсовываешь.
Re: IPFW для новичка
Добавлено: 2008-07-30 14:38:51
terminus
rc.conf
Код: Выделить всё
firewall_enable="YES" - если файрволл грузится модулем
firewall_type="/etc/rules"
/etc/rules
Код: Выделить всё
add check-state
add allow all from any to any via lo0
add deny all from any to 127.0.0.0/8
add deny all from 127.0.0.0/8 to any
add allow tcp from me to 194.67.57.26, 194.67.57.126, 194.67.57.226 dst-port 80 out keep-state
add allow udp from me to any 53 out keep-state
add deny all from any to any
Re: IPFW для новичка
Добавлено: 2008-07-30 14:42:19
squid
Владимир писал(а):#!/bin/sh
FwCMD="/sbin/ipfw"
${FwCMD} -f flush
${FwCMD} add allow udp for any to me
${FwCMD} add allow tcp for me to 194.67.57.226 80
сомневаюсь, что будет работать
правила пишутся для входящего и исходящего трафика
приблизительно так
Код: Выделить всё
${FwCMD} add allow udp for any to me
${FwCMD} add allow udp for me to any
${FwCMD} add allow tcp for me to 194.67.57.226 80
${FwCMD} add allow tcp for 194.67.57.226 80 to me
или просто, чтобы разрешить все
Re: IPFW для новичка
Добавлено: 2008-07-30 14:43:54
Владимир
terminus
add allow all from any to any via lo0 = это как я понимаю "петля"
add deny all from any to 127.0.0.0/8 = это чтобы на локалхост не ломились
add deny all from 127.0.0.0/8 to any = это чтобы локалхост не ломился никуда
add allow tcp from me to {194.67.57.26, 194.67.57.126, 194.67.57.226} 80 out keep-state = это доступ к маил.ру (что-то дофига айпишников)

add allow udp from me to any 53 out keep-state = это доступ ДНСу
add deny all from any to any = это без комментариев)
правильно понял ?
Re: IPFW для новичка
Добавлено: 2008-07-30 14:47:59
Владимир
squid
понял, значит правила надо писать всегда в обе стороны:
сначала в одну , затем в другую.
Спасибо за такое разжёвывание.
По поводу разрешить всем и вся = не подходит, надо чтобы доступ был только на маил.ру
Re: IPFW для новичка
Добавлено: 2008-07-30 14:48:50
terminus
Код: Выделить всё
add check-state = пропускает внутрь соединения которые были инициализированы нами в правилах keep-state
add allow all from any to any via lo0 = Сам с собой должен иметь возможность говорить
add deny all from any to 127.0.0.0/8 = для секюрности
add deny all from 127.0.0.0/8 to any = для секюрности
add allow tcp from me to 194.67.57.26, 194.67.57.126, 194.67.57.226 dst-port 80 out keep-state = доступ к маил.рк (у них http://www.mail.ru имеет 3 разных адреса в DNS)
add allow udp from me to any 53 out keep-state = доступ ко всем днсам. Можно указать вместо any адрес только своего.
add deny all from any to any = это без комментариев
Re: IPFW для новичка
Добавлено: 2008-07-30 14:51:35
dikens3
Все IP-Адреса mail.ru:
Код: Выделить всё
mail.ru. 1303 IN TXT "v=spf1 ip4:194.67.57.0/24 ip4:194.67.23.0/24 ip4:194.67.45.0/24 ip4:195.239.211.0/24 ip4:194.186.55.0/24 ip4:195.239.174.0/24 ~all"
Re: IPFW для новичка
Добавлено: 2008-07-30 14:55:03
Владимир
terminus писал(а):Код: Выделить всё
add check-state = пропускает внутрь соединения которые были инициализированы нами в правилах keep-state
add allow all from any to any via lo0 = Сам с собой должен иметь возможность говорить
add deny all from any to 127.0.0.0/8 = для секюрности
add deny all from 127.0.0.0/8 to any = для секюрности
add allow tcp from me to 194.67.57.26, 194.67.57.126, 194.67.57.226 dst-port 80 out keep-state = доступ к маил.рк (у них http://www.mail.ru имеет 3 разных адреса в DNS)
add allow udp from me to any 53 out keep-state = доступ ко всем днсам. Можно указать вместо any адрес только своего.
add deny all from any to any = это без комментариев
Код: Выделить всё
add allow tcp from me to any 22 out
add allow tcp from any to me 22 in
ssh - правильный вариант ?
чтобы я мог к кому-то подсоединится по ssh и ко мне могли.
Re: IPFW для новичка
Добавлено: 2008-07-30 15:00:00
terminus
Код: Выделить всё
add check-state
add allow all from any to any via lo0
add deny all from any to 127.0.0.0/8
add deny all from 127.0.0.0/8 to any
add allow tcp from any to me 22 in
add allow tcp from me to 194.67.57.26, 194.67.57.126, 194.67.57.226 dst-port 80 out keep-state
add allow udp from me to any 53 out keep-state
add deny all from any to any
2 dikens3
SPF это срисок SMTP с которых разрешено посылать почту от имени mail.ru - антиспамовая зашита. Ему же надо достуа к WWW (к WWW - 80 порт? Я правильно понял? Машина не гейт а на ней работают юзевры?)
Re: IPFW для новичка
Добавлено: 2008-07-30 15:01:11
freak
Владимир писал(а):
Код: Выделить всё
add allow tcp from me to any 22 out
add allow tcp from any to me 22 in
ssh - правильный вариант ?
чтобы я мог к кому-то подсоединится по ssh и ко мне могли.
да
Re: IPFW для новичка
Добавлено: 2008-07-30 15:04:18
Владимир
terminus писал(а):Код: Выделить всё
add check-state
add allow all from any to any via lo0
add deny all from any to 127.0.0.0/8
add deny all from 127.0.0.0/8 to any
add allow tcp from any to me 22 in
add allow tcp from me to 194.67.57.26, 194.67.57.126, 194.67.57.226 dst-port 80 out keep-state
add allow udp from me to any 53 out keep-state
add deny all from any to any
2 dikens3
SPF это срисок SMTP с которых разрешено посылать почту от имени mail.ru - антиспамовая зашита. Ему же надо достуа к WWW (к WWW - 80 порт? Я правильно понял? Машина не гейт а на ней работают юзевры?)
да, доступ к WWW маил.ру , т.е. через веб-интерфейс.
Терминус, не знаю как тебя по имени, СПАСИБО.
Re: IPFW для новичка
Добавлено: 2008-07-30 15:07:02
terminus
Пожалуйста. Главное чтобы помогло.
Re: IPFW для новичка
Добавлено: 2008-07-30 15:15:28
Владимир
спасибо ребята за отзывчивость.
squid
terminus
freak
Re: IPFW для новичка
Добавлено: 2008-07-30 15:35:44
juffin
Здравствуйте.
Имеется у меня такой конфиг фаерволла:
Код: Выделить всё
#!/bin/sh -q
fw=/sbin/ipfw
oif=fxp1
oip=внешний IP
iif=fxp0
iip=192.168.1.1
lan=192.168.1.0/24
adm=192.168.1.225
pdc=192.168.1.2
post=192.168.1.224
${fw} -f flush
${fw} add allow ip from any to any via lo
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
${fw} add deny ip from any to 10.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 in via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 in via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 in via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 in via ${oif}
${fw} add deny ip from any to 10.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 out via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 out via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 out via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 out via ${oif}
${fw} add deny icmp from any to any frag
${fw} add deny log icmp from any to 255.255.255.255 in via ${oif}
${fw} add deny log icmp from any to 255.255.255.255 out via ${oif}
# SQUID
${fw} add fwd 127.0.0.1,3128 tcp from ${lan} to any http,https,ftp in via ${iif}
# NAT
${fw} add divert natd ip from ${lan} to any out via ${oif}
${fw} add divert natd ip from any to ${oip} in via ${oif}
${fw} add allow tcp from any to any established
${fw} add allow ip from ${oip} to any out xmit ${oif}
#ICMP
${fw} add allow icmp from any to any icmptype 0,8,11
# DNS
${fw} add allow udp from any to any 53
${fw} add allow udp from any 53 to any
# Users
${fw} add allow ip from ${adm} to any 20,21,25,80,110,443
${fw} add allow ip from any to ${adm} 20,21,25,80,110,443
${fw} add allow ip from ${pdc} to any 25,80,110,443
${fw} add allow ip from any to ${pdc} 25,80,110,443
${fw} add allow ip from ${post} 25,110 to any 25,110
${fw} add allow ip from any 25,110 to ${post} 25,110
${fw} add deny log ip from any to any
требуется, чтобы adm имел HTTP,HTTPS,почту и FTP.
pdc HTTP,HTTPS и почту.
А post только почту. При таком конфиге проходят все всюду.
Подскажите, пожалуйста, что поправить, а то я уже две недели колупаюсь

Re: IPFW для новичка
Добавлено: 2008-07-30 16:09:10
terminus
http://nuclight.livejournal.com/124348.html
Курите - поможет
такой конфиг, думаю, прокатит...
Код: Выделить всё
#!/bin/sh -q
fw=/sbin/ipfw
oif=fxp1
oip=внешний IP
iif=fxp0
iip=192.168.1.1
lan=192.168.1.0/24
adm=192.168.1.225
pdc=192.168.1.2
post=192.168.1.224
${fw} -f flush
${fw} add allow ip from any to any via lo
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
${fw} add deny ip from any to 10.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 in via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 in via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 in via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 in via ${oif}
${fw} add deny ip from any to 10.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 out via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 out via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 out via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 out via ${oif}
${fw} add deny icmp from any to any frag
${fw} add deny log icmp from any to 255.255.255.255 in via ${oif}
${fw} add deny log icmp from any to 255.255.255.255 out via ${oif}
# SQUID
${fw} add fwd 127.0.0.1,3128 tcp from ${lan} to any http,https,ftp in via ${iif}
# Users
${fw} add deny ip from ${adm} to any not 20,21,25,80,110,443
${fw} add deny ip from ${pdc} to any not 25,80,110,443
${fw} add deny ip from ${post} to any not 25,110
# NAT
${fw} add divert natd ip from ${lan} to any out via ${oif}
${fw} add divert natd ip from any to ${oip} in via ${oif}
${fw} add allow tcp from any to any established
${fw} add allow ip from ${oip} to any out xmit ${oif}
#ICMP
${fw} add allow icmp from any to any icmptype 0,8,11
# DNS
${fw} add allow udp from any to any 53
${fw} add allow udp from any 53 to any
${fw} add deny log ip from any to any
Re: IPFW для новичка
Добавлено: 2008-07-31 9:40:07
juffin
to terminus
Спасибо за указанное направление и конфиг.
Кое-что пришлось поправить,(разрешить DNS, отключить всех пользователей, кроме указанных) но у меня теперь есть конфиг, который работает как надо.
Правда мне он не нравится, коряво выглядит, может кто-нибудь подскажет, что можно поправить?!
Код: Выделить всё
#!/bin/sh -q
fw=/sbin/ipfw
oif=fxp1
oip=89.107.200.130
iif=fxp0
iip=192.168.1.1
adm=192.168.1.225
pdc=192.168.1.2
post=192.168.1.224
lan=${adm},${pdc},${post}
${fw} -f flush
${fw} add allow ip from any to any via lo
${fw} add deny ip from any to 127.0.0.0/8
${fw} add deny ip from 127.0.0.0/8 to any
${fw} add deny ip from any to 10.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 in via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 in via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 in via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 in via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 in via ${oif}
${fw} add deny ip from any to 10.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 172.16.0.0/12 out via ${oif}
${fw} add deny ip from any to 192.168.0.0/16 out via ${oif}
${fw} add deny ip from any to 0.0.0.0/8 out via ${oif}
${fw} add deny ip from any to 169.254.0.0/16 out via ${oif}
${fw} add deny ip from any to 240.0.0.0/4 out via ${oif}
${fw} add deny icmp from any to any frag
${fw} add deny log icmp from any to 255.255.255.255 in via ${oif}
${fw} add deny log icmp from any to 255.255.255.255 out via ${oif}
# SQUID
${fw} add fwd 127.0.0.1,3128 tcp from ${adm},${pdc} to any http,https in via ${iif}
# Users
${fw} add deny tcp from ${adm} to any not 20,21,22,25,53,80,110,443
${fw} add deny tcp from ${pdc} to any not 25,53,80,110,443
${fw} add deny tcp from ${post} to any not 25,53,110
# NAT
${fw} add divert natd ip from ${lan} to any out via ${oif}
${fw} add divert natd ip from any to ${oip} in via ${oif}
${fw} add allow tcp from any to any established
${fw} add allow ip from ${oip} to any out xmit ${oif}
#ICMP
${fw} add allow icmp from any to any icmptype 0,8,11
# DNS
${fw} add allow udp from any to any 53
${fw} add allow udp from any 53 to any
${fw} add allow all from ${lan} to any via ${iif}
${fw} add allow all from any to ${lan} via ${iif}
${fw} add deny log ip from any to any
Re: IPFW для новичка
Добавлено: 2008-07-31 16:16:46
paradox
вообще то фаерволы надо понимать
а админов которые спрашивают советов как их настраивать
я бы на месте начальства выганял
а что бы у таких админов был стимул учиться - то выганял бы без права на востанновления и делал рассылку для всех работодателей
))
но думаю к вам это не относиться
и это фаервол исключительно у вас на компютере
и нужен для баловства
?)
Re: IPFW для новичка
Добавлено: 2008-07-31 16:43:36
Владимир
paradox писал(а):вообще то фаерволы надо понимать
а админов которые спрашивают советов как их настраивать
я бы на месте начальства выганял
а что бы у таких админов был стимул учиться - то выганял бы без права на востанновления и делал рассылку для всех работодателей
))
но думаю к вам это не относиться
и это фаервол исключительно у вас на компютере
и нужен для баловства
?)
ну-с вот и спросил, чтобы понять окончательно

дык...я еще и не админ, а только учусь
фаервол на тестовой машине

для обучения)
оффтоп)
Re: IPFW для новичка
Добавлено: 2008-08-01 10:29:20
CTOPMbI4
paradox писал(а):вообще то фаерволы надо понимать
а админов которые спрашивают советов как их настраивать
я бы на месте начальства выганял
а что бы у таких админов был стимул учиться - то выганял бы без права на востанновления и делал рассылку для всех работодателей
))
но думаю к вам это не относиться
и это фаервол исключительно у вас на компютере
и нужен для баловства
?)
Когда то нужно начинать
Вспомните себя когда только начинали изучать

Re: IPFW для новичка
Добавлено: 2008-08-01 14:04:58
paradox
у меня была другая ситуация
мне дали бсд с фаерволом и рабочей сеткой
и сказали будешь админить
если что полетит получишь в голову))))
ни по одном форуму я не бегал и не постил месседжы (спасите, помогите, как делаться)
а пара вопросов на ирс каналах и меня посылали читать мануал
выход я нашел в чтении примеров и разборов всяких ситуаций опубликованных на сайте опеннет и других
поэтому можно сказать что я выучил фаервол толком неиспользуя его
зато понимая его
а с нынешней молодежи я фигею)))
вот некоторые не буду называть
вместо того что бы подумать над простой проблемой
постят одно и тоже сообщение на всех порталах где есть раздел freebsd
Re: IPFW для новичка
Добавлено: 2008-08-01 14:08:09
dikens3
paradox писал(а):а с нынешней молодежи я фигею)))
Ты не понял, они деньги идут зарабатывать, а не работать. Разве не ясно? Работать должен тот, кто умеет. Это разные вещи.
Какой смысл что-то начинать делать самому, когда написав на 10 форумов , в 90% случаев получишь ответ не включая мозг? А потом тупо сидеть и ждать ответов.
Re: IPFW для новичка
Добавлено: 2008-08-01 14:24:07
CTOPMbI4
просто на поиск решения может уйти довольно много времени.
короче чтобы нормально разобраться и понять, нужно самому по тратить время на поиск решения
