मैं पोर्ट्स 8006 और 8007 पर क्रमशः विशेष HTTP और HTTPS सेवाओं की मेजबानी कर रहा हूं। मैं सर्वर को "सक्रिय" करने के लिए iptables का उपयोग करता हूं; आने वाले HTTP और HTTPS पोर्ट को रूट करने के लिए:
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8006 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8007 -j ACCEPT
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8006
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8007
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8006
iptables -A OUTPUT -t nat -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-ports 8007
यह एक आकर्षण की तरह काम करता है। हालाँकि मैं एक और स्क्रिप्ट बनाना चाहूंगा जो मेरे सर्वर को फिर से निष्क्रिय कर दे; ऊपर की पंक्तियों को चलाने से पहले राज्य को iptables बहाल करना। हालाँकि मुझे इन नियमों को हटाने के लिए सिंटैक्स का पता लगाने में मुश्किल समय आ रहा है। काम करने के लिए लगता है कि केवल एक ही चीज़ है:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
लेकिन यह भी अन्य iptables नियमों को हटा देगा जो अवांछित है।
-I
के बजाय-A
के लिएACCEPT
लाइनों। ऐसा इसलिए है क्योंकि आम तौर पर, अंतिम पंक्ति (INPUT
उदाहरण के लिए श्रृंखला) एकDROP
या हैREJECT
और आप चाहते हैं कि इससे पहले आपका नियम आए।-A
नए नियम को अंतिम नियम के बाद-I
रखता है , जबकि इसे शुरू में रखता है।