SSH е добро средство за отдалечен достъп до вашия компютър / сървър и да го направите като сякаш сте пред компютъра. Ако имате SSH сървър, ви показахме как да генерирате и използвате публичен / частен ключ, така че да можете да се свържете с отдалечения сървър по сигурен начин, но това не означава, че вашият SSH сървър е безопасен. Напротив, повечето SSH сървъри са уязвими на атака на груба сила и ако не обръщате внимание, хакерите лесно могат да се намесят в сървъра ви и да унищожат / откраднат всичко, което имате.

Fail2Ban е прост, но полезен инструмент, който може да следи сървъра ви от злонамерени атаки и да ги блокира, преди да навреди.

Инсталация

Fail2Ban е налице в хранилището на Ubuntu, за да можете лесно да го инсталирате с командата:

 sudo apt-get инсталирате fail2ban 

За потребителите на Red Hat или Centos можете да инсталирате Fail2Ban чрез хранилището на EPEL.

След като инсталирате Fail2Ban, следващата стъпка е да преместите конфигурационния файл в локална папка, така че да не променяте случайно основния конфигурационен файл.

 sudo cp /etc/fail2ban/jail.conf/etc/fail2ban/jail.local 

Конфигурация

След като бъде инсталиран, Fail2Ban автоматично ще започне да следи вашия сървър за злонамерени атаки. В повечето случаи настройките по подразбиране са достатъчни, за да защитят сайта Ви, но ако имате някаква персонализирана конфигурация на сървъра (като различен порт за достъп до SSH) или искате да активирате други услуги, ето как можете да направите това:

 sudo nano /etc/fail2ban/jail.local 

Конфигурационният файл е разделен на различни секции. Първата, която ще срещнете, е [DEFAULT].

 [DEFAULT] # "ignoreip" може да бъде IP адрес, CIDR маска или DNS хост ignoreip = 127.0.0.1/8 bantime = 600 maxretry = 3 # "backend" определя бекенда, използван за промяна на файловете. Наличните # опции са "gamin", "polling" и "auto". # yoh: По някаква причина Debian изпратен python-gamin не работи, както се очакваше # Този въпрос остави ToDo, така че polling е по подразбиране backend за now backend = auto # # Имейл адрес за дестинация, използван единствено за интерполации в # затвора. local} конфигурационни файлове. destemail = root @ localhost 

Няколко параметъра, които трябва да вземете под внимание, са ignoreip, maxretry и maxretry .

  • ignoreip - това е мястото, където бяхте написан на IP адреса, който не искате да блокирате. По подразбиране е localhost (127.0.0.1/8). Можете да добавите допълнителни IP адреси към полето, разделяйки всяко IP на интервал.
  • bantime - това е времето в секунди, за да блокирате достъпа до вашия сървър. Стандартът е 10 минути (600 секунди)
  • maxretry - това е броят неуспешен опит за влизане преди блокирането на IP адреса.

Също така има и полето " destemail ", където можете да посочите имейл адрес, за да може той да уведоми къде е открита злонамерена атака. Едно нещо, което трябва да отбележите, е, че това ще работи само ако имате инсталиран пощенски сървър.

Следващият раздел е "Действия".

 # ACTIONS # # Предварително забранено действие (например iptables, iptables-new, # iptables-multiport, shorewall и т.н.) Използва се за дефиниране на # action_ * променливи. Може да бъде преодолян глобално или по # секция в jail.local file banaction = iptables-multiport # имейл действие. От 0.8.1 нагоре fail2ban използва sendmail # MTA за изпращане на съобщения. Променете конфигурационния параметър mta на mail #, ако искате да се върнете към конвенционалната "поща". mta = sendmail # Протокол по подразбиране на протокола = tcp # Определете верига, където трябва да се добавят скокове в iptables- * actions chain = INPUT # # Скриптове за действие. За да се използва за дефиниране на параметъра за действие # Най-простото действие, което трябва да предприемете: Забранете само action_ =% (banaction) s [име =% (__ име)], протокол = "% ", верига ="% (верига) s "] # забрана и изпращане на имейл с отчет whois до destemail. (променлив) s, % = (променлива) s, име =% (име) s-whois [име =% (__ име) s, dest = "% (destemail) s", протокол = "% (протокол) s"; с отчет whois и съответните логарии # към дестел. (променлив) s "]% (mta) s, име на променливата (% s) s-whois-lines [име =% (__ име)], ################################################################################################## За да промените, просто заменете стойността на "действие" с # интерполация на избрания пряк път за действие (напр. Action_mw, action_mwl и т.н.) в jail.local # global (секция [DEFAULT] 

Повечето от настройките тук могат да бъдат оставени по подразбиране, освен ако не искате да промените banaction и protocol . Стандартната "банзация" е чрез IPTable. Можете да го използвате, за да използвате мулти-портовата настройка или да създадете нов IpTable за това. Стойността по подразбиране за "протокола" е tcp, но можете да го промените на udp в зависимост от връзката, която използвате.

Последната част на секцията "Jail", където можете да конфигурирате Fail2Ban да следи вашия Apache сървър, FTP сървър, пощенски сървър и DNS сървър.

 [ssh] enabled = true порт = ssh филтър = sshd logpath = /var/log/auth.log maxretry = 6 

В повечето случаи просто трябва да промените настройката " enabled = false " на " enabled = true " и тя ще бъде активирана за тази услуга. Ако не използвате обичайния порт 20 за SSH, можете също да промените номера на порта в горната настройка.

Щом приключите с конфигурацията, натиснете "Ctrl + o", за да запазите и "ctrl + x", за да излезете.

И накрая, рестартирайте услугата Fail2Ban с командата:

 sudo услуга fail2ban рестартиране 

Какви други начини използвате, за да защитите SSH сървъра си?