GNU/Linux >> Belajar Linux >  >> Linux

12 Hal yang Harus Dilakukan Setelah Menginstal Server Linux

Komputasi awan telah mengubah skenario server secara drastis. Banyak platform yang menyediakan server cloud Linux gratis dan Anda dapat menggunakan server Linux Anda dalam hitungan menit melalui platform cloud ini.

Saat Anda menjalankan server baru, terutama jika terlihat di Internet, server itu akan segera tersedia bagi orang jahat yang menjelajahi server yang terbuka untuk menemukan kesalahan konfigurasi dan kerentanan melalui skrip bot otomatis mereka.

Ada beberapa hal yang harus Anda lakukan setelah menginstal server Linux untuk memastikan server Anda tidak disusupi.

Berikut adalah tangkapan layar dari apa yang baru-baru ini dilihat Fail2ban di salah satu server saya.

212 upaya login yang buruk dan 6 Alamat IP yang diblokir. Semua lalu lintas dari orang yang tidak berwenang atau skrip yang mencoba masuk ke server saya.

Beberapa langkah awal yang penting akan membantu Anda melindungi server baru Anda dari penyusupan.

Saya telah mempertimbangkan dua distribusi server Linux paling populer di sini:Ubuntu dan CentOS/Red Hat. Silakan periksa Linux mana yang Anda jalankan.

Sebagian besar saran bersifat umum di sini dan harus berlaku untuk Linux lain kecuali disebutkan secara khusus.

Berikut adalah hal-hal yang saya sarankan Anda harus memeriksa untuk memastikan keamanan server Linux Anda. Saya telah memberikan langkah-langkah individual tetapi jika Anda ingin melakukannya dengan cepat, Saya juga telah membuat skrip yang dapat Anda jalankan dengan cepat di server baru yang Anda terapkan .

1. Pastikan pengguna non-root telah diatur

Root itu maha kuasa dan Anda tidak memerlukan izin root setiap saat.

root juga merupakan nama pengguna yang valid di hampir setiap sistem Linux. Artinya jika diaktifkan untuk autentikasi jarak jauh, separuh tugas penyerang, memperoleh nama pengguna yang valid telah selesai.

Selain itu, jika penyerang dapat masuk sebagai root, tidak diperlukan izin lebih lanjut untuk melakukan apa pun pada sistem.

Untuk alasan ini, yang terbaik adalah masuk sebagai pengguna non-root dan menonaktifkan login root untuk akses jarak jauh menggunakan SSH (dijelaskan nanti).

Bagaimana melakukannya?

Saya berasumsi bahwa Anda masuk sebagai root di sistem Anda.

Tambahkan pengguna baru dengan perintah useradd. Ganti dengan nama pengguna pilihan Anda.

useradd <username>

Siapkan kata sandi dengan perintah passwd untuk pengguna yang baru ditambahkan:

passwd <username>

2. Pastikan pengguna non-root memiliki izin sudo

Karena Anda akan masuk ke akun ini dari jarak jauh menggunakan Secure Shell (SSH), Anda pasti ingin dapat melakukan aktivitas istimewa yang memerlukan akses root. Ini berarti akun harus memiliki izin sudo.

Bagaimana melakukannya?

Proses untuk membuat pengguna sudo di Ubuntu dan CentOS serupa, tetapi grup tempat Anda akan menambahkan pengguna berbeda.

Anda harus login sebagai root untuk melakukan langkah ini.

Di CentOS dan Red Hat , wheel group adalah grup standar yang digunakan untuk memberikan izin sudo kepada pengguna. Tambahkan pengguna ke grup ini dengan perintah usermod:

usermod -aG wheel <username>

Ubuntu menggunakan sudo grup untuk mengelola pengguna sudo.

usermod -aG sudo <username>

3. Mengaktifkan otentikasi SSH berbasis kunci

Penting untuk mengaktifkan otentikasi berbasis kunci untuk SSH agar berfungsi saat kami menonaktifkan otentikasi berbasis kata sandi.

Kata sandi yang diretas, dipaksakan, atau disusupi adalah cara yang sangat umum bagi pelaku jahat untuk mendapatkan akses ke sistem. Spear phishing, email spam yang sangat bertarget yang membujuk pengguna yang tidak curiga untuk memberikan kredensial, hanyalah salah satu metode umum untuk mendapatkan kredensial.

Jika seseorang mendapatkan nama pengguna dan sandi Anda di sistem yang mengaktifkan autentikasi berbasis kunci dan otentikasi berbasis kata sandi dinonaktifkan untuk akses jarak jauh melalui SSH, kata sandi yang dicuri itu tidak akan lagi membuat mereka mengakses server itu.

Dengan mengaktifkan otentikasi berbasis kunci dan pada langkah selanjutnya menonaktifkan otentikasi berbasis kata sandi, Anda telah sangat mengurangi kemungkinan SSH digunakan untuk melawan Anda. Ini adalah salah satu cara dasar untuk mengamankan server SSH.

Bagaimana melakukannya?

Anda sudah mengaktifkan SSH di server Anda, saya kira. Yang perlu Anda lakukan adalah membuat kunci SSH di komputer pribadi Anda (dari mana Anda akan masuk ke server).

Setelah Anda memiliki kunci SSH, Anda harus menambahkan kunci publik ke otor_keys di server kami untuk pengguna non-root.

Perhatian ! Jangan kehilangan kunci ssh dari komputer pribadi Anda. Buat cadangan kunci-kunci ini. Jika nanti Anda menonaktifkan autentikasi berbasis sandi dan kehilangan kunci SSH, Anda akan terkunci dari server Anda sendiri.

4. Pastikan SSH diizinkan melalui firewall ufw

Sebelum Anda mengaktifkan firewall di sistem Anda, Anda harus memastikan bahwa SSH diizinkan. Jika tidak, Anda mungkin terkunci dari sistem jika mengaksesnya dari jarak jauh.

Bagaimana melakukannya?

Ubuntu menggunakan Uncomplicated Firewall (ufw), dan CentOS/Red Hat menggunakan firewalld.

Di CentOS/Red Hat , gunakan perintah firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

Di Ubuntu, gunakan perintah ufw seperti ini:

sudo ufw allow ssh

5. Aktifkan firewall (hanya setelah mengizinkan SSH)

Firewall memastikan hanya lalu lintas yang Anda izinkan secara khusus yang dapat mengalir ke server Anda. Jika pelaku jahat mendapatkan malware di server Anda dan mencoba membuatnya berkomunikasi melalui port yang tidak diizinkan, atau jika layanan diaktifkan secara tidak sengaja, layanan tersebut tidak dapat digunakan untuk menyusupi server Anda atau membahayakannya lebih lanjut.

Bagaimana melakukannya?

Pada sistem CentOS/Red Hat, aktifkan layanan firewalld systemd:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Di Ubuntu, gunakan perintah ini:

sudo ufw enable

6. Setel SSH agar tidak menampilkan spanduk

Salah satu cara penyerang dapat membahayakan server Anda adalah melalui bug di perangkat lunak yang menjalankan layanan Anda. Spanduk dapat menampilkan informasi tentang versi OpenSSH atau sistem operasi yang Anda jalankan. Tidak ada gunanya memberikan informasi kepada orang jahat. Buat mereka bekerja untuk itu!

Bagaimana melakukannya?

Ini adalah perilaku default di CentOS/ Red Hat bukan untuk menampilkan spanduk sehingga tidak diperlukan tindakan.

Di Ubuntu, Anda dapat menggunakan:

sudo echo "DebianBanner no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

7. Nonaktifkan semua penerusan SSH

Meskipun tidak jarang bagi administrator untuk menggunakan penerusan SSH untuk mengenkripsi lalu lintas yang mungkin melewatkan teks yang jelas, jika Anda tidak menggunakannya, Anda harus mematikannya. Penerusan dapat digunakan oleh aktor jahat untuk mengenkripsi lalu lintas sehingga lebih sulit bagi Anda untuk melihat, atau untuk mendapatkan lalu lintas yang seharusnya diblokir untuk lewat menggunakan port dan layanan resmi.

Bagaimana melakukannya?

Pada CentOS/Red Hat, sebuah dd berikut ini ke /etc/ssh/sshd_config :

DisableForwarding yes

Di Ubuntu, tambahkan DisableForwarding yes ke 10-my-sshd-settings.conf berkas:

sudo echo "DisableForwarding yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

8. Nonaktifkan login root melalui SSH

Ada pengguna root di hampir setiap sistem Linux. Risiko mengizinkan akun tersebut menggunakan SSH ada dua.

  1. Nama pengguna diketahui dan sering dicoba oleh orang jahat.
  2. Jika penyerang masuk sebagai root, dia memiliki akses sistem penuh.

Menonaktifkan penggunaan akun root untuk koneksi SSH meniadakan kedua risiko tersebut.

Bagaimana melakukannya?

Di CentOS/Red Hat , cari baris PermitRootLogin yes di /etc/ssh/sshd_config dan ubah menjadi:

PermitRootLogin no

Di Ubuntu, tambahkan PermitRootLogin no ke 10-my-sshd-settings.conf berkas:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

9. Nonaktifkan otentikasi SSH berbasis kata sandi

Sebelum menonaktifkan autentikasi sandi di SSH, pastikan Anda telah mengonfigurasi dan menguji autentikasi berbasis kunci seperti yang disebutkan pada langkah 3.

Menonaktifkan autentikasi berbasis kata sandi akan memblokir pelaku jahat yang mencoba menebak kata sandi Anda atau yang secara sosial telah merekayasa Anda untuk memasukkan kredensial Anda atau mencurinya dengan cara apa pun agar tidak masuk ke server Anda menggunakan SSH.

Penyerang harus memiliki kunci publik dan pribadi Anda untuk masuk ke server Anda.

Bagaimana melakukannya?

Di CentOS/Red Hat , cari baris PasswordAuthentication yes di /etc/ssh/sshd_config dan ubah menjadi:

PasswordAuthentication no

Di Ubuntu , tambahkan PasswordAuthentication no ke 10-my-sshd-settings.conf berkas:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

10. Abaikan rhost

rhosts dikaitkan dengan rsh, protokol lama yang digantikan oleh shell aman. Jika pengguna mencoba membuat rhosts yang berbahaya file, pengaturan ini secara eksplisit mengabaikannya.

Bagaimana melakukannya?

Di CentOS/Red Hat , cari baris #IgnoreRhosts yes di /etc/ssh/sshd_config dan ubah menjadi:

IgnoreRhosts yes

Di Ubuntu , tambahkan IgnoreRhosts yes ke 10-my-sshd-settings.conf berkas:

sudo echo "IgnoreRhosts yes" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

11. Instal fail2ban dan konfigurasikan untuk melindungi SSH

Fail2ban mengawasi file log untuk layanan yang dikonfigurasi seperti SSH dan memblokir Alamat IP pengguna jahat agar tidak terhubung ke server Anda setelah sejumlah upaya untuk jangka waktu tertentu.

Jika penyerang melakukan lebih dari 5 upaya yang gagal dalam periode tiga jam, Alamat IP-nya akan diblokir selama 12 jam, misalnya.

Fail2ban juga dapat dikonfigurasi untuk melindungi layanan lain seperti situs web yang didukung oleh server web nginx atau server web Apache.

Bagaimana melakukannya?

Anda dapat mengikuti panduan terperinci kami tentang penggunaan Fail2Ban.

12. Konfigurasikan pembaruan keamanan otomatis (untuk Red Hat dan CentOS)

Seperti disebutkan sebelumnya, layanan usang dengan eksploitasi dapat membiarkan penyerang masuk ke server Anda tanpa harus masuk jika kerentanannya cukup serius! Sangat penting untuk menerapkan pembaruan keamanan dengan cepat untuk mengurangi risiko ini.

Bagaimana melakukannya?

Untuk penginstalan server Ubuntu default, pembaruan keamanan otomatis diaktifkan sehingga tidak ada tindakan yang diperlukan terkait pembaruan.

Untuk mengonfigurasi pembaruan otomatis pada CentOS / Red Hat, Anda harus menginstal aplikasi bernama dnf-automatic dan mengaktifkan timer untuknya menggunakan perintah di bawah ini:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

Anda dapat memeriksa timer dengan menjalankan:

sudo systemctl status dnf-automatic.timer

Cari "loaded" di bawah baris Loaded:dan "active" di bawah Active:line.

Mungkin ada lebih banyak atau lebih sedikit langkah tergantung pada selera pribadi Anda dan apa yang biasanya Anda siapkan untuk server Anda.

Skrip Bonus:10 Detik Pertama di Server Linux

Seperti yang dijanjikan, inilah skrip yang saya tulis yang melakukan semua langkah di atas yang saya sebutkan setelah Anda mengatur dan mengonfigurasi pengguna non-root untuk otentikasi berbasis kunci.

Script dapat dijalankan di Ubuntu 20.04 dan CentOS/Red Hat 8.

Harap dicatat bahwa Anda tidak boleh menjalankan skrip shell acak yang diunduh dari internet secara membabi buta, tidak peduli seberapa besar Anda mempercayai sumber skrip. Anda harus membaca skrip dan mencoba memahami apa fungsinya.

Seluruh skrip adalah open source dan tersedia untuk semua orang dan dapat dilihat di sini. Anda dapat mengunduh, membaca, dan kemudian menjalankan skrip bash.

Berikut screenshot setelah dijalankan di server Ubuntu 20.04.

Lihat, betapa mudahnya Anda menyelesaikan beberapa langkah dasar untuk mengamankan build server baru Anda di CentOS, Red Hat, atau Ubuntu dengan menjalankan hanya satu skrip!

Anda juga dapat memberikan masukan tentang skrip atau fitur permintaan.

Kesimpulan

Ini hanyalah beberapa pemeriksaan keamanan yang sangat mendasar tetapi sesuatu yang harus Anda lakukan setelah menginstal server Linux Anda.

Melakukan hal-hal ini secara manual di sejumlah server bisa menyakitkan dan memakan waktu yang tidak perlu. Di sinilah Anda dapat memanfaatkan skrip dan menggunakan skrip '10 detik pertama di server Linux' atau membuat skrip Anda sendiri.

Ini adalah beberapa rekomendasi saya. Bagaimana dengan kamu? Apakah Anda memiliki sesuatu untuk ditambahkan ke daftar ini? Berikan saran Anda di bagian komentar.

Penulis Ted LeRoy adalah Arsitek Keamanan Perusahaan yang menyediakan berbagai informasi dan panduan keamanan fisik untuk bisnis.

Linux
  1. 9 hal yang harus dilakukan dalam 10 menit pertama Anda di server Linux

  2. Apa yang harus dilakukan setelah menginstal Arch Linux?

  3. Perintah Linux untuk menunggu server SSH aktif

  1. Cara SSH di Linux dari Android

  2. Cara Mengatur SSH Tanpa Kata Sandi di Linux

  3. 21 Hal Terbaik yang Harus Dilakukan Setelah Menginstal Fedora Linux 37

  1. Hal yang harus dilakukan Setelah Menginstal Ubuntu 18.04 dan 19.10

  2. Hal-hal yang harus dilakukan setelah menginstal Ubuntu 20.04 Focal Fossa Linux

  3. Menginstal GDAL di Linux Ubuntu Server?