GNU/Linux >> Belajar Linux >  >> Linux

Jadikan Linux lebih kuat dengan firewall

Semua orang pernah mendengar tentang firewall, meskipun hanya sebagai alat plot dalam drama kejahatan dunia maya TV. Banyak orang juga mengetahui bahwa komputer mereka (kemungkinan) menjalankan firewall, tetapi lebih sedikit orang yang memahami cara mengontrol firewall mereka saat diperlukan.

Firewall memblokir lalu lintas jaringan yang tidak diinginkan, tetapi jaringan yang berbeda memiliki tingkat ancaman yang berbeda. Misalnya, jika Anda di rumah, Anda mungkin lebih memercayai komputer dan perangkat lain di jaringan Anda daripada saat Anda keluar di kafe lokal menggunakan WiFi publik. Anda dapat berharap komputer Anda membedakan antara jaringan tepercaya dan tidak tepercaya, atau Anda dapat belajar mengelola, atau setidaknya memverifikasi, setelan keamanan Anda sendiri.

Cara kerja firewall

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Komunikasi antar perangkat di jaringan terjadi melalui gateway yang disebut port . Port, dalam konteks ini, tidak berarti koneksi fisik seperti port USB atau port HDMI. Dalam istilah jaringan, port adalah konsep virtual yang mewakili jalur untuk jenis data tertentu untuk tiba atau berangkat dari komputer. Sistem ini bisa disebut apa saja, seperti "koneksi" atau "pintu", tetapi mereka diberi nama port setidaknya sejak 1981, dan itulah nama yang digunakan saat ini. Intinya adalah, tidak ada yang istimewa dari port apa pun; itu hanyalah cara untuk menentukan alamat tempat transfer data dapat terjadi.

Kembali pada tahun 1972, daftar nomor port (kemudian disebut "soket") diterbitkan, dan sejak itu berkembang menjadi satu set nomor port standar terkenal yang membantu mengelola jenis lalu lintas tertentu. Misalnya, Anda mengakses port 80 dan 443 setiap hari saat Anda mengunjungi situs web, karena sebagian besar orang di internet telah setuju, secara implisit atau eksplisit, bahwa data ditransfer dari server web melalui port tersebut. Anda dapat menguji teori ini dengan membuka browser web dan menavigasi ke situs web dengan port tidak standar yang ditambahkan ke URL. Misalnya, jika Anda menavigasi ke example.com:42 , permintaan Anda ditolak karena example.com tidak melayani situs web di port 42.

Jika Anda mengunjungi kembali situs web yang sama di port 80, Anda mendapatkan situs web, seperti yang diharapkan. Anda dapat menentukan port 80 dengan :80 di akhir URL, tetapi karena port 80 adalah port standar untuk lalu lintas HTTP, browser web Anda menggunakan port 80 secara default.

Saat komputer, seperti server web, mengharapkan lalu lintas di port tertentu, port terbuka untuk lalu lintas dapat diterima (dan perlu). Bahayanya adalah membiarkan port terbuka sehingga Anda tidak memiliki alasan untuk mengharapkan lalu lintas menyala, dan itulah gunanya firewall.

Instal firewalld

Ada banyak antarmuka untuk konfigurasi firewall. Artikel ini mencakup firewall , yang terintegrasi dengan Pengelola Jaringan di desktop dan firewall-cmd di terminal. Banyak distribusi Linux dikirimkan dengan alat-alat ini diinstal. Jika tidak, Anda dapat menggunakan artikel ini sebagai saran umum untuk manajemen firewall dan menerapkannya pada apa yang Anda gunakan, atau Anda dapat menginstal firewalld .

Di Ubuntu, misalnya, Anda harus mengaktifkan universe repositori, nonaktifkan default ufw firewall, lalu instal firewalld :

$ sudo systemctl disable ufw
$ sudo add-apt-repository universe
$ sudo apt install firewalld

Fedora, CentOS, RHEL, OpenSUSE, dan banyak lainnya termasuk firewalld secara default.

Terlepas dari distribusi Anda, agar firewall menjadi efektif, firewall harus aktif dan disetel untuk dimuat saat boot. Semakin sedikit Anda memikirkan tentang pemeliharaan firewall, semakin baik.

$ sudo systemctl enable --now firewalld

Pilih zona Anda dengan Network Manager

Anda mungkin terhubung ke banyak jaringan berbeda setiap hari. Anda berada di satu jaringan di tempat kerja, jaringan lain di kafe, dan jaringan lain di rumah. Komputer Anda dapat mendeteksi jaringan mana yang lebih sering Anda gunakan daripada yang lain, tetapi tidak mengetahui jaringan mana yang Anda percayai.

zona firewall berisi preset memutuskan port apa yang akan dibuka dan ditutup. Dengan menggunakan zona, Anda dapat memilih kebijakan yang paling masuk akal untuk jaringan yang Anda gunakan saat ini.

Untuk melihat daftar zona yang tersedia, buka Network Manager Connection Editor, yang ada di menu Aplikasi Anda, atau dengan nm-connection-editor & perintah.

Dari daftar koneksi jaringan, klik dua kali pada jaringan Anda saat ini.

Di jendela konfigurasi jaringan yang muncul, klik tab Umum.

Di panel Umum, klik menu tarik-turun di sebelah Firewall Zone untuk melihat daftar semua zona yang tersedia.

Anda bisa mendapatkan daftar yang sama dengan perintah terminal ini:

$ sudo firewall-cmd --get-zones

Judul zona menunjukkan apa yang ada dalam pikiran desainer mereka saat membuatnya, tetapi Anda bisa mendapatkan spesifikasi zona apa pun dengan perintah terminal ini:

$ sudo firewall-cmd --zone work --list-all
work
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  [...]

Dalam contoh ini, kerja zone dikonfigurasi untuk mengizinkan lalu lintas masuk klien SSH dan DHCPv6 tetapi menghapus lalu lintas masuk lainnya yang tidak diminta secara eksplisit oleh pengguna. (Dengan kata lain, kerja zone tidak memblokir lalu lintas respons HTTP saat Anda mengunjungi situs web, tetapi memblokir tolak permintaan HTTP pada port 80 Anda.)

Lihat setiap zona untuk membiasakan diri dengan lalu lintas yang diizinkan masing-masing zona. Yang paling umum adalah:

  • Pekerjaan: Gunakan yang ini saat berada di jaringan yang paling Anda percayai. SSH, DHCPv6, dan mDNS diizinkan, dan Anda dapat menambahkan lebih banyak sesuai kebutuhan. Zona ini dimaksudkan sebagai titik awal untuk lingkungan kerja khusus berdasarkan kebutuhan kantor harian Anda.
  • Publik: Untuk jaringan yang tidak Anda percayai. Zona ini sama dengan zona kerja, tetapi mungkin Anda tidak akan menambahkan pengecualian yang sama dengan zona kerja Anda.
  • Lepaskan: Semua koneksi yang masuk terputus tanpa ada respons yang diberikan. Ini sedekat mungkin dengan mode sembunyi-sembunyi yang bisa Anda dapatkan tanpa mematikan jaringan sepenuhnya karena hanya koneksi jaringan keluar yang dimungkinkan (bahkan pemindai port biasa dapat mendeteksi komputer Anda dari lalu lintas keluar, jadi jangan salah mengira zona ini sebagai penyelubungan. perangkat). Ini bisa dibilang zona teraman saat menggunakan WiFi publik, dan pasti yang terbaik saat Anda memiliki alasan untuk meyakini bahwa jaringan tidak bersahabat.
  • Blokir: Semua koneksi masuk ditolak dengan pesan yang menyatakan bahwa port yang diminta dilarang. Hanya koneksi jaringan yang Anda mulai yang memungkinkan. Ini adalah versi zona drop yang "ramah" karena, meskipun tidak ada port yang terbuka untuk lalu lintas masuk, port dengan tegas menolak koneksi yang belum dimulai.
  • Beranda: Gunakan ini ketika Anda mempercayai komputer lain di jaringan. Hanya koneksi masuk terpilih yang diterima, dan Anda dapat menambahkan lebih banyak sesuai kebutuhan.
  • Internal: Mirip dengan zona kerja, ini ditujukan untuk jaringan internal di mana Anda kebanyakan mempercayai komputer lain. Anda dapat membuka lebih banyak port dan layanan sesuai kebutuhan tetapi tetap mempertahankan kumpulan aturan yang berbeda dari yang Anda miliki di zona kerja Anda.
  • Tepercaya: Semua koneksi jaringan diterima. Baik untuk pemecahan masalah atau pada jaringan yang benar-benar Anda percayai.

Menetapkan zona ke jaringan

Anda dapat menetapkan zona ke koneksi jaringan apa pun yang Anda buat. Selanjutnya, Anda dapat menetapkan zona yang berbeda untuk setiap antarmuka jaringan (kabel Ethernet, WiFi, dan sebagainya) yang terhubung ke setiap jaringan.

Pilih zona yang Anda inginkan dan klik tombol Simpan untuk melakukan perubahan.

Cara termudah untuk membiasakan menetapkan zona ke antarmuka jaringan adalah dengan merawat jaringan yang paling sering Anda gunakan. Tetapkan zona rumah ke jaringan rumah Anda, zona kerja ke jaringan kerja Anda, dan jaringan publik ke jaringan perpustakaan atau kafe favorit Anda.

Setelah Anda menetapkan zona ke semua jaringan biasa, berusahalah untuk menetapkan zona ke jaringan baru berikutnya yang Anda ikuti, baik itu kafe baru atau jaringan rumah pasangan Anda. Menetapkan zona adalah cara terbaik untuk memperkuat kesadaran Anda sendiri bahwa jaringan tidak semuanya sama dan bahwa Anda tidak lebih aman daripada orang lain hanya karena Anda menjalankan Linux.

Zona default

Daripada meminta Anda untuk zona setiap kali Anda bergabung dengan jaringan baru, firewalld memberikan jaringan yang tidak dikenal sebagai zona default. Buka terminal dan ketik perintah ini untuk mendapatkan zona default Anda:

$ sudo firewall-cmd --get-default
public

Dalam contoh ini, zona publik adalah default. Anda diharapkan untuk menjaga zona publik sangat ketat, jadi ini adalah zona yang cukup aman untuk menetapkan jaringan yang tidak dikenal. Namun, Anda dapat mengatur default Anda sendiri.

Misalnya, jika Anda lebih paranoid daripada kebanyakan orang, atau jika Anda tahu bahwa Anda sering mengunjungi jaringan yang tidak dapat dipercaya, Anda dapat menetapkan zona yang sangat ketat sebagai default:

$ sudo firewall-cmd --set-default-zone drop
success
$ sudo firewall-cmd --get-default
drop

Sekarang setiap jaringan baru yang Anda ikuti akan tunduk pada aturan zona drop kecuali Anda mengubahnya secara manual ke sesuatu yang tidak terlalu membatasi.

Menyesuaikan zona dengan membuka port dan layanan

Pengembang Firewalld tidak bermaksud agar definisi zona mereka memenuhi kebutuhan semua jaringan yang berbeda dan tingkat kepercayaan yang ada. Mereka hanyalah titik awal untuk Anda gunakan dan sesuaikan.

Anda tidak perlu tahu banyak tentang firewall untuk dapat membuka dan menutup port berdasarkan jenis aktivitas jaringan yang Anda tahu Anda hasilkan.

Layanan standar

Cara termudah untuk menambahkan izin ke firewall Anda adalah dengan menambahkan layanan yang telah ditentukan. Sebenarnya, tidak ada yang namanya "layanan" sejauh yang diketahui firewall Anda, karena firewall memahami nomor port dan tipe protokol. Namun, firewalld menyediakan kumpulan port dan protokol berdasarkan standar dan konvensi.

Misalnya, jika Anda seorang pengembang web dan ingin membuka komputer di jaringan lokal sehingga kolega Anda dapat melihat situs web yang Anda buat, Anda dapat menambahkan http dan https jasa. Jika Anda seorang gamer dan Anda menjalankan server obrolan suara gumaman open source untuk serikat Anda, maka Anda akan menambahkan murmur melayani. Ada banyak layanan lain yang tersedia, yang dapat Anda lihat dengan perintah ini:

$ sudo firewall-cmd --get-services
amanda-client amanda-k5-client bacula bacula-client \
bgp bitcoin bitcoin-rpc ceph cfengine condor-collector \
ctdb dhcp dhcpv6 dhcpv6-client dns elasticsearch \
freeipa-ldap freeipa-ldaps ftp [...]

Jika Anda melihat layanan yang Anda butuhkan, tambahkan ke konfigurasi firewall Anda saat ini, misalnya:

$ sudo firewall-cmd --add-service murmur

Perintah ini membuka semua port dan protokol yang diperlukan untuk layanan tertentu dalam zona default Anda , tetapi hanya sampai Anda me-reboot komputer Anda atau memulai ulang firewall Anda. Untuk membuat perubahan Anda permanen, gunakan --permanen bendera:

$ sudo firewall-cmd --add-service murmur --permanent

Anda juga dapat mengeluarkan perintah untuk zona selain dari default Anda:

$ sudo firewall-cmd --add-service murmur --permanent --zone home

Port

Terkadang Anda ingin mengizinkan lalu lintas untuk sesuatu yang tidak ditentukan oleh layanan firewalld. Mungkin Anda sedang menyiapkan port nonstandar untuk layanan umum atau Anda perlu membuka port arbitrer.

Misalnya, mungkin Anda menjalankan perangkat lunak meja virtual open source MapTool. Karena Anda menjalankan server MapTool dan tidak ada standar industri yang mengatur port mana MapTool berjalan, Anda dapat memutuskan port apa yang digunakannya dan kemudian "melubangi" firewall Anda untuk mengizinkan lalu lintas pada port tersebut.

Prosesnya pada dasarnya sama dengan layanan:

$ sudo firewall-cmd --add-port 51234/tcp

Perintah ini membuka port 51234 ke koneksi TCP masuk di zona default Anda , tetapi hanya sampai Anda me-reboot komputer Anda atau memulai ulang firewall Anda. Untuk membuat perubahan Anda permanen, gunakan --permanen bendera:

$ sudo firewall-cmd --add-port 51234/tcp --permanent

Anda juga dapat mengeluarkan perintah untuk zona selain dari default Anda:

$ sudo firewall-cmd --add-port 51234/tcp --permanent --zone home

Mengizinkan lalu lintas melalui komputer Anda berbeda dengan membiarkan lalu lintas melalui firewall router Anda. Router Anda mungkin memiliki antarmuka berbeda untuk firewall tertanamnya sendiri (meskipun prinsipnya sama), yang berada di luar cakupan artikel ini.

Menghapus port dan layanan

Jika Anda memutuskan bahwa layanan atau port tidak lagi diperlukan, Anda dapat memulai ulang firewall untuk menghapus perubahan, kecuali jika Anda menggunakan --permanen bendera.

Jika Anda membuat perubahan permanen, gunakan --remove-port atau --remove-service bendera:

$ sudo firewall-cmd --remove-port 51234/tcp --permanent

Anda dapat menghapus port dan layanan dari zona selain zona default Anda dengan menentukan zona di perintah Anda:

$ sudo firewall-cmd --remove-service murmur --permanent --zone home

Zona khusus

Anda dapat menggunakan dan menyalahgunakan zona default yang disediakan oleh firewalld, tetapi Anda juga memiliki kebebasan untuk membuatnya sendiri. Misalnya, jika masuk akal jika Anda memiliki zona khusus untuk bermain game, Anda dapat membuatnya dan beralih ke zona tersebut hanya saat bermain game.

Untuk membuat zona kosong baru, buat zona baru bernama permainan dan muat ulang aturan firewall sehingga zona baru Anda menjadi aktif:

$ sudo firewall-cmd --new-zone game --permanent
success
$ sudo firewall-cmd --reload

Setelah dibuat dan aktif, Anda dapat menyesuaikannya dengan semua layanan dan port yang perlu Anda buka untuk game night.

Ketekunan

Mulailah memikirkan strategi firewall Anda hari ini. Mulai dengan lambat, dan bangun beberapa default waras yang masuk akal bagi Anda. Mungkin perlu waktu sebelum Anda membiasakan diri untuk memikirkan firewall dan memahami layanan jaringan mana yang Anda gunakan, tetapi dengan sedikit eksplorasi, Anda dapat memperkuat workstation Linux apa pun lingkungan Anda.


Linux
  1. Lihat koneksi jaringan server Linux Anda dengan netstat

  2. Di balik layar dengan wadah Linux

  3. Menyiapkan pengalihan port di Linux dengan ncat

  1. Memulai NetworkManager di Linux

  2. Memulai dengan firewall Linux

  3. Buat Kembar Jahat Jaringan Anda Dengan Fluxion di Kali Linux

  1. Sinkronkan Waktu Server Linux dengan Server Waktu Jaringan

  2. Linux – Bagaimana Cara Memasang Sistem File Jarak Jauh Dengan Menentukan Nomor Port?

  3. Bagaimana Memantau Penggunaan Jaringan dengan nload di Linux?