โหลดซ้ำได้ / รีสตาร์ทบน Ubuntu 18.04


16

ฉันมีปัญหากับ iptables บน Ubuntu 18.04 ก่อนหน้านั้นฉันเคยใช้กับ Centos 7 และ Red Hat และฉันสามารถรีสตาร์ทด้วย

systemctl restart iptables

แต่บน Ubuntu มันใช้งานไม่ได้ ฉันไม่พบ iptable ภายใต้init.dทั้งสอง

ใครสามารถช่วยฉันได้ฉันจะรีสตาร์ทหรือโหลดใหม่บน Ubuntu 18.04 ได้อย่างไร


ดังนั้น Ubuntu 1804 จึงลบ iptables-save ออกจากการติดตั้งเริ่มต้น? ฉันเคยใช้วัน serval เพื่อศึกษาวิธีการใช้ iptables-save จากนั้นจะหายไปจากการติดตั้งเริ่มต้น WTF? ดังนั้นเคอร์เนล linux syscall ที่ฉันควรใช้เพื่อให้ได้ผลเช่นเดียวกับ iptables-save ในกรณีที่อูบุนตู 2004 ลบ ufw จากการติดตั้งเริ่มต้น?
ชายทองสัมฤทธิ์

คำตอบ:


31

หากคุณต้องการให้ไฟร์วอลล์ Ubuntu ทำงานในลักษณะเดียวกันกับ RedHat / Fedora ใน Ubuntu 18.04 คุณอาจต้องการสิ่งเหล่านี้:

sudo apt install iptables-persistent netfilter-persistent

จากนั้นแก้ไขกฎใน /etc/iptables/rules.v[46]

คำสั่งอื่น ๆ ที่อาจมีประโยชน์:

netfilter-persistent save
netfilter-persistent start

iptables-save  > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

iptables-restore  < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

systemctl stop    netfilter-persistent
systemctl start   netfilter-persistent
systemctl restart netfilter-persistent

แพคเกจทั้งสองมีความคล้ายคลึงกัน แต่มีฟังก์ชั่นที่แตกต่างกันเล็กน้อย หากคุณติดตั้งเพียงอย่างเดียวiptables-persistentคุณจะไม่ได้รับไฟล์ข้อกำหนดบริการสำหรับการจัดการที่ถูกต้องใน systemd เช่น/lib/systemd/system/netfilter-persistent.service

หากคุณติดตั้งเพียงอย่างเดียวnetfilter-persistentคุณจะพบว่ากฎนั้นใช้ไม่ถูกต้องในการบู๊ตตาม README

netfilter-persistent and its plugins
------------------------------------

netfilter-persistent does no work on its own. You need the accompanying
plugins (for example, iptables-persistent) to load and save filter rules.

However, commands are run from netfilter-persistent. For example, to save
all filter rules:

   netfilter-persistent save

or to load them:

   netfilter-persistent start

For more details, see `man netfilter-persistent`.

The system service will try to load rules at startup if enabled, but by
default it will not flush rules at shutdown. This behaviour can be changed
by editing /etc/default/netfilter-persistent.

afaict netfilter-persistent saveจะอัปเดต/etc/iptables/rules.v4/6ด้วยซึ่งหากถูกต้องฉันคิดว่าiptables-save > /etc/iptables/rules.v4/6ไม่จำเป็นเช่นกัน
gilad mayani

นั่นเป็นความจริง แต่คำสั่งเพิ่มเติมถูกรวมไว้เพื่อความสมบูรณ์ ส่วนตัวฉันไม่เคยใช้netfilter-persistent saveคำสั่งเพราะมันมีความคิดเห็นและไม่เป็นศูนย์เคาน์เตอร์
ThankYee

2

ในการกระจายที่ใหม่กว่าปกติแล้วคุณจะมีส่วนหน้าเพื่อกำหนดค่าและจัดการไฟร์วอลล์ ที่นิยมมากที่สุดวันนี้ufwและและอาจfirewalld shorewallส่วนหน้าเหล่านั้นยังระมัดระวังในการเพิ่มกฎiptablesและiptablesสามารถข้ามสคริปต์หรือดีกว่าที่จะบอกว่าควรข้ามเนื่องจากส่วนหน้าจะไม่รับการเปลี่ยนแปลงของคุณที่คุณได้ทำกับiptablesคำสั่งโดยตรง

สำหรับ Ubuntu 18.04 ดูเหมือนว่าfirewalldจะเป็นค่าเริ่มต้นที่ufwติดตั้ง แต่ไม่ได้ใช้งาน

root@localhost:~# firewall-cmd --state 
running
root@localhost:~# ufw status
Status: inactive

ดังนั้นแทนที่จะสร้างiptablesกฎความสอดคล้องคุณควรใช้ส่วนหน้าเหล่านี้เพื่อสร้างการกำหนดค่าไฟร์วอลล์ของคุณ

ฉันไม่คุ้นเคยufwแต่คุณจะพบข้อมูลที่นี่ด้วย askubuntu หรือที่อื่นบนอินเทอร์เน็ต
firewalldมาพร้อมกับ GUI ( firewall-config) firewall-cmdและเครื่องมือบรรทัดคำสั่ง
ด้วยfirewalldคุณมีตัวเลือกในการเพิ่มกฎโดยไม่ต้องใช้มันตอนนี้ ( ถาวร ) และใช้มันหลังจากไฟร์วอลล์โหลดซ้ำเท่านั้น หรือคุณสามารถเพิ่มลงในการกำหนดค่ารันไทม์ของคุณทดสอบและเพิ่มลงในการกำหนดค่าถาวรของคุณ
หากต้องการโหลดซ้ำเช่นการกำหนดค่าถาวรที่เพิ่มเข้ามาในกฎการทำงานของคุณคุณจะต้องป้อนคำสั่งดังต่อไปนี้หรือทำการคลิกที่เกี่ยวข้องใน GUI

firewall-cmd --reload

มันอาจดูซับซ้อนกว่าเล็กน้อยในการมองแวบแรกเนื่องจากfirewalldมีการติดตามโซนและแนวคิดลูกโซ่ แต่ก็อย่างบูรณาการกับNetworkManagerเรือ GUI ที่ ...
ที่ดีจุดเริ่มต้นที่จะได้คุ้นเคยกับมันเป็นที่นี่


2
นั่นไม่ได้ตอบคำถาม
Panther

อาจใช้งานได้ แต่ไม่สามารถทำงานอัตโนมัติโดยใช้แอพพลิเคชั่นส่วนหน้าสำหรับ DevOps
Lance Kind

สำหรับ Ubuntu 18.04 ดูเหมือนว่า firewalld ไม่ได้ติดตั้งตามค่าเริ่มต้น
Rockallite

1

คุณสามารถตรวจสอบเนื้อหาของแพ็คเกจด้วย:

dpkg -L iptables-persistent

จากนั้นคุณจะพบว่าคำสั่งต่อไปนี้ถูกต้อง:

/etc/init.d/netfilter-persistent restart

0

ใน Ubuntu 1804 เพื่อให้สามารถคงอยู่ให้ใช้คำสั่ง: iptables-save> /etc/iptables/rules.v4

หรือเพียงแค่เพิ่มบรรทัด iptables ด้วยมือลงในไฟล์: /etc/iptables/rules.v4


-2

Debian / Ubuntu ไม่มีสคริปต์ init สำหรับ iptables (ไม่เหมือนกับ fedora / RHEL / Centos)

คุณมี e เขียนสคริปต์หรือดูiptables รีเซ็ตเมื่อเซิร์ฟเวอร์รีบูต

อีกวิธีหนึ่งคือใช้ UFW https://help.ubuntu.com/community/UFW

หรือไฟร์วอล

เราจะเปลี่ยน iptables ด้วย firewalld ใน ubuntu 16.04 ได้อย่างไร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.