GNU/Linux >> Belajar Linux >  >> Linux

3 cara cepat untuk mengurangi permukaan serangan Anda di Linux

Sistem Linux adalah hal yang rumit. Di luar kotak, setiap distribusi menyertakan sejumlah layanan yang dimaksudkan untuk membantu Anda menyiapkan dan menjalankan semuanya. Beberapa distribusi mengaktifkan lebih sedikit layanan secara default, dan beberapa mengaktifkan lebih banyak. Perbedaannya terletak pada kenyamanan. Beberapa distribusi mencoba membuat Anda siap dan berjalan dengan cepat, sehingga mereka memiliki serangkaian besar layanan default yang diaktifkan untuk memudahkan Anda menyiapkan, masuk, dan mengonfigurasi. Yang lain mengambil pendekatan yang berlawanan dan hampir tidak menginstal apa pun secara default.

Artikel ini adalah awal dari seri pendek, di mana kita akan berbicara sedikit tentang pengerasan, sedikit tentang segmentasi, dan akhirnya bagaimana memindai jaringan kita untuk melihat apakah kita melakukannya dengan benar. Jadi tunggu sebentar dan biarkan saya menunjukkan kepada Anda melalui beberapa lapisan pertahanan.

Instal lebih sedikit perangkat lunak

Ketika saya menginstal sistem baru, saya mencoba untuk menginstal sesedikit mungkin. Saya mulai dengan set paket dasar dan benar-benar tidak menginstal yang lain. Sangat mudah untuk menambahkan layanan setelah instalasi, jadi mengapa mempersulit prosesnya? Selain itu, jika Anda sering melakukan ini, Anda mungkin ingin menginstal dari sistem Kickstart (atau template). Jadi, Anda ingin menyiapkannya sesederhana dan seumum mungkin.

Untuk artikel ini, saya menginstal sistem dasar Red Hat Enterprise Linux (RHEL) 7.6 untuk melakukan beberapa pengujian nyata. Saya melakukan minimal selama instalasi, memilih base paket mengatur dan mengatur kata sandi, nama pengguna, dan jaringan saya. Saya juga mengaktifkan Network Time Protocol (NTP).

Identifikasi port yang terbuka

Setelah instalasi, kita dapat melihat daftar port yang terbuka. Port adalah cara layanan yang berjalan di server Anda memungkinkan sistem lain untuk terhubung dengannya. Server web, misalnya, akan mengikat port 80 dan 443 ke layanan server web. Dalam artikel ini, kami akan mengidentifikasi layanan apa yang memiliki port terbuka di penginstalan dasar Anda, dan kemudian melihat cara membuat daftar layanan dan menonaktifkan layanan yang tidak kami inginkan.

Pada sistem Red Hat Enterprise Linux 7.6, kami menggunakan ss perintah untuk melihat informasi ini. Pada sistem yang masih dikirimkan dengan netstat , Anda akan menggunakan netstat perintah.

Menjalankan ss pada sistem pengujian kami menunjukkan beberapa port terbuka:

[root@rhel76test ~]# ss -tulnp --no-header | awk '{print($1, $5, $7)}'
udp  *:68            users:(("dhclient",pid=3316,fd=6))
udp  127.0.0.1:323   users:(("chronyd",pid=2974,fd=1))
udp  ::1:323         users:(("chronyd",pid=2974,fd=2))
tcp  *:22            users:(("sshd",pid=3523,fd=3))
tcp  127.0.0.1:25    users:(("master",pid=3771,fd=13))
tcp  :::22           users:(("sshd",pid=3523,fd=4))
tcp  ::1:25          users:(("master",pid=3771,fd=14))

Sepertinya basis RHEL 7.6 tidak buruk. Perhatikan di kolom kedua, beberapa port yang terbuka menunjukkan IP dan kemudian port, dan yang lainnya memiliki * dan kemudian pelabuhan. Entri yang terlihat seperti 127.0.0.1:25 berarti mereka hanya mendengarkan di localhost. Hasil ini berarti bahwa mereka tidak dapat diakses dari jarak jauh. Layanan yang terlihat seperti *:22 berarti mereka mendengarkan di antarmuka apa pun. Demikian juga, untuk alamat IPv6, kami memiliki ::1:323 , dan :::22 . ::1 entri adalah localhost, ::: terbuka lebar.

Apa artinya semua ini adalah bahwa sistem ini hanya memiliki dua port IPv4, dan satu port IPv6, terbuka untuk dunia. dhclient service mungkin merupakan contoh yang baik dari sesuatu yang dapat kami nonaktifkan (yang akan menutup portnya), tetapi hanya jika server Anda tidak menggunakan DHCP untuk mendapatkan alamat IP-nya. Dalam kasus server pengujian saya, memang demikian.

Nonaktifkan layanan

Membuat daftar layanan dan menghentikan/menonaktifkannya relatif mudah di Red Hat Enterprise Linux 7. Kami akan menggunakan systemd untuk membuat daftar semua unit yang aktif, lalu memintanya untuk menghentikan dan menonaktifkan unit yang tidak ingin kita jalankan.

Untuk membuat daftar semua layanan yang berjalan, Anda dapat menggunakan systemctl list-units --type=service --state=running . Pada sistem pengujian saya, hasilnya menunjukkan 19 layanan yang sangat sederhana, dan sebagian besar tampaknya diperlukan. Kami akan memilih satu untuk didemonstrasikan, meskipun:

[root@rhel76test ~]# systemctl list-units --type=service --state=running
UNIT                      LOAD   ACTIVE SUB DESCRIPTION
auditd.service            loaded active running Security Auditing Service
chronyd.service           loaded active running NTP client/server
crond.service             loaded active running Command Scheduler
dbus.service              loaded active running D-Bus System Message Bus
firewalld.service         loaded active running firewalld - dynamic firewall daemon
[email protected]        loaded active running Getty on tty1
lvm2-lvmetad.service      loaded active running LVM2 metadata daemon
NetworkManager.service    loaded active running Network Manager
polkit.service            loaded active running Authorization Manager
postfix.service           loaded active running Postfix Mail Transport Agent
qemu-guest-agent.service  loaded active running QEMU Guest Agent
rhnsd.service             loaded active running LSB: Starts the Spacewalk Daemon
rhsmcertd.service         loaded active running Enable periodic update of entitlement certificates.
rsyslog.service           loaded active running System Logging Service
sshd.service              loaded active running OpenSSH server daemon
systemd-journald.service  loaded active running Journal Service
systemd-logind.service    loaded active running Login Service
systemd-udevd.service     loaded active running udev Kernel Device Manager
tuned.service             loaded active running Dynamic System Tuning Daemon

Katakanlah kita tidak ingin Postfix dimuat saat boot. Kami cukup menggunakan systemctl stop postfix , lalu systemctl disable postfix , seperti ini:

[root@rhel76test ~]# systemctl stop postfix
[root@rhel76test ~]# systemctl disable postfix
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
[root@rhel76test ~]# systemctl list-units --type=service --state=running | grep postfix

Sekarang, Anda mungkin tidak ingin menonaktifkan Postfix, tetapi Anda mengerti maksudnya.

Menutup

Jadi, begitulah. Saya belajar sesuatu hari ini:Di ​​luar kotak, Red Hat Enterprise Linux 7.6 cukup rapi dan rapi. Saya harap Anda mempelajari cara mencari dan menonaktifkan layanan untuk menurunkan permukaan serangan Anda.

Nantikan angsuran berikutnya dari seri ini, di mana saya akan berbicara tentang segmentasi jaringan dan firewall

Terima kasih telah membaca!


Linux
  1. Cara mengamankan layanan email Linux Anda dengan SSL/TLS

  2. Periksa layanan yang berjalan di Linux

  3. 4 Cara untuk Mengidentifikasi Siapa yang Masuk di Sistem Linux Anda

  1. Gunakan Linux untuk melakukan pajak Anda

  2. Lakukan petualangan di terminal Linux Anda

  3. 6 cara untuk meningkatkan profil dan potensi penghasilan sysadmin Linux Anda

  1. 5 cara untuk membagi terminal Linux Anda

  2. Cara Paling Efektif Untuk Mengurangi Laptop Overheating Di Linux

  3. Tiga cara untuk mengenkripsi data Anda dengan mudah di Linux