
DenyHosts, Phil Schwartz tarafından Python dilinde geliştirilmiş, SSH sunucuları için açık kaynaklı ve ücretsiz, günlük tabanlı bir saldırı önleme güvenlik programıdır.
Sunucudaki /etc/hosts.deny dosyasına bir giriş ekleyerek kaynak IP adreslerini bloke ederek geçersiz oturum açma girişimleri, sözlük tabanlı saldırılar ve kaba kuvvet saldırıları için SSH sunucu günlüklerini izlemek ve analiz etmek için amaçlanır ve IP adresini engeller. bu tür başka giriş denemeleri yapmaktan caydırmak.
DenyHosts, özellikle uzak Linux sunucularında parolasız ssh oturum açmalarına izin verdiğimizde, tüm Linux tabanlı sistemler için çok ihtiyaç duyulan bir araçtır.
Bu yazıda size Fedora, CentOS, Rocky Linux ve AlmaLinux gibi RHEL tabanlı Linux dağıtımlarında DenyHost’ların nasıl kurulacağını ve yapılandırılacağını göstereceğiz.
Linux’ta DenyHosts Nasıl Kurulur
DenyHosts aracı varsayılan olarak Linux sistemlerine dahil değildir, onu üçüncü taraf EPEL deposunu kullanarak kurmamız gerekir. Depo eklendikten sonra aşağıdaki yum komutunu kullanarak paketi kurun.
# yum install epel-release
# yum install denyhosts
Beyaz Liste IP Adresleri için DenyHosts’u Yapılandırma
Denyhost’lar kurulduktan sonra, kendi IP adresinizi beyaz listeye eklediğinizden emin olun, böylece asla kilitlenmezsiniz. Bunu yapmak için /etc/hosts.allow
dosyasını açın.
# vi /etc/hosts.allow
Açıklamanın altına, her bir IP adresini asla engellemek istemediğiniz ayrı bir satıra tek tek ekleyin. Format aşağıdaki gibi olmalıdır.
#
# 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
E-posta Uyarıları için DenyHosts’u Yapılandırma
Ana yapılandırma dosyası /etc/denyhosts.conf
altında bulunur. Bu dosya, şüpheli girişler ve kısıtlanmış ana bilgisayarlar hakkında e-posta uyarıları göndermek için kullanılır. Bu dosyayı VI düzenleyiciyi kullanarak açın.
# vi /etc/denyhosts.conf
“ADMIN_EMAIL” adresini arayın ve şüpheli girişlerle ilgili e-posta uyarıları almak için e-posta adresinizi buraya ekleyin birden çok e-posta uyarısı için virgülle ayrılmış olarak kullanın. Lütfen CentOS 6.3 sunucu yapılandırma dosyasına bir göz atın. Her değişken iyi belgelenmiştir, bu nedenle beğeninize göre yapılandırın.
############ 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 protected]
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <[email protected]>
SMTP_SUBJECT = DenyHosts Daily Report
############ DENYHOSTS OPTIONAL SETTINGS ############
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h
DenyHosts Hizmetini Yeniden Başlatma
Yapılandırmanızı tamamladıktan sonra, yeni değişiklikler için denyhosts hizmetini yeniden başlatın. Ayrıca, sistem başlangıcına denyhosts hizmetini de ekliyoruz.
# chkconfig denyhosts on
# service denyhosts start
Engellenen IP Adresini DenyHosts’tan Kaldır
Yanlışlıkla engellediyseniz ve yasaklanan IP adresini reddetme sunucularından kaldırmak istiyorsanız. Hizmeti durdurmanız gerekiyor.
# /etc/init.d/denyhosts stop
Yasaklanmış IP adresini tamamen kaldırmak veya silmek için. Aşağıdaki dosyaları düzenlemeniz ve IP adresini kaldırmanız gerekiyor.
# 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
Engellenen IP Adresini kaldırdıktan sonra hizmeti yeniden başlatın.
# /etc/init.d/denyhosts start
Hatalı IP adresi /var/lib/denyhosts
dizini altındaki tüm dosyalara eklendi, bu nedenle hangi dosyaların sorunlu IP adresini içerdiğini belirlemek çok zor. grep komutunu kullanarak IP adresini bulmanın en iyi yollarından biri. Örneğin, 172.16.25.127 IP adresini öğrenmek için yapın.
cd /var/lib/denyhosts
grep 172.16.25.127 *
DenyHosts’ta Kalıcı Olarak Beyaz Liste IP Adresleri
Kalıcı olarak beyaz listeye eklemek istediğiniz statik IP adresi listeniz varsa. /var/lib/denyhosts/allowed-hosts
dosyasını açın. Bu dosyada bulunan IP adresi ne olursa olsun varsayılan olarak yasaklanmayacaktır (bunu bir süre listesi olarak kabul edin).
# vi /var/lib/denyhosts/allowed-hosts
Ve her bir IP adresini ayrı satıra ekleyin. Dosyayı kaydedin ve kapatın.
# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127