Tips untuk melindungi server Linux Anda dari serangan eksternal

Saya kira orang yang mengemudi Server Linux mereka tahu dan tahu tentang TolakHOSTS y Fail2ban. Bagi yang belum mengenalnya saya akan menjelaskan sedikit tentang keduanya aplikasi.

John Fredy Perez adalah salah satunya pemenang dari kompetisi mingguan kami: «Bagikan apa yang Anda ketahui tentang Linux«. Selamat! Cemas tentang ikut dan memberikan kontribusi Anda kepada komunitas, seperti yang dilakukan John?

Kami akan menginstal dan mengkonfigurasi kedua aplikasi ini untuk menghindari sakit kepala berikutnya. Pertama-tama kami akan menjelaskan apa kedua aplikasi tersebut dan apa fungsinya:

Fail2Ban

Ini adalah penganalisis log yang mencari upaya pendaftaran yang gagal dan memblokir IP asal upaya tersebut. Ini didistribusikan di bawah lisensi GNU dan biasanya bekerja pada semua sistem yang berinteraksi dengan sistem kontrol serangan atau firewall lokal.

Fail2Ban memiliki konfigurasi yang bagus dan juga dapat membuat aturan untuk program
memiliki atau pihak ketiga.

TolakHOSTS

Ini adalah alat keamanan yang ditulis dengan python yang memantau log server akses untuk mencegah serangan brute force pada server virtual. Program ini bekerja dengan melarang alamat IP yang melebihi sejumlah upaya koneksi yang gagal.

Aplikasi Linux ini - DenyHosts dan Fail2ban - dapat digunakan secara terpisah atau bersamaan. Dalam kasus saya, saya meminta mereka berdua bekerja sama.

Instalasi dan konfigurasi masing-masing tergantung pada distribusi yang Anda gunakan. Posting ini berorientasi pada CentOS 6.3, meskipun perbedaan antara distro lain tidak terlalu mencolok.

Baiklah, ayo mulai bekerja.

Instalasi dan Konfigurasi Fail2Ban

Aplikasi ini menghasilkan aturan dinamis di firewall Linux itu sendiri, dan bertanggung jawab untuk membuat aturan langsung di IpTables.

Instalasi

Untuk instalasi a:

yum instal fail2ban 

Jika paket tidak muncul, kita harus menambahkan repositori yang diperlukan:

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm

Dengan ini Anda harus mulai menginstal aplikasi beserta dependensinya.

Sekarang kita harus mengkonfigurasi Fail2Ban untuk menganalisis log yang kita inginkan dan blokir
IP, mengirimkan pemberitahuan melalui email. Untuk ini kita harus memodifikasi file jail.conf yang kita temukan di / etc / fail2ban

cd / etc / fail2ban
nanojail.conf

Hal berikut harus dilakukan di file ini:

  • Modify adalah nilai bantime, nilai ini menentukan waktu dalam detik IP penyerang akan diblokir, secara default nilainya muncul dalam 600 detik.
  • Temukan nilai maxretry yang akan menjadi berapa kali IP dapat memiliki otentikasi yang gagal sebelum diblokir.
  • Tambahkan ip kita di parameter ignoreip. Di sini aplikasi akan mengabaikan IP terautentikasi kami dalam parameter itu.
[BAWAAN]
# "ignoreip" dapat berupa alamat IP, topeng CIDR, atau host DNS. Fail2ban tidak akan
# ban host yang cocok dengan alamat dalam daftar ini. Beberapa alamat bisa
# ditentukan menggunakan pemisah spasi.
abaikan ip = 127.0.0.1

# "bantime" adalah jumlah dalam detik sebuah host dilarang.
bantime = 600

# Sebuah host dilarang jika telah menghasilkan "maxretry" selama "waktu pencarian" terakhir
# detik.
findtime = 600

# "maxretry" adalah jumlah kegagalan sebelum host diblokir.
maxretry = 3

Contoh bagaimana itu bisa adalah sebagai berikut:

abaikan = 127.0.0.1 190.25.242.75 192.168.1.0/24
bantime = 800
maxretry = 2

Konfigurasikan Fail2Ban dan SSH

Untuk mencari upaya login SSH yang gagal, kami memodifikasi file hingga terlihat seperti berikut:

[ssh-iptables] 
diaktifkan = benar
filter = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Ini adalah log yang akan menganalisis fail2ban
maxretry = 3 # IP apa pun yang memiliki tiga upaya gagal atau lebih akan diblokir.
bantime = 86400 # 24 jam waktu larangan dinyatakan dalam detik

Jangan lupa bahwa jika Anda mengubah port tempat SSH mendengarkan, Anda juga harus mengubah parameter port.

Aplikasi ini tidak hanya berfungsi untuk akses tidak sah ke SSH, tetapi juga untuk apache, untuk membaca log Asterisk, dll.

Instalasi dan Konfigurasi DenyHOSTS

Pengoperasiannya didasarkan pada penggunaan file /etc/hosts.deny, yaitu memblokir alamat dari host yang "menyerang", membuat daftar host yang ditolak.

Instalasi dari repositori dapat diperoleh dengan perintah berikut:

yum instal denyhosts 

File konfigurasi terletak di /etc/denyhosts.conf

Sebelum melanjutkan, karena sebagai manusia kita dapat membuat kesalahan dan melakukan "Layer 8" yang khas saat mengakses salah satu layanan dan memblokir diri kita sendiri. Untuk menghindarinya, kami mengedit file /etc/hosts.allow dan menambahkan IP mesin yang tidak ingin kami batasi karena kegagalan akses.

Ubah file denyhosts.conf

Agar tidak terlalu jauh dalam pengaturan, pada file ini kita hanya akan mengedit dan menghapus komentar pada beberapa parameter. Ini adalah:

SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1j
SYNC_UPLOAD = ya
SYNC_DOWNLOAD = ya
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5j

Jadi, kami akan membiarkan konfigurasi praktis secara default, tetapi dengan keamanan yang baik terhadap serangan SSH.

nano /etc/hosts.allow

Contoh:

sshd:127.0.0.1 
sshd:192.168.1.10
sshd: 192.168.0. *

Setelah ini, kami memulai ulang layanan:

/etc/init.d/denyhosts memulai ulang

Dengan ini kami memberikan izin ke IP, rentang IP, dan tentu saja ke antarmuka loopback kami. Sesuatu yang belum saya coba - oleh karena itu saya tidak tahu apakah berhasil - adalah menambahkan DNS ke file ini; yaitu, dengan layanan seperti DynDNS. Jika saya melakukannya, saya akan memberi tahu Anda bagaimana hasilnya.

Dengan opsi dan pengaturan tertentu, kami juga akan memastikan bahwa setelah jangka waktu yang kami tunjukkan dalam konfigurasi DenyHOSTS, alamat yang disimpan dibersihkan, dan diperbarui dengan daftar lain yang dibuat oleh orang lain -jika kami menunjukkannya- memberikan izin kepada mengakses server DenyHOSTS.

Untuk membersihkan alamat yang disimpan dari waktu ke waktu, seperti yang dikonfigurasi, daemon harus dijalankan dengan parameter –purge:

/etc/init.d/denyhosts mulai --purge

Selain itu, kita harus memasukkannya di awal sistem:

chkconfig denyhosts di

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.