Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FreeBSD + ipfw rules

Автор: Thomas78
Дата сообщения: 21.10.2004 09:40
вопрос такой:
хочу сделать например так, есть сеть 192.168.0.0 - 255
нужно разрешить всё от 192.168.0.0 до 120 и всё запретить от 120 до 255, как?
add allow any from ? to server
add allow any from server to ?

add deny any from ? to server
add deny any from server to ?
Автор: Pashich
Дата сообщения: 21.10.2004 13:19
Втоит FreeBSD 5.2.1

Хочется запретить машине с адресом MAC 00-20-ed-5a-e8-37 запретить подключаться к серваку.

Пробую как мануале

ipfw add deny all from mac 00:20:ed:5a:e8:37 to me

В ответ пишет ipfw: hostname ``mac'' unknown

Может не поддерживается фильтрация по MAC по умочанию, ее включить надо?


Автор: Demetrio
Дата сообщения: 21.10.2004 13:29
что-то типа


Цитата:
ipfw add 49 deny mac any 00:E0:18:F1:57:94 via wi0
ipfw add 49 deny mac 00:E0:18:F1:57:94 any via wi0
Автор: Pashich
Дата сообщения: 21.10.2004 14:34
Demetrio

Спасибо, работает!
Чтобы заработало, нужно было еще сделать net.link.ether.ipfw: 1
Автор: ShaLuula
Дата сообщения: 25.10.2004 17:25
Здравствуйте!

Задача настроить Router под FreeBSD 5.2.1
Имеются 3 сетевые карты:
1.) (sk0) смотрит в интернет
2.) (rl0) для локальной сети
3.) (rl1) для клиентов

Вот как это выглядит сейчас в Microtik

Код:
# ADDRESS NETMASK NETWORK BROADCAST INTERFACE
0 192.168.20.1 255.255.255.224 192.168.20.1 192.168.20.31 ether3
1 192.168.20.33 255.255.255.240 192.168.20.33 192.168.20.47 ether2
2 192.168.65.193 255.255.255.224 192.168.65.193 192.168.65.223 ether2
3 192.168.3.3 255.255.255.224 192.168.3.3 192.168.3.31 ether1
Автор: HighTower
Дата сообщения: 28.10.2004 13:28
народ, знатоки!!!

как фильтровать форвордовый трафик?

есть 2 реальных ип, чтобы они одновременно работали, второй форвордится так:

ipfw add fwd 193.x.x.177 ip from 193.x.x.176/28 to not 193.x.x.176/28

однако это правило реально разрешаеьт ВСЁ как на вход, так и на выход...

если ПОСЛЕ этого правила вписать:
ipfw add allow all from 193.x.x.176/28 to any
ipfw add allow all from any to 193.x.x.176/28 established

то они не отрабатывают почемуто, а если их вписать ДО, то форвард не пашет...

чего посоветуете?
Автор: Ptrovich
Дата сообщения: 03.11.2004 16:00
Есть сервер - шлюз в инет на Фре 4.9 . Стоит сквид на порт 3128 . Чел , который его ставил на каждой из клиентских машин прописывал в прокси в броузере, дабы сквид им на ввв регулировал скорость. Мне терзают смутные сомнения , что можно завернуть на ИПФВ все запросы из внутреннего интерфейса скажем xl0 на порт 3128 , этим самым отрегулировав скорость и если влючено кэширование на сквиде , проверить кэш. Как это правильно оформить правилами ?
Автор: Richman
Дата сообщения: 30.11.2004 02:49
Доброго времени суток, проблема в следующем требуется поднять ipfw+nat+utm4billing. Система Free BSD 5.2.1 Сейчас вопрос конкретно по сабжу. Я никак настроить ipfw немогу он игнорирует мои правила из /etc/rc.firewall и подефолту сбрасывает на 65535 deny ip from any to any, естественно при таких раскладах никто никого не находит. Все настривалось но мануалу от utm4

вот мой rc.conf: - права 644

firewall_enable="YES"
firewall_script="/etc/rc.firewall"
natd_enable="YES"
natd_interface="rl0"
gateway_enable="YES"
inetd_enable="YES"
linux_enable="YES"
sendmail_enable="YES"
sshd_enable="YES"
usbd_enable="YES"

# -- sysinstall generated deltas -- # Mon Nov 1 23:03:31 2004
ifconfig_xl0="inet 192.168.0.100 netmask 255.255.255.0"
ipv6_enable="YES"

ifconfig_rl0="inet 192.168.1.100 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
hostname="vault.sumy.ua"

а вот мой rc.firewall: прва 755


ipfw='/sbin/ipfw -q'

${ipfw} -f flush
${ipfw} add 50 divert natd all from any to any via rl0
${ipfw} add 100 allow ip any to me
${ipfw} add 200 allow ip from me to any


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

P.S. ручками вдалбливаю ipfw add 1 allow ip rom any to any и все. правило успешно добавляетя.
Автор: IntenT
Дата сообщения: 09.01.2005 22:35

Цитата:
${ipfw} add 100 allow ip any to me

в этой строке ошибка
надо
${ipfw} add 100 allow ip from any to me
Автор: NickBulll
Дата сообщения: 11.01.2005 12:18
Народ!!! Такой косяк, во фряхе 4.10 при настройке вола не работает инет на локальных машинах! Хотя и внутренний пинг и внешний идут! Что делать?

вот конфиг вола:

#!/bin/sh
#

####### VARIABLES ###########

# Outside
o_if="rl0"
o_ip="xxx.xxx.xxx.xxx"

# Inside
i_if="rl1"
i_net="xxx.xxx.xxx.xxx/24"

#############################



########## RULES ############

# Flush existent rules
ipfw -f flush

# Loopback interface
ipfw add 100 allow all from any to any via lo0

# NAT inside network
ipfw add divert natd all from any to any via ${o_if}

# Inside LAN
ipfw add allow all from any to any via ${i_if}

# Check state table for each observed packet
ipfw add check-state

# Fragmented packets && established connections
ipfw add allow tcp from any to any established
ipfw add allow all from any to any frag

# Allow anything outbound - i trust my home network
ipfw add allow all from ${o_ip} to any keep-state

# Allow icmp
ipfw add allow log logamount 0 icmp from any to any

# Deny/log everything else
ipfw add deny log logamount 0 all from any to any
Автор: Ptrovich
Дата сообщения: 16.01.2005 13:42
Доброго времени суток! Я уже месяц пытаюсь настроить ИПФВ, мануалами запасся по самые немогу. Включая здешнюю ссылку на настрой ИПФВ. Пока у меня ровно нихренашеньки не выходит, и злой как чертяка.
Я ДО СИХ ПОР не могу понять почему к примеру если мы описываем ДНС лукап, то мы пишем:
uports="1025-65535"
ext_if=наружный интерф
ext_ip=наруж айп
int_net=внурт сеть
цитата из здешнего мануала
----
${ipfw} add allow udp from $ext_ip $uports to any domain out xmit $ext_if
${ipfw} add allow udp from any domain to $ext_ip $uports in recv $ext_if
${ipfw} add allow udp from any domain to $int_net $uports in recv $ext_if
------
Во - первых почему используются порты 1025 - 65535 если мы говорим про днс? Хотя тут я где то догадываюсь, что идет рахговор про ответ днс сервера который он пошлет по любому порту который ""первый подруку попадет".
Во 2ых почему мы на выход разрешаем тока на наружном интерфейсе а на вход на обоих? Почему не нужно разрешить на выход еще на внутреннем, ведь запрос днс шлют внутренние компы?
Поячсните мне плиз хотя бы это , а тогда я уже буду остальные вопры задавть. Ато пока все что у меня вышло это содрать чужой скрипт из нета и повесить его у себя, но я хочу понять КАК оно все фунциклирует.
Автор: STEEL
Дата сообщения: 30.01.2005 23:42
Помогите пожалуйста разобраться.
Пытаюсь настроить NAT.

192.168.0.10 - (адрес машины, на которой стоит freebsd)
192.168.1.10 - алиас этой же машины
192.168.0.100 - роутер(шлюз в интернет)

192.168.1.* - раздаю клиентам

В настройках у клиентов в WINXP прописываю адрес допустим 192.168.1.1, шлюз 192.168.1.10, маску 255.255.255.0, днс провайдера a.b.c.

Ничего не происходит.
Вот конфиги... FreeBSD 4.6.2 - но это не играет никакой роли.
#vi /etc/rc.conf

ifconfig_rl0="192.168.0.10 netmask 255.255.255.0"
ifconfig_rl0_alias0="inet 192.168.1.10 netmask 255.255.255.0"
defaultrouter="192.168.0.100"
gateway_enable="YES"
ipnat_enable="YES"
ipfilter_enable="YES"
ipnat_rules="/etc/ipnat.rules"
ipfilter_rules="/etc/ipf.rules"
kern_securelevel_enable="NO"
nfs_reserved_port_only="YES"
sshd_enable="YES"
usbd_enable="YES"
~

#vi /etc/ipnat.rules
map rl0 192.168.1.0/24 -> 0/32 proxy port 21 ftp/tcp
map rl0 192.168.1.0/24 -> 192.168.0.10/32 portmap tcp/udp 20001:40000
map rl0 192.168.1.0/24 -> 192.168.0.10/32
~


#vi /etc/ipf.rules
pass in quick on lo0 all
pass out quick on lo0 all
pass in quick on rl0 all
pass out quick on rl0 all
~


# ifconfig
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.0.10 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::280:48ff:fe33:b151%rl0 prefixlen 64 scopeid 0x1
inet 192.168.1.10 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:80:48:33:b1:51
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
sl0: flags=c010<POINTOPOINT,LINK2,MULTICAST> mtu 552
faith0: flags=8002<BROADCAST,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
inet 127.0.0.1 netmask 0xff000000
ppp0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500

#ipfw show
65535 1194984 58170216 allow ip from any to any
~
Автор: Pukite
Дата сообщения: 30.01.2005 23:47
AFAIK, фря не будет роутить на виртуальном интерфейсе, нужны 2 реальных карточки...
Автор: Ptrovich
Дата сообщения: 31.01.2005 13:53
Я вообще понять немогу откуда инету вяться то , если есть всего одна реальная сетевуха которая включена в локал. Откуда же МИР приходит?
Автор: Zmey
Дата сообщения: 31.01.2005 14:04
Ptrovich

Цитата:
Откуда же МИР приходит?


Видимо мир приходит от
Цитата:
192.168.0.100 - роутер(шлюз в интернет)


А NAT работать не должен по идее, т.к. у тебя сеть которую нужно натить, висит на той же сетевухе, от адреса которой нужно натить. Поставь вторую сетевуху, для сети 192.168.1. тогда должно заработать
Автор: STEEL
Дата сообщения: 02.02.2005 20:17
Какой мне IP назначить сетевой карте(192.168.0.2), которая подключена к роутеру?
У роутера будет 192.168.0.100
А сетевой карте, что подключена к свитчу дадим 192.168.1.1, а клиентам 192.168.1.2 и т.п.
Что-нибудь в ipnat.rules изменить?
Автор: Loafer
Дата сообщения: 19.02.2005 13:55
кто в курсе
sysctl net.inet.ip.forwarding=0
сохранится ли этот запрет после перегрузки машинки под free?
проверить не могу
и еще
как запретить прохождение пакетов по traceroute или tracert ?
Автор: Demetrio
Дата сообщения: 19.02.2005 13:58
Loafer
Нет, не сохранится

# echo net.inet.ip.forwarding=0 >> /etc/sysctl.conf

Добавлено:

Цитата:
как запретить прохождение пакетов по traceroute или tracert ?

Самое простое - так:

deny log icmp from any to any in via $pif

Можно выборочно для разных типов ICMP

Добавлено:
Можно ещё в ядро засунуть фичи типа options IPSTEALTH


http://www.onlamp.com/pub/a/bsd/2001/04/04/FreeBSD_Basics.html
Автор: Loafer
Дата сообщения: 19.02.2005 14:18
Demetrio
сенкую... и еще подскажи тогда
почему правило deny icmp from any to any не работает ?
Автор: Demetrio
Дата сообщения: 19.02.2005 14:22
Loafer
Покажи список правил

ipfw list
ipfw show
Автор: Loafer
Дата сообщения: 19.02.2005 14:25
хмм.. то что ты написал - тоже не работает
список только правиться - вот он весь

Цитата:

ipfw list
00100 deny ip from any to 127.0.0.0/8
00200 deny ip from 127.0.0.0/8 to any
00300 deny tcp from any to any dst-port 445
00400 deny tcp from any to any dst-port 5554
00500 deny tcp from any to any dst-port 9995
00600 deny tcp from any to any dst-port 9996
00700 deny tcp from any to any dst-port 3127
00800 deny udp from any to any dst-port 4444
00900 deny tcp from any to any dst-port 135
01000 deny udp from any to any dst-port 2001
01100 deny udp from any to any dst-port 2002
01200 deny ip from 0.0.0.0/8 to any
01300 allow ip from any to any
01400 deny icmp from any to any
01500 deny log icmp from any to any
01600 deny log icmp from any to any in via rl0
01700 deny log icmp from any to any in via ep0
65535 deny ip from any to any
Автор: Demetrio
Дата сообщения: 19.02.2005 14:28

Цитата:
01300 allow ip from any to any

Это правило разрешает ВСЕ, соответственно те правила что идут дальше не обрабатываются.


Цитата:
01400 deny icmp from any to any
01500 deny log icmp from any to any
01600 deny log icmp from any to any in via rl0
01700 deny log icmp from any to any in via ep0

Зачем все это дублировать?
Автор: Loafer
Дата сообщения: 19.02.2005 14:32
Demetrio
так я его руками и забивал щас весь (дубль в смысле )- пробовал т.е
а 01300 allow ip from any to any усмотрел - но поздно - ты уже ответил
Автор: ZLOnix
Дата сообщения: 20.02.2005 14:34
Добрый день.
Проблема: правила ipfw которые надо добавить чтобы бесперебойно работал NFS (клиент). Методом "научного тыка" я пришёл к таким выводам:

Цитата:
eternity:/usr/local/etc/$ cat firewall.conf
#!/bin/sh

ipfw zero
ipfw resetlog
ipfw -q -f flush

fwcmd="/sbin/ipfw -q add"

${fwcmd} allow ip from any to any via lo0 # Allow anything via loopback interface
${fwcmd} count ip from any to me via fxp0 # Count incomming traffic from Onet
${fwcmd} count ip from me to any via fxp0 # Count outgoing traffic to Onet
${fwcmd} count ip from any to me via tun0 # Count incomming internet traffic
${fwcmd} count ip from me to any via tun0 # Count outgoing internet traffic
${fwcmd} deny log ip from 192.168.0.0/16 to me # RFC 1918 private IP
${fwcmd} deny log ip from 10.0.0.0/8 to me via tun0 # RFC 1918 priavateIP (only via tun device)
${fwcmd} deny log ip from 172.16.0.0/12 to me via tun0 # RFC 1918 private IP (only via tun device)
${fwcmd} deny log ip from 127.0.0.0/8 to me # loopback
${fwcmd} deny log ip from 0.0.0.0/8 to me # loopback
${fwcmd} deny log ip from 169.254.0.0/16 to me # DHCP auto-config
${fwcmd} deny log ip from 192.0.2.0/24 to me # Reserved for docs
${fwcmd} deny log ip from 204.152.64.0/23 to me # Sun cluster interconnect
${fwcmd} deny log ip from 224.0.0.0/3 to me # Class D & E multicast
${fwcmd} check-state # Check dynamic rules
${fwcmd} unreach host log icmp from any to me icmptypes 8,13,15,17 # echo, timestamp, information, address mask requests
${fwcmd} allow icmp from any to any # Allow any other ICMPs
${fwcmd} allow udp from me to any dst-port 111 keep-state #
${fwcmd} allow udp from any to me src-port 111 keep-state #
${fwcmd} allow udp from me to any dst-port 1022 keep-state # NFS related things
${fwcmd} allow udp from any to me src-port 1022 keep-state #
${fwcmd} allow ip from 10.0.0.132 to me frag #

${fwcmd} allow ip from me to any dst-port 2049 keep-state #
${fwcmd} allow udp from me to 10.0.0.131 dst-port 123 keep-state # Network time protocol
${fwcmd} allow udp from me to 10.0.0.130 dst-port 53 keep-state # Outgoing dns queries
${fwcmd} allow 47 from 10.0.0.130 to me keep-state # Allow incomming 47th protocol (GRE?)
${fwcmd} allow 47 from me to 10.0.0.130 keep-state # Allow outgoing 47th protocol (GRE?)
${fwcmd} allow tcp from me to 10.0.0.130 dst-port 1723 keep-state # VPN
${fwcmd} allow tcp from me to any dst-port 22,80,113,443,2401,5999,6667 keep-state # SSH, Web, SSL'ed Web, CVS, NFS, CVSup, IRC
${fwcmd} allow tcp from me to 213.85.10.5 dst-port 25,110 via tun0 keep-state # SMTP & POP3
${fwcmd} allow tcp from me to 10.0.0.131 dst-port 5222 keep-state # Jabber
${fwcmd} allow tcp from me to any dst-port 21 keep-state # Outgoing ftp queries
${fwcmd} allow tcp from any to me src-port 20 keep-state # Incoming ftp data

Как видно в одном из правил я разрешаю проход фрагментированных пакетов от NFS сервера ко мне, но что будет если я захочу примонтировать раздел с другого компьютера? Придётся снова модифицировать правила firewall'a, с другой стороны, можно было бы добавить "allow ip from any to any frag", но так мой компьютер сможет быть подвержен сканированию каким-нибудь nmap-подобным сканером с опцией фрагментации пакетов для прохода через роутер. Возможно существуют какие-нибудь другие способы разрешения монтирования NFS разделов?
Спасибо.
Автор: sergeiddt
Дата сообщения: 23.04.2005 12:46
всем привет, в каком файле находятся те правила, которые выводятся при команде ipfw list?
Автор: Pukite
Дата сообщения: 23.04.2005 13:12
sergeiddt
AFAIK, в памяти, а не файле...
Автор: terrapin
Дата сообщения: 23.04.2005 14:16
Pukite

Цитата:
AFAIK, в памяти, а не файле...

полностью согласен
sergeiddt
посмотри в своем /etc/rc.conf строчку firewall_script=
это и будет тебе файл в котором описаны твои правила
Автор: sergeiddt
Дата сообщения: 23.04.2005 14:16
Pukite
т.е. их все нужно вручную удалять/добавлять по одной?
Автор: Ptrovich
Дата сообщения: 25.04.2005 12:58
sergeiddt

Цитата:
т.е. их все нужно вручную удалять/добавлять по одной?

Ну можно и не по одной .
Там описываешь правила для ипфв, которые закинутся в память и с которыми он сверяет каждый пакет. Правила читаются и применяются, если найдены совпадения, сверху вниз. Если пакет на каком то этапе отправлятся временно на обработку другому процессу, то после обработки он веренется в тоже место откуда ушел и продолжит сваливаться вниз по списку правил пока не найдет удовлетворяющее. как только совпадение правила и пакета найдено (найдено правило под которое подпадает данный пакет) все остальные правила расположеные ниже игнорируются.
Напр:
пакет сваливается сверху и первое правило которое ему совпадает это 500 ое заворот в НАТД :
...
500 divert natd all from 192.168.0.0/24 to any out xmit xl0
...
тогда пакет пульнется в натд а когда натд его обработает то вбросит в то же место "откедова взял" то есть дальше на пакет пойдут примерятся все правила ниже 500го пока допустим правило
....
610 allow tcp from 111.111.11.111 (наш наружный айп) to any 20,21,22,23,80,443,4000
....
позволит этом пакету пульнутся в мир , туда куда ему нужно.
Автор: sergeiddt
Дата сообщения: 28.04.2005 18:08
привет всем...
имеется ПК celeron 300 + 64 mb ОЗУ + 2 сетевых карточки, установил FreeBSD 5.2.1 + перекомпилировал ядро, добавил следующие параметры:


options HZ=1000
options QUOTA
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
options TCP_DROP_SYNFIN
options DUMMYNET

После установки системы видно два интерфейса xl0 (100 Mb) and xl1 (100 Mb) Соответственно если первому задать ifconfig 192.168.0.5 netmask 255.255.255.0 (карточка работает внутренний пинг проходит), то при попытке задать конфигурацию второй плате выдает вот что: ifconfig: ioctl (SIOCAIFADDR): File exists (пинг не проходит) Если делать наоборот (первой задавать конфигурацию, то напишет выше изложенное уже для другой).
я что-то забыл включить?

Страницы: 1234567891011

Предыдущая тема: Зачем нужна рабочая группа?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.