Blokirajte napade strežnika SSH (napade Brute Force) z uporabo DenyHosts
DenyHosts je odprtokodni in brezplačni varnostni program za preprečevanje vdorov, ki temelji na dnevniku, za strežnike SSH, ki ga je v jeziku Python razvil Phil Schwartz. Namenjen je spremljanju in analiziranju dnevnikov strežnika SSH glede neveljavnih poskusov prijave, napadov na podlagi slovarja in napadov s hitro uporabo tako, da blokira izvorne naslove IP z dodajanjem vnosa v datoteko /etc/hosts.deny na strežniku in preprečuje, da bi naslov IP nadaljnji poskusi takšne prijave.
DenyHosts je zelo potrebno orodje za vse sisteme, ki temeljijo na Linuxu, še posebej, če dovolimo gsh prijave na osnovi gesla. V tem članku vam bomo pokazali, kako namestiti in konfigurirati DenyHosts na RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 in Fedora 17,16,15,14,13,12 sistemi, ki uporabljajo epel repozitorij.
Poglej tudi :
- Fail2ban (sistem za preprečevanje vdorov) za SSH
- Onemogočite ali omogočite root root prijavo
- Linux Malware Detect (LMD)
Namestitev DenyHosts v RHEL, CentOS in Fedora
Orodje DenyHosts privzeto ni vključeno v sisteme Linux, namestiti ga moramo s pomočjo repozitorija EPEL tretjih oseb. Ko dodate repozitorij, namestite paket z naslednjim ukazom YUM.
# yum --enablerepo=epel install denyhosts OR # yum install denyhosts
Konfiguriranje DenyHosts za naslove IP s seznama dovoljenih
Ko so Denyhosts nameščeni, poskrbite, da boste svoj IP naslov uvrstili na beli seznam, da ne boste nikoli zaklenjeni. Če želite to narediti, odprite datoteko /etc/hosts.allow.
# vi /etc/hosts.allow
Pod opis dodajte vsakega naslova IP enega za drugim v ločeno vrstico, ki je nikoli ne želite blokirati. Oblika naj bo naslednja.
# # hosts.allow This file contains access rules which are used to # allow or deny connections to network services that # either use the tcp_wrappers library or that have been # started through a tcp_wrappers-enabled xinetd. # # See 'man 5 hosts_options' and 'man 5 hosts_access' # for information on rule syntax. # See 'man tcpd' for information on tcp_wrappers # sshd: 172.16.25.125 sshd: 172.16.25.126 sshd: 172.16.25.127
Konfiguriranje DenyHosts za e-poštna opozorila
Glavna konfiguracijska datoteka se nahaja v /etc/denyhosts.conf. Ta datoteka se uporablja za pošiljanje e-poštnih opozoril o sumljivih prijavah in omejenih gostiteljih. Odprite to datoteko z urejevalnikom VI.
# vi /etc/denyhosts.conf
Poiščite »ADMIN_EMAIL« in dodajte svoj e-poštni naslov, če želite prejemati e-poštna opozorila o sumljivih prijavah (za več e-poštnih opozoril uporabite ločene vejice). Oglejte si konfiguracijsko datoteko mojega strežnika CentOS 6.3. Vsaka spremenljivka je dobro dokumentirana, zato jo nastavite po svojih željah.
############ DENYHOSTS REQUIRED SETTINGS ############ SECURE_LOG = /var/log/secure HOSTS_DENY = /etc/hosts.deny BLOCK_SERVICE = sshd DENY_THRESHOLD_INVALID = 5 DENY_THRESHOLD_VALID = 10 DENY_THRESHOLD_ROOT = 1 DENY_THRESHOLD_RESTRICTED = 1 WORK_DIR = /var/lib/denyhosts SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES HOSTNAME_LOOKUP=YES LOCK_FILE = /var/lock/subsys/denyhosts ############ DENYHOSTS OPTIONAL SETTINGS ############ ADMIN_EMAIL = [email SMTP_HOST = localhost SMTP_PORT = 25 SMTP_FROM = DenyHosts <[email > SMTP_SUBJECT = DenyHosts Daily Report ############ DENYHOSTS OPTIONAL SETTINGS ############ DAEMON_LOG = /var/log/denyhosts DAEMON_SLEEP = 30s DAEMON_PURGE = 1h
Ponovni zagon storitve DenyHosts
Ko končate s konfiguracijo, znova zaženite storitev denyhosts za nove spremembe. Storitvi denyhosts dodamo tudi zagon sistema.
# chkconfig denyhosts on # service denyhosts start
Oglejte si dnevnike DenyHosts
Če si želite ogledati dnevnike ssh denyhosts, koliko napadalcev in hekerjev poskuša dostopati do vašega strežnika. Za ogled dnevnikov v realnem času uporabite naslednji ukaz.
# tail -f /var/log/secure
Nov 28 15:01:43 tecmint sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2 Nov 28 15:01:43 tecmint sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 28 16:44:09 tecmint sshd[25474]: pam_unix(sshd:session): session closed for user root Nov 29 11:08:56 tecmint sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2 Nov 29 11:08:56 tecmint sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0) Nov 29 11:12:00 tecmint atd[3417]: pam_unix(atd:session): session closed for user root Nov 29 11:26:42 tecmint sshd[31669]: pam_unix(sshd:session): session closed for user root Nov 29 12:54:17 tecmint sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2
Odstranite prepovedani naslov IP iz DenyHosts
Če ste kdaj blokirali nenamerno in želite prepovedani naslov IP odstraniti z domen. Storitev morate ustaviti.
# /etc/init.d/denyhosts stop
Za popolno odstranitev ali izbris prepovedanega naslova IP. Urediti morate naslednje datoteke in odstraniti naslov IP.
# vi /etc/hosts.deny # vi /var/lib/denyhosts/hosts # vi /var/lib/denyhosts/hosts-restricted # vi /var/lib/denyhosts/hosts-root # vi /var/lib/denyhosts/hosts-valid # vi /var/lib/denyhosts/users-hosts
Po odstranitvi prepovedanega naslova IP znova zaženite storitev.
# /etc/init.d/denyhosts start
Kršitveni naslov IP je dodan vsem datotekam v imeniku/var/lib/denyhosts, zato je zelo težko določiti, katere datoteke vsebujejo kršitveni naslov IP. Eden najboljših načinov, kako z ukazom grep ugotoviti naslov IP. Na primer, če želite izvedeti naslov IP 172.16.25.125, to storite.
cd /var/lib/denyhosts grep 172.16.25.125 *
Beli seznam naslovov IP trajno v DenyHosts
Če imate seznam statičnih naslovov IP, ki jih želite trajno dodati na seznam dovoljenih. Odprite datoteko/var/lib/denyhosts/allowed-hosts. Ne glede na naslov IP, ki je vključen v to datoteko, privzeto ne bo prepovedan (upoštevajte ga kot časovni seznam).
# vi /var/lib/denyhosts/allowed-hosts
In dodajte vsak naslov IP v ločeni vrstici. Shranite in zaprite datoteko.
# We mustn't block localhost 127.0.0.1 172.16.25.125 172.16.25.126 172.16.25.127