Я хотел бы заблокировать весь входящий трафик для определенного порта и поместить исходные IP-адреса этих заблокированных пакетов в таблицу ... Я не знаю о решении pf.conf, думаю, я бы использовал другой вид уловки но я действительно не знаю какой! Может быть, с помощью сценария, прослушивающего дампы TCP из определенного интерфейса pflog, который получает журналы об этих заблокированных пакетах и сообщает IPS команде pfctl add-to-table ..? Есть ли идеи о более легкой моде для достижения этой цели?
Я использую эту конфигурацию на своих серверах, в основном у меня есть таблица с доверенными IP-адресами и одна таблица с теми, которые пытаются использовать брутфорс на SSH (несколько случаев, когда он открыт для всего мира).
Создайте новый файл в / etc / trusted и укажите свой собственный IP-адрес / es (по одному в каждой строке).
Откройте / создайте / etc / firewall и введите свои правила (например, HTTP / S, SSH):
#######################################################################
me="vtnet0"
table <bruteforcers> persist
table <trusted> persist file "/etc/trusted"
icmp_types = "echoreq"
junk_ports="{ 135,137,138,139,445,68,67,3222 }"
junk_ip="224.0.0.0/4"
set loginterface vtnet0
scrub on vtnet0 reassemble tcp no-df random-id
# ---- First rule obligatory "Pass all on loopback"
pass quick on lo0 all
# ---- Block junk logs
block quick proto { tcp, udp } from any to $junk_ip
block quick proto { tcp, udp } from any to any port $junk_ports
# ---- Second rule "Block all in and pass all out"
block in log all
pass out all keep state
############### FIREWALL ###############################################
# ---- Allow all traffic from my office
pass quick proto {tcp, udp} from 1.2.3.4 to $me keep state
# ---- Allow incoming Web traffic
pass quick proto tcp from any to $me port { 80, 443 } flags S/SA keep state
# ---- Block bruteforcers
block log quick from <bruteforcers>
# ---- Allow SSH from trusted sources, but block bruteforcers
pass quick proto tcp from <trusted> to $me port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 20/60, \
overload <bruteforcers> flush global)
# ---- Allow ICMP
pass in inet proto icmp all icmp-type $icmp_types keep state
pass out inet proto icmp all icmp-type $icmp_types keep state
Обновите ваш /etc/rc.conf
pf_enable="YES"
pf_rules="/etc/firewall"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""
Посмотрите, есть ли у вас кто-то в таблице брутфорсеров:
pfctl -t bruteforcers -T show