====== py-fail2ban 0.11 설치 ====== cd /usr/ports/security/py-fail2ban make config make all install clean ++++ 설치한 다음에 나오는 중요한 정보| Please do not edit the fail2ban.conf, jail.conf, or any other files in the distributen as they will be overwritten upon each upgrade of the port. Instead, create new files named *.local e.g. fail2ban.local or jail.local. For more information, see the official manual: http://www.fail2ban.org/wiki/index.php/MANUAL_0_8#Configuration If you have custom filters or actions and you are upgrading from 0.9.x please check them. Users of pf: please read the notes in action.d/pf.conf and the discussion at https://github.com/fail2ban/fail2ban/pull/1925 Please note that fail2ban will put curly braces '{}' around the ports in the action so you shouldn't do it yourself. ++++ 아래 설정은 [[https://phrye.com/tools/fail2ban-on-freebsd/]]를 보고 따라한 것이다. 먼저 /usr/local/etc/ipfw.rules 를 다음 내용으로 만들어 준다. # Initial setting /bin/sh /etc/rc.firewall open # fail2ban IPs if ! ipfw table 1 info > /dev/null 2>&1; then ipfw table 1 create ipfw table 1 flush fi ipfw add 1 deny ip from "table(1)" to me 그런 다음 /usr/local/etc/fail2ban/jail.local 를 만든다. cd /usr/local/etc/fail2ban cp -Rp jail.conf jail.local jai.local 에 다음 내용을 확인한다. [sshd] enabled = true mode = aggressive action = ipfw-table[name=SSH,port=ssh,protocol=tcp] logpath = %(sshd_log)s backend = %(sshd_backend)s maxretry = 3 findtime = 600 bantime = 3600 이제 /usr/local/etc/fail2ban/action.d/ipfw-table.local 을 다음과 같은 내용으로 만든다. [Definition] actionstart = actionstop = actioncheck = actionban = ipfw table 1 add actionunban = ipfw table 1 delete 마지막으로 /etc/rc.conf 에 아래 명령어로 fail2ban과 방화벽에 관한 내용을 더한다. sysrc fail2ban_enable="YES" sysrc firewall_enable="YES" sysrc firewall_type="OPEN" sysrc firewall_script="/usr/local/etc/ipfw.rules" 이제 이 설정을 실행한다. 실행 전에, 방화벽 설정을 경험상 현재 접속한 계정에서 튕겨져 나가져 접속을 다시 못할 수도 있으니 설정에 주의에 주의를 요한다. service ipfw start service fail2ban start 마지막으로 제대로 설치되어 주어진 일을 하는지는 다음 명령어로 실행해서 알아볼 수 있다. fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 9 | |- Total failed: 9 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 3 |- Total banned: 3 `- Banned IP list: 207.119.191.239 71.221.84.13 75.170.123.224 그리고 ipfw show 에서 다음 줄이 보이연 제대로 작동하는 거다. 00001 0 0 deny ip from table(1) to me