ufw से iptables-persistent में स्थायित्व और प्रवासन
नमस्ते, मैं अक्षम हूँ।
अब तक, मैं ufw का उपयोग कर रहा था, जो आसानी से FW सेटिंग्स को कॉन्फ़िगर कर सकता है, लेकिन मैं इसे pf.conf की तरह कॉन्फ़िगरेशन स्तर पर प्रबंधित करना चाहता था ताकि इसे माइग्रेट करना आसान हो, इसलिए मैंने iptables-persistent स्थापित किया। ऐसा लगता है कि pf का उपयोग करने के लिए एक कर्नेल पैच भी है, लेकिन इसे जबरदस्ती उपयोग करना सही नहीं है, और यह iptables से भागने जैसा भी होगा, इसलिए मैंने इसे लागू किया।
स्थापना
iptables पहले से ही स्थापित होना चाहिए, इसलिए मैं केवल iptables-persistent स्थापित करूँगा। वैसे, ufw स्वचालित रूप से हटा दिया जाएगा क्योंकि यह विरोध करता है, इसलिए पहले से नियमों की जाँच करना सुनिश्चित करें।
sudo apt install iptables-persistent
netfilter-persistent का न्यूनतम उपयोग
वर्तमान नियमों को /ets/iptables/ के तहत सहेजने के लिए
sudo netfilter-persistent save
वर्तमान /etc/iptables/ सेटिंग्स का उपयोग करके पुनः लोड करने के लिए
sudo netfilter-persistent reload
वैसे, यदि आप reload किए बिना save करते हैं, तो यह वर्तमान नियमों को सहेज लेगा और आपके द्वारा लिखी गई सेटिंग्स को हटा देगा, इसलिए सावधान रहें।
सेटिंग्स
सेटिंग्स कुछ इस तरह हो गईं। iptables में, टिप्पणियाँ और नई लाइनें सभी save के साथ उड़ जाती हैं, जो काफी कठिन है...
# cat rules.v4
# Generated by iptables-save v1.8.9 (nf_tables) on Sat Oct 11 16:27:52 2025
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [18:1900]
:TCP - [0:0]
:UDP - [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i 127.0.0.1/32 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
-A INPUT -i wg0 -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable
COMMIT
# Completed on Sat Oct 11 16:27:52 2025
अनुमति नियमों के लिए, यह मूल रूप से स्थानीय और WireGuard इंटरफ़ेस के लिए अनुमति देता है। मैंने इसे मूल रूप से Arch Wiki से कॉपी किया है।
सरल स्टेटफुल फ़ायरवॉल - ArchWiki
ऐसा इसलिए है क्योंकि यदि आप -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT नहीं जोड़ते हैं, तो उदाहरण के लिए, curl करने पर प्रतिक्रिया वापस नहीं आएगी, इसलिए स्पष्ट रूप से स्थापित कनेक्शनों को एक अलग नियम में विभाजित करना आवश्यक लगता है। मुझे फिर से एहसास हुआ कि pf इतना शक्तिशाली है क्योंकि यह इस प्रकार के स्टेट मैनेजमेंट को भी अच्छी तरह से संभालता है, और यह एक ऐसा दिन था जब मैं फिर से pf को सहलाना चाहता था।
फिर मिलेंगे।
वैसे, IPv6 नहीं है।
# cat rules.v6
# Generated by ip6tables-save v1.8.9 (nf_tables) on Sat Oct 11 17:37:50 2025
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Sat Oct 11 17:37:50 2025
धन्यवाद।