Како да се заштити SSH со fail2ban на Ubuntu 12.04
Статус: застарен
Оваа статија опфаќа верзија на Ubuntu која повеќе не е поддржана. Ако моментално управувате со сервер кој работи на Ubuntu 12.04, топло ви препорачуваме надградба или мигрирање на поддржана верзија на Ubuntu:
- Надградете на Ubuntu 14.04.
- Надградете од Ubuntu 14.04 на Ubuntu 16.04
- Мигрирајте ги податоците од серверот во поддржана верзија
Причина:
Видете наместо тоа:
За Fail2Ban
Серверите не постојат изолирано, а оние виртуелни приватни сервери со само најосновна SSH конфигурација можат да бидат ранливи на напади со брутална сила. fail2ban обезбедува начин за автоматска заштита на виртуелните сервери од злонамерно однесување. Програмата работи со скенирање низ датотеките за евиденција и реагирање на навредливи дејства како што се повторени неуспешни обиди за најавување.
Чекор еден - Инсталирајте Fail2Ban
Користете apt-get за да инсталирате Fail2Ban
sudo apt-get install fail2ban
Чекор два - копирајте ја конфигурациската датотека
Стандардната конфигурациска датотека fail2ban е локација на /etc/fail2ban/jail.conf. Меѓутоа, конфигурациската работа не треба да се врши во таа датотека, и наместо тоа треба да направиме локална копија од неа.
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Откако ќе се копира датотеката, можете да ги направите сите ваши промени во новата датотека jail.local. Многу од можните услуги на кои можеби им е потребна заштита се веќе во датотеката. Секој се наоѓа во свој дел, конфигуриран и исклучен.
Чекор трет - Конфигурирајте ги стандардните вредности во Jail.Local
Отворете ја новата конфигурациска датотека fail2ban:
sudo nano /etc/fail2ban/jail.local
Првиот дел од стандардните ги опфаќа основните правила што ќе ги следи fail2ban. Ако сакате да поставите повеќе нијансирана заштита на вашиот виртуелен сервер, можете да ги приспособите деталите во секој дел.
Можете да го видите стандардниот дел подолу.
[DEFAULT]
# "ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime = 600
maxretry = 3
# "backend" specifies the backend used to get files modification. Available
# options are "gamin", "polling" and "auto".
# yoh: For some reason Debian shipped python-gamin didn't work as expected
# This issue left ToDo, so polling is default backend for now
backend = auto
#
# Destination email address used solely for the interpolations in
# jail.{conf,local} configuration files.
destemail = root@localhost
Напишете ја вашата лична IP адреса во линијата ignoreip. Можете да ја одделите секоја адреса со празно место. IgnoreIP ви овозможува бела листа на одредени IP адреси и бидете сигурни дека тие не се заклучени. Вклучувањето на вашата адреса ќе гарантира дека нема случајно да се забраните себеси од вашиот сопствен сервер.
Следниот чекор е да се одлучи за bantime, бројот на секунди што домаќинот би бил блокиран од VPS доколку се утврди дека тие прекршуваат некое од правилата. Ова е особено корисно во случај на ботови, кои штом ќе бидат забранети, едноставно ќе преминат на следната цел. Стандардно е поставено за 10 минути - ако сакате, може да го зголемите на еден час (или повеќе).
Maxretry е количината на неточни обиди за најавување што може да ги има домаќинот пред да бидат забранети за времетраењето на забраната.
Можете да го оставите задниот дел како автоматски.
Destemail е е-поштата до која се испраќаат предупредувањата. Ако имате поставено сервер за пошта на вашата капка, Fail2Ban може да ви е-пошта кога забранува IP адреса.
Дополнителни детали — дејства
Делот Акции се наоѓа под стандардните. Почетокот изгледа вака:
#
# ACTIONS
#
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = iptables-multiport
# email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# if you want to revert to conventional 'mail'.
mta = sendmail
# Default protocol
protocol = tcp
[...]
Banaction ги опишува чекорите што ќе ги преземе fail2ban за да ја забрани соодветната IP адреса. Ова е пократка верзија на наставката на датотеката каде што се наоѓа конфигурацијата ако. Стандардното дејство за забрана, \iptables-multiport\, може да се најде на /etc/fail2ban/action.d/iptables-multiport.conf
MTA се однесува на програма за е-пошта која fail2ban ќе ја користи за испраќање е-пораки за да привлече внимание на злонамерна IP адреса.
Можете да го промените протоколот од TCP во UDP и во оваа линија, во зависност од тоа кој сакате да го следи fail2ban.
Чекор четири (опционално) - Конфигурирајте го делот ssh-iptables во Jail.Local
Делот за детали за SSH е само малку подолу во конфигурацијата, и тој е веќе поставен и вклучен. Иако не треба да се бара од вас да правите никакви промени во овој дел, можете да ги најдете деталите за секоја линија подолу.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
Овозможено едноставно се однесува на фактот дека заштитата на SSH е вклучена. Можете да го исклучите со зборот \неточно\.
портата ја означува портата што ја следи fail2ban. Ако сте го поставиле вашиот виртуелен приватен сервер на нестандардна порта, променете ја портата за да одговара на онаа што ја користите:
eg. port=30000
филтерот, стандардно поставен на sshd, се однесува на конфигурациската датотека што ги содржи правилата што fail2ban ги користи за наоѓање совпаѓања. sshd се однесува на /etc/fail2ban/filter.d/sshd.conf.
патеката за евиденција се однесува на локацијата на дневникот што ќе ја следи fail2ban.
Линијата max retry во делот SSH ја има истата дефиниција како стандардната опција. Меѓутоа, ако сте овозможиле повеќе услуги и сакате да имате специфични вредности за секоја од нив, можете да го поставите новиот максимален износ за повторно обид за SSH овде.
Чекор пет - рестартирајте го Fail2Ban
Откако ќе направите какви било промени во конфигурацијата fail2ban, секогаш не заборавајте да го рестартирате Fail2Ban:
sudo service fail2ban restart
Можете да ги видите правилата што fail2ban ги става на сила во IP табелата:
sudo iptables -L