Saya rasa orang yang memandu Pelayan Linux mengetahui dan mengetahui tentang Tolak HOS y Fail2ban. Bagi mereka yang tidak mengenali dia saya akan terangkan sedikit mengenai kedua-dua ini aplikasi. |
Kami akan memasang dan mengkonfigurasi dua aplikasi ini untuk mengelakkan sakit kepala seterusnya. Pertama sekali, kami akan menerangkan apakah kedua-dua aplikasi ini dan apakah fungsinya:
Fail2Ban
Ia adalah penganalisis log yang mencari percubaan pendaftaran yang gagal dan menyekat IP dari mana percubaan ini berasal. Ia diedarkan di bawah lesen GNU dan biasanya berfungsi pada semua sistem yang bersambung dengan sistem kawalan serangan atau firewall tempatan.
Fail2Ban mempunyai konfigurasi yang hebat dan juga dapat membuat peraturan untuk program
pihak sendiri atau ketiga.
Tolak HOS
Ini adalah alat keselamatan yang ditulis dalam python yang memantau log pelayan akses untuk mengelakkan serangan brute force pada pelayan maya. Program ini berfungsi dengan melarang alamat IP yang melebihi sebilangan percubaan sambungan yang gagal.
Aplikasi Linux ini - DenyHosts dan Fail2ban - boleh digunakan secara berasingan atau bersama. Dalam kes saya, saya meminta mereka berdua bekerjasama.
Pemasangan dan konfigurasi masing-masing bergantung pada pengedaran yang anda gunakan. Catatan ini berorientasikan CentOS 6.3, walaupun perbezaan antara distro lain tidak begitu ketara.
Baiklah, mula bekerja.
Pemasangan dan Konfigurasi Fail2Ban
Aplikasi ini menghasilkan peraturan dinamik di firewall Linux itu sendiri, dan bertanggungjawab untuk membuat peraturan langsung di IpTables.
Pemasangan
Untuk pemasangan a:
yum pasang fail2ban
Sekiranya pakej tidak muncul, kita mesti menambah repositori yang diperlukan:
rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
Dengan ini, anda harus mula memasang aplikasi beserta pergantungannya.
Sekarang kita harus mengkonfigurasi Fail2Ban untuk menganalisis log yang kita mahu dan blok
IP, menghantar pemberitahuan melalui e-mel. Untuk ini, kita mesti mengubah fail jail.conf yang kita dapati di / etc / fail2ban
cd / etc / fail2ban
nanojail.conf
Perkara berikut harus dilakukan dalam fail ini:
- Ubah adalah nilai bantime, nilai ini menentukan waktu dalam beberapa saat IP penyerang akan disekat, secara lalai nilainya datang dalam 600 saat.
- Cari nilai maxretry yang akan menjadi seberapa banyak IP dapat melakukan pengesahan yang gagal sebelum disekat.
- Tambahkan ip kami dalam parameter ignip. Di sini aplikasi akan mengabaikan IP kami yang disahkan dalam parameter tersebut.
[DEFAULT]
# "ignip" boleh berupa alamat IP, topeng CIDR atau host DNS. Fail2ban tidak akan
# larang hos yang sesuai dengan alamat dalam senarai ini. Beberapa alamat boleh
# ditakrifkan menggunakan pemisah ruang.
ignip = 127.0.0.1
# "bantime" adalah bilangan saat yang dihoskan oleh hos.
waktu rehat = 600
# Tuan rumah dilarang jika telah menghasilkan "maxretry" semasa "findtime" terakhir
# saat.
masa cari = 600
# "maxretry" adalah jumlah kegagalan sebelum tuan rumah dilarang.
maxretry = 3
Contoh bagaimana ia dapat dilihat adalah seperti berikut:
ignip = 127.0.0.1 190.25.242.75 192.168.1.0/24
waktu rehat = 800
maxretry = 2
Konfigurasikan Fail2Ban dan SSH
Untuk mencari percubaan masuk SSH yang gagal, kami mengubahsuai fail sehingga kelihatan seperti berikut:
[ssh-iptables]
didayakan = benar
tapis = sshd
action = iptables [name = SSH, port = 22, protokol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / selamat # Ini adalah log yang akan menghuraikan fail2ban
maxretry = 3 # mana-mana IP yang mempunyai tiga atau lebih percubaan yang gagal akan disekat.
bantime = 86400 # Masa larangan 24 jam dinyatakan dalam beberapa saat
Jangan lupa bahawa jika anda mengubah port di mana SSH mendengar, anda juga mesti mengubah parameter port.
Aplikasi ini tidak hanya berfungsi untuk akses tanpa izin di SSH, tetapi juga untuk apache, untuk membaca log Asterisk, dll.
Pemasangan dan Konfigurasi DenyHOSTS
Operasinya didasarkan pada penggunaan file /etc/hosts.deny, iaitu menyekat alamat host "menyerang", membuat senarai host yang ditolak.
Pemasangan dari repositori boleh diperoleh dengan arahan berikut:
yum pasang denhost
Fail konfigurasi terletak di /etc/denyhosts.conf
Sebelum meneruskan, kerana sebagai manusia kita dapat melakukan kesalahan dan melakukan "Layer 8" khas ketika mengakses mana-mana perkhidmatan dan menyekat diri kita sendiri. Untuk mengelakkannya, kami mengedit fail /etc/hosts.allow dan menambahkan IP mesin dari mana kami tidak mahu dihalang kerana kegagalan akses.
Ubah suai fail denyhosts.conf
Agar tidak terlalu jauh dalam pengaturan, dalam file ini kita hanya akan menyunting dan melepaskan beberapa parameter. Ini adalah:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1jam
SYNC_UPLOAD = ya
SYNC_DOWNLOAD = ya
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5jam
Oleh itu, kami akan meninggalkan konfigurasi secara praktikal secara lalai, tetapi dengan keselamatan yang tinggi terhadap serangan SSH.
nano /etc/hosts.allow
Contoh:
sshd:127.0.0.1
sshd:192.168.1.10
sshd: 192.168.0. *
Selepas ini, kami memulakan semula perkhidmatan:
/etc/init.d/denyhosts dimulakan semula
Dengan ini kami memberi izin ke IP, julat IP dan tentu saja ke antara muka loopback kami. Sesuatu yang belum saya cuba - oleh itu saya tidak tahu apakah ia berfungsi - adalah dengan menambahkan DNS ke fail ini; iaitu, dengan perkhidmatan seperti DynDNS. Sekiranya saya melakukannya, saya akan memberitahu anda bagaimana keadaannya.
Dengan pilihan dan tetapan tertentu, kami juga akan memastikan bahawa setelah jangka masa yang kami nyatakan dalam konfigurasi DenyHOSTS, alamat yang disimpan dibersihkan, dan mereka dikemas kini dengan senarai lain yang dibuat oleh orang lain -jika kami menunjukkannya- memberikan izin kepada mengakses pelayan DenyHOSTS.
Untuk membersihkan alamat yang disimpan dari semasa ke semasa, seperti yang dikonfigurasi, daemon mesti dijalankan dengan parameter –purge:
/etc/init.d/denyhosts bermula --purge
Sebagai tambahan kepada ini, kita mesti memasukkannya pada permulaan sistem:
chkconfig denyhosts di