Комментарии 15
set skip on lo0
пропускается или обрабатывается дальше?
— Про Policy routing добавить бы в обзор не мешало, как раз к меткам суперспособность.
а исходящие соединения вам не нужны?
pass out
но ведь его нет в листинге
а есть только разрешение ходить по портам из списка на внешние хосты, кстати тоже непонятно зачем
вобщем конфиг вызывает одни вопросы
pass in proto tcp to port { $permit_tcp_ports }
Так же нашему серверу в вакууме нужно уметь ходить до api (например до офисной crm и трекера) и синхронизировать время.
Ну и вообще — это просто конфигурация, описывающая конфигурацию фильтрации входящих и исходящих соединений + макросы. Я писал, это сферический конфиг в вакууме. В следующих статьях будут разобраны более сложные примеры.
Я наверное не верно настраиваю тк меня его проходят и дальше убивают машины.
Вы хоть написали бы как настраивать грамотно. Вроде все блочу… Как то проходят.
Статья банальная. Фряху не советую обычному юзеру, запутаптся в командах, Debian или арч пусь себе ставит.
Через мою пфку просто меня досят, я гайки затянул что инет упал в 10 раз до 5 мб… И все равно проходят… Печаль…
Не думайте я ещё тот фряшник, меня даже из группы выгнали. Т. е. я всеми руками за систему она сильная но даже снорд говорю не понацея. Если так говорить то и цеску дайте её пройдут по этому нужны конфиги. А так это все… Это тоже самое что гайд с оф сайта вывести или список команд. Это и так все знают.
Обычному юзеру на десктоп — понятное дело, фрю не надо. А вот на сервер — уже не так очевидно. Если железо поддерживается, или вообще виртуалка, то особой разницы нет. А с точки зрения целостности системы и единообразия подхода ко всему на свете FreeBSD даст 100 очков форы любому дистрибутиву Linux.
Проблема dos атак в том, что, зачастую, с точки зрения файрволла, это вполне легитимный трафик. Для защиты от такого необходимо ставить что-то 7 уровня, либо реверс-прокси, либо suricata… Собственно мы в ИКС используем suricata. Если же у вас DDOS, то вообще всё скверно, потому что входящим трафиком, который прилетает из шнурка провайдера, мы не управляем.
Подскажу еще пару интересных правил, разберитесь в них:
тут em0 — ваш ван интерфейс
# Macros
int_if0 = "em0" # WAN
icmp_types = "{ echoreq, unreach }"
tcp_services = "{ ssh, smtp, domain, www, pop3, auth, https }"
udp_services = "{ domain, ntp }"
# Tables
table <rfc6890> { 0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 \
172.16.0.0/12 192.0.0.0/24 192.0.0.0/29 192.0.2.0/24 192.88.99.0/24 \
192.168.0.0/16 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 \
240.0.0.0/4 255.255.255.255/32 }
table <bruteforce> persist
# Scrub
scrub in all fragment reassemble max-mss 1440
# Rules
antispoof quick for $int_if0
block in quick on $int_if0 from <rfc6890>
block return out quick on egress to <rfc6890>
block all
## WEB (Out)
pass out proto tcp to port $tcp_services
pass proto udp to port $udp_services
## SSH (in)
pass in on $int_if0 proto tcp to port { 22 } \
keep state (max-src-conn 10, max-src-conn-rate 3/1, \
overload <bruteforce> flush global)
## ICMP (Out Ping)
pass out inet proto icmp icmp-type $icmp_types
## (Out Tracerout)
pass out on $int_if0 inet proto udp to port 33433 >< 33626
## NTP
pass quick inet proto { tcp, udp } to port $udp_services
Таблицы могут заполняться из файлов, содержащих список адресов IP и сетей либо два раздельных списка для адресов и сетей
атрибут persist — заставляет ядро сохранять таблицу в памяти, даже когда никакие правила к ней не обращаются. Без этого атрибута, ядро автоматически удалит таблицу, когда последнее правило, ссылающееся на нее будет отработано.
table <network_provider> persist file "/etc/network_provider"
table <address_provider> persist file "/etc/address_provider"
Файл /etc/network_provider
10.0.0.0/8
Файл /etc/address_provider
172.16.0.100
Разрешающие правила для сетей и адресов провайдера
pass in quick on $int_if0 from <network_provider>
pass in quick on $int_if0 from <address_provider>
Либо прямо в таблице используя модификатор отрицания это символ — ! "не" исключить нужные адреса либо сети провайдера из обработки
table <rfc6890> { 172.16.0.0/12, !172.16.0.100, !172.16.1.0/24 }
Файрвол PF в ОС FreeBSD