internetul Windows. Android

Cum să protejați conexiunea SSH pe serverul Linux. Fără autentificare gazdă

SSH este un protocol sigur pentru transferul de date (comenzi, fișiere, video etc.) între computere.

În mod implicit, este activată pe VPS și serverele evidențiate ale celor mai mulți furnizori de gazduire, deoarece este posibil să se gestioneze ușor mașina la distanță și în siguranță și în siguranță. Apropo, pe serviciul Well-Web, puteți închiria ieftin un server VPS. Deoarece SSH este ridicat pe toate VPS, astfel încât atunci când se utilizează carcasa securizată, nu există nici o problemă, este necesară o protecție corectă SSH.

Opriți accesul de la rădăcină

În primul rând, se recomandă dezactivarea capacității de a se conecta la distanță la aparatul sub contul superuser (rădăcină). Pentru a face acest lucru, trebuie să găsiți fișierul sshd_config, care este de obicei (dar nu întotdeauna) este în directorul / etc / ssh / și deschideți-l.

Acesta o va lua pentru a găsi elementul permrootlogin și pentru a înlocui valoarea acestuia la "nu", adică ar trebui să existe o astfel de intrare:

PERMONTROOTLOGIN Nr.

Firește, nu va împiedica hacking-ul, dar încă câteva dificultăți.

Pentru a minimiza posibilitatea hacking, se recomandă utilizarea autorizației utilizând tastele în loc de autentificare de conectare și parolă. Acest lucru se poate face în mai multe moduri. Similar, apropo, de asemenea, o bună protecție SSH împotriva lui Bruthfors.

Schimbarea portului implicit

Deoarece hacking-ul serverului SSH apare de obicei prin parole (grotele), acesta va schimba rațional portul standard de 22 al altor. Fă-o foarte ușoară. Mai întâi trebuie să deschideți fișierul sshd_config deja menționat și să adăugați o linie acolo:

Port numeric.

Recordul va arăta, de exemplu, după cum urmează:

Portul 3048.

Acest lucru va reduce semnificativ numărul de persoane care doresc să intre în server neautorizat. Înainte de a modifica numărul de port, trebuie să vă asigurați că nu va afecta alte aplicații. De asemenea, trebuie să alegeți portul care nu este încă folosit astfel încât programele să nu configureze din cauza acestuia.

Restricționarea accesului IP

O altă modalitate de a proteja, care aproape de zero reduce probabilitatea unei conexiuni neautorizate este de a instala restricții privind autorizarea. SSH poate fi configurat în acest mod pentru a vă conecta pentru a vă conecta numai cu mașini de la distanță cu adrese IP definite. Pentru a face acest lucru, în fișierul sshd_config din rândul Allowuser către fiecare utilizator, trebuie să adăugați @ număr_IP. Înregistrarea poate avea, de exemplu, de acest fel:

Alocate. [E-mail protejat], [E-mail protejat]

Înainte de a utiliza această metodă, se recomandă să vă asigurați că nu vor exista situații în care este posibil să fie necesar să introduceți serverul din aparat, al cărei adresă IP nu este furnizat de configurație.

Parolă sigură

Și, desigur, merită să utilizați o parolă rezistentă la parolă. Lung și cu simboluri variate cât mai mult posibil, de preferință cu Krakoyabram. Acest lucru trebuie să aibă.

SSH vă permite să creați o conexiune securizată la server, cu toate acestea, pentru a lucra corect, serviciul SSH în sine trebuie să aibă acces la Internet. Acest lucru creează un vector de atac pentru potențialii hackeri, prin urmare, SSH are nevoie de protecție suplimentară.

În general, orice serviciu cu acces la rețea este un obiectiv potențial. În jurnalele acestor servicii, puteți observa repetarea, încercările sistematice de conectare - acesta este un atac de forță brute efectuate de utilizatori și roboți.

Serviciul Fail2ban poate înmuia atacurile utilizând regulile care modifică automat configurația firewall iptables pe baza numărului predeterminat de încercări de conectare nereușite. Acest lucru va permite serverului să răspundă în timp util accesul neautorizat fără intervenția administratorului.

Acest manual va ajuta la instalarea și configurarea fail2ban pe serverul Ubuntu 14.04.

Instalarea fail2ban.

Depozitul Ubuntu oferă un pachet Fail2ban, prin urmare, poate fi instalat utilizând un manager standard de lot.

Actualizați indicele de pachete și instalați Fail2ban folosind aceste comenzi:

sUDO APT-GET Actualizare
Sudo apt-get instalare fail2ban

Acum puteți trece la configurarea utilității.

Fail2ban configurații

Fișierele de configurare Fail2ban sunt stocate în directorul / etc / fail2ban. Parametrii standard pot fi găsiți în fișierul jail.conf.

Deoarece acest fișier poate fi modificat în timpul actualizării pachetului, nu este nevoie să o editați. Este mai bine să copiați conținutul său în alt fișier și să ajustați parametrii de acolo. Deci, aceste două fișiere funcționează corect, este cel mai bine să plecați într-un fișier nou numai acei parametri care trebuie să fie suprascris în fișierul jail.local. Toți parametrii impliciți vor fi citite din fișierul jail.conf.

Copiați jail.conf și utilizați-l ca bază pentru fișierul jail.local. Pentru a face acest lucru, introduceți:

awk "(printf" # "; imprimare;)" /etc/fail2ban/jail.conf | Sudo tee /etc/fail2ban/jail.local.

După aceea, uitați-vă la jail.conf:

sudo nano /etc/fail2ban/jail.conf.

Unii parametri pot fi actualizați în acest fișier. Parametrii de partiții se vor aplica tuturor serviciilor pe care le suportă Fail2ban (cu excepția cazului în care aceste valori sunt redefinite în fișierele de configurare ale acestor servicii).


. . .
IGNOREIP \u003d 127.0.0.1 / 8.
. . .

Setarea IGNOREIP configurează adresele sursei care nu vor fi ignorate. În mod implicit, acesta depășește orice trafic venind de la mașina locală. Puteți adăuga alte adrese care trebuie ignorate prin plasarea acestora la sfârșitul directivei IGNOREIP prin spațiu.


. . .
Bantime \u003d 600.
. . .

Parametrul Bantim stabilește timpul în care clientul va fi blocat dacă nu ar putea trece autentificarea. Valoarea sa este măsurată în câteva secunde. Implicit este de 600 de secunde (10 minute).


. . .
FindTime \u003d 600.
Maxretry \u003d 3.
. . .

Următorii doi parametri pentru care ar trebui să vă acordați atenție este FindTime și Maxretry. Împreună definesc condițiile în care utilizatorii ilegali vor fi blocați.

Variabila maxretry stabilește numărul de încercări de intrare, iar FindTime este intervalul de timp în care utilizatorul trebuie să treacă autentificarea. Dacă clientul depășește oricare dintre acești indicatori, acesta va fi blocat. În mod implicit, serviciul Fail2ban blochează clienții care nu au putut oferi acreditări de 3 ori în termen de 10 minute.


. . .
Destemail \u003d. [E-mail protejat]
Sendername \u003d Fail2ban.
MTA \u003d Sendmail.
. . .

Distemail, SenderName și parametrii MTA vă permit să configurați alerte de e-mail. Parametrul DeSitemail definește adresa de e-mail pe care mesajele ar trebui să primească mesaje despre utilizatorii blocați. Parametrul SenderName specifică expeditorul mesajului. Parametrul MTA determină ce serviciu poștal va fi utilizat pentru a trimite poștă. Adăugați acești parametri la Jail.local la secțiune și setați valorile corespunzătoare.


. . .
Acțiune \u003d $ (acțiune_) s
. . .

Acest parametru configurează acțiunea Fail2ban în caz de blocare. Valoarea acționată este definită puțin înainte de acest parametru. Acțiunea implicită va bloca traficul intenționat înainte de expirarea interdicției prin migrarea firewall-ului.

Dacă doriți să configurați alerte prin e-mail, să adăugați sau să desfăcați elementul de acțiune în fișierul jail.local și să modificați valoarea acestuia la Action_MW. Dacă doriți ca litera să includă liniile corespunzătoare din jurnale, puteți specifica valoarea acțiunii_mwl. Dacă decideți să utilizați alerte electronice, asigurați-vă că setările de e-mail sunt acceptate.

Parametri individuali

Suportul pentru serviciile individuale este inclus în secțiunile speciale cu același nume. De exemplu, parametrii serviciului SSH pot fi specificați în secțiune.

Fiecare dintre aceste secțiuni poate fi activată prin deșurubarea titlului secțiunii în jail.local și schimbarea valorii șirului activat la "Adevărat":


. . .
Activat \u003d Adevărat.
. . .

În mod prestabilit, numai serviciul SSH este acceptat și toate celelalte servicii sunt dezactivate.

Aceste partiții sunt utilizate ca bază valorile setate în secțiune și după cum este necesar pentru a le ajusta. Pentru a suprascrie orice valori, adăugați o partiție la serviciul corespunzător în jail.local și schimbați valorile acestuia.

De asemenea, sunt instalați aici alți parametri. Parametrul filtrului ajută la determinarea dacă șirul din jurnal la încercarea nereușită a autentificării; Rapoartele privind parametrul Logpath Fail2ban, unde sunt localizate jurnalele acestui serviciu particular.

Valoarea parametrului filtrului este o legătură către un fișier cu extensie.conf situată în directorul /etc/fail2ban/filter.d. Aceste fișiere conțin expresii regulate care determină dacă șirul din mesajul jurnal se referă la o încercare nereușită de autentificare. Aceste fișiere depășesc scopul acestui manual, deoarece acestea sunt destul de complexe, iar parametrii impliciți sunt destul de potriviți în majoritatea cazurilor.

Puteți vizualiza filtre în acest director:

ls /etc/fail2ban/filter.d.

Găsiți fișierul asociat cu serviciul dorit și deschideți-l utilizând un editor de text. Cele mai multe fișiere sunt destul de bine comentate și puteți citi scriptul de protecție a serviciului. Cele mai multe dintre aceste filtre au secțiuni adecvate în fișierul jail.conf (sunt dezactivate în mod implicit). Acestea pot fi activate în fișierul jail.local, dacă este necesar.

Să presupunem că aveți un site care este servit cu Nginx. Jurnalele serverului Web sunt actualizate constant de încercări de intrare nereușite. Utilitarul Fail2ban poate folosi fișierul nginx-http-autod.conf pentru a verifica în mod constant /var/log/nginx/error.log.

Aproape toți parametrii necesari pentru acest lucru sunt deja în secțiunea din fișierul /etc/fail2ban/jail.conf. Trebuie doar să dezactivați această secțiune în fișierul jail.local și să specificați adevărat în parametrul activat.

. . .
Activat \u003d Adevărat.
. . .

După aceea, trebuie să reporniți Fail2ban.

Configurarea failului2ban.

Acum știți fundațiile lui Fail2ban. Încercați să configurați politica de blocare automată pentru serviciul ssh și nginx. De asemenea, aveți nevoie de instrumentul Fail2ban pentru a trimite mesaje prin e-mail în cazul blocării adresei IP.

Pentru a începe cu, instalați software-ul necesar.

Veți avea nevoie de Nginx, deoarece Fail2ban va urmări jurnalele și se va trimite pentru a trimite notificări. De asemenea, aveți nevoie de pachetul iptables-persistent astfel încât serverul să economisească și să încărcați automat regulile firewall când serverul este încărcat. Toate aceste pachete pot fi descărcate din depozitul standard Ubuntu:

sUDO APT-GET Actualizare
Sudo apt-get instalare nginx sendmail iptables-persistent

Opriți serviciul Fail2ban pentru a configura firewall-ul de bază.

Configurați firewall.

Firewall-ul de bază trebuie să suporte conexiunile instalate, precum și traficul generat de serverul însuși și traficul destinat SSH și porturilor de server web. Toate celelalte trafic vor fi blocate. Regulile arată astfel:

sudo iptables-o intrare -i lo-am acceptat
SUDO IPTABLES -A INPUT -M CONTRACK --CTTATE stabilit, conexe
Sudo iptables-o intrare -p tcp --pport 22 -j acceptați
Sudo iptables -a intrare -p tcp -m multiport --Dports 80,443 -J acceptați
Sudo iptables -a intrare -j picătură

Aceste echipe implementează politicile de mai sus. Pentru a vizualiza regulile actuale de firewall, tastați:

sudo iptables -s.
-P acceptați de intrare
-P acceptați înainte
-P de ieșire acceptă
-O intrare -I lo-am acceptat




- o intrare de intrare

Salvați regulile firewall astfel încât să nu piardă după repornire.

sudo dpkg-reconfigurare iptables-persistent

Reporniți Fail2ban:

sudo Service Fail2ban Start

Solicitați regulile de firewall:

sudo iptables -s.
-P acceptați de intrare
-P acceptați înainte
-P de ieșire acceptă
-N fail2ban-ssh

-O intrare -I lo-am acceptat
-A Intrare -m Contrtrack - conexat, stabilit -j acceptați
-A Intrare -P TCP -M TCP --PPORT 22 -J Acceptați
-A Intrare -P TCP -M TCP --PPORT 80 -J Acceptați
- o intrare de intrare
-A fail2ban-ssh -j retur

Fiecare lanț are acum politicile implicite. De asemenea, în firewall există cinci reguli de bază. Fail2ban Structura este evidențiată în roșu: Acest instrument aplică deja regulile de blocare a SSH. Uneori, această structură nu este afișată mai întâi, deoarece Fail2ban nu poate adăuga o structură la prima blocare.

Configurarea failului2ban.

Acum trebuie să adăugați setări Fail2ban în fișierul jail.local:

sudo nano /etc/fail2ban/jail.local.

Aici puteți instala un interval mai strict al timpului de blocare. Găsiți și dezavantajați titlul. În această secțiune, schimbați parametrul Bantului, astfel încât serviciul să blocheze clientul timp de o jumătate de oră:


. . .
bantime \u003d 1800.
. . .

De asemenea, trebuie să configurați notificările. Mai întâi găsiți parametrul DeSitemail, care trebuie să fie și în secțiune. Introduceți adresa de e-mail pe care doriți să o utilizați pentru a colecta aceste mesaje:


. . .
Destemail \u003d. [E-mail protejat]
. . .

În SenderName, specificați orice valoare convenabilă. Se recomandă utilizarea aici o valoare descriptivă pe care serviciul de mail poate filtra cu ușurință.

Apoi trebuie să corectați valoarea acțiunii. Puteți seta valoarea action_mw care blochează clientul și apoi trimite raportul "Whois". Valoarea action_mwL face același lucru, dar trimite, de asemenea, liniile de jurnal corespunzătoare.


. . .
acțiune \u003d% (acțiune_mwl) s
. . .

În secțiunea SSH din Directiva MaxRetry, puteți schimba numărul de încercări de autentificare nereușite. Dacă utilizați un port non-standard (nu 22), specificați-l în parametrul portului. Așa cum am menționat mai devreme, acest server este deja inclus.

Apoi găsiți secțiunea Nginx-Http-Auth. Permiteți titlul și modificați valoarea parametrului activat la "TRUE".

. . .

Activat \u003d Adevărat.
. . .

Acesta este tot ce trebuie să faceți în această secțiune dacă serverul Web utilizează porturi standard și jurnalele sale sunt stocate în directorul standard.

Reporniți fail2ban.

Salvați și închideți fișierul.

Apoi reporniți serviciul Fail2ban. Uneori chiar mai bine opriți-o și apoi rulați din nou.

sudo Service Fail2ban Stop
Sudo Service Fail2ban Start

Pentru descărcarea tuturor regulilor firewall-ului poate dura câteva minute. Uneori, regulile nu sunt adăugate până când primul client este blocat. După un timp, puteți verifica noi reguli:

sudo iptables -s.
-P acceptați de intrare
-P acceptați înainte
-P de ieșire acceptă
-N fail2ban-nginx-http-auth

-N fail2ban-ssh

- o intrare -p TCP-multiport --Dports 80,443 -J fail2ban-nginx-http-auth


-O intrare -p TCP-multiport --Dports 22 -j fail2ban-ssh

-O intrare -I lo-am acceptat
-A Intrare -m Contrtrack - conexat, stabilit -j acceptați
-A Intrare -P TCP -M TCP --PPORT 22 -J Acceptați
-A Intrare -P TCP -M TCP --PPORT 80 -J Acceptați
- o intrare de intrare
-A fail2ban-nginx-http-auth -j retur

-A fail2ban-ssh -j retur

Liniile evidențiate în roșu create de Politica Fail2ban. Acum, ei trimit pur și simplu traficul la lanțuri noi, aproape goale, apoi săriți apoi fluxul de trafic înapoi în lanțul de intrare.

Regulile de blocare vor fi adăugate la aceste lanțuri.

Blocarea politicii de testare

Acum puteți testa regulile prin conectarea de la un alt server care nu are acreditări pe serverul Fail2ban.

Încercați să creați o conexiune SSH la server utilizând acreditări inexistente:

ssh. [E-mail protejat]_Server_ip.

Introduceți un set aleatoriu de caractere ca parolă. Repetați de mai multe ori. La un moment dat, Fail2ban va dezactiva accesul și va afișa mesajul "Permisiunea refuzată".

Reveniți la primul server și vizualizați noile reguli iptables:

sudo iptables -s.
-P acceptați de intrare
-P acceptați înainte
-P de ieșire acceptă
-N fail2ban-nginx-http-auth
-N fail2ban-ssh
- o intrare -p TCP-multiport --Dports 80,443 -J fail2ban-nginx-http-auth
-O intrare -p TCP-multiport --Dports 22 -j fail2ban-ssh
-O intrare -I lo-am acceptat
-A Intrare -m Contrtrack - conexat, stabilit -j acceptați
-A Intrare -P TCP -M TCP --PPORT 22 -J Acceptați
-A Intrare -P TCP -M TCP --PPORT 80 -J Acceptați
- o intrare de intrare
-A fail2ban-nginx-http-auth -j retur
-A FAILE2BAN-SSH -S 203.0.113.14/32 -J Respingerea - Asjecția - cu ICMP-Port-Important
-A fail2ban-ssh -j retur

Noua regulă este evidențiată în roșu. Blochează traficul de la adresa IP a celui de-al doilea server la portul SSH. În curând veți primi o notificare de blocare a clientului.

Concluzie

Acum sunteți familiarizați cu fundațiile lui Fail2ban și puteți crea configurația de bază a acestui instrument.

Reguli de protecție multiple Accesați serverul SSH.

1. Adăugați la configurația serverului SSH, ascultați un alt port, în plus față de cea standard. (Pentru ușurința memorizării, puteți utiliza 4 numere repetitive pentru toate serverele dvs.).

$ Sudo vi / etc / ssh / sshd_config port 22 port xxxx

2. Am restricționăm apelurile la 22 de porturi numai de încredere * de exemplu 8.8.8.8 (astfel de reguli se pot face mai multe, de lucru / casă)

$ SUDO VI / ETC / SYSCONFIG / IPTABLES -A INPUT -S 8.8.8.8 -P TCP -M State - State New-M TCP --PPORT 22 -J Acceptați

3. Nu uitați să verificați dacă suntem utilizați IPv6, dacă este folosit, apoi închideți prea mult

$ sudo vi / etc / sysconfig / ip6metables * Filtru: intrare acceptă: Acceptare înainte: Ieșire acceptă -a intrare -M de stat --stat stabilit, conexe -j acceptă-o intrare -p ipv6-iCMP -j acceptă -A I lo-am acceptat -a de intrare -m de stat --Sstate nou -m tcp -p tcp --pport 80 -j accesa-o intrare -m de stat --State noi -m TCP-PP TCP --Port 443 -J Acceptarea -A Intrare -j Respingerea - Asjecția - cu ICMP6-ADM-interzită -A Forward -j Respingere - Asiect - cu ICMP6-ADM-interzisă

Pentru a utiliza SSH numai pe o anumită adresă este suficientă în fișierul de configurare. sshd_config. Specificați un procent ListenAddress. (De exemplu, ListenAddress 74.125.200.100). În acest caz, SSH va fi disponibil numai la această adresă și nu va funcționa prin IPv6

4. Folosiți fișierul de configurare SSH de pe partea clientului.

Locație: ~ / .ssh / config

# Fix Scrieți a eșuat: țeavă ruptă ServeralIniveInTERV 120 TCpkeepalive NO # pentru a utiliza Nume Short Dev-VPS # Adresa IP sau Nume de Domeniul Public Hostname Hostname 127.0.0.3 # În ce utilizator să-și exercite Input Developer de utilizator # cheie de autorizare (dacă este folosit) IdentityFile ~ / .ssh / id_rsa.dev

Și încă un exemplu de utilizare a fișierului de configurare:
{<1>}

Host SSH-SERVER-1 Hostname 1.2.3.4 Utilizator Dev Port 1234 Host SSH-server-2 Root utilizator # Hostname 192.168.10.20 # NC fără -Q0 Dacă RHEL BATED & CU Identityfile bazate pe Debian ~ / .ssh / Id_rsa.work -Pc Proxycommand SSH -Q0 SSH-Server-1 NC -Q0 192.168.10.20 22

Și acum când vă conectați la SSH-Server-1, vom sări imediat pe gazdă avem nevoie. (Este convenabil să utilizați, de exemplu, cu taste diferite pe servere)

Precum și hipster Opțiunea proxy:

{<2>}

Descărcați clientul NGROK pe serverul care se află în spatele firewall-ului. Rulați un binar și specificați ce port trebuie să trezesc

Ssh. - Acesta este un protocol utilizat pentru a asigura securitatea și criptarea transmiterii datelor în rețea. Este utilizat pe scară largă într-un cerc. Linux. Administratori pentru a gestiona un server de la distanță. Conectarea serverului la Internet este adesea atașată la serviciul SSH pentru a accesa serverul. Cea mai planificată este selectarea parolei de utilizator cu drepturile admiratorului. În acest manual, vom lua în considerare recomandările de bază pentru securitate Ssh. Conexiuni.

Instalați o parolă sofisticată

Serverul dvs. poate sugera atacuri de la intruși care încearcă să aleagă o parolă la server de către Ssh.Pentru a reduce riscul de hacking - recomandăm instalarea parolelor la conturile de server care corespund următorilor parametri:

  • Cel puțin 8 caractere
  • Utilizați registrul superior și inferior (AABB)
  • Utilizați litere - numere și semne ( [E-mail protejat])

Parola puternică nu numai că protejează de hacking Ssh. Protocolul, dar, în general, îmbunătățește protecția serverului.

Folosind chei ssh.

Protecția suplimentară a serverului dvs. va folosi cheia pentru a vă conecta la server Ssh.Trebuie să generați cheia de pe computer / server din care vă veți conecta:

Cum se creează Ssh. Cheia OS Windows.:

Pentru a crea o cheie în Linux. Formați comanda:

Ssh-keygen -t rsa

Pentru a seta această tastă la serverul la care vă veți conecta, tastați:

SSH-Copy-ID -P 22 [E-mail protejat]

  • -p 22. - portul serverului pentru care funcționează Ssh. Protocolul (poate fi modificat, mai multe informații de mai jos)
  • admin. - Conectați-vă de la serverul dvs.
  • 192.168.1.1 - Adresa IP a serverului dvs.

Dacă ați făcut totul corect, acum vă puteți conecta la tasta la server și nu trebuie să introduceți parola de fiecare dată.

Utilizați portul personalizat

Standard Ssh.serviciul care rulează pe server ascultă 22 Port Pentru a conecta / transmite date, atacatorii pot profita de faptul că majoritatea utilizatorilor nu modifică portul standard pentru conectarea la server. Prin urmare, vom schimba portul, reducând astfel riscul de hacking pe serverul nostru încă o dată.

Pentru a face acest lucru, deschideți fișierul de configurare. Ssh. pe server:

Sudo nano / etc / ssh / sshd_config

Vom găsi în el un șir comentat de acest tip:

# Portul 22.

Scoateți simbolul # - Pentru a elimina opțiunea de comentarii și schimbarea 22 pe orice numere începând cu 11060 Și prin creșterea, de exemplu, vom folosi 11 060 Acum șirul ar trebui să arate astfel:

PORT 11060.

Salvați configurația " Ctrl.+O."Și ieși din editor" Ctrl.+X.".

Trebuie să reporniți Ssh. Service - Pentru a porni setările noi, executați comanda:

Sudo Service SSHD Repornire

Așadar, am schimbat portul pentru conectare, de acum - pentru a vă conecta la serverul de care aveți nevoie pentru a specifica o opțiune de port non-standard -P. 11060 , de exemplu:

SSH -P 11060. [E-mail protejat]

Lăsați accesul numai a unor părți ale utilizatorilor

Ssh. Conexiunea poate fi limitată pentru conturile individuale, de exemplu, dacă există trei conturi pe server: admin. , sergey. , alex. - Aveți posibilitatea de a rezolva o conexiune la distanță numai pentru unele dintre ele. Pentru a face acest lucru, deschideți fișierul de configurare. Ssh.:

În acest fișier, mergeți în jos la ultimul șir și adăugați unul nou cu acest conținut:

Allowuses admin Alex.

Salvați configurația " Ctrl.+O."Și ieși din editor" Ctrl.+X.".

Reporniți serviciul Ssh.:

Sudo Service SSHD Repornire

În acest caz, ați permis accesul la distanță la utilizatori. admin. și alex., în timp ce utilizatorul sergey. Nu mai puteți conecta de la distanță.

Porniți protocolul SSH 2

Conform standardului Ssh. Funcționează în versiunea 1, această versiune este depășită și are multe vulnerabilități, dar pentru a asigura o securitate mai bună, vă recomandăm să treceți la versiunea 2. Pentru a face acest lucru, deschideți fișierul de configurare Ssh.:

Sudo nano / etc / ssh / ssh_config

Găsiți șirul:

# Protocol 2.

Scoateți simbolul # - Pentru a elimina opțiunea de comentarii și a utiliza această linie, este posibil să faceți acest lucru:

Protocolul 2.

Salvați configurația " Ctrl.+O."Și ieși din editor" Ctrl.+X.".

Reporniți serviciul Ssh.:

Sudo Service SSHD Repornire

Dezactivați parolele goale

Mod implicit Ssh. Serviciul interzice conectarea la utilizatori fără parole, dar poate că aveți această opțiune pe server, deci deschideți fișierul de configurare Ssh.:

Sudo nano / etc / ssh / ssh_config

Găsiți un șir Permitemptypasswords. și asigurați-vă că valoarea merită "Nu.".

PermitemptyPassWords Nr.

Activați o revistă detaliată

A servi Ssh. Un jurnal de conexiuni nereușite cu o indicație a adresei IP, deschideți fișierul de configurare Ssh.:

Sudo nano / etc / ssh / ssh_config

Găsiți un șir Loglevel. Și în schimb Info. Specifica Verbose.Șirul ar trebui să funcționeze astfel:

Loglevel verbose.

Salvați fișierul " Ctrl.+O."Și Evit Editor" Ctrl.+X.".

Reporniți serviciul Ssh.:

Sudo Service SSHD Repornire

Puteți verifica, introduceți comanda:

Cat / var / log / sigure

Sistemul ne transmite informațiile, aproximativ:

Jun 21 13:06:28 CentOS SSHD: Parola nereușită pentru rădăcină de la 118.212.143.47 Port 48263 SSH2

Adică, în această înregistrare, vedem că a existat o încercare nereușită de a pătrunde în server de la adresa specificată.

Vă mulțumim pentru atenția dvs., asta-i tot.

Pentru canalizarea serverului nostru din generarea parolei, puteți utiliza utilitare SSHGUARD sau SHIT.

Principiile de lucru.

schimbare și SHIT lucrează pe un singur principiu. Analizați mesajele sistemului despre autentificarea incorectă și, dacă este atinsă o anumită valoare, este afișată o IP atacantă la regula de blocare a firewall-ului. După un anumit moment, IP din regulă este șters.
Advanced la locul de muncă necesită un firewall configurat.

Schguard.

schguard știe cum să lucreze cu

  • AIX Hinterwall nativ - pentru sistemele de operare IBM AIX
  • netfilter / iptables. - pentru sistemele de operare bazate pe Linux
  • Filtru de pachete (PF) - pentru sistemele de operare BSD (deschise, gratuite, net, dragonfly -bsd)
  • Ipfirewall (IPFW) - pentru FreeBSD și Mac OS X
  • Filtru IP (IPFILTER) - Pentru FreeBSD, Netbsd și Solaris
  • tCPD "S gazde_access (/etc/hosts.allow) - Portable pe UNIX
  • nUL - Portable Do-Nimic Backend pentru aplicarea detectării, dar nu prevenirea

Folosesc PF astfel într-un exemple de Notch pe PF.

Instalarea squjaard.

FreeBSD:

Instalați din porturi

CD / USR / PORTS / SECURITATE / SSHGUARD-PF / && MAKE INSTALL CLEAN

Dacă din anumite motive nu utilizați porturi, descărcați cea mai recentă versiune de la Schguard și Asamblați în Manual

./configure - cu firewall \u003d PF && Make && face instalare

Debian:

APT-GET INSTALL SHGUARD

Configurarea sistemului de operare SSSHGUARD.

Creați un jurnal pentru stocarea jurnalelor

# Touch / var / log / sshguard

Debian (wheezy):

Editați // etc / Implicit / Schguard Linia următoare

#Mcedit / etc / implicit / sshguard #args \u003d "- A 40 -P 420 -s 1200" Args \u003d "- A 5 -P 420 -s 2400 -B 5: / etc / sshguard / lista neagră"

Și reporniți Schguard.
Service Schguard Reporter.

FreeBSD:

Trebuie să adăugăm două linii în configurația PF

Masa Persista.

declarăm un tabel în care Schguard face roboți IP.

Block în rapidă pe $ IF0 Proto TCP de la

De fapt, regula de blocare în sine, ar trebui plasată chiar în partea de sus a regulilor fișierului de configurare PF. $ IF0 Interfața pe care conexiunile vor fi blocate pentru blocarea tuturor interfețelor, înlocuiți oricare dintre acestea.
Re-citiți fișierul de configurare

Auth.info; Authpriv.info | EXEC / USR / Local / Sbin / Schguard

Și reporniți Syslog.

# / etc / rc.d / syslogd repornire

De fapt, după aceste manipulări, Schguard va bloca atacurile cu parametrii impliciți.
La atacul B. /var/log/auth.log. Vom vedea despre următoarele

Jun1611: 01: 01: www SSHD: Test de utilizator nevalid de la 61.172.251.183JUN1612: 29: 48 www SSHD: Testul de utilizator nevalid de la 85.114.130.168JUN1612: 29: 49 www SSHD: Test de utilizator nevalid de la 85.1144.130.168JUN1612: 29: 49 Www sshd: test de utilizator nevalid de la 85.114.130.168jun1612: 29: 50 www SSHD: Test de utilizator nevalid de la 85.1144.130.168Jun1612: 29: 50 www sshguard: Blocking85.114.130.168: 4FOR\u003e 420secs: 4 eșecuri de peste 2 secunde.

Configurarea setărilor squkguard

schguard are un număr de parametri pe care îl putem suprascrie
-A. Numărul de încercări de autentificare nereușite după care IP va fi blocat. Implicit 4.
-P. După câte secunde va fi deblocată. Implicit 420.
-S. Câte secunde shguard își amintește ip. În mod implicit, este 1200. Deci, este clar dacă un atac merge cu un IP în 30 de minute, atunci nu se încadrează în interdicție în timpul configurării implicite.
-w. IP-ul alb, rețeaua sau calea către fișierul adreselor albe. Formatul fișierului O singură linie - o intrare, # definește comentariile.
-b. Stabilește câți încuietori IP vor fi adăugate la lista neagră și la calea către ea. Lista neagră este încărcată la pornirea squjaard și nu este curățată automat.

schguard nu are fișier de configurare Parametrii sunt stabiliți la începutul squguard. În cazul nostru, SSHGUARD este setat la Syslog, astfel încât să editați syslog.conf astfel încât scheda să blocheze ip după 3 încercări de autonație nereușite timp de 30 de minute și după 5 încuietori pentru a face lista neagră.

Auth.info; Authpriv.info | EXEC / USR / Local / Sbin / sshguard -a 3-P 1500-B 5: /usr/local/etc/ssSshguard.BlackList

prima dată este blocată de 420 de secunde și este eliminată după 7 minute
A doua oară la 2 * 420 y este îndepărtată după 14 minute
Pentru a treia oară la 2 * 2 * 420 și eliminat după 28 de minute și așa mai departe ...
2 ^ (n-1) * 420 de ani.

Shit.

SHIT este un script Perl, respectiv, este necesar ca sistemul să aibă Perl, precum și 2 module

  • IPC :: Partajabil
  • Proc :: PID :: Fișier

SHIT poate funcționa numai cu PF și IPFW.

Instalarea shit-ului.

CD / USR / PORTS / SECURITATE / SHIT / && MAKE INSTALL CLEAN

Configurația shit.

SHIT are un fișier de configurare /usr/local/etc/ssshit.conf în care puteți depăși valorile implicite.

Firewall_type \u003d "PF"; # Ce fel de kindrowall utilizând max_count \u003d 3; # Numărul de încercări de autentificare nereușite după care IP este blocat în interiorul_time \u003d 60; # Pentru câte secunde trebuie să apară numărul specificat de autentificări nereușite RESET_IP \u003d 300; # După câte secunde IP va fi deblocat. PFCTL_CMD \u003d "/ SBIN / PFCTL"; Pf_table \u003d "Badhosts" # Numele tabelului în care sunt introduse IP prost

Configurare OS pentru SHIT.

Prin analogie cu setarea sub Schguard Editați fișierul de configurare PF

Masa Persistă bloc în Quick pe $ if0 proto TCP de la La $ if0 port ssh etichetă "ssh brute"

re-citiți fișierul de configurare

#pfctl -f /etc/pf.conf.

Editați syslog.conf.

Auth.info; authpriv.info | Exector / usr / local / sbin / sshit

Și reporniți Syslog.