I-block ang SSH Server Attacks (Brute Force Attacks) Gamit ang DenyHosts
Ang DenyHosts usa ka open-source ug libre nga log-based intrusion prevention security program alang sa SSH servers nga gimugna sa Python nga pinulongan ni Phil Schwartz.
Gituyo kini sa pag-monitor ug pag-analisar sa mga log sa SSH server alang sa dili balido nga mga pagsulay sa pag-login, mga pag-atake nga nakabase sa diksyonaryo, ug mga pag-atake sa brute force pinaagi sa pagbabag sa gigikanan nga mga adres sa IP pinaagi sa pagdugang usa ka entry sa /etc/hosts.deny file sa server ug gipugngan ang IP address gikan sa paghimo sa bisan unsang dugang nga mga pagsulay sa pag-login.
[ Tingali ganahan ka usab: Unsaon Pagsiguro ug Pagtig-a sa OpenSSH Server ]
Ang DenyHosts gikinahanglan kaayo nga himan alang sa tanang sistema nga nakabase sa Linux, ilabina kung gitugotan nato ang password nga dili kaayo ssh nga mga pag-login sa hilit nga mga server sa Linux.
Sa kini nga artikulo, ipakita namon kanimo kung giunsa ang pag-install ug pag-configure sa DenyHost sa mga distribusyon sa Linux nga nakabase sa RHEL sama sa Fedora, CentOS, Rocky Linux, ug AlmaLinux.
Tan-awa usab:
- Unsaon Paggamit ang Fail2ban sa Pagsiguro sa Imong Linux Server
- Unsaon Pag-disable ang SSH Root Login aron Limitahan ang SSH Access sa Linux
- Unsaon Pagdugang sa SSH Connection Timeout sa Linux
Giunsa ang Pag-install sa DenyHosts sa Linux
Pinaagi sa default nga DenyHosts nga himan wala gilakip sa mga sistema sa Linux, kinahanglan namon nga i-install kini gamit ang third party yum nga mando.
# yum install epel-release # yum install denyhosts
Pag-configure sa DenyHosts para sa Whitelist nga mga IP Address
Kung ma-install na ang Denyhosts, siguruha nga i-whitelist ang imong kaugalingon nga IP address, aron dili ka ma-lock. Aron mahimo kini, ablihi ang file /etc/hosts.allow.
# vi /etc/hosts.allow
Ubos sa deskripsyon, idugang ang matag IP address sa tagsa-tagsa sa usa ka bulag nga linya, nga dili nimo gusto nga babagan. Ang pormat kinahanglan nga ingon sa mosunod.
# # 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
Pag-configure sa mga DenyHost alang sa Mga Alerto sa Email
Ang nag-unang configuration file nahimutang ubos sa /etc/denyhosts.conf. Kini nga file gigamit sa pagpadala sa mga alerto sa email bahin sa mga kadudahang logins ug gipugngan nga mga host. Ablihi kini nga file gamit ang VI editor.
# vi /etc/denyhosts.conf
Pangitaa ang 'ADMIN_EMAIL' ug idugang ang imong email address dinhi aron makadawat mga alerto sa email bahin sa mga kadudahang login (alang sa daghang mga alerto sa email gamita ang comma nga gibulag). Palihug tan-awa ang configuration file sa akong CentOS 6.3 server. Ang matag variable maayo nga dokumentado busa i-configure kini sumala sa imong gusto.
############ 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
I-restart ang Serbisyo sa DenyHosts
Kung nahuman na nimo ang imong pag-configure, i-restart ang serbisyo sa denyhosts alang sa bag-ong mga pagbag-o. Gidugang usab namo ang serbisyo sa denyhosts sa pagsugod sa sistema.
# chkconfig denyhosts on # service denyhosts start
Tan-awa ang DenyHosts Logs
Sa pagtan-aw sa denyhosts ssh logs kung pila ka mga tig-atake ug mga hacker ang gisulayan nga maka-access sa imong server. Gamita ang mosunod nga sugo aron makita ang real-time nga mga log.
# 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
Kuhaa ang Banned IP Address gikan sa DenyHosts
Kung na-block ka nga wala tuyoa ug gusto nimong tangtangon ang gidili nga IP address gikan sa mga denyhost. Kinahanglan nimong ihunong ang serbisyo.
# /etc/init.d/denyhosts stop
Aron matangtang o matangtang ang gidili nga IP address sa hingpit. Kinahanglan nimong usbon ang mosunod nga mga file ug tangtangon ang IP address.
# 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
Human makuha ang gidili nga IP Address, i-restart ang serbisyo pag-usab.
# /etc/init.d/denyhosts start
Ang nakasala nga IP address gidugang sa tanan nga mga file sa ilawom sa/var/lib/denyhosts nga direktoryo, mao nga lisud kaayo ang pagtino kung unsang mga file ang adunay sulud nga nakasala nga IP address. Usa sa labing kaayo nga paagi aron mahibal-an ang IP address gamit ang grep command. Pananglitan aron mahibal-an ang IP address 172.16.25.125, buhata.
cd /var/lib/denyhosts grep 172.16.25.125 *
Whitelist IP Address Permanente sa DenyHosts
Kung naa kay lista sa static nga IP address nga gusto nimong i-whitelist nga permanente. Ablihi ang file /var/lib/denyhosts/allowed-hosts file. Bisan unsa nga IP adres nga gilakip sa kini nga file dili gidili pinaagi sa default (isipa kini ingon usa ka lista sa panahon).
# vi /var/lib/denyhosts/allowed-hosts
Ug idugang ang matag IP address sa lain nga linya. I-save ug isira ang file.
# We mustn't block localhost 127.0.0.1 172.16.25.125 172.16.25.126 172.16.25.127