Dalam posting anterior Kami melihat konfigurasi IPTables berfungsi sebagai Firewall. Sekarang kita dapat melihat bagaimana membuat skrip tersebut sehingga aturan dijalankan secara otomatis saat sistem dimulai, dan juga bagaimana kita dapat menghilangkan atau menghentikan aturan tersebut sejenak.
Sebelum melakukan skrip dan menunjukkan tampilannya, mari kita bicara sedikit tentang NAT dan konsep apa yang ingin kita lakukan dengan peralatan ini.
NAT dan Context contoh.
Ketika kita berbicara tentang NAT, kita dapat mengacaukannya dengan perutean, karena keduanya bertanggung jawab untuk menghubungkan dua jaringan yang berbeda satu sama lain. Perbedaan sebenarnya adalah bahwa perutean diterapkan untuk pergi dari satu jaringan lokal ke jaringan lain dan jaringan lain ini dapat terhubung ke router dan keluar ke Internet.
Sedangkan ketika kita berbicara tentang NAT, kita berbicara tentang perutean paket dari jaringan lokal atau pribadi ke jaringan publik atau Internet. Ini dilakukan dengan menutupi paket dengan meletakkan IP publik yang digunakannya untuk masuk ke Internet. Dengan kata lain, kita tidak membutuhkan router, karena IP publik sudah langsung dimiliki oleh komputer GNU / Linux.
Kami akan mengerjakan ini dengan slogan bahwa kami menggunakan Linux kami sebagai router / firewall untuk keluar ke Internet dari jaringan lokal. Tapi di sini dua skenario bisa muncul.
- Bahwa Linux kita berada di antara router penyedia layanan dan jaringan lokal.
Dalam hal ini, antara router dan Linux kita akan ada jaringan, dan antara Linux dan jaringan lokal akan ada jaringan lain yang berbeda. Ini berarti router kami tidak perlu melakukan NAT seperti itu, dengan perutean lalu lintas sederhana seperti yang dijelaskan di posting anterior Itu akan bagus.
- Bahwa Linux kami memiliki antarmuka yang terhubung ke jaringan lokal dan melalui antarmuka lain ia menerima secara langsung IP publik yang digunakannya untuk menavigasi.
Ini berarti Linux kita harus melakukan NAT agar paket-paketnya dapat menjangkau Internet.
Untuk keperluan laboratorium kecil ini, kami akan mengatakan bahwa Linux kami menerima IP publik secara langsung dan dengan demikian dapat menguji efek NAT.
Untuk melakukan NAT kami kemudian menggunakan sintaks
iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE
Di mana eth1 adalah antarmuka tempat kami menerima IP publik, yaitu tempat kami pergi ke Internet.
Membuat skrip iptables
Misalkan: 172.26.0.0 adalah jaringan lokal kita dan 81.2.3.4 adalah IP publik yang kita gunakan untuk mengakses Internet. (ini adalah ip statis). Saya memiliki antarmuka eth0 (jaringan lokal)
eth1 (jaringan publik).
Ini pada dasarnya terdiri dari membuat skrip yang dapat dipanggil dari /etc/init.d/firestop (misalnya). dan dari skrip ini kita dapat memulai, menghentikan atau memeriksa status konfigurasi kita, seperti yang kita lakukan dengan daemon sistem manapun.
Misalkan aturan IPTABLES saya ADALAH:
#! / bin / bash # Firewall rumah saya. # Nama file / etc / firewall_on # Oleh Jlcmux Twitter: @Jlcmux # # Kebijakan dasar. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT untuk berbagi Internet dari eth0 ke eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4 # # Izinkan koneksi masuk yang diprakarsai oleh iptables saya -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT # # Lalu lintas keluar resmi iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Penjelasan:
Skrip pada dasarnya melakukan hal berikut:
- Pertama batasi semua navigasi, koneksi dan lalu lintas. (Kebijakan Firewall Dasar)
- Kemudian buat NAT dengan tujuan eth1. menunjukkan bahwa kami memiliki ip publik statis «81.2.3.4»
- Ini membuka port yang diperlukan untuk menerima paket koneksi yang saya mulai.
- Menerima lalu lintas HTTP, HTTPS, dan DNS keluar.
Jika kita ingin menggunakan peralatan kita untuk menavigasi, kita harus mengulangi baris tersebut dan mengubah MAJU menjadi INPUT atau OUTPUT sebagaimana mestinya.
Batalkan skrip.
Sekarang kita akan membuat skrip yang menggantikan semua hal di atas dan membuat komputer bersih dari semua ini. (Untuk keperluan pengujian atau kita hanya ingin mematikan firewall).
#! / bin / bash # Firewall rumah saya. # Nama file / etc / firewall_off # Oleh Jlcmux Twitter: @Jlcmux # #Menghapus Aturan iptables -F # #Menerapkan kebijakan default (semua lalu lintas diterima) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Mengotomatiskan.
Sekarang kita harus membuat skrip di dalamnya /etc/init.d/ dan layanan dimulai secara otomatis dan kami dapat mengelolanya dengan cara yang lebih nyaman.
#! / bin / bash # Firewall rumah saya. # Nama file /etc/init.d/ firewall # Oleh Jlcmux Twitter: @Jlcmux case $ 1 mulai) / etc / firewall_on ;; berhenti) / etc / firewall_off ;; status) iptables -L ;; *) echo "Sintaks salah. Valid = /etc/init.d/ firewall start | stop | status ;; esac
Penjelasan:
Skrip terakhir ini kami masukkan /etc/init.d/ dengan nama firewall. Jadi jika kita ingin mengatur firewall kita bisa menggunakan perintah /etc/init.d/ firewall mulai. Dengan cara yang sama kita bisa menghentikannya atau melihat keadaan.
Sekarang kita akan mengedit file tersebut /etc/rc.local dan kami menempatkan sesuatu seperti: /etc/init.d/ firewall mulai untuk memulai dengan sistem.
Demikian juga. Ini adalah bagian kedua. Saya berharap ini membawa sesuatu untuk Anda semua. Selanjutnya kita melihat Proxy dan IDS.
Jika Anda menggunakan Debian, ada paket di repo (iptables-persistent) yang melakukan hal itu, ia membuang aturan saat ini di /etc/iptables/rules.v4 atau v6 tergantung pada apa yang Anda gunakan dan kemudian menerapkannya untuk Anda saat Anda mengangkat sistem.
Dalam praktiknya, untuk membersihkan konfigurasi firewall iptables konvensional (dan menggunakan NAT tidak akan begitu dari sudut pandang saya), dalam banyak kasus, aturan yang membilas dan menyetel ulang kebijakan default ke ACCEPT sudah cukup.
Tetapi secara teori, dan sejauh yang saya tahu, selain itu Anda juga perlu menghapus string non-default dan mengatur ulang penghitung. Tindakan yang harus dilakukan dengan mempertimbangkan bahwa selain "filter" ada tabel lain, (wajib membaca file "/ proc / net / ip_tables_names" untuk ini).
Omong-omong, ortodoksi mengatakan bahwa firewall harus sudah aktif sebelum jaringannya aktif. Saya tidak tahu bagaimana ini dicapai pada sistem Linux lain, tetapi pada sistem Debian, skrip dapat diadaptasi dan diatur di direktori "/etc/network/if-pre-up.d/".
Firewall yang bagus untuk semua orang. 😉
Halo, postingannya sangat bagus. Saya telah membaca seluruh 2 jilid.
Menunggu 🙂 berikutnya
Sebuah pertanyaan dari ketidaktahuan saya, kami melanjutkan dengan iptables, tetapi untuk beberapa versi kernel kami memiliki nftables, saya sudah menguji, pertanyaannya adalah, apakah nftables sesuatu yang beta sehubungan dengan iptables? Akankah iptables terus digunakan lebih lama?
Terima kasih.
nftables mencakup semua fungsi iptables, ip6tables, arptables dan ebtables, semuanya menggunakan infrastruktur baru di kernelspace dan userspace, yang memastikan kinerja yang lebih baik dan fungsionalitas yang ditingkatkan. nftables akan menggantikan iptables dan semua alat lain yang disebutkan tetapi tidak untuk saat ini, setidaknya sampai ada penggunaan nftables yang lebih luas.
posting yang sangat bagus, saya ingin membaca lebih banyak karena dijelaskan dengan sangat baik .. salam terima kasih kontribusi yang besar
Halo! Sangat bagus kedua pos tersebut.
Sebagai kontribusi yang bisa Anda tambahkan di akhir bagian ini:
"Sekarang kita akan mengedit file /etc/rc.local dan meletakkan sesuatu seperti: /etc/init.d/firestop start sehingga itu dimulai dengan sistem."
Tambahkan ini ke rc.local.
jika [-x /etc/init.d/ firewall]; kemudian
/etc/init.d/ firewall mulai
fi
Artinya, jika "firewall" memiliki izin eksekusi, jalankan, jika tidak.
Jika Anda ingin "firewall" tidak mulai, Anda hanya perlu menghapus izinnya.
Misalnya: chmod + x /etc/init.d/ firewall
untuk membuatnya berjalan di setiap startup atau ...
chmod -x /etc/init.d/ firewall
untuk menonaktifkannya sepenuhnya.
Salam!