Firewall yang dikonfigurasi dengan benar adalah salah satu aspek terpenting dari keamanan sistem Linux secara keseluruhan. Pada kesempatan ini kita akan membahas Cara Konfigurasi Firewalld di CentOS 7. Hal ini akan sangat berguna bagi Anda yang menggunakan layanan VPS Murah dan Dedicated Server dari Herza.ID.
FirewallD adalah solusi firewall lengkap yang mengelola aturan sistem iptables dan menyediakan antarmuka D-Bus untuk mengoperasikannya. Dimulai dengan CentOS 7, FirewallD menggantikan iptables sebagai alat manajemen firewall default pada Sistem Linux Anda.
Jika Anda lebih menyukai untuk menggunakan layanan IPTables daripada FirewallD, maka silahkan membaca Artikel kami tentang Panduan Dasar Menggunakan IPTables.
Dalam tutorial ini, kami menunjukkan kepada Anda cara mengatur firewall dengan FirewallD pada sistem CentOS 7 Anda dan menjelaskan kepada Anda konsep dasar FirewallD.
Sebelum Anda mulai dengan tutorial ini, pastikan Anda masuk ke server Anda dengan akun pengguna dengan hak sudo atau dengan pengguna root. Praktik terbaik adalah menjalankan perintah administratif sebagai pengguna sudo daripada user root.
Jika Anda tidak memiliki pengguna sudo di sistem CentOS Anda, Anda dapat membuatnya dengan mengikuti pada Artikel kami Cara Membuat User Sudo di CentOS 7.
Konsep Dasar Firewalld
FirewallD menggunakan konsep zona dan layanan, ketimbang pengaturan menggunakan chain dan rules dengan iptables. Berdasarkan zona dan layanan yang akan Anda konfigurasi, Anda dapat mengontrol lalu lintas apa yang diizinkan atau tidak diizinkan ke dan dari sistem.
FirewallD dapat dikonfigurasi dan dikelola menggunakan utilitas command-line firewall-cmd.
Zona Firewalld
Zona adalah seperangkat aturan yang ditentukan yang menetapkan lalu lintas apa yang harus diizinkan berdasarkan tingkat kepercayaan pada jaringan yang terhubung dengan komputer Anda. Anda dapat menetapkan antarmuka dan sumber jaringan ke zona.
Berikut adalah zona yang disediakan oleh FirewallD yang dipesan sesuai dengan tingkat kepercayaan zona dari tidak dipercaya menjadi tepercaya:
- drop: Semua koneksi yang masuk terputus tanpa pemberitahuan. Hanya koneksi keluar yang diizinkan.
- block: Semua koneksi masuk ditolak dengan pesan icmp-host-dilarang untuk IPv4 dan icmp6-adm-dilarang untuk IPv6n. Hanya koneksi keluar yang diizinkan.
- public: Untuk digunakan di area publik yang tidak terpercaya. Anda tidak mempercayai komputer lain di jaringan, tetapi Anda dapat mengizinkan koneksi masuk yang dipilih.
- external: Untuk digunakan pada jaringan eksternal dengan penyamaran NAT diaktifkan ketika sistem Anda bertindak sebagai gateway atau router. Hanya koneksi masuk terpilih yang diizinkan.
- internal: Untuk digunakan pada jaringan internal ketika sistem Anda bertindak sebagai gateway atau router. Sistem lain pada jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan.
- dmz: Digunakan untuk komputer yang berlokasi di zona demiliterisasi Anda yang memiliki akses terbatas ke seluruh jaringan Anda. Hanya koneksi masuk terpilih yang diizinkan.
- work: Digunakan untuk mesin kerja. Komputer lain di jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan.
- home: Digunakan untuk mesin rumah. Komputer lain di jaringan umumnya dipercaya. Hanya koneksi masuk terpilih yang diizinkan.
- trusted: Semua koneksi jaringan diterima. Percayai semua komputer di jaringan.
Layanan firewall
Layanan Firewalld adalah aturan yang telah ditentukan yang berlaku di dalam zona dan menentukan pengaturan yang diperlukan untuk memungkinkan lalu lintas masuk untuk layanan tertentu.
Firewalld Runtime dan Pengaturan Permanen
Firewalld menggunakan dua set konfigurasi yang terpisah, runtime, dan konfigurasi permanen.
Konfigurasi runtime adalah konfigurasi yang sedang berjalan, dan tidak persisten saat reboot. Ketika layanan Firewalld dimulai, ia memuat konfigurasi permanen, yang menjadi konfigurasi runtime.
Secara default, ketika membuat perubahan pada konfigurasi Firewalld menggunakan utilitas firewall-cmd, perubahan diterapkan pada konfigurasi runtime. Untuk membuat perubahan permanen, Anda perlu menggunakan opsi –permanent.
Menginstal dan Mengaktifkan FirewallD
- Firewalld diinstal secara default pada CentOS 7, tetapi jika tidak diinstal pada sistem Anda, Anda dapat menginstal paket dengan mengetik:
yum install firewalld
- Layanan Firewalld dinonaktifkan secara default. Anda dapat memeriksa status firewall dengan perintah:
firewall-cmd --state
Jika Anda baru saja menginstal atau tidak pernah diaktifkan sebelumnya, perintah akan memberikan jawabannot running
atau tidak berfungsi. Jika tidak, Anda akan melihatrunning
atau berfungsi. - Untuk memulai layanan FirewallD dan mengaktifkannya pada tipe boot:
systemctl start firewalld
systemctl enable firewalld
Konfigurasi FirewallD
Dalam panduan konfgurasi firewalld kali ini, kita akan mebahas penggunaan zona publik sebagai zona default. Jadi dalam Tutorial ini, kita tidak akan membahas zona zona lainnya pada FirewallD agar tidak perlu repot malakukan konfigurasi FirewallD tingkat lanjutan. Kita akan membuat rule untuk default-zone
tersebut dan ketika firewalld direstart, maka zona tersebut akan menjadi zona yang ditetapkan pada interface.
Tahapan selanjutnya adalah dengan membuat rule pada firewall atas layanan yang diizinkan untuk berfungsi dengan FirewallD. Dan paling pertama dan utama, adalah dengan mengizinkan layanan SSH, karena kita membutuhkan koneksi SSH untuk remote server administratif jarak jauh. Jika layanan SSH tidak diizinkan dalam firewalld, maka kita tidak dapat login ke Server.
Port default pada SSH adalah menggunakan Port 22. Jika Anda belum mengubah port tersebut dari CentOS 7, Anda dapat mengaktifkan layanan SSH hanya dengan mengetik nama layanannya seperti dibawah ini:
firewall-cmd --permanent --add-service=ssh
Jika Anda telah melakukan perubahan port SSH pada server Anda, maka Anda akan harus menentukan port baru tersebut secara eksplisit dan menghapus layanan SSH Default pada firewalld agar port 22 tidak dapat diakses oleh Publik.
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=5555/tcp
Baca juga Artikel kami mengenai 10 Cara Mengamakan Server Linux Anda. Pada Artikel tersebut, kita membahas tentang cara merubah Port SSH Default pada Sistem Linux Anda.
Hal tersebut adalah langkah awal yang perlu Anda lakukan untuk mempertahankan akses administratif ke server Anda. Tahapan selanjutnya adalah dengan menambahkan layanan lainnya yang ingin Anda gunakan dengan membuka firewall untuk layanan-layanan tersebut.
Jika Anda berencana untuk menjalankan web server HTTP konvensional, Anda akan harus mengaktifkan layanan http dengan menggunakan perintah sebagai berikut:
sudo firewall-cmd --permanent --add-service=http
Untuk mengizinkan akses SSL/TLS pada Web Server, anda harus mengizinkan traffic https
dengan menjalankan perintah ini:
sudo firewall-cmd --permanent --add-service=https
Jika anda membutuhkan akses email dengan SMTP
sudo firewall-cmd --permanent --add-service=smtp
Anda bisa melihat daftar service, kemudian anda bisa memilih apa saja yang ingin anda tambahkan seperti contoh sebelumnya. Untuk melihat list service ketik:
sudo firewall-cmd --get-services
Setelah anda selesai, anda bisa melihat semua service yang telah anda tambahkan dalam daftar rule firewall dan service mana saja yang diizinkan firewall
sudo firewall-cmd --permanent --list-all
Untuk dapat mengizinkan layanan tertentu yang menggunakan Port Custom dengan interface UDP atau TCP, Anda dapat menggunakan perintah yang kurang lebih sama seperti mengizinkan layanan SSH dengan Port Custom seperti dibawah ini:
TCP: sudo firewall-cmd --permanent --add-port=1234/tcp
UDP: sudo firewall-cmd --permanent --add-port=1234/udp
Dan jika Anda ingin mengizinkan traffic dengan rentang port lebih dari satu, maka Anda dapat menggunakan perintah dibawah ini:
sudo firewall-cmd --permanent --add-port=1001-1005/tcp
Kemudian setelah anda siap untuk menerapkan perubahan pada firewalld Anda, silahkan reload firewalld menggunakan perintah:
sudo firewall-cmd --reload
Jika semua berjalan dengan baik, jangan lupa untuk mengaktifkan firewall secara otomatis setelah system reboot.
sudo systemctl enable firewalld
Selesai, kini server anda mempunyai konfigurasi firewall untuk keamanan server dan sedikit lebih tahu bagaimana cara konfigurasi firewalld di centos 7.