Cara Konfigurasi Firewalld di CentOS 7

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

  1. Firewalld diinstal secara default pada CentOS 7, tetapi jika tidak diinstal pada sistem Anda, Anda dapat menginstal paket dengan mengetik:
    yum install firewalld
  2. 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 jawaban not running atau tidak berfungsi. Jika tidak, Anda akan melihat running atau berfungsi.
  3. 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.

Panduan Dasar IPTables – Tip & Trik

Panduan Dasar IPtables

Tutorial kali ini Panduan Dasar Tentang IPTables yang akan memandu Anda bagaimana firewall bekerja di sistem Operasi Linux dan apa itu IPTables di Linux. Pembahasan ini akan berguna bagi para pengguna layanan VPS Murah dan Dedicated Server Indonesia dari Herza.ID.

Kunjungi juga Artikel kami tentang 10 Cara Mengamankan Server Linux Anda.

Firewall menentukan nasib paket yang masuk dan keluar dalam sistem. IPTables adalah firewall berbasis aturan dan sudah diinstal pada sebagian besar sistem operasi Linux. Secara default server linux berjalan tanpa aturan apa pun. IPTables kemudian dimasukkan dalam Kernel 2.4, dan sebelum itu disebut ipchains atau ipfwadm. IPTables adalah alat front-end untuk berbicara dengan kernel dan memutuskan paket untuk disaring.

Panduan ini dapat membantu Anda untuk ide dan perintah dasar IPTables di mana kami akan menjelaskan aturan iptables praktis yang dapat Anda gunakan dan sesuaikan untuk kebutuhan Anda.

Layanan yang berbeda digunakan untuk protokol yang berbeda seperti:

  1. iptables berlaku untuk IPv4.
  2. ip6tables berlaku untuk IPv6.
  3. arptables berlaku untuk ARP.
  4. ebtables berlaku untuk frame Ethernet

File utama IPTables adalah:

  1. /etc/init.d/iptables – skrip init untuk memulai | stop | restart dan menyimpan aturan.
  2. /etc/sysconfig/iptables – di mana Rulesets disimpan.
  3. /sbin/iptables – file binary.

Saat ini ada tiga tabel.

  1. Filter
  2. NAT
  3. Mangle

Dan ada total empat rantai (chain):

  1. INPUT: Mengatur akses masuk ke Server Anda.
  2. OUTPUT: Mengatur akses keluar dari Server Anda.
  3. FORWARD: Paket yang diteruskan ke interface lain.
  4. RH-Firewall-1-INPUT: Pengaturan kustom yang ditentukan pengguna.

Catatan: File utama di atas mungkin sedikit berbeda di Ubuntu Linux.

Cara memulai, menghentikan, dan memulai ulang Iptabe Firewall.

# /etc/init.d/iptables start
# /etc/init.d/iptables stop
# /etc/init.d/iptables restart

Untuk memulai IPTable pada boot sistem, gunakan perintah berikut.

# chkconfig --level 345 iptables on

Menyimpan aturan IPTables dengan perintah di bawah ini. Setiap kali sistem me-reboot dan me-restart layanan IPTables, aturan yang ada keluar atau direset. Di bawah perintah, save IPTables di dalam ruleset pada /etc/sysconfig/iptables secara default dan aturan diterapkan atau dipulihkan jika IPTable flush out.

# service iptables save

Memeriksa status IPTable IPTables / Firewall. Opsi “-L” (List ruleset), “-v” (Verbose) and “-n” (Menampilkan dalam format numerik).

[root@herza ~]# iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   396 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 5 packets, 588 bytes)
 pkts bytes target     prot opt in     out     source               destination

Tampilkan aturan IPTables dengan angka. Dengan bantuan argumen “–line-numbers” Anda dapat menambahkan atau menghapus aturan.

[root@herza ~]# iptables -n -L -v --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       51  4080 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 45 packets, 5384 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Flushing atau menghapus aturan IPTables. Perintah di bawah ini akan menghapus semua aturan dari tabel. Ambil cadangan aturan sebelum menjalankan perintah di atas.

[root@herza ~]# iptables -F

Menghapus atau menambahkan aturan, pertama mari kita lihat aturan di IPTables chain. Perintah di bawah ini akan menampilkan aturan dalam chain INPUT dan OUTPUT dengan nomor aturan yang akan membantu kita untuk menambah atau menghapus aturan

[root@herza ~]# iptables -L INPUT -n --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
[root@herza ~]# iptables -L OUTPUT -n --line-numbers
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Katakanlah jika Anda ingin menghapus aturan no 5 dari chain INPUT. Gunakan perintah berikut.

[root@herza ~]# iptables -D INPUT 5

Untuk memasukkan atau menambahkan aturan ke chain INPUT di antara ruleset 4 dan 5.

[root@herza ~]# iptables -I INPUT 5 -s ipaddress -j DROP

Kami baru saja mencoba untuk membahas penggunaan dasar dan fungsi IPTables untuk pemula. Anda dapat membuat aturan yang rumit setelah Anda memiliki pemahaman lengkap tentang TCP / IP dan pengetahuan yang baik tentang pengaturan Anda.