Անցնել պարունակությանը

Գաղտնաբառի բրուտֆորս հարձակումներից պաշտպանություն Fail2ban-ով

Այս հոդվածում

Եթե սերվերին մուտք եք գործում գաղտնաբառով, հարձակվողները կարող են փորձել այն ավտոմատ կերպով գուշակել — սա կոչվում է բրուտֆորս հարձակում (brute-force attack): Ամենալավ պաշտպանությունը քիլ-հիմքով իդենտիֆիկացիայի (key-based authentication) օգտագործումն է (գաղտնաբառ առանց): Բայց եթե որոշ պատճառներով դուք դեռ օգտագործում եք գաղտնաբառ, պետք է ավելացնել լրացուցիչ պաշտպանական միջոցներ: Այս նպատակով ամենապարզ և ամենաարդյունավետ գործիքներից մեկը Fail2ban-ն է:

Fail2ban-ը ծրագիր է, որը մոնիտորինգ է իրականացնում լոգերի (սերվերի գործունեության գրառումների) նկատմամբ: Եթե որևէ մեկը շատ անգամեր անընդմեջ փորձում է մուտք գործել և ձախողվում է, Fail2ban-ը ավտոմատ կերպով արգելափակում է նրա IP հասցեն որոշակի ժամանակահատվածի համար:

Fail2ban-ի տեղակայում

Ubuntu / Debian:

sudo apt update
sudo apt install fail2ban -y

CentOS / Rocky Linux:

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

Ճիշտ աշխատանքի համար անհրաժեշտ է տեղակայել հրակայուն պատ (firewall): Կարող եք տեղակայել, օրինակ, iptables:

Ubuntu / Debian:

sudo apt install iptables

CentOS / Rocky Linux:

sudo yum install iptables-services

Տեղակայումից հետո ակտիվացրեք Fail2ban-ի ավտոմատ միացումը.

sudo systemctl enable fail2ban

Ubuntu-ում Fail2ban-ը անմիջապես պաշտպանում է SSH-ն. ըստ լռելյայնի այն արգելափակում է IP հասցեն 10 րոպե, եթե կա 10 րոպեի ընթացքում 5 ձախողված մուտքի փորձ:

Ինչպես ճիշտ կարգավորել Fail2ban-ը

Հիմնական կարգավորումները պահվում են /etc/fail2ban/jail.conf ֆայլում և բաժանված են բաժինների:
[DEFAULT] բաժինը սահմանում է ընդհանուր կանոններ, որոնք լռելյայն կիրառվում են բոլոր ծառայությունների համար:
Առանձին ծառայությունները (օրինակ՝ SSH, Apache վեբ-սերվեր կամ FTP) ունեն իրենց պարամետրերը համապատասխան բաժիններում՝ [sshd], [apache‑auth], [vsftpd] և այլն:

Մենք խորհուրդ չենք տալիս փոխել այս ֆայլի հիմնական կարգավորումները: Փոխարենը ստեղծեք ձեր սեփական կոնֆիգուրացիոն ֆայլը՝ jail.local:

sudo nano /etc/fail2ban/jail.local

Կարող եք ստեղծել դատարկ ֆայլ՝ Fail2ban-ը լրացուցիչ նշված չեղած պարամետրերը կլրացնի լռելյայն արժեքներով:

SSH պաշտպանության կոնֆիգուրացիայի օրինակ

Ահա jail.local ֆայլի պարզ օրինակ.

[DEFAULT]
ignoreip = 123.45.67.89


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

Ի՞նչ է սա նշանակում.

  • ignoreip — ձեր «սպիտակ ցուցակի» IP հասցեն: Fail2ban-ը երբեք չի արգելափակի այն, նույնիսկ եթե սխալ գրեք ձեր գաղտնաբառը: Նշեք ձեր IP-ն այստեղ (եթե այն ստատիկ է): Կարող եք ավելացնել մի քանի հասցե՝ բաժանված բացատներով:
  • enabled = true — ակտիվացնել պաշտպանությունը SSH-ի համար:
  • maxretry = 3 — առավելագույնը 3 ձախողված մուտքի փորձ:
  • findtime = 120 — վերջին 120 վայրկյանի (2 րոպե) ընթացքում:
  • bantime = 43200 — արգելափակել 12 ժամով (43200 վայրկյան):

    Այլ կերպ ասած՝ եթե IP հասցեն (բացի ձերիցից) 2 րոպեի ընթացքում 3 անգամ ձախողվի մուտք գործել, այն արգելափակվելու է 12 ժամով:

Նշում

Օգտագործվող համակարգից կախված՝ բաժինը կարող է լինել [sshd], [ssh] կամ [ssh‑iptables] — ստուգեք դա jail.conf ֆայլում:

Լրացուցիչ կարգավորումներ

  • Եթե փոխել եք SSH-ի պորտը (օրինակ՝ 22-ից 2222), ավելացրեք [sshd] բաժնում.

    port = 2222
    

  • Եթե օգտագործում եք UFW կամ firewalld iptables-ի փոխարեն, նշեք.

  • UFW-ի համար՝ action = ufw
  • firewalld-ի համար՝ action = firewallcmd-ipset

Բայց մեծ մասամ դեպքերում կարող եք ամեն ինչ թողնել լռելյայն կարգավորումներով՝ Fail2ban-ը ավտոմատ կերպով կընտրի համապատասխան արգելափակման մեթոդը:

Կիրառել կարգավորումները

Ֆայլը պահպանելուց հետո վերագործարկեք Fail2ban-ը.

sudo systemctl restart fail2ban

Ինչպես ստուգել, որ ամեն ինչ աշխատում է

  1. Ստուգել SSH արգելափակման կարգավիճակը.

    sudo fail2ban-client status sshd
    
    Դուք կտեսնեք արգելափակված IP հասցեների ցանկ:

  2. Դիտել Fail2ban լոգերը.

    sudo tail /var/log/fail2ban.log
    

  3. Ստուգել iptables արգելափակումները (եթե օգտագործվում է).

    sudo iptables -L
    

Խորհուրդ. Մի փորձարկեք պաշտպանությունը՝ ձեր սեփական IP-ից իմացիորեն սխալ գաղտնաբառ մուտքագրելով, քանի որ կարող եք պատահաբար արգելափակել ձեզ: Ավելի լավ է սպասել մի փոքր՝ բոտերը սովորաբար սկսում են հարձակվել սերվերների վրա միացումից հետո առաջին ժամվա ընթացքում:

Նշում

Fail2ban-ը լրացուցիչ պաշտպանական միջոց է, բայց լավագույնն է SSH-ի համար ընդհանրապես չօգտագործել գաղտնաբառեր: Կարգավորեք SSH-քիլ-հիմքով մուտք գործումը՝ այն ավելի անվտանգ և հարմար է: Միշտ ավելացրեք ձեր IP-ն ignoreip-ում, որպեսզի պատահաբար չարգելափակեք ձեզ:

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×