جلوگیری از حملات ssh اتک به سرور توسط DenyHosts

جلوگیری از حملات ssh اتک به سرور توسط DenyHosts

 

denyhosts

 

DenyHosts یک ابزار رایگان و متن باز می باشد که بر اساس انالیز لاگ های سرور و ممانعت از حملات Brute Force Attacks به سمت سرور عمل می کند.

این ابزار بر پایه ی زبان برنامه نویسی python و توسط Phil Schwartz نوشته شده است.روش کار این ابزار با انالیز لاگ های غیر مجاز برای لاگین و حملات brute force به سرویس ssh شروع شده و در نهایت IP فرد مهاجم با قرارگیری در فایل /etc/hosts.deny/ دسترسی ان به تمامی قسمت های سرور بسته خواهد شد.

DenyHosts یکی از ملزومات مدیران سرورهای لینوکسی می باشد به خصوص در مواقعی که دسترسی به ssh سرور در حالت password based ssh logins فعال باشد.ما در این مقاله شما را نحوه ی نصب و کانفیگ DenyHosts بر روی لینوکس توسط مخزن epel اشنا خواهیم کرد با ما همراه باشید :

نصب DenyHosts بر روی توزیع های RHEL, CentOS و Fedora :

ابزار DenyHosts به صورت پیشفرض بر روی لینوکس نصب نمی باشد بدین منظور ابتدا باید مخزن epel بر روی لینوکس نصب شده و سپس توسط YUM اقدام به نصب ان نمایید.

yum –enablerepo=epel install denyhosts

یا

yum install denyhosts

کانفیگ DenyHosts برای IP های مجاز :

بعد از نصب DenyHosts اولین کاری که باید انجام شود قرار دادن لیست IP های مجاز در فایل /etc/hosts.allow/ می باشد تا در هیچ صورت ذسترسی ای پی شما

به سرور قطع نشود.

 

برای این منظور ابتدا فایل زیر را باز کرده

 

vi /etc/hosts.allow

در انتهای فایل بعد از توضیحات هر IP را در یک سطر و با فرمت زیر وارد نمایید

sshd: 172.16.25.125
sshd: 172.16.25.126
sshd: 172.16.25.127

کانفیگ DenyHosts برای هشدارهای ایمیلی :

فایل کانفیگ اصلی DenyHosts در مسیر /etc/denyhosts.conf/ می باشد.در این فایل از قابلیت هشدار ایمیلی در مواقع دسترسی غیر مجاز و حملات استفاده شده است.برای کانفیگ این بخش فایل کانفیگ را با ادیتور موردنظر خود باز کرده

vi /etc/denyhosts.conf

عبارت ‘ADMIN_EMAIL‘ را در فایل کانفیگ سرچ کرده و ایمیل خود را در ان قرار دهید تا تمامی حرکات مشکوک و حملات احتمالی به سرور برای شما ایمیل شوند.

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 = ravisaive@tecmint.com
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <tecmint@tecmint.com>
SMTP_SUBJECT = DenyHosts Daily Report
DENYHOSTS OPTIONAL SETTINGS
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

ریستارت سرویس DenyHosts :

بعد از نصب و کانفیگ سرویس DenyHosts برای اعمال تغییرات باید یکبار سرویس مربوطه را ریست کرده و قابلیت فعال بودن در استارتاپ را لحاظ کنید

chkconfig denyhosts on
service denyhosts start

مشاهده و بررسی لاگهای سرویس DenyHosts :

برای مشاهده لاگ DenyHosts برای سرویس ssh به منظور بررسی دسترسی های مشکوک و یا حملات به سمت ان به صورت RealTime از دستور زیر استفاده کنید

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

حذف IP های بلاک شده از DenyHosts :

چنانچه یک ادرس IP به صورت اتفاقی بلاک شود باید سرویس DenyHosts را ابتدابا دستور زیر بلاک کرده :

/etc/init.d/denyhosts stop/

برای حذف IP موردنظر فایل های زیر را ادیت کرده و 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

بعد از حذف IP مورنظر سرویس DenyHosts را یکبار ریست نمایید

/etc/init.d/denyhosts start/

بدلیل اضافه شدن IP در چندین فایل زیر شاخه ی /var/lib/denyhosts/ بهترین کار برای پیداکردن ان استفاده از دستور grep به شکل زیر می باشد

cd /var/lib/denyhosts

*grep 178.22.3.11

برای اضافه کردن دائم ای پی های مجاز به سیستم ابتدا فایل /var/lib/denyhosts/allowed-hosts/ را ادیت کرده و هر IP  را در یک سطر وارد نمایید.

09123781949