Iptables के साथ काफी आसान है। इसमें ऐसे नियम हो सकते हैं जो विशिष्ट उपयोगकर्ताओं से मेल खाते हैं, और आपको पहले से ही tor
इसकी उपयोगकर्ता आईडी के तहत चलाने के लिए सेट अप करना चाहिए ; प्रमुख लिनक्स वितरण और टोर प्रोजेक्ट द्वारा प्रदान किए गए डिब और आरपीएम पैकेज पहले से ही टोर के लिए एक उपयोगकर्ता की स्थापना करते हैं।
पूरा नमूना, प्रयोग करने योग्य iptables और टो विन्यास का पालन करें। इस फ़ायरवॉल को iptables-restore
कमांड से लोड किया जा सकता है । इस कॉन्फ़िगरेशन का अंतिम परिणाम पारदर्शी रूप से उन सभी ट्रैफ़िक को उत्पन्न करेगा, जो प्रॉक्सी को कॉन्फ़िगर करने की आवश्यकता के बिना, टो को होस्ट, के माध्यम से आगे भेजा जा रहा है। यह कॉन्फ़िगरेशन लीक-प्रूफ होना चाहिए; हालांकि आपको इसका पूरी तरह से परीक्षण करना चाहिए।
ध्यान दें कि tor उपयोगकर्ता के लिए uid (यहां, 998
) iptables द्वारा संख्यात्मक रूप में संग्रहीत किया जाता है। अपने टोर उपयोगकर्ता के लिए प्रत्येक स्थान पर सही यूआईडी का स्थान दें जो यहां दिखाई देता है।
यह भी ध्यान दें कि मेजबान के आईपी पते को पहले नियम में दिए जाने की जरूरत है ताकि आने वाले क्लैरेट और लैन ट्रैफ़िक को सीधे होस्ट को संबोधित किया जा सके (यहाँ दिखाया गया है 198.51.100.212
)। यदि आपके पास कई IP पते हैं, तो प्रत्येक पते के लिए नियम दोहराएं।
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 198.51.100.212/32 -j RETURN
-A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
-A OUTPUT -o lo -j RETURN
-A OUTPUT -m owner --uid-owner 998 -j RETURN
-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp -d 127.0.0.1 --dport 22 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPv4 REJECT INPUT: "
-A FORWARD -j LOG --log-prefix "IPv4 REJECT FORWARD: "
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 49151 -j ACCEPT
-A OUTPUT -m owner --uid-owner 998 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPv4 REJECT OUTPUT: "
COMMIT
Ssh INPUT नियम केवल कनेक्शन की अनुमति देता है यदि वे स्थानीय होस्ट के माध्यम से पहुंचते हैं, अर्थात एक टो छिपी हुई सेवा। यदि आप भी आने वाले ssh कनेक्शन को क्लैरेट के माध्यम से अनुमति देना चाहते हैं, तो हटा दें -d 127.0.0.1
।
संबंधित torrc
फ़ाइल है:
User toranon
SOCKSPort 9050
DNSPort 53
TransPort 49151
AutomapHostsOnResolve 1
इस कॉन्फ़िगरेशन के लिए आवश्यक है कि होस्ट का एक स्थिर IP पता हो। अपेक्षित उपयोग के मामलों के लिए, यह संभावना है कि आपने पहले से ही एक स्थिर आईपी पते के लिए योजना बनाई है।
और अंत में, आउटपुट!
[root@unknown ~]# curl ifconfig.me
31.31.73.71
[root@unknown ~]# host 31.31.73.71
71.73.31.31.in-addr.arpa domain name pointer cronix.sk.
[root@unknown ~]# curl ifconfig.me
178.20.55.16
[root@unknown ~]# host 178.20.55.16
16.55.20.178.in-addr.arpa domain name pointer marcuse-1.nos-oignons.net.