Көмек

SSH-ты құпиясөзді іріктеу әрекеттерінен қорғаңыз. Fail2ban қолдану

Қаскүнемдер құпиясөздерді іріктеу әдісімен бұзуға тырысатын брутфорс шабуылдарынан серверіңіздің қауіпсіздігін қамтамасыз ету үшін құпиясөз арқылы аутентификацияның орнына кілт арқылы аутентификацияны баптап, пайдаланған жөн.

Қорғаудың тағы бір әдісі — Fail2ban құралын қолдану. Fail2ban серверде жұмыс істейтін қызметтердің журналдарын талдайды және күдікті белсенділік анықталған кезде ықтимал бұзушылардың IP мекенжайларын бұғаттайды. Fail2ban-ды Apache, FTP, dovecot және т.б. сияқты әртүрлі қызметтерді қорғау үшін пайдалануға болады.

Бұл мақалада SSH қызметін құпиясөзді іріктеу шабуылдарынан қорғауға арналған Fail2ban-ның негізгі баптауын қарастырамыз.

Fail2ban-ды Ubuntu/Debian жүйелеріне орнату үшін мынаны орындаңыз:

sudo apt update
sudo apt install fail2ban -y

CentOS-қа орнату үшін:

sudo yum update && yum install epel-release
sudo yum install fail2ban

Fail2ban-ды жүйе іске қосылғанда басталатын бағдарламалар тізіміне қосыңыз:

sudo systemctl enable fail2ban

Ubuntu-да Fail2ban орнатылғаннан кейін SSH қорғанысы автоматты түрде іске қосылады. Әдепкі бойынша, егер 10 минут ішінде 5 сәтсіз аутентификация әрекеті тіркелсе, Fail2ban IP мекенжайларын 10 минутқа бұғаттайды.

Құралдың жұмысының қосымша параметрлерін оның баптауларында өзгертуге болады.

Fail2ban конфигурациялық файлы

Fail2ban баптаулары /etc/fail2ban/jail.conf конфигурациялық файлында сақталады.

Баптаулар бөлімдерге бөлінген. [DEFAULT] бөлімінде Fail2ban-ның жалпы функционалын анықтайтын және қызметтердің көпшілігіне қолданылатын ортақ параметрлер көрсетілген. Белгілі бір қызметке арналған нақты параметрлер тиісті бөлімде (мысалы, [sshd], [apache-auth], [vsftpd]) көрсетіледі.

Параметрлерді тікелей jail.conf файлында өзгертпеу ұсынылады. Оның орнына сол каталогта жаңа jail.local файлын жасаңыз.

Түпнұсқа файлдың көшірмесін жасауға болады (егер Fail2ban-ды тек SSH емес, бірнеше қызметті қорғау үшін баптауды жоспарласаңыз, бұл ыңғайлы):

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

Сондай-ақ осындай атаумен бос файл жасап, қажетті параметрлерді енгізуге болады:

sudo touch /etc/fail2ban/jail.local

Жаңа файлда тек мәндерін өзгерткіңіз келетін баптауларды көрсету жеткілікті. Бөлек көрсетілмеген барлық басқа параметрлер үшін Fail2ban әдепкі мәндерді пайдаланады.

SSH қорғанысын баптау

jail.local файлын өңдеуге ашыңыз:

sudo nano /etc/fail2ban/jail.local

Файлға қосуға болатын баптаулардың мысалы:

[DEFAULT]
ignoreip = 95.111.123.21

[sshd]
enabled  = true
findtime = 120
maxretry = 3
bantime = 43200

Бұл баптаулар мынаны білдіреді: егер ignoreip-те көрсетілгеннен басқа кез келген IP мекенжайынан 2 минут ішінде 3 сәтсіз авторизация әрекеті жасалса, Fail2ban бұл мекенжайды 12 сағатқа бұғаттайды.

DEFAULT бөлімінде бұғаттау кезеңі (bantime), әрекеттер саны (maxretry) және т.б. сияқты параметрлер көрсетілуі мүмкін. Алайда бұл нұсқаулықта баптаулардың көпшілігін SSH-қа арналған жеке бөлімде анықтаймыз, ал DEFAULT бөлімінде тек ignoreip параметрін көрсетеміз.

ignoreip параметрі — сәтсіз қосылу әрекеттері кезінде бұғатталмайтын IP мекенжайларының "ақ тізімі". Өзіңіздің IP мекенжайыңызды (егер ол статикалық болса) немесе серверге қосылатын мекенжайларыңызды көрсете аласыз. Бірнеше мекенжайды бос орын арқылы немесе ішкі желі маскасын көрсетуге болады.

Егер "ақ тізімді" пайдаланбақ болмасаңыз, жолдың алдына # таңбасын қосып, оны түсініктемеге айналдыруға болады.

[sshd] бөлімінде Fail2ban-ның нақты қызметпен — SSH-пен жұмыс істеуіне арналған баптаулар бар. Жүйеге байланысты бұл бөлім [sshd], [ssh] немесе [ssh-iptables] деп аталуы мүмкін екенін ескеріңіз (jail.conf файлынан тексеруге болады).

Жоғарыда айтылғандай, егер файлда белгілі бір параметр болмаса, Fail2ban әдепкі мәндерді пайдаланады. Демек, тек мәндерін өзгерткіңіз келетін баптауларды көрсету қажет.

Келтірілген баптауларда келесі параметрлер көрсетілген:

  1. enabled: Бұл міндетті параметр бөлімнің қосылған-қосылмағанын анықтайды. Бөлімді қосу үшін мәні true (әдепкі) болуы керек. CentOS-та бұл параметр әдепкі бойынша түсініктемеге айналдырылған болуы мүмкін екенін ескеріңіз. Егер негізгі jail.conf файлының көшірмесін өңдесеңіз, бөлімді белсендіру үшін бұл жолдың түсініктемеден шығарылғанына (# таңбасы жойылғанына) көз жеткізіңіз.

  2. bantime: Бұл параметр бұғаттаудың секундпен берілген ұзақтығын, яғни күдікті IP мекенжайы бұғатталатын уақыт кезеңін анықтайды.

  3. maxretry: Бұл параметр findtime кезеңі ішіндегі сәтсіз әрекеттер санын анықтайды, одан кейін бұғаттау орындалады.

  4. findtime: Бұл параметр бұғаттау орын алуы үшін әрекет (бұл жағдайда сәтсіз қосылу әрекеті) белгілі бір рет (maxretry) қайталануы тиіс уақыт кезеңін секундпен анықтайды.

Бұған қоса, бұл баптауларда басқа параметрлер де көрсетілуі мүмкін, мысалы:

  • port: Осы қызмет, бұл жағдайда SSH үшін пайдаланылатын порт. Егер SSH стандартты емес портты (22 емес) пайдаланса, ол осы жерде көрсетілуі тиіс. Егер порт стандартты болса, бұл параметрді көрсету міндетті емес.

  • logpath: Fail2ban талдайтын лог файлына апаратын жол. Әдепкі бойынша бұл sshd логына апаратын стандартты жол.

  • action: IP мекенжайын бұғаттау кезінде орындалатын әрекет. Әдепкі бойынша күдікті IP iptables ережелерін өзгерту арқылы бұғатталады.

Осы IP үшін барлық порттарды толық бұғаттау үшін мынаны пайдалануға болады: action = iptables-allports. Егер серверде firewalld немесе ufw пайдаланылса, олар арқылы сүзу үшін action параметріне firewallcmd-ipset және ufw сияқты тиісті мәнді көрсетуге болады.

/etc/fail2ban/action.d каталогының мазмұнын қарау үшін мына команданы пайдалана аласыз:

ls /etc/fail2ban/action.d

Бұл Fail2ban әрекеттерінің барлық қолжетімді конфигурациялық файлдарын көруге мүмкіндік береді.

Файлға өзгерістер енгізгеннен кейін оны сақтаңыз. Содан кейін Fail2ban-ды қайта іске қосыңыз:

 

sudo systemctl restart fail2ban.service 

 

Тексеру

Fail2ban-ды баптағаннан кейін оның жұмысын тексерген жөн. Нәтижелерді көрнекірек алу үшін мұны бірден емес, баптауларды сақтағаннан кейін бірнеше сағаттан соң жасау ұсынылады.

Бұғатталған IP мекенжайларының тізімін қарау үшін iptables командасын пайдалануға болады:

sudo iptables -L

SSH-ты құпиясөзді іріктеу әрекеттерінен қорғаңыз. Fail2ban қолдану 

Сондай-ақ Fail2ban жұмысының логтарын қарауға болады:

sudo tail /var/log/fail2ban.log

 SSH-ты құпиясөзді іріктеу әрекеттерінен қорғаңыз. Fail2ban қолдану

Fail2ban-ның күйі мен белсенділігі туралы ақпаратты оның интерфейсі арқылы да алуға болады:

sudo fail2ban-client status sshd

SSH-ты құпиясөзді іріктеу әрекеттерінен қорғаңыз. Fail2ban қолдану 

Бұл қадамдар Fail2ban көмегімен бапталған қорғаныстың жұмысқа қабілеттілігі мен тиімділігіне көз жеткізуге мүмкіндік береді.

Сұрақтарыңыз бар болса, жазыңыз