Petua untuk melindungi pelayan Linux anda dari serangan luaran

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.

John Fredy Perez adalah salah satu pemenang dari pertandingan mingguan kami: «Kongsi apa yang anda tahu mengenai Linux«. Tahniah! Cemas tentang menyertai dan berikan sumbangan anda kepada masyarakat, seperti yang dilakukan John?

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

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.