কীভাবে এসএসএইচ স্থানীয় পোর্ট ফরওয়ার্ডিং অক্ষম করবেন?


20

আমার উবুন্টু এবং ওপেনএসএসএইচ ডেমন চলমান একটি সার্ভার রয়েছে। এটি এস 1 কল করুন।

আমি ক্লায়েন্ট মেশিনগুলি থেকে এই সার্ভারটি ব্যবহার করি (আসুন তাদের মধ্যে একটিকে সি 1 বলুন) রিমোট পোর্ট ফরওয়ার্ডিং ব্যবহার করে একটি এসএসএইচ বিপরীত টানেল করতে, যেমন:

ssh -R 1234:localhost:23 login@S1

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

আমার কাছে, স্থানীয় বন্দর ফরওয়ার্ডিং অনুমতি দেওয়া খুব বিপজ্জনক, যেহেতু এটি এক ধরণের পাবলিক প্রক্সি তৈরি করতে দেয়। আমি কেবলমাত্র এল-ফরওয়ার্ডিং অক্ষম করার জন্য একটি উপায় খুঁজছি।

আমি নিম্নলিখিতগুলি চেষ্টা করেছিলাম তবে এটি স্থানীয় এবং দূরবর্তী উভয় ফরোয়ার্ডিং অক্ষম করে:

AllowTcpForwarding No

আমি নিম্নলিখিতগুলিও চেষ্টা করে দেখেছি, এটি কেবলমাত্র এসএক্স -1- এ অনুমতি দেবে। এটি কোনও কিছুর চেয়ে ভাল, তবে এখনও আমার যা প্রয়োজন তা নয়, এটি একটি "কিছুই নয়" বিকল্প।

PermitOpen SX:1

তাই আমি ভাবছি যে কোনও উপায় আছে কিনা, যাতে আমি সমস্ত স্থানীয় বন্দর ফরোয়ার্ডকে এমন কিছু লিখতে নিষেধ করতে পারি:

PermitOpen none:none

নিম্নলিখিতটি কি একটি সুন্দর ধারণা?

PermitOpen localhost:1

সুতরাং, বরাবরের মতো, এর মূলে যেতে দাও: আপনার আসল সমস্যাটি কী, আপনি মোবাইল / এমবেডেড ডিভাইসের জন্য কেন এমন কিছু সেটআপ করতে চান, আপনি কী সমাধান করতে চান?
আকির

সমস্যাটি এখানে সমাধান করা হ'ল ডিভাইসটি NATed, বা ফায়ারওয়াল করা হতে পারে, এই কারণে এটি পৌঁছনীয় নয় এমনটি বিবেচনায় রেখে ইন্টারনেট থেকে যে কোনও মোবাইল, এম্বেডড ডিভাইসে ইন্টারনেট থেকে যে কোনও জায়গায় টেলনেট সেশনটি খুলতে সক্ষম হবে to ইন্টারনেট থেকে.
এসসিও

টেলনেট .. কিসের জন্য? ফায়ারওয়াল গুগলে 'স্টান' এর জন্য ছিদ্র দেওয়ার জন্য
আকিরা

উত্তর:


16

লগইন শংসাপত্র সহ যে কোনও ব্যক্তি এলোমেলো বন্দরে চলতে চলতে এসএসডি-র নিজস্ব উদাহরণ আনতে পারে এবং -ল স্থানীয় ফরোয়ার্ডিং সহ যা খুশি তা অনুমতি দিতে পারে:

% /usr/sbin/sshd -d -f mysshd.config -p 12345

আপনি যদি আপনার মেশিনের সাহায্যে ব্যবহারকারীদের কিছু করতে বিশ্বাস না করেন তবে আপনাকে প্রথমে তাদের লগইন করার অনুমতি দেওয়া উচিত নয়।

(বিটিডাব্লু, -ডি পতাকাটি "প্রক্সি সমস্যাযুক্ত" ধরণের)


ওয়েল আমি অনুমান করি যে আমি এই উদ্দেশ্যে একটি খুব সীমাবদ্ধ অ্যাকাউন্ট সেটআপ করতে পারি (উদাঃ ব্যবহারকারীকে তার বাড়িতে আটকে রাখুন, কোনও তালিকা নেই, কোনও ফাইল-সিস্টেম ব্রাউজিং নেই), যাতে এটি আরম্ভ করতে না পারে এবং এসএসডি (বা একটি এসএসএসডি বাইনারি ইনস্টল এবং শুরু করতে পারে)। মুল বক্তব্যটি হ'ল ক্লায়েন্টদের এম্বেড থাকা ডিভাইসগুলি হওয়ার কথা। তবে যেহেতু তারা সম্ভবত শংসাপত্র এম্বেড করবে এবং তাদের ফ্ল্যাশ স্মৃতি ফেলে দেওয়া যেতে পারে, তাই শংসাপত্রগুলি ফাঁস হতে পারে, সুতরাং যে কেউ এস -1 এ লগইন করতে পারবেন।
এসসিও

সেই নির্দিষ্ট ব্যবহারকারীর জন্য ক্রুটডাইরেক্টরি ব্যবহার করা কৌশলটি করবে, চেষ্টা করবে!
এসসিও

1
অনুমোদিত_কিগুলিতে, সেট করুন command="/sbin/nologin"। এটি তাদের সার্ভারে কোনও কমান্ড চালানো থেকে বিরত করা উচিত।
জাস্টিস

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

3
sshd_configম্যান পৃষ্ঠা থেকে উদ্ধৃতি : নোট করুন যে টিসিপি ফরোয়ার্ডিং অক্ষম করা সুরক্ষার উন্নতি করে না যদি ব্যবহারকারীরা শেল অ্যাক্সেসকে অস্বীকার না করে , কারণ তারা সর্বদা তাদের নিজস্ব ফরোয়ার্ডার ইনস্টল করতে পারে। (জোর আমার)।
কাজ

17

আরেকটি সমাধান হ'ল কেবল পোর্ট ফরওয়ার্ডিংকে নির্দিষ্ট ব্যবহারকারীদের জন্য অনুমতি দেওয়া:

এসএসএইচ থেকে: নির্দিষ্ট নির্দেশিকা

পোর্ট ফরওয়ার্ডিং sshd এ বিশ্বব্যাপী সক্ষম বা অক্ষম করা যেতে পারে। এটি সার্ভারওয়াইড কনফিগারেশন কীওয়ার্ডের সাথে AllowTcp ফরওয়ার্ডিং / etc / sshd_config এ সম্পন্ন করা হয়। কীওয়ার্ডের মান হ্যাঁ (ডিফল্ট, ফরওয়ার্ডিং সক্ষম করা) বা না (ফরওয়ার্ডিং অক্ষম করা) হতে পারে:

# SSH1, SSH2, OpenSSH
AllowTcpForwarding no

এছাড়াও, এসএসএইচ 2 এর নিম্নলিখিত বিকল্পগুলি রয়েছে:

# SSH2 only
AllowTcpForwardingForUsers
AllowTcpForwardingForGroups

এর সিনট্যাক্সটি AllowUser এবং AllowGroups বিকল্পগুলির মতো। [বিভাগ 5.5.2.1, "অ্যাকাউন্ট অ্যাক্সেস নিয়ন্ত্রণ"] তারা ব্যবহারকারী বা গোষ্ঠীগুলির একটি তালিকা নির্দিষ্ট করে যা পোর্ট ফরওয়ার্ডিং ব্যবহার করার অনুমতিপ্রাপ্ত; সার্ভার অন্য কারও জন্য পোর্ট ফরওয়ার্ডিং অনুরোধগুলি সম্মান করতে অস্বীকার করেছে। নোট করুন যে এগুলি এসএসএইচ সেশনের টার্গেট অ্যাকাউন্টকে বোঝায়, ক্লায়েন্টের ব্যবহারকারীর নাম নয় (যা প্রায়শই জানা থাকে না)।

...

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


1
মূলত আমার কাছে কেবলমাত্র এক ব্যবহারকারী এস 1 এ বিধানিত থাকবে। এএফএআইইউ, এই নির্দিষ্ট ক্ষেত্রে, AllowTcp ফরওয়ার্ডিংফোর্ডার্স / AllowTcp ফরওয়ার্ডিংফোর্গ্রুপ ব্যবহার করে কৌতুকটি করবে না, তাই না? ইন্টারেক্টিভ লগইন নিষিদ্ধ করা একটি ভাল ধারণা, যেহেতু এটি ব্যবহারকারীদের বাইনারিগুলি শুরু করতে সক্ষম করবে না। তবে কোনও ক্লায়েন্টকে এখনও -L সিনট্যাক্স ব্যবহার করে অনুমতি দেওয়া হবে? সুতরাং আপাতত সর্বোত্তম বিকল্পগুলি হ'ল: 1 / ইন্টারেক্টিভ লগইন অক্ষম করুন, একটি জাল হোস্টনাম সহ 2 / পারমিটওপেন: পোর্ট। আমি কি কিছু রেখে গেলাম ?
এসসিও

এটি যাচাই করার সর্বোত্তম উপায় হ'ল সেটআপটি চেষ্টা করা।
খ্রিস্টান

আমি ফ্রি ওপেনএসএসএইচ সফ্টওয়্যারটিতে এই বিকল্পগুলি দেখতে পাচ্ছি না। একটি গুগল AllowTcpForwardingForUsersপ্রকাশ করে যে এটি একটি কনফিগার করা হয়েছে sshd2_config, যা কিছু বাণিজ্যিক প্রোগ্রামে ব্যবহৃত হয়। এর উত্তরের একটি দেখুন: superuser.com
কাজ

^ ওপেনএসএসএইচটির Matchকনফিগারেশনে ব্লক রয়েছে। আপনি Matchব্যবহারকারী এবং গোষ্ঠীগুলিতে এবং এর AllowTcpForwardingমধ্যে আবদ্ধ করতে পারেন ।
কাজ

2

কেবলমাত্র স্থানীয় / দূরবর্তী ফরওয়ার্ডিংকে অনুমতি দেওয়ার জন্য এখন একটি বিকল্প রয়েছে।

AllowTcp ফরওয়ার্ডিং টিসিপি ফরোয়ার্ডিং অনুমোদিত কিনা তা নির্দিষ্ট করে। টিসিপি ফরোয়ার্ডিংকে অনুমতি দেওয়ার জন্য উপলভ্য বিকল্পগুলি হ্যাঁ বা "সমস্ত", সমস্ত টিসিপি ফরোয়ার্ডিং প্রতিরোধ করতে "না", স্থানীয়কে (এসএসএসের (১) দৃষ্টিকোণ থেকে) কেবল ফরওয়ার্ডিং বা "রিমোট" দূরবর্তীকে অনুমতি দেওয়ার জন্য "হ্যাঁ" বা "সমস্ত" শুধুমাত্র ফরওয়ার্ডিং । ডিফল্ট হ্যাঁ "হ্যাঁ"। নোট করুন যে টিসিপি ফরোয়ার্ডিং অক্ষম করা সুরক্ষার উন্নতি করে না যদি ব্যবহারকারীরা শেল অ্যাক্সেসকে অস্বীকার না করে, কারণ তারা সর্বদা তাদের নিজস্ব ফরোয়ার্ডার ইনস্টল করতে পারে।

সুতরাং, ইতিমধ্যে যেমনটি বলা হয়েছে আপনারও শেলটি নোলগিনে সেট করা উচিত।


0

এই সমস্যাটির জন্য আমার সমাধানটি যুক্ত করা ছিল: sshd_config এর মূল বিভাগে PermitOpen fo.local: 80

এটি কেবলমাত্র ফোওলোকাল: ৮০ ছাড়াও স্থানীয় ফরওয়ার্ডিংয়ের কোনও অনুরোধ অস্বীকার করে।


0

আমি কেবলমাত্র এল-ফরওয়ার্ডিং অক্ষম করার জন্য একটি উপায় খুঁজছি

যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে আপনার ব্যবহারকারীদের পুরো শেল অ্যাক্সেস রয়েছে, তবে আপনি চান না যে তারা জালের বাকী অংশের সাথে সংযোগগুলি খুলতে সক্ষম হন।

এসএসএইচ দ্বারা অনুমোদিত "স্থানীয় পোর্ট ফরওয়ার্ডিং" এটি করার সম্ভাব্য উপায়গুলির মধ্যে একটি। অন্যরা একটি দৃষ্টান্ত চালু অন্তর্ভুক্ত socat, netcatঅথবা সরঞ্জামের অন্য কোন সংখ্যা।

লিনাক্সে আউটগোয়িং পাশাপাশি আগত সংযোগগুলি নিয়ন্ত্রণ করার সর্বোত্তম উপায় হ'ল নেটফিল্টার, ওরফে আইপিটিবেল।

এর মালিক ( ipt_owner) নামে একটি বিশেষ মডিউল রয়েছে যা আপনাকে স্থানীয়ভাবে উত্পাদিত প্যাকেটের জন্য প্যাকেট স্রষ্টার বিভিন্ন বৈশিষ্ট্যের সাথে মেলে দেয়। এটা বৈধ OUTPUTএবং POSTROUTINGচেইন।

আপনি নির্দিষ্ট গোষ্ঠী দ্বারা উত্পাদিত বহির্গামী প্যাকেটগুলি অস্বীকার করতে এটি ব্যবহার করতে পারেন, সুতরাং এসএসএইচের -Lবিকল্পটি নয়, কোনও ধরণের পোর্ট ফরওয়ার্ডিংকে অস্বীকার করে ।

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