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

» FreeBSD + ipfw rules

Автор: WebDi
Дата сообщения: 07.05.2004 09:02
TILK
Пробовал писать IP - http не запрещается.
Автор: wchik
Дата сообщения: 07.05.2004 10:38
WebDi
вроде ж у них (юзеров) IP не постоянный

может лучше скинь ВСЕ правила твоего файера
дальше есть у тебя сквид? или нету?

если есть, я же писал что запрещать надо сквидом, и те правила, что я тебе дал
РАЗРЕШАЮТ юзерам пользоваться хттп на МЕСНОЙ проксе, а на всех остальных запрещают, как ты кстати проверяешь, что они могут пользоваться хттп, что у клиента прописано в качестве прокси? если родная прокся (локальная) то в чем проблема??

а запретить кому-то надо в конфиге сквида что-то типа такого в области АСЛ:

acl mynet src 192.168.1.0/24
acl badboys src 192.168.1.10 192.168.1.20 192.168.1.30

А затем в такой последовательности:

http_access deny badboys
http_access allow mynet

и все хттп закроется (правда если айпи статика, а если динамика надо прикручивать авторизацию, но это выходит за пределы темы)

Добавлено
WebDi
кстати TILK прав, хотя это не совсем обязательно зависит от компиляции
в принципе компиляция по умолчанию задает последним правилом запретить все всем
если компилировать с IPFIREWALL_DEFAULT_TO_ACCEPT то этого правила не будет, хотя ничего не мешает прописать его в ручную
Автор: WebDi
Дата сообщения: 07.05.2004 11:51
wchik
TILK
ОГРОМНОЕ СПАСИБО! big thanks, проще говоря.
Всё работает как надо.
Прописал в конфиге squid и в правилах ipfw.
Ещё только вопрос, на будущее, как пользователю СОВСЕМ отрубить интернет? т.е. HTTP, POP3, SOCKS, FTP и всё остальное.
Автор: wchik
Дата сообщения: 07.05.2004 13:02
WebDi
до любых разрешающих правил
ipfw add deny ip from 192.168.1.xxx to any
Автор: WebDi
Дата сообщения: 07.05.2004 13:56
wchik
Спасибо.
Автор: axelk
Дата сообщения: 04.06.2004 10:39
Решил поднять темку,

скажите, никто не озадачивался проблемой IPFW фильтеринга на основе содержимого пакета, а не только по ip и портам.
Автор: WebDi
Дата сообщения: 07.06.2004 05:38
axelk
Не озадачивался. Это видимо какой-то скрипт должен вызываться из того места, которое пакет фильтрует.

Подскажите, пожалуйста, ресурс или учебник с примерами по теме этого топика.
Автор: Ambal
Дата сообщения: 07.06.2004 06:04
ipfw тупой и достаточно простой, смотрит только на заголовки пакетов, внуть пакетов не заглядывает и заставить его это делать никак нельзя. скриптик он тоже вызывать никакой не умеет.
Автор: wchik
Дата сообщения: 07.06.2004 10:36
Ambal

Цитата:
ipfw тупой

так уж и тупой , с задачами пакетного фильтра справляется
axelk
что конкретно фильтровать нужно?
но Ambal прав, только по заголовкам, но из заголовков тоже много чего полезного узнать можно
Автор: axelk
Дата сообщения: 07.06.2004 13:30
Хочу зарезать DC++, осла и прочих, у некоторых есть дефаултные порты, некоторых можно отловить по содержимому пакета, хочется что нибудь типа такого http://sourceforge.net/projects/iptables-p2p/ , но это только для IP tables^(
Автор: PomidorOFF
Дата сообщения: 07.06.2004 14:00
axelk
А не пробовали запретить все кроме необходимых портов? Обычно помогает, их на самом деле немного.
Автор: wchik
Дата сообщения: 07.06.2004 16:07
axelk
то что ты показал для линуха пока в бетах, еще что-то подобное
http://www.lowth.com/p2pwall/ftwall/ в альфах.
я бы не ставил такие модули на рабочий фаер,
лучше правда сделать политикой по умолчанию запрещено то, что не разрешено,
и разрешить основные порты типа 25 80 110, ну и еще что там у тея разрешено

Я кстати столкнулся в этой связи с траблой надо пускать из внутренней сети Cisco VPN
может кто знает как разрешить прохождение пакетов ESP AH и GRE (протоколы НЕ ПОРТЫ типа 50 51 и 47)

Добавлено
Народ прошу прощения стормозил ужо, под конец рабочего дня,
просто в правиле указываешь название протокола как в /etc/protocols
и но проблем
Автор: axelk
Дата сообщения: 08.06.2004 16:49
Проблема в том, что многие устанавливают для p2p сервисов 80, 110 и прочие порты, по этому здесь простой связки ip address + port уже недостаточно, конечно именно такой вариант я сконфигурировал на данный момент, но хочется потестить другие варианты.
Автор: wchik
Дата сообщения: 09.06.2004 09:34
axelk
а если ограничить количество одновременных коннектов по одному порту с машины?
то-есть если ты юзаешь сквид то там не ограничивать а на всех остальных портах 1 коннект и не больше
пиринговые клиенты обычно несколько потоков создают (много потоков )
это сделает пользование таким софтом почти невозможным а почту проверять пожалуйста (в 1 поток )
Автор: wchik
Дата сообщения: 14.07.2004 17:47
тут такой вопросик возник, что-то я неправильно делаю

есть правила:

Цитата:
allow ip from any to any dst-port 3128
allow ip from x.x.x.x to any dst-port 20,21,80,81,8080 out via rl0
allow ip from any 20,21,80,81,8080 to x.x.x.x in via rl0

divert 8668 ip from any to any via rl0
allow ip from any to any

где x.x.x.x - внешний ИП роутера, rl0 - внешний интерфейс

первые 3 правила для сквида, до ната подняты для того чтобы нагрузку уменьшить

так вот вроде как по этим правилам из сетки нат должен работать,
но работает на всех портах кроме тех, что перечислены во 2-м и 3-м правилах
что в них не так?
Автор: Ambal
Дата сообщения: 15.07.2004 17:29
то что после того как обработается правило allow дальше правила непросматриваются.
обратний пакетик обработается третьим правилом и в диверт не попадет.

Добавлено
а чтоб уменьшить нагрузку на нат я бы рекомендовал примерно такую конструкцию:

divert natd ip from 192.168.0.0/24 to any
divert natd ip from any to xxx.xxx.xxx.xxx in recv fxp1

192.168.0.0/24 - внутренняя сеть
xxx.xxx.xxx.xxx - внешний адрес
fxp1 - внешний интерфейс.
Автор: wchik
Дата сообщения: 19.07.2004 10:52
Ambal

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

так ведь обратный пакетик адресован не моему внешнему интерфейсу, а какому-то IP в нете!
почему он попадает под это правило?
Автор: xy
Дата сообщения: 13.09.2004 15:11
--- mad %)
Автор: xy
Дата сообщения: 14.09.2004 11:21
есть ли где-то фак (или может самим сделать?), по разрешению/запрещению в ipfw разных сервисов?

например моя табличка выглядит так: (еще не прикручивал принудительный прокси)

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

это бетка-альфа таблички - тут на секурити упора нет, но есть намерение на работоспособность сети для начала, потом буду укреплять.. так вот при такой табличке: работает ssh, но для клиентов не работает инет.. пинги не идут (вообще как пинг работает, что это за тип пакетов и как ими управлять) - nslookup на клиенте работает

кто, что скажет?
Автор: stb38
Дата сообщения: 14.09.2004 12:43
FreeBSD 4.7+ipfw2
Пишу команду:

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

ipfw мне отвечает:

ipfw: bad width ``244''

Что я не так делаю?
Автор: 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 правило или какое?

Страницы: 1234567891011

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


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