GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal dan Mengkonfigurasi Denyhost di Centos 7 Linux

DenyHosts adalah perangkat lunak sumber terbuka yang dikembangkan dalam bahasa Python oleh Phil Schwartz. Hal ini terutama dirancang untuk memantau dan menganalisis log server SSH untuk upaya login yang tidak valid, serangan berbasis kamus, dan serangan brute force dengan memblokir alamat IP asal dengan menambahkannya ke file /etc/hosts.deny di server dan dengan demikian mencegah Alamat IP agar tidak melakukan upaya login lebih lanjut.

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

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

Baca juga:Cara Menggunakan Fail2ban/Client di CentOS 7

Prasyarat

Sebelum melanjutkan penginstalan, kami perlu memastikan bahwa sistem kami memenuhi semua persyaratan perangkat lunak untuk mengkompilasi dan menginstal aplikasi. Dan juga harus dikonfigurasi dengan alamat IP Statis. Perangkat lunak DenyHosts bergantung pada "ipaddr" Modul Python. Pada langkah pertama, perbarui repositori sistem dan paket perangkat lunak Anda termasuk modul python dengan mengeluarkan perintah di bawah ini.

#yum update
#yum install python-ipaddr -y

1. Menginstal DenyHosts dari Repositori Epel

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

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

Mengonfigurasi Denyhosts

Setelah Denyhosts terinstal, 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 ada dalam 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

Mengaktifkan Layanan DenyHosts

Setelah dikonfigurasi sesuai kebutuhan, kami dapat mengaktifkan dan memulai layanan DenyHosts kami dengan perintah di bawah ini:

# 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.

Mengonfigurasi 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 menggunakan koma. Di sini saya telah menambahkan alamat email saya [email protected] untuk memperingatkan saya tentang serangan apa pun.

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

Menghapus IP yang Diblokir

Anda dapat memantau log ssh Denyhosts untuk melihat berapa banyak penyerang dan peretas yang mencoba mendapatkan akses ke 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 bahwa server kami mencoba menolak koneksi dari IP 222.186.43.6 dari log 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 seperti di bawah ini:

# 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 dapat 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 ini berfungsi!

2. Instalasi 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 seperti di bawah ini:

#cd denyhosts
#python setup.py install

Ini akan menginstal modul DenyHosts ke direktori paket situs python.

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

Mengonfigurasi Denyhosts

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

# cp -rp denyhosts.conf /etc/

Selanjutnya, kita perlu menyalin contoh daemon-control.dist skrip seperti itu ke 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 banyak sistem. Tetapi saya menyarankan Anda untuk menyesuaikan pengaturan ini agar sesuai dengan sistem khusus Anda. Setelah Anda mengedit file konfigurasi dan kontrol daemon, pastikan untuk membatasi eksekusi skrip kontrol daemon ke root.

Memulai DenyHosts Secara Manual

Setelah menyiapkan Denyhosts untuk dijalankan sebagai daemon dengan skrip kontrol daemon kami, Anda dapat memulainya secara manual dari sana hanya 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 log daemon (/var/log/denyhosts) untuk memastikan bahwa DenyHosts berjalan dengan sukses. Anda dapat merujuk ke tautan FAQ ini untuk masalah dan pertanyaan apa pun tentang perangkat lunak ini.

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

# 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 meluncurkan DenyHosts dan menjalankannya di latar belakang.

Memulai Denyhosts Secara Otomatis

Kita dapat mengatur cronjobs untuk memulai Denyhosts secara otomatis saat startup. Atau kita bisa membuat link simbolik dari /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 systemctl normal perintah.

# 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)

Menutup

Pada artikel ini, saya telah membahas cara menginstal dan mengkonfigurasi DenyHosts di server CentOS 7 kami. Alat ini dapat dengan mudah dikonfigurasi dan juga mendukung pemberitahuan email, SMTP, dan syslog. Aplikasi ini adalah solusi yang sangat baik untuk mempertahankan 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.


Cent OS
  1. Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Rocky Linux/Centos 8

  2. Cara Menginstal dan Mengonfigurasi Ansible di Rocky Linux/CentOS 8

  3. Cara Menginstal dan Mengkonfigurasi Mono di Rocky Linux 8 dan CentOS 8

  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara menginstal dan mengkonfigurasi R pada Sistem Linux RHEL 8 / CentOS 8

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  1. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  2. Cara Instal dan Konfigurasi Redmine di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 8