প্রক্সিটিউনেল এবং এনজিনেক্স সহ এইচটিটিপিএসের মাধ্যমে এসএসএইচ


15

আমি এনজিএনএক্স ব্যবহার করে https সংযোগের উপর একটি সেটআপ করার চেষ্টা করছি। আমি কোনও কাজের উদাহরণ খুঁজে পাইনি, তাই কোনও সাহায্যের প্রশংসা করা হবে!

~$ cat .ssh/config
Host example.net
  Hostname example.net
  ProtocolKeepAlives 30
  DynamicForward 8118
  ProxyCommand /usr/bin/proxytunnel -p ssh.example.net:443 -d localhost:22 -E -v -H "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)"

~$ ssh user@example.net
Local proxy ssh.example.net resolves to 115.xxx.xxx.xxx
Connected to ssh.example.net:443 (local proxy)

Tunneling to localhost:22 (destination)
Communication with local proxy:
 -> CONNECT localhost:22 HTTP/1.0
 -> Proxy-Connection: Keep-Alive
 -> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
 <- <html>
 <- <head><title>400 Bad Request</title></head>
 <- <body bgcolor="white">
 <- <center><h1>400 Bad Request</h1></center>
 <- <hr><center>nginx/1.0.5</center>
 <- </body>
 <- </html>
analyze_HTTP: readline failed: Connection closed by remote host
ssh_exchange_identification: Connection closed by remote host

সার্ভারে Nginx কনফিগারেশন;

~$ cat /etc/nginx/sites-enabled/ssh 
upstream tunnel {
    server localhost:22;
}
server {
    listen 443;
    server_name ssh.example.net;

    location / {
            proxy_pass http://tunnel;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_redirect off;
    }

    ssl on;
    ssl_certificate /etc/ssl/certs/server.cer;
    ssl_certificate_key /etc/ssl/private/server.key;
}

~$ tail /var/log/nginx/access.log
203.xxx.xxx.xxx - - [08/Feb/2012:15:17:39 +1100] "CONNECT localhost:22 HTTP/1.0" 400 173 "-" "-"

উত্তর:


10

এনগিনেক্স ফরোয়ার্ড প্রক্সি অনুরোধগুলি (এইচটিটিপি সংযোগ পদ্ধতি) সমর্থন করে না, এজন্যই আপনি এনগিনেক্সের কাছ থেকে "খারাপ অনুরোধ" প্রতিক্রিয়া পান। প্রক্সিটিউনল Nginx এর সাথে সংযোগ করতে সক্ষম, তবে সেখান থেকে এটি বন্ধ হয়ে যায়। এএফএআইএফ, এনগিনেক্স লেখকদের ফক্স ফরওয়ার্ড অনুরোধগুলি সমর্থন করার কোনও পরিকল্পনা নেই, কারণ তারা সত্যিই ভালভাবে এইচটিটিপি পরিবেশনায় বিশেষী হতে চায়। অ্যাপাচি-তে অন্য সমস্ত কিছুর জন্য মডিউল রয়েছে, আপনাকে সেই বহিরাগত বৈশিষ্ট্যগুলি ব্যবহার করার স্বাধীনতা দেয়।

আপনি sslhদেখতে পারেন, যা 443 বন্দর থেকে আগত ট্র্যাফিকটিকে একাধিকবার Nginx (127.0.0.1:443 এ শুনছেন), এসএসএইচ বা ওপেনভিপিএন থেকে মাল্টিপ্লেক্স করতে পারে। নিশ্চিত হয়ে নিন যে আপনি sslhসর্বজনীন আইপি ঠিকানাটি শুনতে দিয়েছেন এবং Nginx যেদিকে শুনছে সেখানে 0.0.0.0ওভারল্যাপ হয় না 127.0.0.1:433

অন্য বিকল্পগুলি স্কুইড ব্যবহার করছে, তবে আমার সেখানে কোনও অভিজ্ঞতা নেই।


0

আমি এই ধরণের সেটআপটি কখনও দেখিনি এবং আমি সন্দেহ করি এটি কার্যকর হতে পারে, কারণ এনজিনেক্স প্রত্যাশা করে যে আগত সংযোগগুলি এইচটিটিপি হিসাবে গণ্য করতে পারে এবং এইচটিটিপি-র সাথে প্রবাহের সাথে কথা বলতে পারে। আপনি কেন এনজিনেক্সের মাধ্যমে প্রক্সি করতে চান?


2
এটি সম্ভব হওয়া উচিত - এইচটিটিপি (এস) প্রক্সির মাধ্যমে এসএসএইচ সেশনগুলি সুড়ঙ্গ করতে প্রক্সিটিউন ব্যবহার করা হয়, অ্যাপাচি ব্যবহার করে এটি কনফিগার করার জন্য এখানে সেটআপ দেওয়া হয়েছে
থার্মিয়োনিক্স

অ্যাপাচি সেখানে সত্যিকারের এইচটিটিপি প্রক্সি হিসাবে অপারেটিং হিসাবে কাজ করছে বলে মনে হয়, যা আমি মনে করি না যে এনজিনেক্স সমর্থন করে (কেবলমাত্র বিপরীত প্রক্সিং)।
মিগ্রোর্ভেন

0

এটি পুরানো প্রশ্ন, তবে এখনও বাস্তব :-)

অন্যরা যেমন উল্লেখ করেছেন যে এনগিনেক্সে এইচটিটিপি সংযোগ পদ্ধতি উপলভ্য হওয়ার কারণে এই সেটআপটি খুব কমই উপলব্ধ।

দ্রষ্টব্য: অ্যাপাচি ওয়েব সার্ভার এই সেটআপটিকে সমর্থন করে।

তবে, এনগিনেক্সের জন্য এসএসএলবিহীন সমাধান রয়েছে আমি কাস্টম এনগিনেক্স মডিউল আকারে মনে করি যা HTTP সংযোগটি কার্যকর করে: https://github.com/chobits/ngx_http_proxy_connect_module

এটি ব্যবহার করে আপনি কেবলমাত্র ssh কনফিগারেশনে সঠিকভাবে প্রক্সিকমন্ড ব্যবহার করতে পারবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.