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