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-serve2. 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
atau
# 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
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 userNameUntuk 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}:
Dimana,{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:
- 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 execshieldkernel.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
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
14. Matikan IPv6/dev/sda5 /ftpdata ext3 defaults,nosuid,nodev,noexec 1 2
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
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 :
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.