Saya punya proyek untuk mengamankan Server Ubuntu sebanyak yang saya bisa. Server adalah server hosting web. Server akan menjalankan LAMP, Mail, dan DNS.
Saya punya proyek untuk mengamankan Server Ubuntu sebanyak yang saya bisa. Server adalah server hosting web. Server akan menjalankan LAMP, Mail, dan DNS.
Jawaban:
Berikut adalah daftar hal yang saya lakukan untuk mengamankan server saya.
sudo ufw enable
) dan kemudian hanya izinkan port yang benar-benar digunakan. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Beberapa hal lagi yang perlu dipertimbangkan. Kebanyakan orang lupa tentang akses fisik. Semua konfigurasi perangkat lunak di dunia tidak berarti apa-apa jika saya dapat berjalan secara fisik dengan LiveCD dan mencuri data Anda. Waspadalah terhadap rekayasa sosial. Ajukan pertanyaan untuk memverifikasi siapa yang ada di telepon dan pastikan mereka memiliki otorisasi untuk membuat permintaan yang mereka buat.
Karena saya masih pengguna 'baru', saya tidak dapat memposting lebih dari 2 tautan. Anda dapat membaca lebih lanjut tentang subjek ini di sini: https://help.ubuntu.com/12.04/serverguide/index.html dan memberi perhatian khusus pada https://help.ubuntu.com/12.04/serverguide/security.html
iptables
aturan yang sangat spesifik untuk melarang akses eksternal ke layanan apa pun yang tidak akan Anda manfaatkan, jika Anda memiliki pengaturan bola yang membutuhkan rouing dan barang canggih sekalipun.
/ dev / shm dapat digunakan dalam serangan terhadap layanan yang sedang berjalan, seperti httpd. Ubah / etc / fstab untuk membuatnya lebih aman.
Buka Jendela Terminal dan masukkan yang berikut ini:
sudo vi /etc/fstab
Tambahkan baris berikut dan simpan. Anda harus memulai ulang agar pengaturan ini berlaku:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
File /etc/sysctl.conf berisi semua pengaturan sysctl. Cegah perutean sumber paket yang masuk dan catat IP yang salah masukkan yang berikut di jendela terminal
sudo vi /etc/sysctl.conf
Edit file /etc/sysctl.conf dan hapus komentar atau tambahkan baris berikut:
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0
# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5
# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
Untuk memuat ulang sysctl dengan perubahan terbaru, masukkan:
sudo sysctl -p
Buka Terminal dan masukkan yang berikut ini:
sudo vi /etc/host.conf
Tambahkan atau edit baris berikut:
order bind,hosts
nospoof on
Edit file php.ini:
sudo vi /etc/php5/apache2/php.ini
Tambahkan atau edit baris berikut:
disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On
DenyHosts adalah program python yang secara otomatis memblokir serangan SSH dengan menambahkan entri ke /etc/hosts.deny. DenyHosts juga akan memberi tahu administrator Linux tentang host yang menyinggung, pengguna yang diserang, dan login yang mencurigakan.
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install denyhosts
Setelah instalasi edit file konfigurasi /etc/denyhosts.conf dan ubah email, dan pengaturan lainnya sesuai kebutuhan.
Untuk mengedit pengaturan email admin, buka jendela terminal dan masukkan:
sudo vi /etc/denyhosts.conf
Ubah nilai-nilai berikut seperti yang diperlukan di server Anda:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
Fail2ban lebih maju daripada DenyHosts karena memperluas pemantauan log ke layanan lain termasuk SSH, Apache, Kurir, FTP, dan banyak lagi.
Fail2ban memindai file log dan mencekal IP yang menunjukkan tanda berbahaya - terlalu banyak kegagalan kata sandi, mencari eksploit, dll.
Umumnya Fail2Ban kemudian digunakan untuk memperbarui aturan firewall untuk menolak alamat IP untuk jumlah waktu tertentu, meskipun tindakan sewenang-wenang lainnya juga dapat dikonfigurasi. Di luar kotak, Fail2Ban dilengkapi dengan filter untuk berbagai layanan (apache, kurir, ftp, ssh, dll).
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install fail2ban
Setelah instalasi edit file konfigurasi /etc/fail2ban/jail.local dan buat aturan filter sesuai kebutuhan.
Untuk mengedit pengaturan, buka jendela terminal dan masukkan:
sudo vi /etc/fail2ban/jail.conf
Aktifkan semua layanan yang Anda ingin fail2ban untuk memantau dengan mengubah diaktifkan = salah menjadi * diaktifkan = benar *
Misalnya jika Anda ingin mengaktifkan pengawasan dan pelarangan penjara SSH, temukan baris di bawah ini dan ubah diaktifkan dari false ke true . Itu dia.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Jika Anda ingin menerima email dari Fail2Ban jika host dilarang mengubah baris berikut ke alamat email Anda.
destemail = root@localhost
dan ubah baris berikut dari:
action = %(action_)s
untuk:
action = %(action_mwl)s
Anda juga dapat membuat filter aturan untuk berbagai layanan yang ingin Anda monitor fail2ban yang tidak disediakan secara default.
sudo vi /etc/fail2ban/jail.local
Instruksi yang baik tentang cara mengkonfigurasi fail2ban dan membuat berbagai filter dapat ditemukan di HowtoForge - klik di sini untuk contoh
Setelah selesai dengan konfigurasi Fail2Ban restart layanan dengan:
sudo /etc/init.d/fail2ban restart
Anda juga dapat memeriksa statusnya dengan.
sudo fail2ban-client status
Baik RKHunter dan CHKRootkit pada dasarnya melakukan hal yang sama - periksa sistem Anda untuk rootkit. Tidak ada salahnya menggunakan keduanya.
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install rkhunter chkrootkit
Untuk menjalankan chkrootkit, buka jendela terminal dan masukkan:
sudo chkrootkit
Untuk memperbarui dan menjalankan RKHunter. Buka Terminal dan masukkan yang berikut ini
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
Nmap ("Network Mapper") adalah utilitas sumber terbuka dan gratis untuk penemuan jaringan dan audit keamanan.
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install nmap
Pindai sistem Anda untuk port terbuka dengan:
nmap -v -sT localhost
SYN memindai dengan yang berikut ini:
sudo nmap -v -sS localhost
Logwatch adalah sistem analisis log yang dapat disesuaikan. Logwatch mem-parsing melalui log sistem Anda dan membuat laporan menganalisis area yang Anda tentukan. Logwatch mudah digunakan dan akan berfungsi langsung dari paket di sebagian besar sistem.
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install logwatch libdate-manip-perl
Untuk melihat keluaran logwatch, gunakan lebih sedikit:
sudo logwatch | less
Untuk mengirim email laporan jam tangan selama 7 hari terakhir ke alamat email, masukkan yang berikut dan ganti mail@domain.com dengan email yang diperlukan. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
Tiger adalah alat keamanan yang dapat digunakan baik sebagai audit keamanan dan sistem deteksi intrusi.
Buka Terminal dan masukkan yang berikut ini:
sudo apt-get install tiger
Untuk menjalankan harimau masuk:
sudo tiger
Semua output Tiger dapat ditemukan di / var / log / tiger
Untuk melihat laporan keamanan harimau, buka Terminal dan masukkan yang berikut ini:
sudo less /var/log/tiger/security.report.*
magic_quotes_gpc = On
. Kutipan ajaib telah ditinggalkan lebih dulu dan kemudian dihapus: php.net/manual/en/security.magicquotes.whynot.php
Karena Anda mengatakan ini adalah web-hosting-server ... Saya ingin berbagi praktik dan pengalaman terbaik saya selama 5 tahun di jajaran web-hosting.
Dari pengalaman masa lalu saya, daripada langsung masuk ke neraka konfigurasi, Anda harus terlebih dahulu mengumpulkan anggur keamanan yang menggantung rendah seperti yang ditunjukkan pada artikel yang diberikan.
Karena Anda memiliki LAMP, maka Anda harus sangat berhati-hati tentang PHP dan pengaturan php.ini-nya. Ini adalah tautan yang bagus untuk mengamankan PHP. PHP memiliki kekuatan super yang dapat menjadi loop keamanan saat tidak dikonfigurasi dengan benar.
Anda dapat menggunakan pekerjaan cron untuk memeriksa kapan file Anda diubah tanpa izin dan kemungkinan diretas; menggunakan pekerjaan cron ini . Saya lebih suka Notepad ++ untuk membandingkan hasil cron (langsung unduh cron email dari server web Anda dan buka di Notepad ++).
Jika Anda ingin menginstal beberapa SEM, maka cPanel lebih disukai (namun dibayar). Webmin dan zpanel adalah alternatif gratis yang sangat bagus. Webmin lebih baik karena minimal menggunakan sertifikat yang ditandatangani sendiri dan menambah keamanan.
Jika Anda ingin sesuatu berfungsi langsung di luar kotak maka Anda dapat memilih Turnkey Linux. Ini didasarkan pada Ubuntu, sangat mudah diimplementasikan dan fleksibel untuk kebutuhan Anda. Dengan sedikit usaha Anda mendapatkan keamanan di luar kotak. Ini adalah tumpukan LAMP mereka . Saya pribadi menggunakan dan lebih suka ini saja.
Jika Anda memulai dari awal, maka Anda juga dapat menginstal ISPconfig3. Instruksi Di Sini .
Anda dapat menguji keamanan Anda dengan mencoba menembus keamanan Anda menggunakan Back-Track-Linux .
simpan kata sandi yang panjang dan acak yang rumit . Jangan menyimpannya di PC. Tulislah. Gunakan CD langsung untuk mengakses login ini.
dapatkan perangkat lunak perlindungan yang kasar seperti fail2ban.
Jangan jalankan daemon yang tidak Anda butuhkan.
Blokir semua port yang tidak perlu . berhati-hatilah dengan port SSH (22).
Dapatkan diri Anda dengan IP statis pada sistem di mana Anda akan mengelola server. Manfaatkan sebagian besar hal-hal blok IP dan hanya memungkinkan IP khusus Anda untuk mengakses tempat-tempat konfigurasi seperti port 22.
Pada akhirnya, bekerja dengan pikiran yang utuh, jangan menjadi emosional dengan pemasangan dan menerapkan akal sehat akan membawa Anda jauh melampaui itu.
**My heartiest best wishes to you. good luck.**
brute force attacks
dan dictionary attacks
.. Kata sandi acak panjang adalah satu-satunya cara untuk mengamankan diri Anda dari serangan tersebut.
Manfaatkan proyek Bastille Linux.
Ini menyediakan alat interaktif untuk melakukan langkah-langkah pengerasan keamanan tambahan untuk meningkatkan keamanan keseluruhan, dan mengurangi kerentanan kompromi untuk sistem Ubuntu Anda (dari Bastille Linux ).
Ini menawarkan fungsi penilaian dan pelaporan, sehingga dapat memberi tahu Anda bagian mana dari sistem yang tidak dikunci. Ini memeriksa sistem dengan cara baca-saja, melaporkan status masing-masing item pengerasannya. Sebagai contoh, Bastille mungkin memeriksa apakah server DNS terkunci di penjara chroot, apakah telnet dimatikan, atau bahkan jika kata sandi diperlukan untuk panjang yang baik. Anda dapat melihat demo hanya-Web ini melalui tautan ini ( info lebih lanjut ).
Anda dapat memiliki pratinjau demo Web (hanya) di sini .
Gunakan nmap
pada semua antarmuka di mesin, sehingga Anda tahu layanan apa yang Anda jalankan di mesin Anda. Ini adalah alat penting untuk keamanan.
Hapus semua layanan yang tidak Anda butuhkan pada antarmuka eksternal Anda. Anda dapat mengonfigurasi MySQL untuk hanya mendengarkan pada antarmuka tertentu, seperti localhost.
Gunakan ufw untuk melindungi layanan SSH Anda (dan kemungkinan orang lain) sehingga tidak mengizinkan terlalu banyak (gagal) koneksi per menit dari mesin yang sama. Itu akan membuat serangan brute force lebih sulit. Untuk mengubah nomor port tidak begitu berguna, hanya ketidakjelasan, tidak ada keamanan.
Batasi jumlah akun di mesin Anda. Juga jangan menginstal lebih banyak paket / program daripada yang sebenarnya Anda gunakan. Hanya instal X11-klien, bukan X11-server.
Hanya izinkan login ssh ke mesin dengan sertifikat digital, tanpa kata sandi. Itu juga akan membuat serangan brute force sulit / tidak mungkin.
Saya juga akan berkonsultasi dengan dokumen Benchmarks CIS Debian dan memiliki sejumlah besar prosedur dan proses untuk pengerasan sistem operasi yang akan berlaku untuk Ubuntu karena merupakan turunan dari Debian. Saya juga akan berkonsultasi:
Keamanan selalu disertai dengan harga. Menetapkan beberapa batasan realistis akan membantu Anda dalam mencapai tujuan. Saya akan mempertimbangkan aspek-aspek berikut:
Memeriksa semua tautan yang diposting di sini, saya pikir yang ini harus ditambahkan. Ini menjelaskan secara rinci tentang tidak hanya cara mengatur perangkat lunak Anda, tetapi juga untuk memikirkan tentang rencana keamanan. Sebagai nilai tambah, setiap perintah untuk dieksekusi dijelaskan dengan sumbernya.
Saya membuat posting tentang ini belum lama ini tentang cara mengamankan ubuntu 16.04-18.04. Langkah-langkah ini meliputi:
Ganti Login Kata Sandi Dengan Kunci Resmi Instal Firewall di Server Linux Anda
dan lainnya. https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/