जब भी मैं लॉगिन करता हूं, मैं आमतौर पर अपने iptables नियम चलाता हूं। टर्मिनल से मैं टाइप करता हूं;
sudo sh firewall.sh
अपनी बहन के कंप्यूटर की स्थापना करते हुए, मैं उसे कुछ बुनियादी फ़ायरवॉल सुरक्षा देना चाहता हूं। वह व्यवस्थापक के रूप में लॉग इन नहीं करेगा, बस एक मानक खाता है। मैं किसी भी पासवर्ड में टाइप किए बिना हर बार लॉग-इन करके फ़ायरवॉल स्क्रिप्ट कैसे बना सकता हूँ?
मैंने अपनी बहन के कंप्यूटर के लिए जो पटकथा लिखी है;
#!/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
मैंने उसे अपने होम फोल्डर में फ़ायरवॉल.श के रूप में रखा है और इसे निष्पादन योग्य बनाया है (फ़ाइल पर राइट क्लिक करें, और अनुमतियों के टैब में "प्रोग्राम को प्रोग्राम के रूप में निष्पादित करने की अनुमति दें") की जाँच करें।
इस स्क्रिप्ट को टर्मिनल से रूट के रूप में चलाना ठीक काम करता है।
टाइप करने के बाद;
sudo sh firewall.sh
मैंने टर्मिनल में टाइप किया
sudo iptables -L -v
और मुझे मिलता है
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
मेरे पास यह स्क्रिप्ट कैसे लॉगिन पर स्वचालित रूप से चल सकती है, या संभवतः मेरी बहनों के कंप्यूटर के लिए इन नियमों को स्थायी रूप से बचा सकती है? क्या आप कृपया कुछ विस्तृत कोड प्रदान कर सकते हैं, क्योंकि r.local पद्धति और iptables-save पर मेरा पहला प्रयास बहुत सफल नहीं रहा है। हर रिबूट पर, सभी INPUT, OUTPUT और FORWARD चेन ACCEPT पर रीसेट हो जाती हैं, जब मैं टाइप करता हूं तो कोई भी पॉलिसी नहीं हैsudo iptables -L -v
ip6tables
नियम हैं यदि आपको एक दिन v6 कनेक्टिविटी मिलती है, क्योंकि IPv6 द्वारा नियंत्रित किया जाता हैip6tables
और नहींiptables
।