DenyHost یک برنامه ی امنیتی log-based رایگان و متن باز برای پیشگیری از نفوذ به سرورهای لینوکس تحت SSH است، که توسط فیل اسچوارتز به زبان پایتون نوشته شده است که برای مانیتور و تحلیل لاگ های سرور SSH برای بررسی لاگین های نامعتبر در نظر گرفته شده است، حملات dictionary based و brute force توسط بلاک کردن منشاء آدرس های IP مهار می شوند، با اضافه کردن آنها در فایل /etc/hosts.deny برروی سرور اجازه تلاش برای لاگین های بعدی از آنها گرفته می شود.
DenyHost ابزار مورد نیاز برای تمامی سیستمهای مبتنی بر لینوکس است، مخصوصا زمانی که ما لاگین از طریق پسورد به ssh فعال است. در این مقاله ما به شما نشان خواهیم داد که چگونه DenyHost را با استفاده از RHEL 6.3/6.2/6.1/6/5.8، CentOS 6.3/6.2/6.1/6/5.8 و Fedora 17,16,15,14,13,12 با ریپازیتوری epel برروی سیستم نصب و پیکربندی کنید.
نصب DenyHosts برروی RHEL،CentOS و Fedora
به صورت پیش فرض ابزار DenyHosts برروی سیستم های لینوکس نمی باشد، ما نیاز داریم که آن را با استفاده از ریپازیتوری epel نصب کنیم. هنگامی که ریپازیتوری را اضافه کردید، آنرا با استفاده از YUM نصب کنید.
پیکربندی DenyHosts برای IP آدرس های whitelist (معتبر)
هنگامیکه DenyHosts نصب شد، اطمینان حاصل کنید که آدرس های IP تان در whitelist است، بنابراین شما هرگز lock نخواهید شد. برای این کار فایل /etc/hosts.allow را باز کنید.
زیرا توضیحات، هر آدرس IP ی را در خط جداگانه ای اضافه کنید، سپس شما هرگز بلاک نخواهید شد. به شکل زیر نگاه کنید.
پیکربندی DenyHosts برای هشدارهای ایمیل
پیکربندی اصلی فایل در /etc/denyhosts.conf قرار داده شده است. این فایل برای ارسال هشدارهای ایمیلی در مورد لاگین های مشکوک بکار می رود. فایل مذکور را با ادیتور VI باز کنید.
ADMIN_EMAIL را جستجو کنید و آدرس ایمیلتان را برای دریافت ایمیل های هشدار دهنده درباره ی لاگین های مشکوک وارد کنید. (برای وارد کردن چندین آدرس ایمیل با کاما جدا کنید.) لطفا به فایل پیکربندی سرور CentOs 6.3 من نگاهی بیاندازید. هر متغیر به خوبی مستند شده است، بنابراین با توجه به ایمیل خود آنرا پیکربندی کنید.
Restart کردن سرویس DenyHosts
هنگامیکه شما پیکربندی تان را انجام دادید، برای اعمال تغییرات، سرویس DenyHosts را ریستارت کنید. ما همچنین سرویس DenyHosts را به بوت سیستم اضافه می کنیم.
دیدن لاگ های DenyHosts
برای دیدن لاگ های ssh، denyhosts و چگونگی حملات مهاجمین و هکر ها به سرورتان همانند دستور زیر عمل کنید.
حذف آدرس IP های مسدود/منع شده از DenyHosts
اگر به طور تصادفی بلاک شده اید و می خواهید آدرس IP ی بلاک شده را از denyhosts خارج کنید. شما باید سرویس را stop کنید.
برای حذف آدرس IP ی بلاک/مسدو/منع شده به صورت کامل، شما نیاز دارید که فایل های زیر را ادیت کنید و آدرس IP را حذف کنید.
بعد از حذف آدرس IP دوباره سرویس را ریستارت کنید.
آدرس IPی متخلف در تمامی فایل های زیر دایرکتوری /var/lib/denyhosts اضافه شده است، بنایراین بسیار مشکل است تشخیص اینکه چه فایل هایی شامل آدرس IP ی مورد نظر هستند. اما بهترین راه برای جستجوی آدرس IP استفاده از دستور grep می باشد. برای مثال یافتن آدرس IP ی 172.16.25.125 را در زیر نشان داده ایم.
اضافه کردن IP آدرس های معتبر دائمی در DenyHosts
اگر شما لیستی از آدرس های IP استاتیک دارید که می خواهید به طور دائمی در whitelist باشند. فایل /var/lib/denyhosts/allowed-hosts را باز کنید. هر چه آدرس IP در این فایل است به طور پیش فرض منع نشده است. (توجه کنید که این یک whitelist است.)
هر آدرس IP را در خط جداگانه ای اضافه کنید. و ذخیره کرده و فایل را ببندید.
همچنین توصیه میشود مطالعه کنید :
5 نمونه از بهترین روش ها برای امنیت و نگهداری سرورهای لینوکس
نحوه فعال کردن احراز هویت دو مرحله ای هنگام ssh (توسط Google Authentication)
نحوه راه اندازی و استفاده از Fail2ban برای امن کردن سرور لینوکسی تان
استفاده از Pam_Tally2 برای Lock کردن و Unlock کردن login های Fail شده به SSH
موفق باشید
ه.ا.ب.ی.ل.ی.///
DenyHost ابزار مورد نیاز برای تمامی سیستمهای مبتنی بر لینوکس است، مخصوصا زمانی که ما لاگین از طریق پسورد به ssh فعال است. در این مقاله ما به شما نشان خواهیم داد که چگونه DenyHost را با استفاده از RHEL 6.3/6.2/6.1/6/5.8، CentOS 6.3/6.2/6.1/6/5.8 و Fedora 17,16,15,14,13,12 با ریپازیتوری epel برروی سیستم نصب و پیکربندی کنید.
نصب DenyHosts برروی RHEL،CentOS و Fedora
به صورت پیش فرض ابزار DenyHosts برروی سیستم های لینوکس نمی باشد، ما نیاز داریم که آن را با استفاده از ریپازیتوری epel نصب کنیم. هنگامی که ریپازیتوری را اضافه کردید، آنرا با استفاده از YUM نصب کنید.
کد:
# yum --enablerepo=epel install denyhosts OR # yum install denyhosts
پیکربندی DenyHosts برای IP آدرس های whitelist (معتبر)
هنگامیکه DenyHosts نصب شد، اطمینان حاصل کنید که آدرس های IP تان در whitelist است، بنابراین شما هرگز lock نخواهید شد. برای این کار فایل /etc/hosts.allow را باز کنید.
کد:
# vi /etc/hosts.allow
کد:
# # 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 # [B]sshd: 172.16.25.125[/B] [B]sshd: 172.16.25.126[/B] [B]sshd: 172.16.25.127[/B]
پیکربندی DenyHosts برای هشدارهای ایمیل
پیکربندی اصلی فایل در /etc/denyhosts.conf قرار داده شده است. این فایل برای ارسال هشدارهای ایمیلی در مورد لاگین های مشکوک بکار می رود. فایل مذکور را با ادیتور VI باز کنید.
کد:
# vi /etc/denyhosts.conf
ADMIN_EMAIL را جستجو کنید و آدرس ایمیلتان را برای دریافت ایمیل های هشدار دهنده درباره ی لاگین های مشکوک وارد کنید. (برای وارد کردن چندین آدرس ایمیل با کاما جدا کنید.) لطفا به فایل پیکربندی سرور CentOs 6.3 من نگاهی بیاندازید. هر متغیر به خوبی مستند شده است، بنابراین با توجه به ایمیل خود آنرا پیکربندی کنید.
کد:
############ 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 = [B]mohammad@linux-zone.org[/B] SMTP_HOST = localhost SMTP_PORT = 25 SMTP_FROM = DenyHosts [B]<mohammad@linux-zone.org>[/B] SMTP_SUBJECT = DenyHosts Daily Report ############ DENYHOSTS OPTIONAL SETTINGS ############ DAEMON_LOG = /var/log/denyhosts DAEMON_SLEEP = 30s DAEMON_PURGE = 1h
Restart کردن سرویس DenyHosts
هنگامیکه شما پیکربندی تان را انجام دادید، برای اعمال تغییرات، سرویس DenyHosts را ریستارت کنید. ما همچنین سرویس DenyHosts را به بوت سیستم اضافه می کنیم.
کد:
# chkconfig denyhosts on # service denyhosts start
دیدن لاگ های DenyHosts
برای دیدن لاگ های ssh، denyhosts و چگونگی حملات مهاجمین و هکر ها به سرورتان همانند دستور زیر عمل کنید.
کد:
# tail -f /var/log/secure Nov 28 15:01:43 mohammad sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2 Nov 28 15:01:43 mohammad sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 28 16:44:09 mohammad sshd[25474]: pam_unix(sshd:session): session closed for user root Nov 29 11:08:56 mohammad sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2 Nov 29 11:08:56 mohammad sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 29 11:12:00 mohammad atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0) Nov 29 11:12:00 mohammad atd[3417]: pam_unix(atd:session): session closed for user root Nov 29 11:26:42 mohammad sshd[31669]: pam_unix(sshd:session): session closed for user root Nov 29 12:54:17 mohammad sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2
حذف آدرس IP های مسدود/منع شده از DenyHosts
اگر به طور تصادفی بلاک شده اید و می خواهید آدرس IP ی بلاک شده را از denyhosts خارج کنید. شما باید سرویس را stop کنید.
کد:
# /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
کد:
# /etc/init.d/denyhosts start
کد:
cd /var/lib/denyhosts grep 172.16.25.125 *
اضافه کردن IP آدرس های معتبر دائمی در DenyHosts
اگر شما لیستی از آدرس های IP استاتیک دارید که می خواهید به طور دائمی در whitelist باشند. فایل /var/lib/denyhosts/allowed-hosts را باز کنید. هر چه آدرس IP در این فایل است به طور پیش فرض منع نشده است. (توجه کنید که این یک whitelist است.)
کد:
# vi /var/lib/denyhosts/allowed-hosts
کد:
# We mustn't block localhost 127.0.0.1 172.16.25.125 172.16.25.126 172.16.25.127
همچنین توصیه میشود مطالعه کنید :
5 نمونه از بهترین روش ها برای امنیت و نگهداری سرورهای لینوکس
نحوه فعال کردن احراز هویت دو مرحله ای هنگام ssh (توسط Google Authentication)
نحوه راه اندازی و استفاده از Fail2ban برای امن کردن سرور لینوکسی تان
استفاده از Pam_Tally2 برای Lock کردن و Unlock کردن login های Fail شده به SSH
موفق باشید
ه.ا.ب.ی.ل.ی.///