Увод у Фаил2Бан
Инсталирање Фаил2Бан-а
Конфигурисање подешавања Фаил2Бан
Конфигурисање Фаил2Бан за заштиту ССХ
Покретање услуге Фаил2Бан
Како пратити неуспеле покушаје пријаве
Увод у Фаил2Бан
Подразумевано, клијент се повезује на ССХ користећи порт 22. Пошто је ово добро познат порт, подразумевана конфигурација је рањива на многе нападе грубе силе. Фаил2Бан је решење за аутоматску заштиту сервера од ових напада. Програм ради у позадини, скенира датотеке евиденције да открије које ИП адресе нападају и аутоматски им забрањује приступ ССХ-у.
Инсталирање Фаил2Бан-а
У овом водичу ћемо инсталирати Фаил2Бан на ЦентОС 6 преко ЕПЕЛ спремишта. Покрените следеће команде.
yum install epel-release
yum install fail2ban
Објашњење
yum install epel-release: Инсталира ЕПЕЛ спремиште (додатни пакети за Ентерприсе Линук).
yum install fail2ban: Инсталира Фаил2Бан из ЕПЕЛ спремишта.
Конфигурисање подешавања Фаил2Бан
Отворите конфигурациону датотеку Фаил2Бан.
nano /etc/fail2ban/jail.conf
У датотеци ћете видети неке параметре као што је приказано испод. Прилагодите било коју вредност својим потребама.
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1
# "bantime" is the number of seconds that a host is banned.
bantime = 600
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600
# "maxretry" is the number of failures before a host get banned.
maxretry = 3
Објашњење
ignoreip: Не блокирајте хостове који одговарају адреси на овој листи. Неколико адреса се може дефинисати помоћу разделника. У ову линију упишите свој лични ИП.
bantime: Број секунди у којима је хост забрањен.
findtime: Хост је забрањен ако је генерисао maxretryтоком последњег findtime.
maxretry: Број грешака пре него што се хост банује.
Конфигурисање Фаил2Бан за заштиту ССХ
Прво морамо да креирамо конфигурациону датотеку.
nano /etc/fail2ban/jail.local
Копирајте редове испод и налепите их у датотеку.
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
# sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
logpath = /var/log/secure
maxretry = 5
enabled: Активирајте заштиту. Ако желите да га искључите, промените вредност на фалсе.
filter: Подразумевано је подешен на ссхд који се односи на датотеку /etc/fail2ban/filter.d/sshd.conf.
action: Фаил2Бан ће забранити ИП који одговара филтеру /etc/fail2ban/action.d/iptables.conf. Ако сте раније променили ССХ порт, промените port=sshга на нови порт, на пример port=2222. Ако користите порт 22, нећете морати да мењате вредност.
logpath: Путања датотеке евиденције коју користи Фаил2Бан.
maxretry: Максималан број неуспешних покушаја пријаве.
Покретање услуге Фаил2Бан
Покрените ове две команде у наставку да бисте покренули услугу Фаил2Бан:
chkconfig --level 23 fail2ban on
service fail2ban start
На крају, проверите iptablesда ли има правила која је додао Фаил2Бан.
iptables -L
Резултат ће изгледати слично овом излазу.
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-SSH tcp -- anywhere anywhere tcp dpt:EtherNet/IP-1
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-SSH (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
Како пратити неуспеле покушаје пријаве
Можете користити ову команду да проверите да ли је ваш сервер имао неуспеле покушаје пријаве (могући напади).
cat /var/log/secure | grep 'Failed password'
Резултат ће изгледати слично овим линијама.
Dec 6 22:47:12 vultr sshd[7942]: Failed password for root from 43.229.53.67 port 23021 ssh2
Dec 6 22:47:15 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:16 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:18 vultr sshd[7944]: Failed password for root from 43.229.53.67 port 40996 ssh2
Dec 6 22:47:31 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:34 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:36 vultr sshd[7948]: Failed password for root from 43.229.53.67 port 29907 ssh2
Dec 6 22:47:39 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:41 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:43 vultr sshd[7950]: Failed password for root from 43.229.53.67 port 48386 ssh2
Dec 6 22:47:47 vultr sshd[7952]: Failed password for root from 43.229.53.67 port 62846 ssh2
Dec 6 22:47:49 vultr sshd[7952]: Failed password for root from 43.229.53.67 port 62846 ssh2
Да видите које су ИП адресе забрањене, користите следећу команду.
iptables -L -n
Да бисте избрисали ИП адресу са листе забрањених, покрените следећу команду. Промените banned_ipИП адресу коју желите да поништите.
iptables -D f2b-SSH -s banned_ip -j DROP