23 CentOS Server Hardening Security Tips - Bagian 2
- 3861
- 432
- Jermaine Mohr
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
- 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.
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 penggunaArtikel 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 Linux31. 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 -reloadArtikel 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 noArtikel 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 fileArtikel 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 # sestatusArtikel 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 Terbaik37. 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 CentOS40. Lakukan pemindaian sistem eksternal
Evaluasi keamanan sistem Anda untuk kerentanan dengan memindai sistem dari titik jarak jauh melalui LAN Anda menggunakan alat spesifik seperti:
- Nmap - Pemindai Jaringan 29 Contoh Perintah NMAP
- Nessus - Pemindai Keamanan
- Openvas - Digunakan untuk memindai kerentanan dan untuk manajemen kerentanan yang komprehensif.
- 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:
- AIDE - Lingkungan Deteksi Intrusi Lanjutan - http: // ajudan.SourceForge.bersih/
- Clamav - Pemindai Antivirus https: // www.clamav.bersih
- Rkhunter - pemindai rootkit
- Lynis - Alat Audit dan Pemindaian Keamanan untuk Linux
- Tripwire - Keamanan dan integritas data http: // www.tripwire.com/
- Fail2ban - Pencegahan jaringan intrusi
- Ossec - (HIDS) Sistem deteksi intrusi berbasis host http: // ossec.GitHub.io/
- 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 .BashrcArtikel 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.
- « Cara menginstal postgresql dan pgadmin4 di ubuntu 20.04
- Menyiapkan Zimbra Collaboration Suite (ZCS) di Rhel/Centos 7/8 »