
SSH पर HTTP/HTTPS प्रॉक्सी
HTTP/HTTPS प्रॉक्सी SSH पर।
go install github.com/justmao945/mallory/cmd/mallory@latestडिफ़ॉल्ट पथ $HOME/.config/mallory.json है, प्रोग्राम शुरू करते समय सेट किया जा सकता है
mallory -config path/to/config.json
सामग्री:
id_rsa हमारी निजी कुंजी फ़ाइल का पथ है, ssh-keygen द्वारा उत्पन्न किया जा सकता हैlocal_smart गंतव्य होस्ट की स्मार्ट पहचान के साथ HTTP प्रॉक्सी प्रदान करने का स्थानीय पता हैlocal_normal local_smart के समान है लेकिन गंतव्य होस्ट की पहचान के बिना सभी ट्रैफ़िक दूरस्थ SSH सर्वर के माध्यम से भेजता हैremote SSH सर्वर का दूरस्थ पता हैblocked उन डोमेन की सूची है जिन्हें प्रॉक्सी का उपयोग करने की आवश्यकता है, अन्य कोई भी डोमेन सीधे अपने सर्वर से जुड़ेगा{
"id_rsa": "$HOME/.ssh/id_rsa",
"local_smart": ":1315",
"local_normal": ":1316",
"remote": "ssh://[email protected]:22",
"blocked": [
"angularjs.org",
"golang.org",
"google.com",
"google.co.jp",
"googleapis.com",
"googleusercontent.com",
"google-analytics.com",
"gstatic.com",
"twitter.com",
"youtube.com"
]
}
कॉन्फ़िग फ़ाइल में अवरुद्ध सूची अपडेट होने पर स्वचालित रूप से पुनः लोड हो जाएगी, और आप इसे मैन्युअल रूप से कर सकते हैं:
# पुनः लोड करने के लिए सिग्नल भेजें
kill -USR2 <mallory का pid>
# या http अनुरोध भेजकर reload कमांड का उपयोग करें
mallory -reload
localhost पोर्ट 1315 पर सेट करेंhttp_proxy और https_proxy को localhost:1316 पर सेट करेंmallory -suffix www.google.com
# इसे इंस्टॉल करें: go get github.com/justmao945/mallory/cmd/forward
# पोर्ट 20022 के माध्यम से सभी ट्रैफ़िक destination.com:22 पर अग्रेषित किया जाएगा
forward -network tcp -listen :20022 -forward destination.com:22
# आप localhost:20022 के माध्यम से destination:22 पर ssh कर सकते हैं
ssh root@localhost -p 20022
निम्नलिखित कॉन्फ़िग फ़ाइल पर विचार करें:
$ cat mallory.json
{
"id_rsa": "/tmp/id_rsa",
"local_smart": ":1315",
"local_normal": ":1316",
"remote": "ssh://[email protected]:22"
}
आप कंटेनर (zoobab/mallory) को config फ़ाइल, SSH कुंजी माउंट करके और 2 पोर्ट मैप करके चला सकते हैं:
$ docker run -v $PWD/mallory.json:/root/.config/mallory.json -p 1316:1316 -p 1315:1315 -v $PWD/.ssh/id_rsa:/tmp/id_rsa zoobab/mallory
mallory: 2020/03/30 16:51:10 main.go:22: Starting...
mallory: 2020/03/30 16:51:10 main.go:23: PID: 1
mallory: 2020/03/30 16:51:10 config.go:103: Loading: /root/.config/mallory.json
mallory: 2020/03/30 16:51:10 main.go:30: Connecting remote SSH server: ssh://[email protected]:22
mallory: 2020/03/30 16:51:10 main.go:38: Local normal HTTP proxy: :1316
mallory: 2020/03/30 16:51:10 main.go:48: Local smart HTTP proxy: :1315
मेरा उपयोग मामला SSH बैस्टियन के पीछे स्थापित Kubernetes क्लस्टर (Openshift) से कनेक्ट करना था:
$ export http_proxy=http://localhost:1316
$ export https_proxy=https://localhost:1316
$ oc login https://master.mycluster.zoobab.com:8443
Authentication required for https://master.mycluster.zoobab.com:8443 (openshift)
Username: bhenrion
Password:
Login successful.