Mengamankan server Ubuntu baru [ditutup]


Jawaban:


25

Saya tidak bisa memikirkan tweak khusus Ubuntu, tapi di sini ada beberapa yang berlaku untuk semua distribusi:

  1. Copot semua paket yang tidak perlu
  2. Gunakan otentikasi hanya kunci publik di SSH
  3. Nonaktifkan login root melalui SSH (tidak berlaku untuk Ubuntu)
  4. Gunakan pengaturan produksi untuk PHP (disarankan php.ini)
  5. Konfigurasikan MySQL untuk menggunakan soket saja

Tentu saja daftar ini tidak lengkap, dan Anda tidak akan pernah benar-benar aman, tetapi mencakup semua eksploitasi yang saya lihat dalam kehidupan nyata.

Juga, eksploitasi yang saya lihat hampir selalu terkait dengan kode pengguna tidak aman, bukan konfigurasi tidak aman. Konfigurasi default minimal, distribusi server cenderung cukup aman.


1
Ubah port untuk layanan seperti MySQL (tidak berguna jika mengkonfigurasinya untuk menggunakan soket saja), FTP (walaupun, jika Anda merasa aman Anda tidak boleh menggunakan FTP sama sekali), SSH dan sebagainya.
Josh Hunt

3
"Copot semua paket yang tidak perlu". BAIK. Itu agak kabur. Paket apa yang 'tidak perlu'?
Luke

2
@ Lukas: Apa pun yang tidak Anda gunakan tidak perlu. Lebih spesifik, menjalankan layanan yang Anda tidak perlu menempatkan mesin dalam risiko yang tidak perlu.
Andrioid

@ Lukas: cat / etc / services harus memberi Anda beberapa ide.
jeshurun

17

Satu hal cepat yang saya lakukan sejak awal adalah menginstal DenyHosts . Secara teratur akan melihat melalui / var / log / secure, mencari login yang gagal, dan setelah beberapa kegagalan, memblokir IP. Saya mengaturnya untuk diblokir setelah pengguna no-seperti-pertama, pada upaya kedua di root, dan setelah beberapa mencoba untuk pengguna nyata (jika Anda mengacaukan, tetapi Anda harus menggunakan kunci publik SSH untuk login).


3
saat Anda menautkan ke beranda sourceforge - denyhosts juga tersedia di repositori (alam semesta) melalui "sudo aptitude install denyhosts"
Olaf

poin bagus @olaf. Sebagian besar server tempat saya menginstalnya adalah RHEL, di mana itu juga dalam repo DAG.
Alister Bulman

+1 Untuk denyhosts
wimvds

2
DenyHosts tampaknya hanya mendeteksi dan memblokir serangan brute force ssh. Pilihan yang lebih baik adalah fail2ban (ini juga tersedia di repo), yang memantau berbagai hal, termasuk log apache di antara hal-hal lain. Lihatlah wiki komunitas di help.ubuntu.com/community/Fail2ban
jeshurun


5

Saya biasanya menginstal RKHunter, yang memindai rootkit dan melakukan pemeriksaan integritas berbagai biner sistem penting. Ada dalam repo standar, dan akan berjalan setiap hari dari cron. Ini tidak sempurna, karena keamanannya, tetapi ini merupakan item yang mudah diusahakan untuk ditambahkan, dan memberikan ukuran perlindungan.


4

Instal logcheck, tetapi ubah sehingga Anda tidak pernah menerima pesan dari acara biasa, jika tidak, Anda akan terbiasa mengabaikan email.

Periksa proses mana yang mendengarkan menggunakan netstat, dan pastikan tidak ada yang berjalan yang tidak perlu dijalankan. Banyak daemon yang dapat dikonfigurasi hanya untuk mendengarkan pada IP internal (atau localhost) alih-alih semua antarmuka.


3

Lakukan apa yang disarankan oleh ...

Nmap host dan nonaktifkan semua layanan yang tidak penting. Gunakan iptables jika perlu.


2
Di server mana pun yang dapat diakses melalui Internet, iptables selalu diperlukan. ;-)
Christopher Cashell

3

Jika Anda pergi ke dekat Internet dengan server, instal sistem deteksi intrusi seperti dengusan.


3

Gunakan partisi terpisah untuk berbagai direktori seperti /tmpatau /vardan mount dengan mereka nosuid, nodevdan noexecjika memungkinkan.


3

Beberapa saran firewall.

Pelajari cara menggunakan firewall dan konsep mengunci kotak dengan benar. Mengubah port default sebagian besar adalah hal yang tidak berguna; aplikasi yang tepat dan konfigurasi firewall jauh lebih penting.

Keduanya ada di repo Ubuntu:

FireHOL

memiliki dokumentasi yang hebat dan sintaks yang sangat mudah dipelajari. Saya dapat mengatur gateway / firewall dalam dua puluh menit. Satu-satunya alasan saya pindah dari ini adalah karena sepertinya tidak dipertahankan (rilis terakhir 2 tahun yang lalu). Bukan berarti itu tidak berfungsi, tapi ...

Ferm

satu lagi. Lebih banyak sintaks seperti iptables, tetapi konsep yang sama. Lebih banyak komunitas yang dikelola daripada FireHOL, tetapi membutuhkan waktu lebih lama untuk dijemput.

Shorewall

adalah apa yang saya gunakan saat ini. Dokumentasinya luas, dan format konfigurasinya tabular. Butuh waktu sekitar satu setengah jam untuk memahami semua file yang diperlukan (6) untuk menjalankan konfigurasi firewall / gateway. Cukup kuat. TIP: Halaman manual untuk file konfigurasi yang berbeda BENAR-BENAR membantu!

Semua ini memuat konfigurasi firewall dari file konfigurasi. Sangat efektif, lebih mudah digunakan daripada iptables, dan (menurut saya) lebih mudah digunakan dan dikelola daripada ufw.

Lain:

  • Saya kedua rekomendasi untuk penggunaan kunci SSH.

  • Siapkan IDS.

  • Pelajari tentang AppArmor. Ini membatasi akses file yang dapat dieksekusi ke hanya direktori tertentu dan file yang dibutuhkan. Mirip dengan SELinux di dunia RHEL. Ini diinstal dan diaktifkan dengan 'profil' yang telah dikonfigurasi sebelumnya untuk banyak program yang digunakan dengan baik.


2

Serta saran lain di sini saya akan menyebutkan tiga yang jelas tapi mungkin layak disebut untuk kelengkapan:

  1. Jika Anda tidak berpikir Anda membutuhkan firewall, pikirkan lagi. ufw sederhana tetapi dirancang untuk Ubuntu dan didasarkan pada iptables
  2. Perbarui paket: minimal berlaku semua patch keamanan
  3. Dokumentasikan apa yang telah Anda lakukan untuk mengamankan server dan alasannya. Termasuk proses konfigurasi (otomatis) untuk memonitor log, menguji konfigurasi dan melaporkan pembaruan keamanan yang diperlukan.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.