GNU/Linux >> Belajar Linux >  >> Cent OS

15 Langkah Pengerasan Linux untuk Server CentOS 7

Pengerasan server adalah proses meningkatkan keamanan server melalui berbagai metode. Kami memiliki banyak langkah untuk mengamankan server. Jauhkan diri Anda dan perusahaan Anda dengan melindungi sistem Linux Anda dari peretas, cracker, dan penyerang! Anda dapat mengubah kotak yang rentan menjadi server yang diperkuat melalui langkah-langkah berikut. Ini akan membantu Anda untuk mencegah serangan dari luar. Di sini saya menjelaskan pengerasan server CentOS.

Yang perlu diketahui

Panduan ini memandu Anda melalui langkah-langkah yang diperlukan untuk memperkuat keamanan CentOS 7. Memperkuat sistem akan membuatnya lebih ketat dan Anda mungkin mengalami masalah. Saya sarankan membuat mesin virtual duplikat yang dapat Anda gunakan untuk pemecahan masalah. Di bawah ini Anda akan menemukan daftar langkah-langkah dasar yang dapat dan harus Anda ambil untuk memperkuat server Anda segera setelah penyediaan.

1. Akses jarak jauh yang aman

Terkadang kami mengakses server kami dengan metode jarak jauh dan jika tidak lebih aman, kami dapat mengekspos server kami. Opsi OpenSSH dikendalikan melalui /etc/ssh/sshd_config berkas.

a. Nonaktifkan metode otentikasi kata sandi SSH dan aktifkan metode otentikasi kunci publik

Penting untuk menonaktifkan metode login jarak jauh kata sandi dan mengaktifkan kunci publik otentikasi

Ubah ChallengeResponseAuthentication dan Otentikasi Kata Sandi untuk tidak untuk menonaktifkan metode sandi

NoChallengeResponseAuthentication noChallengeResponseAuthentication no

Otorisasi autentikasi kunci publik

RSAAuthentication yesPubkeyAuthentication yes

sekarang Anda dapat membuat pasangan kunci baru

# ssh-keygen -t rsa

b. Nonaktifkan login root langsung

Ini adalah risiko keamanan untuk mengizinkan root untuk login langsung ke server. Sebagai gantinya, Anda harus masuk ke sistem sebagai akun Anda dan kemudian melakukan su - untuk login sebagai root. Jadi Anda perlu mengubah PermitRootLogin ya ke PermitRootLogin no

No PermitRootLogin

c. Ubah port mendengarkan SSH default (misalnya:8500)

Terkadang tidak disarankan untuk menggunakan port default karena sudah dikenal oleh seluruh dunia dan merupakan risiko keamanan. Adalah baik untuk mempersonalisasi port yang akan digunakan

port 8500

2. Mengamankan Boot Loader dengan kata sandi grub

Dengan mengamankan boot loader, kita dapat mencegah akses ke mode pengguna tunggal yang masuk secara otomatis sebagai root. Ini dilakukan dengan GRUB dengan mengatur kata sandi yang disimpan dalam teks biasa secara default.

Untuk sistem Debian

# grub-mkpasswd-pbkdf2

Untuk Centos

# grub2-mkpasswd-pbkdf2

3. Mendengarkan Port Jaringan

Setelah mengonfigurasi layanan jaringan, penting untuk memperhatikan port mana yang benar-benar mendengarkan pada antarmuka jaringan sistem. Setiap port yang terbuka dapat menjadi bukti adanya penyusupan.

# nmap -sT -O localhostMemulai Nmap 6.40 ( http://nmap.org ) pada 07-06-2017 23:13 Laporan pemindaian UTCNmap untuk localhost (127.0.0.1)Host aktif (latency 0,000061s).Lainnya alamat untuk localhost (tidak dipindai):127.0.0.1rDNS catatan untuk 127.0.0.1:centos-01Tidak ditampilkan:995 port tertutupPORT STATE SERVICE22/tcp open ssh25/tcp open smtp80/tcp open http111/tcp open rpcbind2049/tcp open nfs 

Untuk membuat daftar semua port terbuka dan program terkait gunakan perintah di bawah

# netstat -tulpnKoneksi Internet aktif (hanya server)Proto Recv-Q Send-Q Alamat Lokal Alamat Asing Status PID/Nama program tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0 .0.0:20048 0.0.0.0:* DENGARKAN 

4. Persempit Izin

Persempit izin untuk file dan folder sistem untuk membatasi risiko.

# chmod 700 /root
# chmod 700 /var/log/audit
# chmod 740 /etc/rc.d/init.d/iptables
# chmod 740 /sbin/iptables
# chmod -R 700 /etc/skel
# chmod 600 /etc/rsyslog.conf
# chmod 640, /etc/security/access.conf
# chmod 600 /etc/sysctl.conf

5. Memeriksa Akun untuk Kata Sandi Kosong

Setiap akun yang memiliki kata sandi kosong berarti dibuka untuk akses tidak sah kepada siapa pun di web dan itu adalah bagian dari keamanan dalam server Linux. Untuk memeriksa akun dengan kata sandi kosong, gunakan perintah di bawah ini

# cat /etc/shadow | awk -F:'($2==""){print $1}'paul

Demi keamanan, ada baiknya mengunci semua akun sandi kosong:

# passwd -l paulLocking password untuk pengguna paul.passwd:Berhasil

6. Menyetel parameter kernel

Sysctl adalah antarmuka untuk memeriksa dan mengubah parameter secara dinamis dalam sistem operasi Linux. Edit /etc/sysctl.conf file untuk mengoptimalkan parameter kernel

Sysctl adalah perintah yang digunakan untuk mengubah parameter kernel pada saat dijalankan.

# sysctl -a 
# sysctl -A 
# sysctl net.ipv4.conf.all.rp_filter 
To load settings, enter:   
# sysctl -p 

Copy-Paste konten berikut ke /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
net.ipv4.conf.default.log_martians = 1

# Disable ICMP routing redirects
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv6.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv6.conf.all.send_redirects=0

# Disables the magic-sysrq key
kernel.sysrq = 0

# Turn off the tcp_sack
net.ipv4.tcp_sack = 0

# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1

# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1 

7. Nonaktifkan Layanan yang Tidak Diinginkan

Anda perlu menghapus semua layanan dan daemon yang tidak diinginkan (layanan yang berjalan di latar belakang) dari sistem start-up yang dimulai saat boot di run level 3 .

# chkconfig --list | grep '3:on' 

Untuk menonaktifkan layanan, masukkan:

# service serviceName stop
# chkconfig serviceName off 

8. Memerlukan Otentikasi untuk Mode Pengguna Tunggal

Disarankan untuk meminta kata sandi root saat memasuki mode pengguna tunggal. Buka /etc/sysconfig/init file dan tambahkan baris:

SINGLE=/sbin/sulogin 

9. Linux yang Ditingkatkan Keamanan (SELinux)

SELinux adalah seperangkat aturan keamanan yang menentukan proses mana yang dapat mengakses file, direktori, port, dll. Setiap file, proses, direktori, dan port memiliki label keamanan khusus yang disebut konteks SELinux. Konteks hanyalah sebuah nama yang digunakan oleh kebijakan SELinux untuk menentukan apakah suatu proses dapat mengakses file, direktori atau port. Secara default, kebijakan tidak mengizinkan interaksi apa pun, jadi aturan eksplisit memberikan akses. Jika tidak ada aturan izinkan, tidak ada akses yang diizinkan.

mendapatkan kekuatan perintah memberi tahu kita mode apa SELinux berada.

Kita dapat mengubah mode SELinux menjadi enforcing dengan mengubah SELINUX=enforcing di /etc/sysconfig/selinux

Ada tiga arahan dalam file ini seperti yang dijelaskan di bawah ini.

  • Menegakkan: Kebijakan keamanan SELinux diberlakukan.
  • Permisif: SELinux mencetak peringatan alih-alih menegakkan.
  • Dinonaktifkan: SELinux sepenuhnya dinonaktifkan.

Anda dapat memeriksa status SELinux dengan perintah

# sestatus
SELinux status: disabled 

Anda melihat bahwa itu dinonaktifkan. Untuk mengaktifkannya, Anda dapat menggunakan

# setenforce enforcing 

10. Siapkan firewall dengan iptables

iptables adalah program aplikasi ruang pengguna yang memungkinkan administrator sistem untuk mengonfigurasi tabel yang disediakan oleh Linux Kernel Firewall dan rantai serta aturan yang disimpannya.

a. Tutup semua port yang Tidak Diinginkan

iptables -A INPUT -p tcp --dport PORT_NUMBER -j DROP 

b. Blokir IP yang buruk

iptables -A INPUT -s IP_ADDRESS -j DROP 

c. Blokir Koneksi ke Antarmuka Jaringan

Untuk memblokir koneksi dari alamat IP tertentu ke antarmuka jaringan tertentu, gunakan perintah

# iptables -A INPUT -i ens0 -s 6.6.6.6 -j DROP 

d. Buat daftar aturan iptables

Anda dapat melihat semua aturan iptables dengan perintah

iptables -L -n -v 

11. Memverifikasi sistem File

Semua file yang mendukung bit SUID/SGID dapat digunakan untuk aktivitas jahat, ketika file yang dapat dieksekusi SUID/SGID memiliki masalah keamanan. Semua pengguna lokal atau jarak jauh dapat menggunakan file tersebut.

a. Identifikasi biner SUID dan SGID yang tidak diinginkan

find / \( -perm -4000 -o -perm -2000 \) -print
find / -path -prune -o -type f -perm +6000 -ls 

b. Identifikasi file dunia yang dapat ditulis

find /dir -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print 

c. Identifikasi file dan folder Yatim

find /dir -xdev \( -nouser -o -nogroup \) -print 

12. Simpan /boot sebagai hanya-baca

Kernel Linux dan file terkait ada di direktori /boot yang secara default sebagai baca-tulis. Mengubahnya ke read-only mengurangi risiko modifikasi tidak sah dari file boot penting. Kita perlu mengedit /etc/fstab file dan masukkan baris di bawah ini<

LABEL=/boot     /boot     ext2     defaults,ro     1 2 

13. Tolak Semua Pembungkus TCP

Pembungkus TCP dapat menyediakan metode yang cepat dan mudah untuk mengontrol akses ke aplikasi yang terhubung dengannya. Jadi disarankan untuk memblokir semua aplikasi yang tidak digunakan dan kemudian hanya mengizinkan aplikasi yang akan digunakan.

Misalnya, kami akan memblokir semua aplikasi tetapi hanya ssh yang diotorisasi

echo "ALL:ALL" >> /etc/hosts.deny 
echo "sshd:ALL" >> /etc/hosts.allow 

14. Kunci cronjobs untuk pengguna yang tidak sah

Cron digunakan untuk mengotomatisasi pekerjaan pada waktu tertentu. Dimungkinkan untuk menentukan siapa yang mungkin dan mungkin tidak dapat menjalankan pekerjaan. Ini dikendalikan oleh penggunaan file bernama /etc/cron.allow dan /etc/cron.deny . Untuk mengunci pengguna menggunakan cron, cukup tambahkan nama pengguna di cron.deny dan untuk mengizinkan pengguna menjalankan cron tambahkan file cron.allow.

# echo ALL >>/etc/cron.deny 

15. Amankan server dari buffer overflow

Buffer overflow terjadi ketika sebuah program atau proses mencoba untuk menulis lebih banyak data ke blok memori yang panjangnya tetap, atau buffer, daripada buffer yang dialokasikan untuk disimpan. Penting untuk melindungi server Anda lagi dari serangan ini

a. Aktifkan ExecShield

Ini membantu untuk mencegah stack smashing. Biasanya, eksploitasi buffer overflow menimpa alamat pengirim sehingga fungsi akan kembali ke alamat yang dipilih penyerang. Anda perlu mengaktifkan pada kernel saat ini

sysctl -w kernel.exec-shield=1 

Anda juga dapat menambahkan baris di bawah ini ke /etc/sysctl.conf

kernel.exec-shield = 1 

b. Centang / Aktifkan ASLR

Address Space Layout Randomization adalah fitur pertahanan untuk membuat buffer overflows lebih sulit. ASLR mempersulit penyerang untuk menemukan alamat yang dituju. Anda perlu mengaktifkan Penempatan Wilayah Memori Virtual acak dengan menyetel waktu proses untuk kernel.randomize_va_space

sysctl -q -n -w kernel.randomize_va_space=2 

Tambahkan baris di bawah ini ke /etc/sysctl.conf jika belum ada

kernel.randomize_va_space = 2 

Kesimpulan

Ini adalah beberapa pertimbangan dasar bagi pengguna baru yang mencoba menjalankan server mereka sendiri. Ingatlah bahwa kerupuk selalu selangkah lebih maju; mereka terus mencari celah untuk diretas ke server Anda. Penting untuk diketahui bahwa, meskipun lebih baik terlambat daripada tidak sama sekali, langkah-langkah keamanan menurun keefektifannya semakin lama Anda menunggu untuk menerapkannya


Cent OS
  1. 7 langkah untuk mengamankan server Linux Anda

  2. Cara menginstal server DNS di RHEL 8 / CentOS 8 Linux

  3. 7 Tips Pengerasan Keamanan Teratas untuk Server CentOS 8 / RHEL 8

  1. Cara menginstal atau meningkatkan ke PHP 7 di CentOS 7 Linux Server

  2. Instal PHP Server Monitor pada CentOS 7 Linux VPS

  3. Langkah Pertama Setelah Mendapatkan CentOS VPS

  1. Buat homelab CentOS dalam satu jam

  2. Langkah-langkah keamanan lanjutan untuk Linux

  3. Perintah Linux untuk menunggu server SSH aktif