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