Fail2ban-ի տեղադրում և օգտագործում Debian 12-ում
Այս էջում
- Ինչպես է այն աշխատում
Fail2ban-ի կարգավորում
- Միացնելով բանտ
- Հետևեք տեղեկամատյաններին
- Անսարքությունների վերացում
- Սպիտակ ցուցակում սեփական IP-հասցեները
- Արգելում ձեռքով
- Արգելահանում ձեռքով
- Եզրակացություն
Fail2ban-ը վերահսկում է մատյանների ֆայլերը մուտքի ձախողումների համար և ժամանակավորապես արգելում է ձախողման հակված աղբյուրի IP հասցեին մուտք գործել հոսթ: Սա պաշտպանություն է գաղտնաբառի գուշակող կոպիտ ուժային հարձակումներից: Շատ օգտակար է fail2ban ունենալ ինտերնետի հետ կապված հոսթերների վրա:
Fail2ban-ի տարբերակը Debian 12-ում 1.0.2 է:
root@posti:~# fail2ban-client version
1.0.2
Տեսնելու համար, թե արդյոք fail2ban-ը ներկայումս աշխատում է, ուղարկեք սերվերի հրամանի ping՝ fail2ban-client-ով: Fail2ban սերվերը պատասխանում է «pong», եթե այն աշխատում է:
root@posti:/etc/fail2ban# fail2ban-client ping
Server replied: pong
root@posti:/etc/fail2ban#
Ինչպես է այն աշխատում
Fail2ban-ը հավաքում է ֆիլտր, գործողություն և վերահսկվող ֆայլեր բանտում: Բաշխման հետ մեկտեղ գալիս են մի քանի բանտեր: Նրանք պետք է հնարավորություն ունենան սկսելու աշխատել: ֆիլտրը նշում է, թե ինչպես հայտնաբերել նույնականացման ձախողումները: գործողությունը սահմանում է, թե ինչպես է տեղի ունենում արգելումը և արգելումը:
Ներխուժման փորձերը առաջացնում են արգելք, եթե findtime-ի ընթացքում առնվազն maxretry մուտքի ձախողումներ են հայտնաբերվել նույն IP-համարից: Այնուհետև IP-ն արգելվում է բանտիմ վայրկյաններով: Այն բանից հետո, երբ արգելքը ուժի մեջ կմտնի բանտայմի վայրկյանների ընթացքում, արգելքը հանվում է, և IP-ն կրկին կարող է մուտք գործել հոսթ: Fail2ban-ը կարող է աշխատել և՛ IPv4, և՛ IPv6:
Լրացուցիչ տեղեկություններ կարելի է կարդալ /usr/share/doc/fail2ban/ գրացուցակում գտնվող ֆայլերից:
Fail2ban-ի կարգավորում
Debian GNU/Linux համակարգերում լռելյայն տեղադրում է fail2ban՝ ողջամիտ կարգավորումներով միացված sshd բանտով: Սա արվում է ֆայլում /etc/fail2ban/jail.d/defaults-debian.conf: Դա լռելյայն աշխատող միակ բանտն է։ Այլ բանտերը պետք է միացված լինեն համակարգի ադմինիստրատորի կողմից:
Այսպիսով, եթե ցանկանում եք միայն վերահսկել ssh մուտքերը և արգելել սխալ վարքագիծ ունեցող ներխուժողները, լրացուցիչ կոնֆիգուրացիա անհրաժեշտ չէ:
Ցավոք, Debian 12-ում fail2ban-ը կարող է չաշխատել լռելյայն կարգավորումներով: Debian 12-ը նշել է rsyslog փաթեթը որպես ընտրովի, ինչը նշանակում է, որ այն չի կարող տեղադրվել, ուստի տեղեկամատյանները հավաքվում են միայն [wiki.debian.org/Rsyslog] ամսագրում:
ISPConfig համակարգերում fail2ban-ը աշխատում է, քանի որ ISPConfig autoinstaller-ը տեղադրում է rsyslog, իսկ ISPConfig Perfect սերվերի ձեռնարկը հրահանգում է տեղադրել rsyslog:
rsyslog-ով log ֆայլերը հայտնվում են /var/log/ -տեղեկագրքում, հետևաբար fail2ban-ի լռելյայն կոնֆիգուրացիան գտնում է մատյան ֆայլերը: Եթե rsyslog-ը տեղադրված չէ, ապա fail2ban կոնֆիգուրացիան պետք է փոփոխվի, որպեսզի այն կարդա տեղեկամատյանները systemd ամսագրից: Ավելացնել jail.local լռելյայն բաժին backend=systemd, ինչպես
[DEFAULT]
backend = systemd
Միացնելով բանտ
Փաստաթղթերը խորհուրդ են տալիս տեղադրել բոլոր սեփական փոփոխությունները .local ֆայլերում: Սա խուսափում է խնդիրներից, երբ բաշխման միջոցով տրամադրվող ֆայլերը թարմացվում կամ փոփոխվում են սպասարկողի կողմից [Read file /usr/share/doc/fail2ban/README.Debian.gz]:
Որպես օրինակ, մաքուր ftpd բանտի ակտիվացումը կատարվում է՝ ավելացնելով /etc/fail2ban/jail.local ֆայլին (ստեղծեք ֆայլը, եթե այն արդեն գոյություն չունի) տողերը:
[pure-ftpd]
enabled = true
Բանտի անունը քառակուսի փակագծերում սկսվում է այդ բանտի կարգավորումների բաժինը:
Փոփոխություններն ավարտելուց հետո ստիպեք վերընթերցել կազմաձևման ֆայլերը հրամանով
systemctl reload fail2ban
Այժմ բանտը պետք է գործարկվի, ինչը կարելի է ստուգել fail2ban-client-ով.
root@posti:/etc/fail2ban# fail2ban-client status pure-ftpd
Status for the jail: pure-ftpd
|- Filter
| |- Currently failed: 0
| |- Total failed: 106
| `- File list: /var/log/syslog
`- Actions
|- Currently banned: 0
|- Total banned: 4
`- Banned IP list:
root@posti:/etc/fail2ban#
Քանի որ jail.local-ն ունի միայն «միացված» պարամետրը այդ բանտի համար, մնացած բոլոր կարգավորումները բաշխման լռելյայն կարգավորումներն են: Սովորաբար դրանք լավ արժեքներ ունեն, ուստի հետագա կոնֆիգուրացիան ավելորդ է: Անհրաժեշտության դեպքում, jail.local բաժինն այդ բանտի համար կարող է պարունակել այնպիսի կարգավորումներ, որոնք անտեսում են այն, ինչ սահմանված է .conf ֆայլերում:
Այս օրինակը փոխում է findtime-ը, maxretry-ը և bantime-ը մաքուր ftpd բանտի համար.
[pure-ftpd]
enabled = true
findtime = 2h
maxretry = 6
bantime = 1d
Fail2ban-client-ը ցույց է տալիս ժամանակները վայրկյաններով, բայց ժամանակները կարելի է մուտքագրել կոնֆիգուրացիայի ֆայլերում ավելի հեշտ ձևաչափով, օրինակ՝ 10ժ 36000 վայրկյանի փոխարեն: man jail.conf-ը «ԺԱՄԱՆԱԿԻ ՀԱՃԱՌՈՎԻ ՖՈՐՄԱՏ» գլխում բացատրում է օգտագործողի համար հարմար ժամանակի մուտքագրման ձևաչափերը:
fail2ban-client-ն ունի օգտագործողի համար հարմար ժամանակի ձևաչափից վայրկյանների փոխարկելու տարբերակ:
# fail2ban-client --str2sec 1d3h7m
97620
Հետևեք տեղեկամատյաններին
Որոշելու համար, թե ինչ բանտեր պետք է ակտիվացվեն, հետևեք հոսթի վրա աշխատող ծառայությունների կողմից ստեղծված տեղեկամատյաններին: Օգտակար է գործիքը, որը ստեղծում է տեղեկամատյանների ամփոփագրեր, ինչպիսիք են logwatch-ը կամ pflogsumm-ը: Հում տեղեկամատյանները կարդալը ժամանակատար և հոգնեցուցիչ է:
Ստուգեք, թե արդյոք կա բանտ, որը հասանելի է հոսթի վրա աշխատող ծառայության համար, հավանաբար կարդալով jail.conf:
Երբ տեղեկամատյանները ցույց են տալիս ինչ-որ հետաքրքիր կամ մտահոգիչ բան, ժամանակն է ուսումնասիրել: Օրինակ, pflogsumm-ը էլեկտրոնային փոստի ամփոփագիր է ուղարկել հետևյալ տողերով.
136 unknown[91.224.92.40]: SASL LOGIN authentication failed: UGFzc3...
136 hostname srv-91-224-92-40.serveroffer.net does not resolve to a...
123 unknown[193.32.162.23]: SASL LOGIN authentication failed: UGFzc...
123 hostname mail.whatami.co does not resolve to address 193.32.162.23
Սա ցույց է տալիս, որ IP 91.224.92.40-ը ձախողվել է 136 անգամ էլեկտրոնային փոստ մուտք գործելիս, և մեկ այլ նմանատիպ դեպք: Fail2ban-ը պետք է կանխեր այդքան շատ փորձեր։ Տեսնելու համար, թե ինչու դա տեղի չունեցավ, ուսումնասիրեք fail2ban log-ը:
root@posti:/etc/apt/apt.conf.d# grep 91.224.92.40 /var/log/fail2ban.log | head
2024-02-18 00:01:38,718 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:01:38
2024-02-18 00:11:50,261 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:11:50
2024-02-18 00:21:54,337 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:21:54
2024-02-18 00:32:14,232 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:32:14
2024-02-18 00:42:37,921 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:42:37
2024-02-18 00:53:06,796 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 00:53:06
2024-02-18 01:03:35,293 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 01:03:35
2024-02-18 01:14:03,765 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 01:14:03
2024-02-18 01:24:24,628 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 01:24:24
2024-02-18 01:34:43,876 fail2ban.filter [996]: INFO [postfix-sasl] Found 91.224.92.40 - 2024-02-18 01:34:43
root@posti:/etc/apt/apt.conf.d#
Այդ IP-ն փորձում է միանալ մոտ 10 րոպե ընդմիջումներով, և fail2ban jail postfix-sasl-ը դա հայտնաբերում է:
Լավ գաղափար է պարզել, թե արդյոք այդ IP-ն պատկանում է հաղորդավարի օրինական օգտագործողին, ով պարզապես հին գաղտնաբառ ունի սմարթֆոնում կամ որևէ այլ սարքում, որը փորձում է կանոնավոր ընդմիջումներով միանալ: Ես օգտագործում եմ geoiplookup, ցույց է տալիս, թե որ երկրի IP-ն է։ Իմ օգտատերերը իմ երկրից են, ուստի արտասահմանցի օգտատերերը հակված են վատ դերասաններ լինել: geoiplookup-ը գալիս է Debian փաթեթներից geoip-database և geoip-bin:
$ geoiplookup 91.224.92.40
GeoIP Country Edition: LT, Lithuania
Պարզելու համար, թե ինչու IP-ն արգելված չէ, ուսումնասիրեք այդ բանտի findtime-ը.
root@posti:/etc/apt/apt.conf.d# fail2ban-client get postfix-sasl findtime
600
root@posti:/etc/apt/apt.conf.d#
Ես վերջերս տեսել եմ այս դանդաղ հարձակումները, հանցագործը գիտի, որ գտնելու ժամանակը 10 րոպե է, ուստի փորձում է խուսափել արգելքից՝ փորձելով մուտքերն ավելի երկար ընդմիջումներով: Դա ստացվեց այս դեպքում: Որպեսզի անհաջող մուտքերն արգելքներ են առաջացնում, ավելացրեք բանտում գտնելու ժամանակը, օրինակ՝ մինչև 10 ժամ: Ավելացնել jail.local ֆայլին [postfix-sasl] բաժնում.
findtime = 10h
Այնուհետև systemctl reload fail2ban-ից հետո բանտն ավելի երկար ժամանակ է գտնում.
root@posti:/etc/fail2ban# fail2ban-client get postfix-sasl findtime
36000
root@posti:/etc/fail2ban#
Մեկ այլ միջոց, որը փորձում են ներխուժողները ներխուժել, համառ լինելն է: Նույնիսկ եթե ներխուժողն արգելված է, պարզապես սպասեք մինչև արգելքի ավարտը և շարունակեք գուշակել գաղտնաբառը: The bantime-ը կարող է երկարացվել, բայց դա խնդիրներ է առաջացնում օրինական օգտատերերի համար, ովքեր կարող են սխալ մուտքագրել գաղտնաբառը և այնուհետև չեն կարող մուտք գործել իրենց հաշիվ մինչև բանտի ավարտը: Կրկնվող հանցագործների համար կա բանտ, որը կոչվում է կրկնվող: Այն աշխատում է՝ IP-ի համար կրկնվող արգելքներ փնտրելով fail2ban log-ում, այնուհետև արգելելով երկար ժամանակ, օրինակ՝ մեկ շաբաթ:
Հետևյալ ցանկը logwatch զեկույցից է.
--------------------- pam_unix Begin ------------------------
sshd:
Authentication Failures:
unknown (212.70.149.150): 59 Time(s)
Մատյան ֆայլում այդ IP-ի որոնումը ցույց է տալիս.
2024-02-21 03:42:39,121 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 03:42:38
2024-02-21 03:42:39,508 fail2ban.actions [895]: NOTICE [sshd] Ban 212.70.149.150
2024-02-21 03:52:38,386 fail2ban.actions [895]: NOTICE [sshd] Unban 212.70.149.150
2024-02-21 03:54:33,560 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 03:54:33
2024-02-21 03:54:35,364 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 03:54:35
2024-02-21 04:00:37,017 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 04:00:36
2024-02-21 04:00:39,021 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 04:00:38
2024-02-21 04:06:43,036 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 04:06:42
2024-02-21 04:06:45,039 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 04:06:44
2024-02-21 04:06:45,426 fail2ban.actions [895]: NOTICE [sshd] Ban 212.70.149.150
2024-02-21 04:16:44,302 fail2ban.actions [895]: NOTICE [sshd] Unban 212.70.149.150
2024-02-21 04:19:04,868 fail2ban.filter [895]: INFO [sshd] Found 212.70.149.150 - 2024-02-21 04:19:04
Fail2ban-ն աշխատում է այնպես, ինչպես նախատեսված էր՝ գտնելով սխալ մուտքեր և արգելք է թողնում 10 րոպեով: Այս արգելքի ընթացքում իրավախախտին արգելվում է մուտք գործել այս հոսթ, բայց այն շարունակվում է արգելքը հանելուց հետո: Թվում է, թե սա ներխուժման լուրջ փորձի դեպք է: Դեղամիջոցը թույլ է տալիս կրկնական բանտարկել ցածր արագությամբ և երկար ժամանակով:
Ես սիրում եմ օգտագործել կարճ նախնական արգելք, ասենք 10 րոպե: Եթե իրական օգտատերը արգելափակվել է, նա պարզապես սպասում է այդ ժամանակին, հուսով ենք, որ ժամանակն օգտագործում է ճիշտ գաղտնաբառ գտնելու համար և նորից փորձում: Նրանք, ովքեր նույն օրը նորից արգելվում են, մեկ շաբաթով արգելվում են։ Recidive jail-ի լռելյայն արժեքները կարելի է գտնել jail.conf ֆայլում, կա bantime 1 շաբաթ և findtime 1 օր, դրանք ինձ լավ են թվում: Բայց ես սահմանել եմ maxretry-ը 2-ի վրա, իրավախախտներն ավելի արագ են արգելվում: Ես jail.local ֆայլին ավելացրել եմ.
[recidive]
enabled = true
maxretry = 2
1 շաբաթից երկար արգելքները, իմ կարծիքով, արժանի չեն։ Ի վերջո, հին IP-հասցեն արգելվում է կամ սև ցուցակում է ամբողջ տեղում, ուստի իրավախախտը ստանում է նոր IP: Հին IP-ն տրվում է ինտերնետի ինչ-որ անմեղ նոր օգտվողի, որը չպետք է պատժվի այն վատ բաների համար, որոնցում մեղավոր է այդ IP-ի նախկին սեփականատերը:
Անսարքությունների վերացում
ՕՀ-ն բեռնելուց կամ fail2ban վիճակի վերագործարկումից հետո վերականգնվում է, ուստի արգելքները շարունակվում են մինչև բանտի ավարտը: Այսպիսով, փորձարկումը և անսարքությունների վերացումը կարող են ներառել վերագործարկում:
Կազմաձևը փորձարկելու համար կա փորձարկման տարբերակ.
fail2ban-server --test
Պարզելու համար, թե արդյոք IP-ն արգելված է, fail2ban-ի վերջին տարբերակները կարող են դա անել
# fail2ban-client banned 43.131.9.186
[['recidive']]
Հրահանգը ցույց է տալիս այն բանտերի ցանկը, որտեղ տվյալ IP-ն ներկայումս արգելված է:
Fail2ban-ի հին տարբերակները չունեն այդ հրամանը։ Յուրաքանչյուր բանտ մեկ առ մեկ փորձարկելը կարելի է անել այսպես.
# fail2ban-client status recidive | tr " " "\n" | grep 43.163.219.232
43.163.219.232
Եթե ելքը ցույց է տալիս IP-ն, ապա այն եղել է արգելված IP համարների ցանկում: tr հրամանը կա՝ արգելված IP-համարների ցանկը բաժանելու համար (դա մեկ երկար տող է) մեկ տողի մեկ IP-ի:
Տեսնելու համար, թե ինչ է տեղի ունենում տվյալ IP-ի հետ, նայեք այն fail2ban.log-ում.
root@posti:/etc/mysql# grep 43.131.9.186 /var/log/fail2ban.log | cut --characters=-80
2024-03-06 09:00:40,295 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:02:53,954 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:02:55,958 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:04:34,193 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:04:36,195 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:04:36,388 fail2ban.actions [3574846]: NOTICE [sshd] Ban 43
2024-03-06 09:04:36,626 fail2ban.filter [3574846]: INFO [recidive] Fo
2024-03-06 09:14:35,180 fail2ban.actions [3574846]: NOTICE [sshd] Unban
2024-03-06 09:15:10,073 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:16:55,919 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:16:58,522 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:18:44,972 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:20:30,018 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:20:30,499 fail2ban.actions [3574846]: NOTICE [sshd] Ban 43
2024-03-06 09:20:30,620 fail2ban.filter [3574846]: INFO [recidive] Fo
2024-03-06 09:20:30,899 fail2ban.actions [3574846]: NOTICE [recidive] Ba
2024-03-06 09:20:32,021 fail2ban.filter [3574846]: INFO [sshd] Found
2024-03-06 09:30:29,289 fail2ban.actions [3574846]: NOTICE [sshd] Unban
Fail2ban կոնֆիգուրացիայի խորամանկ հեռացումը ցույց է տալիս ստուգման պարամետրերը.
# fail2ban-client -vvv -d
Սպիտակ ցուցակում սեփական IP-հասցեները
Հնարավոր է, որ ձեր սեփական հաղորդավարներն արգելվեն, կամ դուք ցանկանում եք համոզվել, որ որոշ օտարերկրյա հաղորդավարներ երբեք չեն արգելվի, նույնիսկ եթե նրանք իրենց վատ են պահում: Այդ ip-համարները կարող են ներառվել սպիտակ ցուցակում: Լռելյայն ոչինչ սպիտակ ցուցակում չկա, դուք կարող եք դա հաստատել հետևյալով.
root@posti:~# fail2ban-client get sshd ignoreip
No IP address/network is ignored
root@posti:~
Անտեսման կարգավորումը կարող է սահմանվել յուրաքանչյուր jails բաժնում, բայց այս պարամետրը պետք է ազդի բոլոր բանտերի վրա, ուստի ավելի լավ է այն սահմանել DEFAULT բաժնում: Լավագույնը կարող է լինել անտեսել ներքին ենթացանցին, այնպես որ ձեր սեփական բոլոր հոսթերները խուսափեն արգելքներից: Սա jail.local-ի սկզբից է՝
[DEFAULT]
ignoreip = 92.237.123.96/27
Կանխադրված բաժինը կարող է ունենալ այլ կարգավորումներ, որոնք ազդում են բոլոր բանտերի վրա: Օրինակ, findtime=10h կարող է ավելացվել այնտեղ:
Արգելում ձեռքով
Ստուգելու համար, թե ինչ է տեղի ունենում արգելման ժամանակ, ձեռքով սահմանեք արգելքը: Փորձեք նախ բանտում կարճ ժամանակով, որպեսզի ի վերջո վերադառնաք, եթե սխալմամբ արգելեք ինքներդ ձեզ: Օրինակ
# fail2ban-client set sshd banip 8.8.4.4</>
Եթե ինչ-որ IP-ն իրեն վատ է պահում, բայց դուք չեք կարող ստիպել fail2ban-ին հայտնաբերել այն և արգելքներ սահմանել, ռեցիդիվի բանտում ձեռքով արգելք դնելը կազատվի այդ IP-ից մեկ շաբաթով:
# fail2ban-client set recidive banip 8.8.4.4
Ենթացանցն արգելելը գործում է CIDR նշումով.
fail2ban-client set recidive banip 5.188.87.0/24
Արգելահանում ձեռքով
Արգելքի վերացումը հնարավոր է, բայց հաշվի առեք, որ եթե վատ պահվածքը շարունակվի, IP-ն նորից կարգելվի: Այսպիսով, դուք պետք է պարզեք, թե ինչ է տեղի ունենում (օրինակ, տեղեկամատյանները կարդալով) և շտկեք վատ վարքագիծը:
# fail2ban-client set recidive unbanip 8.8.4.4
IP-ն կարող է արգելվել մի քանի բանտերում։ Բոլոր բանտերում IP-ի արգելքը հանելու համար օգտագործեք
# fail2ban-client unban 8.8.4.4
Այնուամենայնիվ, ես հազվադեպ եմ դա անելու կարիք: Ես ունեմ 10 րոպե բանտայմ, բացառությամբ, որ ռեցիդիվ բանտում կա 1 շաբաթ, այնպես որ ես միայն հանում եմ ռեցիդիվ բանտից, մյուս բանտերն արդեն սպառվել են: Եթե դուք չեք օգտագործում կրկնվող բանտ, IP-ն կարող է արգելվել միաժամանակ մի քանի բանտերում, ուստի դա օգտակար է:
Բոլոր բանտերից բոլոր IP-հասցեներն արգելահանելու համար արեք
fail2ban-client unban --all
Եզրակացություն
Fail2ban-ը դժվարացնում է գաղտնաբառերի գուշակությունը, բայց ամբողջովին չի խանգարում կոտրիչներին փորձել մուտք գործել հոսթ: SSH-ի համար SSH ստեղների օգտագործումը պարտադրելը ավելի շատ պաշտպանություն է առաջարկում՝ կանխելով մուտքը գաղտնաբառով: Այլ ծառայությունների համար բազմագործոն նույնականացումը կանխում է մուտքը, եթե հայտնի է միայն գաղտնաբառը: