GNU/Linux >> Belajar Linux >  >> Debian

Tingkatkan keamanan IPv4 Anda dengan Fail2Ban dan Tinyhoneypot di Debian Jessie

Ini adalah latihan lima menit untuk meningkatkan keamanan pada mesin yang dialamatkan IPv4. Tujuan pengaturan yang dijelaskan dalam tutorial ini adalah untuk mengunci pemindai port dan pembuka port berbahaya untuk jangka waktu tertentu. Latihan ini hanya dicoba dan diterapkan pada Debian Jessie. Selama latihan, setiap perintah dilakukan sebagai root. Ini adalah kesepakatan Anda bagaimana mendapatkan akses root.

Entah su -, sudo, login konsol, dll...

Instruksi untuk pemula yang malas:Saat saya menampilkan bash prompt, cukup CopyPaste bagian teks yang dicetak tebal ke bagian Anda sendiri.

Bahan-bahan

  • Perangkat lunak fail2ban mampu menangani aturan firewall Anda secara dinamis untuk mengunci orang jahat.
  • Tinneyhoneypot mampu mendengarkan pada port TCP/IP dan detail pembuka logging.
  • Layanan xinetd memulai tinyhoneypot dan mengelola port pendengarannya.

Instal bahan: ( Cukup CopyPaste bagian teks yang dicetak tebal )

[email protected]:~# apt-get install tinyhoneypot fail2ban xinetd

Setelan

Untuk membuat SSH mendengarkan pada port yang berbeda, ganti file konfigurasi ssh Anda dengan dan port ssh alternatif:

[email protected]:~# sed -i.orig 's/Port 22/Port 2201/m' /etc/ssh/sshd_config

Konfigurasi /etc/ssh/sshd_config asli Anda disimpan sebagai /etc/ssh/sshd_config.orig

Saat Anda me-restart layanan SSH Anda, layanan tersebut akan mendengarkan pada port 2201 (bukan di 22) sekarang.

[email protected]:~# service ssh restart
[email protected]:~# netstat -lptn | grep ssh
tcp 0 0 0.0.0.0:2201 0.0.0.0:* LISTEN 4313/sshd
tcp6 0 0 :::2201 :::* LISTEN 4313/sshd

Sejauh ini bagus..

Konfigurasikan Xinetd untuk memulai tinyhoneypot dan dengarkan di Port 22 TCP:

[email protected]:~# cp -v /usr/share/doc/tinyhoneypot/examples/xinetd.d/thp-pasv /etc/xinetd.d/

Edit /etc/xinetd.d/thp-pasv Anda menjadi seperti ini:

[email protected]:~# cat /etc/xinetd.d/thp-pasv
# default: on
# description: thp-ftpd calls the generic thpsvcs with param "ftp",
#       resulting in an ftpd emulation.

service thp-pasv
{
        type                    = UNLISTED
        socket_type             = stream
        protocol                = tcp
        port                    = 22
        wait                    = no
        user                    = thpot
        server                  = /usr/sbin/thpot
        server_args             = nullresp
        nice                    = 10
        disable                 = no
        instances               = 1
        per_source              = 1

}

(RE)Mulai xinetd dengan pengaturan baru Anda dan pastikan itu mendengarkan pada port 22.

[email protected]:~# service xinetd restart
[email protected]:~# netstat -lptn | grep xinetd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4567/xinetd

Pastikan berfungsi

Buka koneksi ssh dari komputer lain.

[email protected]:~$ ssh 192.168.88.212

Setelah beberapa saat tidak akan terjadi apa-apa, hentikan dengan [Ctrl + C]

Dan periksa entri log di mesin uji Anda:

[email protected]:~# cat /var/log/thpot/captures
Feb 29 13:02:10 SID=56D4334221165.nullresp PID=4837 SRC=192.168.88.242 SPT=47187 ET=00:00:11 BYTES=39

Jika semuanya berjalan dengan baik, seharusnya ada entri di log pengambilan Anda.

Mari kita tune Fail2Ban Anda untuk bekerja sama dengan TinyHoneyPot

[email protected]:~# cd /etc/fail2ban/
[email protected]:/etc/fail2ban# cp -v jail.conf jail.local

Jangan pernah mengedit jail.conf Anda!! Buat salinannya sebagai jail.local dan HANYA buat perubahan di file .local!

Temukan bagian [ssh] di jail.local Anda dan ubah tergantung pada [Port 2201] dari /etc/ssh/sshd_config

[ssh]

enabled  = true
port     = 2201
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

Buat dan masuk di bagian JAIL dari jail.local:

Ini akan membuat Fail2Ban membaca file log tinyhoneypot dan mendapatkan alamat IPv4 darinya untuk ditolak. Saya sarankan untuk menempatkannya setelah bagian [ssh]. Ini tentang baris ke-137.

[thp-ssh]

enabled  = true
port     = all
filter   = thpot
logpath  = /var/log/thpot/captures
banaction = iptables-allports
maxretry = 1
findtime = 1800
bantime = 99999

Fail2ban harus memiliki filter untuk mengetahui apa yang harus ditolak. Di sana adalah makro yang menggantikan alamat IPv4. Buat filter untuknya:

[email protected]:~# cat /etc/fail2ban/filter.d/thpot.local
[Definition]

failregex = SRC=<HOST>
ignoreregex =

Sudah selesai!

Hanya pengujian singkat....

[email protected]:~# service fail2ban restart

Anda akan melihat sesuatu yang serupa di akhir /var/log/fail2ban.log

2016-02-29 13:54:06,915 fail2ban.jail   [6102]: INFO    Creating new jail 'thp-ssh'
2016-02-29 13:54:06,915 fail2ban.jail   [6102]: INFO    Jail 'thp-ssh' uses pyinotify
2016-02-29 13:54:06,920 fail2ban.jail   [6102]: INFO    Initiated 'pyinotify' backend
2016-02-29 13:54:06,922 fail2ban.filter [6102]: INFO    Added logfile = /var/log/thpot/captures
2016-02-29 13:54:06,923 fail2ban.filter [6102]: INFO    Set maxRetry = 1
2016-02-29 13:54:06,925 fail2ban.filter [6102]: INFO    Set findtime = 1800
2016-02-29 13:54:06,926 fail2ban.actions[6102]: INFO    Set banTime = 99999
2016-02-29 13:54:06,934 fail2ban.jail   [6102]: INFO    Jail 'ssh' started
2016-02-29 13:54:06,940 fail2ban.jail   [6102]: INFO    Jail 'thp-ssh' started

Anda dapat melihat nilai khusus Anda dari jail.local dan menyempurnakannya jika diperlukan.

findtime = 1800
bantime = 99999

Lihat aturan iptables Anda saat ini:

[email protected]:~# iptables-save
# Generated by iptables-save v1.4.21 on Mon Feb 29 14:05:17 2016
*filter
:INPUT ACCEPT [2:64]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
:fail2ban-thp-ssh - [0:0]
-A INPUT -p tcp -j fail2ban-thp-ssh
-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh
-A fail2ban-ssh -j RETURN
-A fail2ban-thp-ssh -j RETURN
COMMIT
# Completed on Mon Feb 29 14:05:17 2016

Mari kita periksa aturan tolak dari komputer lain:

[email protected]:~# ssh 192.168.88.212
^C
[email protected]:~# ssh 192.168.88.212
ssh: connect to host 192.168.88.212 port 22: Connection refused

Tindakan pertama tidak akan menghasilkan apa-apa. Penyerang mungkin akan menghentikannya setelah beberapa saat. Tindakan kedua akan ditolak.

Aturan iptables Anda akan terlihat seperti ini sekarang:

[email protected]:~# iptables-save
# Generated by iptables-save v1.4.21 on Mon Feb 29 14:10:53 2016
*filter
:INPUT ACCEPT [4:542]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:88]
:fail2ban-ssh - [0:0]
:fail2ban-thp-ssh - [0:0]
-A INPUT -p tcp -j fail2ban-thp-ssh
-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh
-A fail2ban-ssh -j RETURN
-A fail2ban-thp-ssh -s 192.168.88.242/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-thp-ssh -j RETURN
COMMIT
# Completed on Mon Feb 29 14:10:53 2016

Hasilnya adalah:PC penyerang DITOLAK di setiap port.

Skrip Tambahan

Pada saat HowTo ini menulis baik Fail2Ban maupun tinyhoneypot tidak dapat menangani IPv6 Jika menurut Anda Howto ini berguna, bagikan! Beri tahu teman Anda tentang ini.


Debian
  1. Percepat Apache dengan mod_pagespeed dan Memcached di Debian 8

  2. Bagaimana melindungi server Anda dengan badIPs.com dan melaporkan IP dengan Fail2ban di Debian

  3. Menyiapkan Replikasi Master-Master dengan MySQL di Debian 8 (Jessie)

  1. Cara menginstal WebDAV dengan Lighttpd di Debian 8 (Jessie)

  2. Keamanan Linux:Lindungi sistem Anda dengan fail2ban

  3. Cara meningkatkan keamanan VPS Debian Anda dengan menggunakan DenyHosts dan Logwatch

  1. Instal dan Konfigurasi Fail2ban di Debian 10

  2. Instalasi dan konfigurasi PSAD pada Debian 8 (Jessie)

  3. Pemantauan Server dengan Munin dan Monit di Debian 10