Praktik terbaik untuk menginstal Denyhosts di Centos 7 di Linux

Posted on

[ad_1] Praktik terbaik untuk menginstal Denyhosts di Centos 7 di Linux

DenyHosts adalah perangkat lunak sumber terbuka yang dikembangkan oleh Phil Schwartz dengan Python. Terutama untuk memantau dan menganalisis log server SSH untuk upaya login yang tidak valid, serangan berbasis kamus, dan serangan brute force dengan memblokir alamat IP sumber dengan menambahkannya ke file /etc/hosts.deny di server dan dengan demikian mencegah IP membuat upaya login lainnya.

Karena kesederhanaannya dan kemampuannya untuk mengonfigurasi aturan secara manual, ini banyak digunakan sebagai alternatif untuk Fail2ban, yang sedikit lebih rumit untuk digunakan dan dikonfigurasi.

Dalam tutorial ini, saya akan menunjukkan cara menginstal dan mengkonfigurasi DenyHosts di server CentOS 7.

Baca juga: Cara Menggunakan Fail2ban/Client di CentOS 7

prasyarat

Sebelum melanjutkan dengan instalasi, kita perlu memastikan bahwa sistem kita memenuhi semua persyaratan perangkat lunak untuk mengkompilasi dan menginstal program. Dan itu juga harus dikonfigurasi dengan alamat IP statis. Perangkat lunak DenyHosts bergantung pada ini "ipaddr" Modul Python Pada langkah pertama, perbarui repositori sistem dan paket perangkat lunak Anda, termasuk modul Python, dengan mengeluarkan perintah berikut.

#yum update
#yum install python-ipaddr -y

1. Instal DenyHosts dari repositori Epel

Kita perlu menginstal paket ini menggunakan repositori Epel, gunakan perintah di bawah ini untuk menginstalnya.

#yum install epel-release
#yum install denyhosts -y

Konfigurasi Denyhosts

Setelah Denyhosts diinstal, Anda perlu menambahkan IP Anda ke daftar IP Allow untuk memastikan bahwa alamat IP Anda masuk daftar putih, sehingga Anda tidak akan pernah terkunci.

# cat /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
#
sshd: 37.217.142.41
sshd: 37.217.142.42
sshd: 37.217.142.43
sshd: 37.217.142.44

Selanjutnya, Anda perlu membuat daftar hitam semua alamat IP yang diperlukan yang ingin Anda blokir. Kami dapat mengonfirmasi bahwa alamat IP kami juga tidak masuk daftar hitam.

# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 78.189.206.37
sshd: 121.14.27.58
sshd: 1.246.228.161
sshd: 103.89.89.47
sshd: 116.29.148.2
# DenyHosts: Tue Jan 9 10:16:15 2018 | sshd: 222.186.174.81
sshd: 222.186.174.81
# DenyHosts: Tue Jan 9 10:40:46 2018 | sshd: 217.61.20.181
sshd: 217.61.20.181
# DenyHosts: Tue Jan 9 13:15:53 2018 | sshd: 112.86.117.182
sshd: 112.86.117.182

Aktifkan layanan DenyHosts

Setelah kami mengonfigurasinya sesuai kebutuhan, kami dapat mengaktifkan dan memulai layanan DenyHosts kami dengan perintah berikut:

# systemctl enable denyhosts
# systemctl start denyhosts

# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (running) since Wed 2018-01-10 06:47:54 UTC; 3h 57min ago
Docs: man:systemd-sysv-generator(8)
Process: 30660 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/denyhosts.service
└─30665 python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Starting SYSV: Activates/Deactivates the...
Jan 10 06:47:54 li226-12.members.linode.com denyhosts[30660]: starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Started SYSV: Activates/Deactivates the.

Konfigurasikan peringatan email di DenyHosts

Kami dapat mengatur peringatan email tentang login yang mencurigakan dan host yang dibatasi dengan membuat perubahan pada file konfigurasi DenyHosts. Anda dapat menambahkan alamat email Anda ke variabel ADMIN_EMAIL Dalam file konfigurasi /etc/denyhosts.conf Untuk menerima peringatan email tentang login yang mencurigakan. Anda dapat menambahkan sejumlah alamat email ke variabel, pastikan untuk memisahkannya dengan koma. Di sini saya telah menambahkan alamat email saya ke support@linoxide.com untuk diberitahu tentang serangan apa pun.

Email manajemen

Setelah membuat perubahan apa pun pada file konfigurasi, Anda harus memulai ulang layanan DenyHosts.

Hapus IP yang dilarang

Anda dapat memantau log ssh denyhosts untuk melihat berapa banyak penyerang dan peretas yang mencoba mengakses server Anda. Anda dapat menggunakan perintah berikut untuk melihat log waktu nyata.

# tail -f /var/log/secure
Jan 10 10:56:43 li226-12 sshd[2096]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:08 li226-12 sshd[2102]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:43 li226-12 sshd[2113]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:59:17 li226-12 sshd[2133]: refused connect from 222.186.43.6 (222.186.43.6)

Jelas server kami mencoba untuk mencegah IP 222.186.43.6 terhubung dari laporan ini. Mari kita lihat langkah-langkah untuk menghapus IP ini dari daftar hitam.

Kita perlu memeriksa entri IP ini di file /etc/hosts.deny dan semua file tolak kustom yang dibuat dengan Denyhosts. Kami dapat menghapus entri IP dari semuanya sebagai berikut:

# nano /etc/hosts.deny
# nano /var/lib/denyhosts/hosts
# nano /var/lib/denyhosts/hosts-restricted
# nano /var/lib/denyhosts/hosts-root
# nano /var/lib/denyhosts/hosts-valid
# nano /var/lib/denyhosts/users-hosts

Saya melihat entri ini di file hosts.deny saya.

# DenyHosts: Wed Jan 10 03:40:07 2018 | sshd: 222.186.43.6
sshd: 222.186.43.6

Saya menghapus entri ini dan memulai kembali layanan denyhosts untuk mengonfirmasi bahwa itu berfungsi!

2. Instal dari Repo Github dan Distribusi Sumber

Kita dapat mengunduh repositori Github atau mengunduh distribusi sumber DenyHosts terbaru dan mengompilasinya dari paket sumber ini. Mari kita lihat bagaimana saya menginstal Denyhosts dari Github Repo.

#yum install git
# git clone https://github.com/denyhosts/denyhosts
Cloning into 'denyhosts'...
remote: Counting objects: 1353, done.
remote: Total 1353 (delta 0), reused 0 (delta 0), pack-reused 1353
Receiving objects: 100% (1353/1353), 263.93 KiB | 0 bytes/s, done.
Resolving deltas: 100% (899/899), done.

Setelah mengunduh file dari Github, kita perlu menginstalnya. Anda dapat menginstalnya dengan mengeluarkan perintah ini dari folder Denyhosts sebagai berikut:

#cd denyhosts
#python setup.py install

Ini menginstal modul DenyHosts ke direktori paket situs Python.

Demikian pula, dari distribusi sumber Anda dapat mengunduh Denyhosts terbaru dan menginstalnya seperti dijelaskan di atas. Langkah-langkah konfigurasi lainnya serupa dalam kedua kasus.

Konfigurasi Denyhosts

Setelah instalasi, Anda dapat menyalin file konfigurasi sampel denyhosts.conf Dibuat di folder instalasi yang berisi sebagian besar kemungkinan pengaturan untuk /etc folder. File konfigurasi berisi berbagai pengaturan dengan deskripsinya yang akan membantu Anda mengonfigurasi DenyHosts dengan cepat. Setelah Anda mengedit file konfigurasi Anda, simpan.

# cp -rp denyhosts.conf /etc/

Selanjutnya, kita perlu menyalin sampel daemon-control.dist Skrip seperti ini daemon-control Dan ubah bagian yang disarankan sesuai dengan lokasi file konfigurasi Anda.

#cp daemon-control-dist daemon-control
#chmod 700 daemon-control

Sekarang kita dapat mengedit file daemon-control. Anda hanya perlu mengedit bagian ini di dekat bagian atas seperti di bawah ini. Saya mengedit bagian ini sebagai jalur konfigurasi saya.

#########################################################

#########################################################
#### Edit ini agar sesuai dengan konfigurasi Anda ####
#########################################################

DENYHOSTS_BIN = “/usr/bin/denyhosts.py”
DENYHOSTS_LOCK = “/var/run/denyhosts.pid”
DENYHOSTS_CFG = “/etc/denyhosts.conf”

PYTHON_BIN = “/usr/bin/env python”

####################################################

Default ini harus masuk akal untuk sebagian besar sistem. Tetapi saya menyarankan Anda untuk menyesuaikan pengaturan ini sesuai dengan sistem spesifik Anda. Setelah mengedit file kontrol daemon dan konfigurasi, pastikan Anda membatasi eksekusi skrip kontrol daemon ke root.

Siapkan DenyHosts secara manual

Setelah mengatur Denyhosts untuk dijalankan sebagai daemon dengan skrip kontrol daemon kami, Anda dapat memulainya secara manual dari sana dengan menjalankan perintah ini dari folder instalasi.

# ./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Anda dapat merujuk ke daemon log (/var/log/denyhosts) Untuk memastikan bahwa DenyHosts berjalan dengan sukses. Untuk masalah dan pertanyaan apa pun tentang perangkat lunak ini, Anda dapat merujuk ke tautan FAQ ini.

Selain itu, Anda dapat mengatur DenyHosts secara manual dengan menjalankannya dari baris perintah menggunakan Python, seperti ini dengan menentukan parameter umum seperti lokasi file biner dan file konfigurasinya.

# python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
# ps aux | grep denyhosts
root 25650 0.0 1.0 216116 10740 ? S 09:44 0:00 python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
root 25656 0.0 0.2 112668 2200 pts/0 S+ 09:44 0:00 grep --color=auto denyhosts

Perintah di atas akan meluncurkan DenyHosts dan menjalankannya di latar belakang.

Mulai otomatis Denyhosts

Kita dapat mengatur cronjobs untuk memulai Denyhosts secara otomatis saat startup. Atau kita dapat membuat tautan simbolis darinya /etc/init.d seperti di bawah ini:

# cd /etc/init.d
# ln -s /root/denyhosts/daemon-control denyhosts
# ll | grep denyhosts
lrwxrwxrwx 1 root root 30 Jan 10 04:48 denyhosts -> /root/denyhosts/daemon-control

Sekarang kami dapat mengelola layanan ini dari mode normal systemctl Memerintah

# systemctl enable denyhosts
denyhosts.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig denyhosts on

# systemctl start denyhosts
# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (exited) since Thu 2018-01-11 09:57:53 UTC; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 25876 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)

Penutupan

Pada artikel ini, saya telah membahas cara menginstal dan mengkonfigurasi DenyHosts di server CentOS 7. Alat ini dapat dengan mudah dikonfigurasi dan juga mendukung pemberitahuan email, SMTP, dan syslog. Program ini adalah solusi yang sangat baik untuk mempertahankan diri dari serangan server SSH seperti serangan berbasis kamus dan serangan brute force. Saya harap artikel ini bermanfaat untuk Anda. Silakan kirim komentar dan saran Anda yang berharga tentang ini.

[ad_2]

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *