ฉันทำการเปลี่ยนแปลงไฟล์ iptables config /etc/iptables/filter
ในอูบุนตูและต้องการโหลดซ้ำ ฉันอ่าน man page และ googled ด้วย แต่หาข้อมูลไม่พบ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.
ฉันทำการเปลี่ยนแปลงไฟล์ iptables config /etc/iptables/filter
ในอูบุนตูและต้องการโหลดซ้ำ ฉันอ่าน man page และ googled ด้วย แต่หาข้อมูลไม่พบ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.
คำตอบ:
วิธีที่ง่ายที่สุดคือการรีบูท (เช่นถ้าด้านล่างไม่ทำงานรีบูตตรวจสอบว่ามีการเปลี่ยนแปลงหรือไม่)
วิธีที่สองที่ง่ายที่สุดคือการรีสตาร์ท daemons โดยใช้การกำหนดค่า iptables (google: restart daemon ubuntu)
ตัวอย่าง (ขึ้นอยู่กับการกำหนดค่าของคุณ):
/etc/init.d/iptables restart
/etc/init.d/networking restart
/etc/init.d/firewall restart
โดยปกติกฎไฟร์วอลล์ของคุณจะอยู่ในไฟล์ปรับแต่ง /etc/iptables.firewall.rules
หากต้องการเปิดใช้งานกฎที่กำหนดไว้ในไฟล์ของคุณคุณต้องส่งกฎเหล่านั้นไปที่iptables-restore
(คุณสามารถใช้ไฟล์อื่นได้หากต้องการ):
sudo iptables-restore < /etc/iptables.firewall.rules
และคุณสามารถตรวจสอบว่าพวกเขาเปิดใช้งานด้วย:
sudo iptables -L
หากคุณต้องการเปิดใช้งานกฎเดียวกันทุกครั้งที่คุณบูตคอมพิวเตอร์ให้สร้างไฟล์นี้:
sudo nano /etc/network/if-pre-up.d/firewall
ด้วยเนื้อหานี้:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules
และให้อนุญาตการดำเนินการ:
sudo chmod +x /etc/network/if-pre-up.d/firewall
หวังว่ามันจะช่วยคุณ =)
ไฟล์ตัวอย่างสำหรับ/etc/iptables.firewall.rules
:
*filter
# Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT
# Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allow SSH connections
#
# The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
# Allow ping
-A INPUT -p icmp -j ACCEPT
# Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP
COMMIT
/etc/iptables.firewall.rules
แต่sudo iptables-restore < /etc/iptables/rules.v4
ได้ผลกับฉัน
หากคุณดำเนินการตามกฎแล้วพวกเขากำลังทำงานอยู่และไม่จำเป็นต้องโหลดซ้ำ ในกรณีที่คุณมีไฟล์การกำหนดค่า แต่มันไม่ได้ถูกดำเนินการอย่างที่ดีที่สุดที่ฉันเคยเห็นคือการใช้iptables-apply
(นามสกุล iptables)
iptables-apply -t 60 your_rules_file
การดำเนินการนี้จะใช้กฎเป็นเวลา 60 วินาที (10 เป็นค่าเริ่มต้น) และเปลี่ยนกลับหากคุณไม่ยืนยัน สิ่งนี้จะช่วยคุณในกรณีที่คุณถูกโยนออกจากระบบเนื่องจากกฎ (เช่นถ้าคุณใช้งานผ่าน ssh)
คุณสามารถใช้สิ่งต่อไปนี้แทน:
iptables-restore < your_rules_file; sleep 60; iptables-restore < clean_rules
sudo ufw reload
จะทำการรีโหลดไฟร์วอลล์และกฎของมัน
หากคุณต้องการโหลด IPtables ใหม่เพื่อตรวจสอบการเปลี่ยนแปลงที่คุณเพิ่งทำ คุณสามารถรีสตาร์ท Apache ด้วยบรรทัดคำสั่งด้านล่าง:
/etc/init.d/apache2 หยุด
/etc/init.d/apache2 เริ่มต้น
คำสั่งเหล่านี้อาจแตกต่างกันไปขึ้นอยู่กับรสนิยมของ Ubuntu และการแก้ไขในที่สุดที่อาจเกิดขึ้นก่อนหน้านี้
หวังว่านี่จะช่วยได้
ปิแอร์