23 CentOS Server Hardening Security Tips - Bagian 2

23 CentOS Server Hardening Security Tips - Bagian 2

Melanjutkan tutorial sebelumnya tentang cara mengamankan dan mengeraskan server Centos, dalam artikel ini, kita akan membahas tips keamanan lain yang akan disajikan pada daftar periksa di bawah ini.

Persyaratan

  1. Tip Keamanan Pengerasan Server 20 CentOS - Bagian 1

21. Nonaktifkan perintah Suid dan SGID yang tidak berguna

Jika setuid Dan setgid Bit diatur pada program biner, perintah ini dapat menjalankan tugas dengan hak pengguna atau grup lainnya, seperti akar hak istimewa yang dapat mengekspos masalah keamanan yang serius.

Seringkali, serangan overrun buffer dapat mengeksploitasi binari yang dapat dieksekusi untuk menjalankan kode yang tidak sah dengan hak -hak pengguna Root Power.

# find / -path / proc -prune -o -type f \ (-perm -4000 -o -perm -2000 \) -exec ls -l  \; 

Untuk membuka setuid bit menjalankan perintah di bawah ini:

# chmod u-s/path/to/binere_file 

Untuk meluncurkan bit setgid, jalankan perintah di bawah ini:

# Chmod G-S/PATH/TO/BINARY_FILE 

22. Periksa file dan direktori yang tidak dimiliki

File atau direktori yang tidak dimiliki oleh akun yang valid harus dihapus atau ditetapkan dengan izin dari pengguna dan grup.

Mengeluarkan perintah di bawah ini untuk daftar file atau direktori tanpa pengguna dan grup.

# find / -nouser -o -nogroup -exec ls -l  \; 

23. Sebutkan file yang dapat diterjemahkan dunia

Menjaga file yang terbuat dari dunia pada sistem bisa berbahaya karena fakta bahwa siapa pun dapat memodifikasinya. Jalankan perintah di bawah ini untuk menampilkan file yang dapat dibuat kata, kecuali Symlink, yang selalu bisa ditulis di dunia.

# find / -path / proc -prune -o -perm -2 ! -ketik l -ls 

24. Buat kata sandi yang kuat

Buat kata sandi minimal delapan karakter. Kata sandi harus berisi digit, karakter khusus, dan huruf besar. Menggunakan pwmake untuk menghasilkan kata sandi 128 bit dari /dev/urandom mengajukan.

# pwmake 128 

25. Terapkan Kebijakan Kata Sandi yang Kuat

Memaksa sistem untuk menggunakan kata sandi yang kuat dengan menambahkan baris di bawah ini /etc/pam.d/passwd mengajukan.

Kata Sandi Dibutuhkan Pam_pwquality.jadi coba lagi = 3 

Menambahkan baris di atas, kata sandi yang dimasukkan tidak dapat berisi lebih dari 3 karakter dalam urutan monotonik, seperti ABCD, dan lebih dari 3 karakter yang identik, seperti 1111.

Untuk memaksa pengguna menggunakan kata sandi dengan panjang minimum 8 karakter, termasuk semua kelas karakter, periksa kekuatan untuk urutan karakter dan karakter berturut-turut menambahkan baris berikut ke /etc/security/pwquality.conf mengajukan.

Minlen = 8 MinClass = 4 Maxequence = 3 MaxRepeat = 3 

26. Gunakan penuaan kata sandi

Perintah chage dapat digunakan untuk penuaan kata sandi pengguna. Untuk mengatur kata sandi pengguna untuk kedaluwarsa 45 hari, gunakan perintah berikut:

# chage -m 45 nama pengguna 

Untuk menonaktifkan waktu kedaluwarsa kata sandi Gunakan perintah:

# chage -m -1 Nama pengguna 

Paksa kedaluwarsa kata sandi langsung (pengguna harus mengubah kata sandi pada login berikutnya) dengan menjalankan perintah berikut:

# chage -d 0 nama pengguna 

27. Akun kunci

Akun pengguna dapat dikunci dengan mengeksekusi passwd atau perintah usermod:

# passwd -l nama pengguna # usermod -l nama pengguna 

Untuk membuka kunci akun, gunakan -u opsi untuk passwd perintah dan -U opsi untuk usermod.

Artikel terkait: Cara Mengunci Akun Pengguna Setelah Upaya Login Gagal

28. Cegah Akses Akses Shell

Untuk mencegah akun sistem (akun biasa atau akun layanan) untuk mendapatkan akses ke shell bash, ubah root shell menjadi /usr/sbin/nologin atau /bin/false dalam /etc/passwd file dengan mengeluarkan perintah di bawah ini:

# usermod -s /bin /nama pengguna palsu 

Untuk mengubah shell saat membuat penerbitan pengguna baru perintah berikut:

# useradd -s/usr/sbin/nologin nama pengguna 
Artikel terkait: Pelajari 15 contoh perintah "useradd" di linux

29. Kunci konsol pengguna virtual dengan vlock

Vlock adalah program yang digunakan untuk mengunci satu sesi di Linux Console. Instal program dan mulailah mengunci sesi terminal Anda dengan menjalankan perintah di bawah ini:

# yum instal vlock # vlock 

30. Gunakan sistem terpusat untuk mengelola akun dan otentikasi

Menggunakan sistem otentikasi terpusat dapat sangat menyederhanakan manajemen dan kontrol akun. Layanan yang dapat menawarkan jenis manajemen akun ini adalah IPA Server, LDAP, Kerberos, Microsoft Active Directory, NIS, Samba ADS atau WinBind.

Beberapa layanan ini secara default sangat diamankan dengan protokol kriptografi dan kriptografi kunci simetris, seperti Kerberos.

Artikel terkait: Setup NFS Server dengan otentikasi pengguna yang berbasis di Kerberos di Linux

31. Memaksa pemasangan baca-khusus dari media USB

Menggunakan blockdev Utilitas Anda dapat memaksa semua media yang dapat dilepas untuk dipasang sebagai read-only. Misalnya, buat yang baru Udev file konfigurasi bernama 80-readonly-USB.aturan dalam /etc/udev/aturan.D/ Direktori dengan konten berikut:

Subsystem == "blok", attrs removable == "1", run program = "/sbin/blockdev --tetro %n" 

Kemudian, terapkan aturan dengan perintah di bawah ini:

# Kontrol udevadm -reload 
Artikel terkait: Cara menggunakan UDEV untuk deteksi dan manajemen perangkat di Linux

32. Menonaktifkan akses root melalui TTY

Untuk mencegah akun root melakukan login sistem melalui semua perangkat konsol (TTY), hapus isi file securetty dengan mengetikkan prompt terminal perintah berikut sebagai root.

# cp /etc /securetty /etc /securetty.BAK # CAT /DEV /NULL> /etc /Securetty 

Ingatlah bahwa aturan ini tidak berlaku untuk sesi login SSH
Untuk mencegah login root melalui ssh edit file /etc/ssh/sshd_config dan tambahkan baris di bawah ini:

Imbinrootlogin no 
Artikel terkait: Cara mengamankan dan mengeraskan server openssh

33. Gunakan ACLS POSIX untuk memperluas izin sistem

Daftar kontrol akses dapat menentukan hak akses untuk lebih dari sekadar satu pengguna atau grup dan dapat menentukan hak untuk program, proses, file, dan direktori. Jika Anda mengatur ACL pada direktori, keturunannya akan mewarisi hak yang sama secara otomatis.

Misalnya,

# setfacl -m u: pengguna: file rw # getfacl file 
Artikel terkait: Pengaturan ACL dan Kuota Disk untuk Pengguna/Grup di Linux

34. Mengatur selinux dalam mode penegakan

Itu Selinux Peningkatan Kernel Linux mengimplementasikan kebijakan Kontrol Akses Wajib (MAC), yang memungkinkan pengguna untuk menentukan kebijakan keamanan yang menyediakan izin granular untuk semua pengguna, program, proses, file, dan perangkat.

Keputusan kontrol akses kernel didasarkan pada semua konteks yang relevan dengan keamanan dan bukan pada identitas pengguna yang diautentikasi.

Mendapatkan Selinux Status dan Lembaga Kebijakan Jalankan perintah di bawah ini:

# getenforce # setenforce 1 # sestatus 
Artikel terkait: Mengatur Kebijakan Kontrol Akses Wajib dengan Selinux

35. Instal Selinux Utilitas Tambahan

Install PolicyCoreutils-Python Paket yang menyediakan utilitas python tambahan untuk beroperasi Selinux: audit2allow, audit2Why, chcat, Dan SANMANAGE.

Untuk menampilkan semua nilai boolean bersama dengan deskripsi singkat, gunakan perintah berikut:

# Sarganage Boolean -l 

Misalnya, untuk menampilkan dan mengatur nilai httpd_enable_ftp_server, Jalankan perintah di bawah ini:

# getsebool httpd_enable_ftp_server 

Untuk membuat nilai boolean bertahan di reboot, tentukan -P opsi untuk setSebool, Seperti diilustrasikan pada contoh berikut:

# setSebool -p httpd_enable_ftp_server on 

36. Gunakan server log terpusat

Konfigurasikan rsyslog Daemon untuk mengirim pesan log utilitas sensitif ke server log terpusat. Juga, monitor file log dengan bantuan utilitas logwatch.

Mengirim pesan log ke server jarak jauh memastikan bahwa begitu sistem telah dikompromikan, pengguna jahat tidak dapat sepenuhnya menyembunyikan aktivitas mereka, selalu meninggalkan jejak pada file log jarak jauh.

Artikel terkait: 4 Alat Pemantauan dan Manajemen Log Linux Terbaik

37. Aktifkan akuntansi proses

Aktifkan akuntansi proses dengan menginstal utilitas dan penggunaan psacct LastComm Perintah untuk menampilkan informasi tentang perintah yang dieksekusi sebelumnya seperti yang dicatat dalam file akuntansi sistem dan sa Untuk meringkas informasi tentang perintah yang dieksekusi sebelumnya sebagaimana dicatat dalam file akuntansi sistem.

38. Pengerasan /etc /sysctl.conf

Gunakan aturan parameter kernel berikut untuk melindungi sistem:

Menonaktifkan perutean sumber

bersih.IPv4.conf.semua.accept_source_route = 0 

Nonaktifkan penerusan IPv4

IPv4.conf.semua.penerusan = 0 

Nonaktifkan IPv6

bersih.IPv6.conf.semua.disable_ipv6 = 1 net.IPv6.conf.bawaan.disable_ipv6 = 1 net.IPv6.conf.lo.disable_ipv6 = 1 

Nonaktifkan penerimaan dan pengiriman Paket ICMP yang dialihkan kecuali jika diperlukan secara khusus.

bersih.IPv4.conf.semua.accept_redirects = 0 net.IPv4.conf.semua.Secure_redirects = 0 net.IPv4.conf.semua.send_redirects = 0 

Nonaktifkan Penerusan Jalur Terbalik

bersih.IPv4.conf.semua.RP_FILTER = 2 

Abaikan semua permintaan gema ICMP (diatur ke 1 untuk mengaktifkan)

bersih.IPv4.icmp_echo_ignore_all = 0 

39. Gunakan Layanan VPN untuk mengakses tempat Anda melalui jaringan publik yang tidak dilindungi

Selalu gunakan VPN Layanan untuk operator untuk mengakses tempat LAN dari jarak jauh melalui internet. Jenis layanan seperti itu dapat dikonfigurasi menggunakan solusi open source gratis, seperti OpenVPN, atau menggunakan solusi berpemilik, seperti Cisco VPN (Install VPNC utilitas baris perintah yang disediakan oleh repositori EPEL).

Artikel terkait: Instal server OpenVPN dengan klien Windows di CentOS

40. Lakukan pemindaian sistem eksternal

Evaluasi keamanan sistem Anda untuk kerentanan dengan memindai sistem dari titik jarak jauh melalui LAN Anda menggunakan alat spesifik seperti:

  1. Nmap - Pemindai Jaringan 29 Contoh Perintah NMAP
  2. Nessus - Pemindai Keamanan
  3. Openvas - Digunakan untuk memindai kerentanan dan untuk manajemen kerentanan yang komprehensif.
  4. Nikto - Pemindaian Script Common Gateway Interface (CGI) Pemindaian Kerentanan Web yang sangat baik di Linux

41. Melindungi sistem secara internal

Gunakan perlindungan sistem internal terhadap virus, rootkit, malware, dan, sebagai praktik yang baik, memasang sistem deteksi intrusi yang dapat mendeteksi aktivitas yang tidak sah (serangan DDOS, pemindaian port), seperti:

  1. AIDE - Lingkungan Deteksi Intrusi Lanjutan - http: // ajudan.SourceForge.bersih/
  2. Clamav - Pemindai Antivirus https: // www.clamav.bersih
  3. Rkhunter - pemindai rootkit
  4. Lynis - Alat Audit dan Pemindaian Keamanan untuk Linux
  5. Tripwire - Keamanan dan integritas data http: // www.tripwire.com/
  6. Fail2ban - Pencegahan jaringan intrusi
  7. Ossec - (HIDS) Sistem deteksi intrusi berbasis host http: // ossec.GitHub.io/
  8. Mod_security - Lindungi serangan brute force atau ddos

42. Memodifikasi variabel lingkungan pengguna

Menambahkan tanggal Dan waktu Format untuk menyimpan eksekusi perintah dengan mengeluarkan perintah di bawah ini:

# echo 'histtimeformat = "%d/%m/%y%t"' >> .Bashrc ' 

Memaksa untuk merekam secara instan Histfile Setiap kali perintah diketik (bukan logout):

# echo 'prompt_command = "history -a"' >> .Bashrc 

Batasi sesi login batas waktu. Secara otomatis merobohkan shell saat tidak ada aktivitas yang dilakukan selama periode waktu idle. Sangat berguna untuk secara otomatis memutuskan sesi SSH.

# echo 'tmout = 120' >> .Bashrc 

Terapkan semua aturan dengan mengeksekusi:

# sumber .Bashrc 
Artikel terkait: Tetapkan variabel lingkungan pengguna di Linux

43. Data cadangan

Gunakan utilitas cadangan, seperti tar, kucing, rsync, scp, snapshot LVM, dll untuk menyimpan salinan sistem Anda, lebih disukai di luar lokasi, jika terjadi kegagalan sistem.

Jika sistem dikompromikan, Anda dapat melakukan pemulihan data dari cadangan sebelumnya.

Akhirnya, jangan lupa bahwa tidak peduli berapa banyak langkah keamanan dan pengukuran kontra yang Anda ambil untuk menjaga sistem Anda tetap aman, Anda tidak akan pernah 100% benar-benar aman selama mesin Anda terhubung dan dimatikan.