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

» FreeBSD + ipfw rules

Автор: Zmey
Дата сообщения: 14.09.2004 19:32
stb38
А ты бы сначала написал что ты хочешь сделать.
Я думаю что его смущает {4,5,6}
Автор: lynx
Дата сообщения: 14.09.2004 20:13
xy

Цитата:
(вообще как пинг работает, что это за тип пакетов и как ими управлять


Это ICMP-пакеты.

# Allow ICMP inside net разрешить пигни на внутренний интерфейс и с него
${fwcmd} add allow icmp from ${iip} to any via ${iif}
${fwcmd} add allow icmp from any to ${iip} via ${iif}

Где, до этого задается:

iif="ed1"
inet="192.168.1.0"
imask="255.255.255.0"
iip="192.168.1.6"

Точно также и наружу.

Можно написать всем:

${fwcmd} add allow icmp from any to any


Цитата:
есть ли где-то фак (или может самим сделать?), по разрешению/запрещению в ipfw разных сервисов?


Нету.

Вот:
http://www.asmodeus.com.ua/library/os/freebsd/ipfw.htm
http://ln.com.ua/~openxs/projects/man/solaris8/ifconfig.html
Автор: stb38
Дата сообщения: 15.09.2004 08:58
Zmey
Если верить мануалу, то команда

ipfw add pass all from any to 192.168.50.3/24{4,5,6}

должна пропускать пакеты от ANY до 192.168.50.3, ..., 192.168.50.6
Автор: xy
Дата сообщения: 15.09.2004 09:51
lynx

Цитата:
Это ICMP-пакеты.

это я как бы догадался:), но есть у меня такое:

Цитата:
00300 allow icmp from any to any

а толку? а толку нет? вот и спрашиваю - почему?
Автор: Zmey
Дата сообщения: 15.09.2004 10:58
stb38
Да, но вероятно для этого должен работать ipfw2 а не ipfw.
Хотя я могу и ошибаться.

lynx

Цитата:
Это ICMP-пакеты.

# Allow ICMP inside net разрешить пигни на внутренний интерфейс и с него
${fwcmd} add allow icmp from ${iip} to any via ${iif}
${fwcmd} add allow icmp from any to ${iip} via ${iif}


Немножечко ошибочное мнение!
Этими правилами ты разрешаешь все типы icmp пакетов, в т.ч. и те которые не желательно пропускать внутрь сети
Типы icmp пакетов и как правильно зафильтровать icmp пакеты с помощью ipfw довольно неплохо расписаны на opennet.ru, вот здесь.


Добавлено
xy

Не могли бы вы описать более подробно через какие интерфейсы ходят клиенты в инет, за какими они сами сидят?? И чего бы вы хотели добиться от этих правил?
Автор: xy
Дата сообщения: 15.09.2004 11:11
Zmey
спасибо за помощь.. не мог бы ты объяснить, почему по моей табличке (нынешней):

00100 divert 8668 ip from any to any via xl0
00200 deny icmp from any to any frag
00300 allow icmp from any to any
00400 allow tcp from any to any dst-port 25
00500 allow tcp from any 25 to any
00600 allow tcp from any to any dst-port 80
00700 allow tcp from any 80 to any
00800 allow tcp from any to any dst-port 443
00900 allow tcp from any 443 to any
01000 allow udp from any to any dst-port 53
01100 allow udp from any 53 to any
01200 allow udp from any to any dst-port 995
01300 allow udp from any 995 to any
01400 allow tcp from any to any dst-port 21
01500 allow tcp from any 21 to any
01600 allow tcp from any to any dst-port 20
01700 allow tcp from any 20 to any
01800 allow tcp from any to any dst-port 22
01900 allow tcp from any 22 to any
02000 allow ip from any to any via xl0
02100 allow ip from any to any via lo0
65535 deny ip from any to any

клиент не может выйти просто в инет и не работает фтп (по цепочкам фтп-дата нулевая статистика :-/ )

ЗЫ. 0- внутренний интерфейс, 1- внешний, ло0- локалхостъ ессно
Автор: Zmey
Дата сообщения: 15.09.2004 12:22

Цитата:
ЗЫ. 0- внутренний интерфейс, 1- внешний, ло0- локалхостъ ессно


1 - это значит xl1 ??
Если да то теоритически у тебя нат должен быть прописан не так немного
00100 divert 8668 ip from any to any via xl1

И natd должен висеть на xl1 интерфейсе.

И для начала я бы оставил просто две строки
00100 divert 8668 ip from any to any via xl1
00200 allow all from any to any

И посмотрел бы работает или не работает, а потом бы уже написал в этот топик:
Хочу что бы все клиенты могли принимать и отправлять почту смотреть веб и юзать ssh. При этом все клиенты сидят за натом, внутренний интерфейс xl0 внешний xl1. Подскажите как это сделать

ps. И если уж ты используешь natd то было бы неплохо также в вопросе привести конфиг или параметры с которыми у тебя запускается natd
Автор: xy
Дата сообщения: 15.09.2004 12:37
Zmey

Цитата:
natd

ой, спасибо, а то я с натдом знаком весьма и весьма посредственно - видать в нём грабли

Добавлено

Цитата:
И посмотрел бы работает или не работает, а потом бы уже написал в этот топик

ну ясное дело, что так не работало, потому и написал:)

Добавлено
Давайте по порядку:
xl1- external interface
xl0 - internal

1. natd:
add divert natd all from any to any via xl1

2. ICMP
add allow icmp from any to any in via xl1 icmptype 0, 3, 4, 11, 12
add allow icmp from any to any out via xl1 icmptype 3, 8, 12
add allow icmp from any to any out via xl1 frag
add deny log icmp from any to any in via xl1

3. SMTP
add allow tcp from any to any smtp
add allow tcp from any smtp to any
я хочу, чтобы смтп могли отправлять авторизованные пользователи извне, плюс моя внутренняя сеть также не ограничивалась местным смтп, хотя возможно правила стоит ужесточить?

4. HTTP
add allow tcp from any to any http
add allow tcp from any http to any

5. HTTPS
add allow tcp from any to any https
add allow tcp from any https to any
стоит ли в 4 и 5 ограничивать in/out трафик, если да, то как правильно изменить правила?

6. DNS
add allow udp from any to any domain
add allow udp from any domain to any
аналогичный вопрос

7. ПОП3ССЛь
add allow udp from any to any pop3s
add allow udp from any pop3s to any
позиция такая же как в 3, хотя просто поп3 для внешних серверов наверное нужно разрешить, стоит ли?

8. ФТП
add allow tcp from any to any ftp
add allow tcp from any ftp to any
add allow tcp from any to any 20
add allow tcp from any 20 to any
алиас ftp-data оно не отрабатывает, видимо из-за "-", но не суть
аналогично 4-5-6 вопрос

9. ШШ
add allow tcp from any to any ssh
add allow tcp from any ssh to any
тут позиция как в 3


последние правила:
# Разрешаем трафик только в пределах локальной сети
add allow all from any to any via xl0

# Разрешаем трафик по local интерфейсу
add allow all from any to any via lo0

нужно ли это менять? например как-то глушить трафик по внутреннему интерфейсу (хотя толку от этого ИМХО не будет, ведь не всё через сервер внутри сети ходит)


еще надо бы аську открыть.. стандартный порт или обычно как-то иначе открывают? если открыть только для login.icq.com, могут ли быть проблемы

еще будет необходимость для некоторых серверов открывать некоторые порты (всякие хитрожопые хостсервис по хитрожопым портам доступа) - их надо вставлять вначале сразу после натд? как лучше открывать для обмена, чтобы не писать allow all from any hzport to any hzport.. + почему пишут пары правил, а не просто типа:
allow tcp from any http to any http?
Автор: Zmey
Дата сообщения: 15.09.2004 14:09

Цитата:
ой, спасибо, а то я с натдом знаком весьма и весьма посредственно - видать в нём грабли

В таком случае, необходимо убедится что в rc.conf есть строчки:
natd_enable="YES"
natd_interface="xl1"

либо если natd запускается из другого места, то должен запускаться с параметром /sbin/natd -n xl1

Далее идут правила для локального интерфейса lo0 которые можно подсмотреть в /etc/rc.firewall

00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00400 add divert natd all from any to any via xl1

А дальше мы пойдем другим путем

# Разрешаем прохождение траффика если он попадает под правило с keep-state
00500 check-state

#Разрешаем весь локальный траффик
00600 allow all from any to any via xl0 keep-state

#Разрешаем нашим пользователям ходить по www
00700 allow tcp from any to any 80 out via xl1 setup keep-state
#Разрешаем нашим пользователям ходить по защищенному www
00750 allow tcp from any to any 443 out via xl1 setup keep-state

#Разрешаем доступ наших пользователей к ДНСу нашего провайдера
00800 allow tcp from any to $provdns 53 out via xl1 setup keep-state
00900 allow udp from any to $provdns 53 out via xl1 setup keep-state

#Разрешаем прием и отправку почты нашими пользователями
01000 allow tcp from any to any 25 out via xl1 setup keep-state
01100 allow tcp from any to any 110 out via xl1 setup keep-state

#Разрешаем исходящий PING
01200 allow icmp from any to any out via xl1 keep-state

#Разрешаем исходящий SSH
01300 allow tcp from any to any 22 out via xl1 setup keep-state



Как бы собственно вот
Можно все это продолжать и продолжать... в итоге все это может заканчиваться двумя вариантами:

1. Если настроено ведение журнальных файлов с ipfw то можно написать так
Если мы дружелюбны к своим пользователям
allow log all from any to any via xl1
deny all from any to any via xl1
Если мы не очень любим своих пользователей
deny log all from any to any via xl1
И потом смотрим в логах где и чего мы забыли разрешить или запретить.

2. Вариант менее удачный
deny all from any to any via xl1

Может быть где-то чего то забыл написать, звыняйте на эту тему можно книги писать
Автор: xy
Дата сообщения: 15.09.2004 14:18
Zmey
можно еще раз уточнить про пары правил?


Цитата:
Можно все это продолжать и продолжать...

ну у тебя тут жесткие требования слишком.. и сам сервер-шлюз не имеет на себе служб ввв/почты и т.д., что не есть гуд для моей ситуации

с кипстэтом надо бы разобраться, а так понятно

Добавлено
Zmey

Цитата:
setup

Только для TCP-пакетов. Соответствует пакетам, которые имеют битовую установку SYN, но не имеют установки ACK.

можно по-русски объяснить зачем оно надо?

и еще при прохождении keep-state с адресатом устанавливается allow all правило или какое?
Автор: 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

Страницы: 1234567891011

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


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