Cara Menyiapkan Firewall Iptables Untuk Mengaktifkan Akses Jarak Jauh ke Layanan di Linux - Bagian 8

Cara Menyiapkan Firewall Iptables Untuk Mengaktifkan Akses Jarak Jauh ke Layanan di Linux - Bagian 8
Linux Foundation Certified Engineer - Bagian 8

Memperkenalkan Program Sertifikasi Linux Foundation

Anda akan ingat dari Bagian 1 - Tentang Iptables dari ini Lfce (Linux Foundation Certified Engineer ) Seri yang kami berikan deskripsi dasar tentang apa itu firewall: mekanisme untuk mengelola paket yang masuk dan meninggalkan jaringan. Dengan "kelola" yang sebenarnya kita maksud:

  1. Untuk mengizinkan atau mencegah paket tertentu masuk atau meninggalkan jaringan kami.
  2. Untuk meneruskan paket lain dari satu titik jaringan ke yang lain.

Berdasarkan kriteria yang telah ditentukan.

Dalam artikel ini kita akan membahas cara menerapkan pemfilteran paket dasar dan cara mengkonfigurasi firewall dengan iptables, frontend ke netfilter, yang merupakan modul kernel asli yang digunakan untuk firewalling.

Harap dicatat bahwa firewalling adalah subjek yang luas dan artikel ini tidak dimaksudkan untuk menjadi panduan yang komprehensif untuk memahami semua yang perlu diketahui tentang hal itu, tetapi sebagai titik awal untuk studi yang lebih dalam tentang topik ini. Namun, kami akan meninjau kembali subjek di Bagian 10 dari seri ini saat kami mengeksplorasi beberapa kasus penggunaan firewall di Linux yang spesifik.

Anda dapat menganggap firewall sebagai bandara internasional di mana pesawat penumpang datang dan pergi hampir 24/7. Berdasarkan sejumlah kondisi, seperti validitas paspor seseorang, atau negara asalnya (untuk menyebutkan beberapa contoh) ia mungkin, atau mungkin tidak, diizinkan masuk atau meninggalkan negara tertentu.

Pada saat yang sama, petugas bandara dapat menginstruksikan orang untuk pindah dari satu tempat bandara ke yang lain jika perlu, misalnya ketika mereka perlu melalui layanan bea cukai.

Kami mungkin menemukan analogi bandara berguna selama sisa tutorial ini. Perlu diingat hubungan berikut saat kami melanjutkan:

  1. Orang = paket
  2. Firewall = bandara
  3. Negara #1 = Jaringan #1
  4. Negara #2 = Jaringan #2
  5. Peraturan Bandara Ditegakkan oleh Petugas = Aturan Firewall

Ptables - dasar -dasarnya

Pada level rendah, kernel itu sendiri yang “memutuskan"Apa yang harus dilakukan dengan paket berdasarkan aturan yang dikelompokkan rantai, atau kalimat. Rantai ini menentukan tindakan apa yang harus diambil ketika paket cocok dengan kriteria yang ditentukan oleh mereka.

Tindakan pertama yang diambil oleh ptables akan terdiri dalam memutuskan apa yang harus dilakukan dengan paket:

  1. Menerimanya (biarkan masuk ke jaringan kami)?
  2. Menolaknya (mencegahnya mengakses jaringan kami)?
  3. Maju (ke rantai lain)?

Untuk berjaga -jaga jika Anda bertanya -tanya mengapa alat ini dipanggil ptable, itu karena rantai ini diatur dalam tabel, dengan tabel filter Menjadi yang paling baik diketahui dan yang digunakan untuk menerapkan penyaringan paket dengan tiga rantai default:

1. Itu MEMASUKKAN Rantai menangani paket masuk ke jaringan, yang ditakdirkan untuk program lokal.

2. Itu KELUARAN Rantai digunakan untuk menganalisis paket yang berasal dari jaringan lokal, yang akan dikirim ke luar.

3. Itu MAJU Rantai memproses paket yang harus diteruskan ke tujuan lain (seperti dalam kasus router).

Untuk masing -masing rantai ini ada kebijakan default, yang menentukan apa yang harus dilakukan secara default ketika paket tidak cocok dengan aturan apa pun dalam rantai. Anda dapat melihat aturan yang dibuat untuk setiap rantai dan kebijakan default dengan menjalankan perintah berikut:

# ptables -l 

Kebijakan yang tersedia adalah sebagai berikut:

  1. MENERIMA → Membiarkan paket melalui. Paket apa pun yang tidak cocok dengan aturan apa pun dalam rantai diizinkan masuk ke jaringan.
  2. MENJATUHKAN → menjatuhkan paket dengan tenang. Paket apa pun yang tidak cocok dengan aturan apa pun dalam rantai dicegah memasuki jaringan.
  3. MENOLAK → menolak paket dan mengembalikan pesan informatif. Yang ini khususnya tidak berfungsi sebagai kebijakan default. Sebaliknya, itu dimaksudkan untuk melengkapi aturan penyaringan paket.
Kebijakan Linux Iptables

Ketika datang untuk memutuskan kebijakan mana yang akan Anda terapkan, Anda perlu mempertimbangkan pro Dan kontra Dari setiap pendekatan seperti yang dijelaskan di atas-perhatikan bahwa tidak ada solusi satu ukuran untuk semua.

Menambahkan aturan

Untuk menambahkan aturan ke firewall, panggil perintah ptables sebagai berikut:

# ptables -a rantai_name kriteria -j target 

Di mana,

  1. -A Berarti Append (tambahkan aturan saat ini ke akhir rantai).
  2. rantai_name adalah input, output, atau maju.
  3. target adalah tindakan, atau kebijakan, untuk diterapkan dalam kasus ini (terima, tolak, atau jatuhkan).
  4. kriteria adalah serangkaian kondisi yang harus diperiksa paket. Itu terdiri dari setidaknya satu (kemungkinan besar lebih) dari bendera berikut. Opsi di dalam kurung, dipisahkan oleh bilah vertikal, setara satu sama lain. Sisanya mewakili sakelar opsional:
[--Protocol | -p] protokol: Menentukan protokol yang terlibat dalam aturan. [--source-port | -sport] port: [port]: Menentukan port (atau rentang port) di mana paket berasal. [--destination-port | -dport] port: [port]: mendefinisikan port (atau rentang port) yang ditakdirkan oleh paket. [--source | -s] alamat [/mask]: mewakili alamat sumber atau jaringan/topeng. [--kehijauan | -d] alamat [/mask]: mewakili alamat tujuan atau jaringan/topeng. [--State] State (didahului oleh -M negara): Mengelola paket tergantung pada apakah mereka adalah bagian dari koneksi negara, di mana negara dapat menjadi yang baru, mapan, terkait, atau tidak valid. [-di antarmuka | -i] antarmuka: Menentukan antarmuka input paket. [--antarmuka | -o] antarmuka: Antarmuka output. [--Jump | -j] target: Apa yang harus dilakukan saat paket cocok dengan aturan. 

Lingkungan pengujian kami

Mari kita rekatkan semua itu dalam 3 contoh klasik menggunakan lingkungan pengujian berikut untuk dua yang pertama:

Firewall: Debian Wheezy 7.5 nama host: dev2.Gabrielcanepa.COM IP Address: 192.168.0.15 
Sumber: Centos 7 Hostname: Dev1.Gabrielcanepa.COM IP Address: 192.168.0.17 

Dan ini untuk contoh terakhir

NFSV4 Server dan Firewall: Debian Wheezy 7.5 Nama Host: Alamat IP Debian: 192.168.0.10 
Sumber: Debian Wheezy 7.5 nama host: dev2.Gabrielcanepa.COM IP Address: 192.168.0.15 
Contoh 1: Menganalisis perbedaan antara kebijakan drop dan tolak

Kami akan mendefinisikan a MENJATUHKAN Kebijakan Pertama Untuk Ping Input ke Firewall Kami. Artinya, paket ICMP akan dijatuhkan dengan tenang.

# ping -c 3 192.168.0.15 
# ptables -input --protocol icmp -dalam -antarmuka eth0 -j drop 
Jatuhkan permintaan ping icmp

Sebelum melanjutkan dengan MENOLAK Bagian, kami akan menyiram semua aturan dari rantai input untuk memastikan paket kami akan diuji oleh aturan baru ini:

# ptables -f input # ptables -a input --protocol icmp -dalam -interface eth0 -j tolak 
# ping -c 3 192.168.0.15 
Tolak Permintaan ICMP Ping di Firewall
Contoh 2: Menonaktifkan / mengaktifkan kembali login SSH dari DEV2 ke DEV1

Kami akan berurusan dengan KELUARAN Rantai saat kami menangani lalu lintas keluar:

# ptables-output --protocol tcp--destination-port 22-out-interface eth0-jump reject 
Blokir Login SSH di Firewall
Contoh 3: Mengizinkan / mencegah klien NFS (dari 192.168.0.0/24) untuk memasang saham NFS4

Jalankan perintah berikut di server / firewall NFSV4 untuk menutup port 2049 dan 111 untuk semua jenis lalu lintas:

# ptables -f # ptables -a input -i eth0 -s 0/0 -p tcp --dport 2049 -j tolak # ptables -a input -i eth0 -s 0/0 -p tcp --dport 111 -j tolak 
Blokir port NFS di firewall

Sekarang mari kita buka port -port itu dan lihat apa yang terjadi.

# ptables -a input -i eth0 -s 0/0 -p tcp --dport 111 -j AcCET # ptables -a input -i eth0 -s 0/0 -p tcp --dport 2049 -j terima 
Buka port NFS di firewall

Seperti yang Anda lihat, kami dapat memasang bagian NFSV4 setelah membuka lalu lintas.

Memasukkan, Menambahkan dan Menghapus Aturan

Dalam contoh sebelumnya kami menunjukkan cara menambahkan aturan ke MEMASUKKAN Dan KELUARAN rantai. Jika kita ingin memasukkannya sebagai gantinya pada posisi yang telah ditentukan sebelumnya, kita harus menggunakan -SAYA (huruf besar i) beralih sebagai gantinya.

Anda perlu mengingat bahwa aturan akan dievaluasi satu demi satu, dan bahwa evaluasi berhenti (atau melompat) saat a MENJATUHKAN atau MENERIMA Kebijakan dicocokkan. Untuk alasan itu, Anda mungkin menemukan diri Anda dalam kebutuhan untuk memindahkan aturan ke atas atau ke bawah dalam daftar rantai sesuai kebutuhan.

Kami akan menggunakan contoh sepele untuk menunjukkan ini:

Periksa aturan firewall ptables

Mari kita tempatkan aturan berikut,

# ptables -i input 2 -p tcp --dport 80 -j terima 

pada posisi 2) dalam rantai input (dengan demikian bergerak sebelumnya #2 sebagai #3)

Ptables menerima aturan

Menggunakan pengaturan di atas, lalu lintas akan diperiksa untuk melihat apakah itu diarahkan ke port 80 Sebelum memeriksa port 2049.

Atau, Anda dapat menghapus aturan dan mengubah target aturan yang tersisa menjadi MENOLAK (menggunakan -R mengalihkan):

# ptables -d input 1 # ptables -nl -v --line -numbers # ptables -r input 2 -i eth0 -s 0/0 -p tcp --dport 2049 -j tolak # ptables -r input 1 -p tcp -DPOR 80 -J Tolak 
Aturan drop ptables

Terakhir, tetapi tidak kalah pentingnya, Anda perlu mengingat bahwa agar aturan firewall tetap gigih, Anda perlu menyimpannya ke file dan kemudian mengembalikannya secara otomatis saat boot (menggunakan metode pilihan pilihan Anda atau yang satu itu tersedia untuk distribusi Anda).

Menyimpan Aturan Firewall:

# iptables-save>/etc/ptables/aturan.v4 [di ubuntu] # ptables-save> /etc /sysconfig /ptables [di centos /opensuse] 

Memulihkan aturan:

# ptables-Restore < /etc/iptables/rules.v4 [On Ubuntu] # iptables-restore < /etc/sysconfig/iptables [On CentOS / OpenSUSE] 

Di sini kita dapat melihat prosedur serupa (menyimpan dan memulihkan aturan firewall dengan tangan) menggunakan file dummy yang dipanggil ptable.membuang Alih -alih yang default seperti yang ditunjukkan di atas.

# ptables-save> ptables.membuang 
Buang linux ptables

Untuk membuat perubahan ini persisten di sepatu bot:

Ubuntu: Instal eptables-fersistent paket, yang akan memuat aturan yang disimpan di /etc/ptables/aturan.v4 mengajukan.

# apt-get install pt-fersistent 

Centos: Tambahkan 2 baris berikut ke /etc/sysconfig/iptables-config mengajukan.

Ptables_save_on_stop = "ya" ptables_save_on_restart = "ya" 

OpenSuse: Daftar port yang diizinkan, protokol, alamat, dan sebagainya (dipisahkan oleh koma) di /etc/sysconfig/susefireWall2.

Untuk informasi lebih lanjut, lihat file itu sendiri, yang sangat dikomentari.

Kesimpulan

Contoh -contoh yang disediakan dalam artikel ini, sementara tidak menutupi semua lonceng dan peluit ptables, melayani tujuan menggambarkan cara mengaktifkan dan menonaktifkan lalu lintas yang masuk atau lalu lintas keluar.

Bagi Anda yang merupakan penggemar firewall, perlu diingat bahwa kami akan meninjau kembali topik ini dengan aplikasi yang lebih spesifik Bagian 10 ini Lfce seri.

Jangan ragu untuk memberi tahu saya jika Anda memiliki pertanyaan atau komentar.

Menjadi Insinyur Bersertifikat Linux