freebsd:fail2ban

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
freebsd:fail2ban [13/03/2023 14:47] – [Fail2ban] Methodfreebsd:fail2ban [04/06/2023 07:56] (поточний) – [Перевірка] Method
Рядок 6: Рядок 6:
 ee /etc/rc.firewall ee /etc/rc.firewall
 </code> </code>
-<code|shell>+ 
 +<code bash>
 #!/bin/sh - #!/bin/sh -
-f='/sbin/ipfw'+f='/sbin/ipfw -q'
  
 ifOut='vmx0' ifOut='vmx0'
Рядок 15: Рядок 16:
 ${f} -f flush ${f} -f flush
  
-# TABLE WHITE LIST +# TABLE WHITE LIST 
-${f} table add 1.1.1.1 +${f} table WHITE_LIST create 
-${f} table add 8.8.8.8+${f} table WHITE_LIST add 1.1.1.1 
 +${f} table WHITE_LIST add 8.8.8.8
  
-TABLE 2 BLACKLIST+${f} add 41 allow ip from "table(WHITE_LIST)" to me 
 +${f} add 42 allow ip from me to "table(WHITE_LIST)" 
 + 
 +Fail2Ban reserved rules range 51 - 100 
 +${f} add 51 deny ip from "table(f2b_SSH)" to me 22
  
 # RULE 10 FORWARDING TO CAP # RULE 10 FORWARDING TO CAP
-${f} add fwd 127.0.0.1,8080 tcp from any to not me 80 via $ifCap +${f} add 105 fwd 127.0.0.1,8080 tcp from any to not me 80 via $ifCap
- +
-+
-${f} add 10 allow ip from "table(1)" to me +
-${f} add 20 allow ip from me to "table(1)" +
- +
- +
-${f} add 30 deny ip from "table(2)" to me +
-${f} add 40 deny ip from "table(2)" +
- +
- +
-${f} add 50 deny log all from "table(3)" to me +
-${f} add 60 deny log all from me to "table(3)" +
  
-${f} add 70 allow tcp from any to me 22,443,8000,8080 +${f} add 170 allow tcp from any to me 80,443,8000,8080 
-${f} add 80 allow tcp from me 22,443,8000,8080 to any+${f} add 171 allow tcp from me 80,443,8000,8080 to any
  
 # OTHER SETTINGS # OTHER SETTINGS
-${f} add 110 allow ip from any to any via lo0 +${f} add 1110 allow ip from any to any via lo0 
-${f} add 130 deny icmp from to 5,9,13,14,15,16,17 +${f} add 1130 deny icmp from any to any in icmptype 5,9,13,14,15,16,17 
-${f} add 1100 allow ip from any to any+${f} add 1190 allow ip from any to any
 </code> </code>
  
Рядок 53: Рядок 46:
  
 <code|bash> <code|bash>
-py27-fail2ban-0.10.4 Scans log files and bans IP, що makes too many password failures +py27-fail2ban-0.10.4 Scans log files and bans IP that makes too many password failures 
-py37-fail2ban-0.10.4 Scans log files and bans IP, що makes too many password failures +py37-fail2ban-0.10.4 Scans log files and bans IP that makes too many password failures 
-py38-fail2ban-0.11.2 Scans log files and bans IP, що makes too many password failures+py38-fail2ban-0.11.2 Scans log files and bans IP that makes too many password failures 
 +py39-fail2ban-1.0.2  Scans log files and bans IP that makes too many password failures
 </code> </code>
  
 <code|bash> <code|bash>
-pkg install py38-fail2ban+pkg install py39-fail2ban
 </code> </code>
  
 ===== Налаштування ===== ===== Налаштування =====
- 
  
 <code|bash> <code|bash>
-cp -/usr/local/etc/fail2ban /usr/local/etc/fail2ban.orig+cp -/usr/local/etc/fail2ban /usr/local/etc/fail2ban.orig
 cd /usr/local/etc/fail2ban cd /usr/local/etc/fail2ban
 cp jail.conf jail.local cp jail.conf jail.local
Рядок 73: Рядок 66:
 Правимо конфіг Правимо конфіг
 <code|bash> <code|bash>
-ee /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf+ee /usr/local/etc/fail2ban/action.d/ipfw-tables.local
 </code> </code>
  
 і наводимо параметри до вигляду: і наводимо параметри до вигляду:
 <code|bash> <code|bash>
-actionban = /sbin/ipfw table <table> add <ip> <tablearg> +# Fail2Ban ipfw action configuration file 
-actionunban = /sbin/ipfw table <table> delete <ip> +
-</code>+# Author: Method 
 +# Automaticaly create tables for any jail with prefix "f2b_" by action argument <namelike "f2b_SSH"
  
-Для функціонування fail2ban потрібно додати у файрвол правило: +[Definition] 
-<code|bash+actionstart = ipfw table all list | grep 'table(f2b_<name>)' || ipfw -q table f2b_<namecreate 
-ipfw add 50 deny log all from "table(3)" to me +actionstop ipfw table all list | grep 'table(f2b_<name>)' && ipfw -q table f2b_<name> flush 
-ipfw add 60 deny log all from me to "table(3)" +actioncheck = 
-</code> +actionban   = e=`ipfw table f2b_<name> add <ip> 2>&1`; x=$?; [ $x -eq 0 -o "$e" = 'ipfw: setsockopt(IP_FW_TABLE_XADD): File exists' ] || echo "$e" | grep -q "record already exists" || { echo "$e" 1>&2; exit $x; } 
-Дивимось на мій приклад /etc/rc.firewall на початку статті. +actionunban = e=`ipfw table f2b_<namedelete <ip2>&1`; x=$?; [ $x -eq 0 -o "$e'ipfw: setsockopt(IP_FW_TABLE_XDEL): No such process] || echo "$e" | grep -q "record not found" || { echo "$e" 1>&2; exit $x; }
- +
-<code|bash> +
-# Пропишемо в автозавантаження +
-sysrc fail2ban_enable="YES" +
-За бажанням - ротація логів +
-echo '/var/log/fail2ban.log 600 7 200 * JC' >> /usr/local/etc/newsyslog.conf.d/fail2ban.conf +
-# Запустимо сервіс. +
-service fail2ban start+
 </code> </code>
  
Рядок 102: Рядок 88:
 Створимо конфіг для ssh Створимо конфіг для ssh
 <code|bash> <code|bash>
-ee /usr/local/etc/fail2ban/jail.d/ssh-ipfw.local+ee /usr/local/etc/fail2ban/jail.d/sshd.local
 </code> </code>
  
 з таким вмістом з таким вмістом
 <code|bash> <code|bash>
-[ssh-ipfw] +# Fail2Ban sshd jail configuration file 
-Включаємо фільтр. +
-enabled = true +# Author: Method 
-Порт +Atempt: Need manuali aad rule into firewall configuration file by template : 
-port = 22 +#         ipfw add <lowest_rule_number> (unreach port|deny) (ip|tcp|udp) from "table(f2b_<name>)" to me <ports list> 
-використовуємо фільтр та прикладів у conf.d +Example: ipfw add 51 unreach port ip from "table(f2b_SSH)" to me 22 
-filter bsd-sshd + 
-Вказуємо профіль bsd-ipfw. +[DEFAULT] 
-action = bsd-ipfw[table=3tablearg=22] +ignoreip 127.0.0.1/
-# Лог бана + 
-logpath = /var/log/auth.log +JAILS 
-# У який проміжок часу відловлюватиме брут+[sshd] 
 +enabled  = true 
 +mode     = aggressive 
 +action   = ipfw-tables[name=SSH,port=ssh,protocol=tcp
 +logpath  = /var/log/auth.log
 findtime = 600 findtime = 600
-кількість невдалих спроб 
 maxretry = 3 maxretry = 3
-час бана в секундах або в хвилинах (60m) +bantime  = 3600
-bantime = 3600 +
-# білий список ip для цього правила (через пробіл)! їх не буде банити. +
-ignoreip = 127.0.0.1/8+
 </code> </code>
  
 +Для функціонування fail2ban потрібно додати у файрвол правило:
 <code|bash> <code|bash>
-# Перезапустимо сервіс. +${f} add 51 deny ip from "table(f2b_SSH)" to me 22
-service fail2ban restart+
 </code> </code>
  
-===== phpmyadmin =====+Дивимось на мій приклад /etc/rc.firewall на початку статті.
  
-Створимо конфіг для phpmyadmin 
 <code|bash> <code|bash>
-ee /usr/local/etc/fail2ban/jail.d/phpmyadmin.local +# Пропишемо в автозавантаження 
-</code> +sysrc fail2ban_enable="YES" 
- +За бажанням - ротація логів 
-з таким вмістом +echo '/var/log/fail2ban.log 600 7 200 * JC' >> /usr/local/etc/newsyslog.conf.d/fail2ban.conf 
-<code|bash> +Запустимо сервіс. 
-[phpmyadmin] +service fail2ban start
-# Включаємо фільтр. +
-enabled = true +
-# Порт +
-port = http,https +
-# використовуємо фільтр та прикладів у conf.d +
-filter = phpmyadmin-syslog +
-# Вказуємо профіль bsd-ipfw. +
-action = bsd-ipfw[table=3, tablearg=80] +
-# Лог бана +
-logpath = /var/log/auth.log +
-# У який проміжок часу відловлюватиме брут +
-findtime = 600 +
-кількість невдалих спроб +
-maxretry 3 +
-час бана в секундах або в хвилинах (60m) +
-bantime = 273600 +
-# білий список ip для цього правила (через пробіл)! їх не буде банити. +
-ignoreip = 127.0.0.1/+
-</code> +
- +
-<code|bash> +
-Перезапустимо сервіс. +
-service fail2ban restart+
 </code> </code>
  
Рядок 176: Рядок 138:
   Status   Status
   - Number of jail: 1   - Number of jail: 1
-  - Jail list: ssh-ipfw+  - Jail list: sshd
 </WRAP> </WRAP>
  
 <code|bash> <code|bash>
-fail2ban-client status ssh-ipfw+fail2ban-client status sshd
 </code> </code>
  
Рядок 194: Рядок 156:
      `- Banned IP list: 10.10.10.10      `- Banned IP list: 10.10.10.10
 </WRAP> </WRAP>
- 
- 
 ===== Ручний бан/розбан ===== ===== Ручний бан/розбан =====
  
Рядок 205: Рядок 165:
 fail2ban-client set <JAIL> unbanip <IP> fail2ban-client set <JAIL> unbanip <IP>
 </code> </code>
 +
 +===== phpmyadmin =====
 +
 +Створимо конфіг для phpmyadmin
 +<code|bash>
 +ee /usr/local/etc/fail2ban/jail.d/phpmyadmin.local
 +</code>
 +
 +з таким вмістом
 +<code|bash>
 +# Fail2Ban phpmyadmin jail configuration file
 +#
 +# Author: Method
 +# Atempt: Need manuali aad rule into firewall configuration file by template :
 +#         ipfw add <lowest_rule_number> (unreach port|deny) (ip|tcp|udp) from "table(f2b_<name>)" to me <ports list>
 +# Example: ipfw add 51 unreach port ip from "table(f2b_SSH)" to me 22
 +
 +[DEFAULT]
 +ignoreip = 127.0.0.1/8
 +
 +# JAILS
 +[phpmyadmin]
 +enabled  = true
 +port     = http,https
 +filter   = phpmyadmin-syslog
 +action   = ipfw-tables[name=phpmyadmin,port=80,443,protocol=tcp]
 +logpath  = /var/log/auth.log
 +findtime = 600
 +maxretry = 3
 +bantime  = 273600
 +</code>
 +
 +<code|bash>
 +# Перезапустимо сервіс.
 +service fail2ban restart
 +</code>
 +
  • freebsd/fail2ban.1678718821.txt.gz
  • Востаннє змінено: 13/03/2023 14:47
  • повз Method