Saya biasanya menjalankan aturan iptables saya setiap kali saya masuk. Dari terminal I ketik;
sudo sh firewall.sh
Menyiapkan komputer kakak saya, saya ingin memberinya perlindungan firewall dasar. Dia tidak akan masuk sebagai admin, hanya akun standar. Bagaimana saya bisa membuat skrip firewall dijalankan setiap kali dia masuk tanpa harus mengetikkan kata sandi?
Naskah yang saya tulis untuk komputer kakak saya berisi;
#!/bin/sh
modprobe ip_conntrack
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -I OUTPUT -p tcp --dport 80 --sport 32768:61000 -j ACCEPT
iptables -I OUTPUT -p udp --dport 53 --sport 32768:61000 -j ACCEPT
iptables -I OUTPUT -p tcp --dport 443 --sport 32768:61000 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -I OUTPUT -p icmp -j DROP
iptables -I INPUT -p icmp -j DROP
iptables -I INPUT -p udp -j DROP
iptables -I INPUT -p tcp -m tcp --syn -j DROP
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Saya telah meletakkannya di folder rumahnya sebagai firewall.sh dan mengaturnya agar dapat dieksekusi (klik kanan pada file tersebut, dan memeriksa opsi "izinkan file pelaksana sebagai program" di tab izin).
Menjalankan skrip ini dari terminal karena root berfungsi dengan baik.
Setelah mengetik;
sudo sh firewall.sh
Saya mengetik di terminal
sudo iptables -L -v
dan saya mengerti
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 DROP tcp -- any any anywhere anywhere tcpflags: FIN,SYN,RST,ACK/SYN
0 0 DROP udp -- any any anywhere anywhere
0 0 DROP icmp -- any any anywhere anywhere
Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination
0 0 DROP icmp -- any any anywhere anywhere
0 0 ACCEPT tcp -- any any anywhere anywhere tcp spts:32768:61000 dpt:https
0 0 ACCEPT udp -- any any anywhere anywhere udp spts:32768:61000 dpt:domain
0 0 ACCEPT tcp -- any any anywhere anywhere tcp spts:32768:61000 dpt:http
0 0 ACCEPT all -- any lo anywhere anywhere
Bagaimana saya bisa menjalankan skrip ini secara otomatis saat login, atau mungkin menyimpan aturan ini secara permanen untuk komputer saudara saya? Bisakah Anda memberikan beberapa kode terperinci, karena upaya pertama saya di metode rc.local dan iptables-save belum terlalu berhasil. Pada setiap reboot, semua rantai INPUT, OUTPUT dan FORWARD diatur ulang ke ACCEPT, tanpa kebijakan yang tercantum saat saya mengetiksudo iptables -L -v
ip6tables
aturan jika Anda mendapatkan konektivitas v6 suatu hari, karena IPv6 ditangani olehip6tables
dan tidakiptables
.Jawaban:
Anda mungkin ingin menggunakan
iptables-persistent
paket daripada mengacaukan skrip boot Anda. Pertama, jalankan skrip Anda untuk mengatur aturan firewall. Kedua, jalankansudo apt-get install iptables-persistent
, dan ikuti petunjuknya. Ketika diminta untuk menyimpan aturan saat ini, tekan "Ya" di kedua prompt. Sekarang, saat reboot, aturan iptables Anda akan dikembalikan.CATATAN: Jika Anda mengubah aturan setelah ini, Anda harus melakukan perintah berikut setelah perubahan:
Untuk menyimpan aturan IPv4 iptables Anda:
sudo su -c 'iptables-save > /etc/iptables/rules.v4'
Untuk menyimpan aturan IPv6 IPv6 Anda:
sudo su -c 'ip6tables-save > /etc/iptables/rules.v6'
sumber
sudo dpkg-reconfigure iptables-persistent
setelah mengubah aturan.rules.v4
ataurules.v6
file secara manual sehingga mereka diindeks pada boot berikutnya, atau segera jika Anda menjalankaniptables-restore < /etc/iptables/rules.v4
atauip6tables-restore < /etc/iptables/rules.v6
Dengan asumsi Anda memiliki aturan firewall di:
Mungkin jawaban yang paling jelas adalah membuat file bernama iptables di:
dengan konten:
dan membuatnya dapat dieksekusi menggunakan
Dengan cara ini sebelum antarmuka jaringan Anda diaktifkan aturan Anda akan dimuat.
sumber