Mengamankan server Linux adalah penting untuk melindungi data Anda, Informasi pribadi anda, dan waktu, dari tangan cracker (hacker). Administrator bertanggung jawab untuk kotak keamanan Linux. Pada bagian pertama dari serangkaian keamanan server Linux, akan dibahas 20 tips keamanan untuk instalasi default dari sistem Linux.
1. Enkripsikan Komunikasi Data
Semua data yang dikirimkan melalui jaringan ini terbuka untuk pemantauan. Mengenkripsi data yang ditransmisikan sedapat mungkin di protek dengan sandi atau menggunakan kunci sertifikat.
- Gunakan scp, ssh, rsync, atau SFTP untuk mentransfer file. Anda juga dapat me-mount sistem file remote server atau direktori komputer rumah Anda sendiri menggunakan sshfs proteksi dan alat khusus.
- Gunakan GnuPG yang memungkinkan untuk mengenkripsi dan menandatangani dan komunikasi data Anda, dilengkapi dengan sistem manajemen kunci serbaguna serta modul akses untuk semua jenis direktori dengan kunci publik.
- Gunakan Fugu fungsinya adalah frontend grafis untuk aplikasi commandline Secure File Transfer (SFTP). SFTP mirip dengan FTP, tapi tidak seperti FTP, seluruh sesi dienkripsi, artinya tanpa password akan dikirim dalam bentuk teks-jelas, dan dengan demikian lebih sedikit rentan terhadap penangkapan pihak ketiga. Pilihan lainnya adalah filezilla – klien cross-platform yang mendukung FTP, FTP melalui SSL / TLS (FTPS), dan SSH File Transfer Protocol (SFTP).
- OpenVPN untuk menghemat biaya SSL VPN.
- Lighttpd SSL (Secure Server Layer) https Konfigurasi Dan Instalasi
- Apache SSL (Secure Server Layer) HTTPS (mod_ssl) Konfigurasi Dan Instalasi
Hindari Menggunakan FTP, Telnet, dan rlogin / rsh
Konfigurasi jaringan yang paling bawah, nama pengguna, sandi, FTP / telnet / perintah rsh dan file yang ditransfer dapat ditangkap oleh siapa saja di jaringan yang sama menggunakan packet sniffer. Solusi umum untuk masalah ini adalah dengan menggunakan OpenSSH baik, SFTP, atau FTPS (FTP melalui SSL), yang menambahkan enkripsi SSL atau TLS untuk FTP. Ketik perintah berikut untuk menghapus NIS, rsh dan usang layanan lainnya:
# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve
2. Minimalkan Software untuk Minimalkan Vulnerability
Apakah Anda benar-benar membutuhkan semua jenis layanan web diinstal? Hindari menginstal perangkat lunak yang tidak perlu untuk menghindari kelemahan dalam perangkat lunak. Gunakan manajer paket RPM seperti yum atau apt-get dan / atau dpkg untuk meninjau semua diinstal set paket perangkat lunak pada sistem. Hapus semua paket yang tidak diinginkan dengan kode ini
# yum list installed
# yum list packageName
# yum remove packageName
# yum list packageName
# yum remove packageName
atau
# dpkg –list
# dpkg –info packageName
# apt-get remove packageName
# dpkg –list
# dpkg –info packageName
# apt-get remove packageName
3. Layanan Jaringan Per Satu Sistem atau VM Instance
Jalankan layanan jaringan yang berbeda pada server terpisah atau contoh VM. Hal ini membatasi jumlah layanan lainnya yang dapat dikompromikan. Sebagai contoh, jika seorang penyerang berhasil memanfaatkan perangkat lunak seperti aliran Apache, ia akan mendapatkan akses ke seluruh server termasuk jasa lainnya seperti MySQL, e-mail server dan sebagainya. Lihat cara menginstal software virtualisasi:
- Install and Setup XEN Virtualization Software on CentOS Linux 5
- How To Setup OpenVZ under RHEL / CentOS Linux
4. Tetap update Kernel Linux dan Perangkat Lunak jangan Sampai terlambat
Menerapkan patch keamanan merupakan bagian penting dari menjaga server Linux. Linux menyediakan semua alat yang diperlukan untuk menjaga sistem anda dan diperbarui, dan juga memungkinkan untuk upgrade versi dengan mudah. Semua update keamanan harus ditinjau ulang dan diterapkan sesegera mungkin. Sekali lagi, gunakan manajer paket RPM seperti yum dan / atau apt-get dan / atau dpkg untuk menerapkan semua pembaruan keamanan. seperti perintah dibawah
# yum update
atau
# apt-get update && apt-get upgrade
atau
# apt-get update && apt-get upgrade
Anda dapat mengkonfigurasi Red hat / CentOS / Fedora Linux untuk mengirim paket yum update pemberitahuan melalui email. Pilihan lainnya adalah untuk menerapkan semua pembaruan keamanan melalui sebuah tugas cron. Dalam Debian / Ubuntu Linux yang dapat Anda gunakan untuk mengirim pemberitahuan apticron keamanan.
5. Gunakan Extensions Keamanan Linux
Linux tersedia dengan berbagai patch keamanan yang dapat digunakan untuk menjaga terhadap program miskonfigurasi atau dikompromikan. Jika memungkinkan menggunakan SELinux dan Linux lainnya ekstensi keamanan untuk menegakkan keterbatasan pada jaringan dan program lainnya. Sebagai contoh, SELinux menyediakan berbagai kebijakan keamanan untuk kernel Linux.
Disarankan menggunakan SELinux yang menyediakan Wajib fleksibel Access Control (MAC). Berdasarkan standar Linux Discretionary Access Control (DAC), sebuah aplikasi atau proses yang berjalan sebagai user (UID atau SUID) memiliki izin pengguna untuk objek seperti file, socket, dan proses lainnya. Menjalankan sebuah kernel MAC melindungi sistem dari aplikasi berbahaya atau cacat yang dapat merusak atau menghancurkan sistem. Lihat dokumentasi Redhat resmi yang menjelaskan konfigurasi SELinux.
6. Account Pengguna dan Kebijakan Kekuatan Password
Gunakan / useradd perintah usermod untuk menciptakan dan memelihara account pengguna. Pastikan Anda memiliki kebijakan password yang baik dan kuat. Sebagai contoh, password yang baik mencakup minimal 8 karakter dan harus campuran huruf, angka, karakter khusus, atas & bawah dll huruf paling penting memilih password yang Anda ingat. Gunakan alat seperti “John ripper itu” untuk mengetahui password pengguna lemah pada server Anda. pam_cracklib.so Konfigurasi untuk menegakkan kebijakan password.
Perubahan perintah Chage jumlah hari antara perubahan password dan tanggal perubahan terakhir password. Informasi ini digunakan oleh sistem untuk menentukan kapan pengguna harus mengubah / passwordnya. The / Etc / file login.defs mendefinisikan konfigurasi situs-khusus untuk suite sandi bayangan termasuk password penuaan konfigurasi. Untuk menonaktifkan password penuaan, masukkan:
chage -M 99999 userName
Untuk mendapatkan informasi password yang kadaluarsa, masukkan:
chage -l userName
Akhirnya, Anda juga dapat mengedit file / etc / shadow dalam bidang-bidang berikut:
{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:
{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:
Dimana,
- Minimum_days: Jumlah hari minimum yang diperlukan antara perubahan password yaitu jumlah hari tersisa sebelum user diijinkan untuk mengubah / passwordnya.
- Maximum_days: Jumlah maksimum hari password berlaku (setelah pengguna yang dipaksa untuk mengubah password / wanita).
- Warn: Jumlah hari sebelum password berakhir pengguna yang memperingatkan Anda bahwa password harus diubah.
- Expire : Hari sejak Jan 1, 1970 bahwa account dinonaktifkan yaitu tanggal mutlak menentukan ketika login mungkin tidak lagi digunakan.
Gunakan perintah # chage -M 60 -m 7 -W 7 userName
7. Disable root Login
Jangan pernah login sebagai user root. Anda harus menggunakan sudo untuk menjalankan perintah sebagai root level dan saat diperlukan. sudo tidak meningkatkan keamanan sistem tanpa password root berbagi dengan pengguna lain dan admin. sudo menyediakan audit sederhana dan fitur pelacakan juga.
8. Keamanan Fisik Server
Anda harus melindungi Fisik server akses konsol Linux. Mengkonfigurasi BIOS dan menonaktifkan boot dari perangkat eksternal seperti DVD / CD / USB pena. Atur BIOS dan boot loader grub password untuk melindungi pengaturan ini. Semua kotak produksi harus terkunci di IDCs (Internet Data Center) dan semua orang harus melewati beberapa jenis pemeriksaan keamanan sebelum mengakses server Anda. Lihat 9 Tips To Protect Linux Servers Physical Console Access.
9. Disable Service yang Tidak Dibutuhkan
Menonaktifkan semua layanan dan daemon yang tidak perlu (layanan yang berjalan di latar belakang). Anda harus menghapus semua layanan yang tidak diinginkan dari sistem start-up. Ketik perintah berikut untuk daftar semua servis yang di jalankan saat boot di tingkat 3:
# chkconfig –list | grep ‘3:on’
Untuk mendisable service, masukkan perintah
# service serviceName stop
# chkconfig serviceName off
10. Delete X Windows
# chkconfig –list | grep ‘3:on’
Untuk mendisable service, masukkan perintah
# service serviceName stop
# chkconfig serviceName off
10. Delete X Windows
X Windows pada server tidak diperlukan. Tidak ada alasan untuk menjalankan X Windows pada mail berdedikasi dan Apache web server. Anda dapat menonaktifkan dan menghapus X Windows untuk meningkatkan keamanan server dan kinerja. Edit / etc / inittab dan mengatur tingkat lari ke 3. Akhirnya, menghapus sistem X Windows, masukkan:
# yum groupremove “X Window System“
11. Konfigurasi Ip tables dan TC PWrappers
Iptables adalah ruang pengguna program aplikasi yang memungkinkan Anda untuk mengkonfigurasi firewall (Netfilter) yang disediakan oleh kernel Linux. Gunakan firewall untuk menyaring lalu lintas dan mengizinkan hanya lalu lintas yang diperlukan. Juga menggunakan sistem jaringan TCPWrappers berbasis host ACL untuk menyaring akses jaringan ke Internet. Anda dapat mencegah banyak serangan penolakan layanan dengan bantuan Iptables:
- Lighttpd Traffic Shaping: Throttle Connections Per Single IP (Rate Limit).
- How to: Linux Iptables block common attack.
- psad: Linux Detect And Block Port Scan Attacks In Real Time.
12. Linux Kernel /etc/sysctl.conf Hardening
File / etc / sysctl.conf digunakan untuk mengkonfigurasi parameter kernel pada runtime. Linux membaca dan menerapkan pengaturan dari / etc / sysctl.conf pada saat boot. Contoh / etc / sysctl.conf:
# Turn on execshield
kernel.exec-shield=1
kernel.randomize_va_space=1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0
# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1
13. Pisahkan Partisi Disk
kernel.exec-shield=1
kernel.randomize_va_space=1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter=1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route=0
# Ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_messages=1
# Make sure spoofed packets get logged
net.ipv4.conf.all.log_martians = 1
13. Pisahkan Partisi Disk
Pemisahan file sistem operasi dari file pengguna dapat mengakibatkan menjadi sistem yang lebih baik dan aman. Pastikan filesystem berikut ini sudah terpasang pada partisi yang terpisah:
* /usr
* /home
* /var and /var/tmp
* /tmp
* /home
* /var and /var/tmp
* /tmp
Membuat pemisahan partisi untuk Apache dan akar server FTP. Edit / etc / fstab file dan pastikan Anda menambahkan opsi konfigurasi sebagai berikut:
- noexec – Do not set execution of any binaries on this partition (prevents execution of binaries but allows scripts).
- nodev – Do not allow character or special devices on this partition (prevents use of device files such as zero, sda etc).
- nosuid – Do not set SUID/SGID access on this partition (prevent the setuid bit).
Contoh / etc / fstab untuk entri untuk membatasi akses pengguna di / dev/sda5 (ftp server direktori root):
/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2
/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2
14. Matikan IPv6
Internet Protocol version 6 (IPv6) menyediakan lapisan Internet baru dari protokol TCP / IP yang menggantikan Internet Protocol version 4 (IPv4) dan memberikan banyak manfaat. Saat ini tidak ada alat yang baik yang dapat memeriksa sistem melalui jaringan untuk masalah keamanan IPv6. Kebanyakan distro Linux mulai mengaktifkan protokol IPv6 secara default. Crackers dapat mengirimkan lalu lintas yang buruk melalui IPv6 sebagai admin paling tidak memonitor. Kecuali konfigurasi jaringan memerlukan itu, menonaktifkan IPv6 atau mengkonfigurasi firewall Linux IPv6:
15. Nonaktifkan SUID dan SGID Binari yang tidak diinginkan
Semua SUID / SGID bit memungkinkan file dapat disalahgunakan ketika SUID / SGID eksekusi memiliki masalah keamanan atau bug. Semua pengguna lokal atau remote dapat menggunakan file tersebut. Ini adalah ide yang baik untuk menemukan semua file tersebut. Gunakan perintah find sebagai berikut:
#See all set user id files:
find / -perm +4000
# See all group id files
find / -perm +2000
# Or combine both in a single command
find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls
16. Gunakan Sebuah Layanan Otentikasi Terpusat
find / -perm +4000
# See all group id files
find / -perm +2000
# Or combine both in a single command
find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls
16. Gunakan Sebuah Layanan Otentikasi Terpusat
Tanpa sistem otentikasi terpusat, pengguna auth data menjadi tidak konsisten, yang dapat menyebabkan ke mandat out-of-date dan lupa acount yang seharusnya sudah dihapus di tempat pertama. Sebuah layanan otentikasi terpusat memungkinkan Anda mempertahankan kontrol pusat atas Linux / UNIX account dan data otentikasi. Anda dapat menyimpan data auth disinkronkan antara server. Jangan menggunakan layanan NIS untuk otentikasi terpusat. Gunakan openldap untuk klien dan server. Anda dapat menggunakan Kerberos
17. Logging dan Audit
Anda harus mengkonfigurasi logging dan audit untuk mengumpulkan semua upaya hacking dan cracking. Secara default syslog menyimpan data dalam / var / log / direktori. Hal ini juga berguna untuk mengetahui misconfiguration perangkat lunak yang dapat membuka sistem anda untuk berbagai serangan. Lihat artikel terkait tentang topik ini :
- Linux log file locations.
- How to send logs to a remote loghost.
- How do I rotate log files?.
18. Pesan Monitor Log Mencurigakan Dengan Logwatch / Logcheck
Bacalah log menggunakan logwatch atau logcheck. Alat-alat ini membuat log hidup Anda lebih mudah membaca. Anda mendapatkan laporan rinci tentang item yang tidak biasa di syslog melalui email.
Semoga Bermanfaat
Sumber : dunovteck.wordpress.com