এসএসএইচ দিয়ে ওয়েব ট্র্যাফিক টানেল দেওয়ার সময় আমি কী ইন্টারেক্টিভ শেল অ্যাক্সেস অক্ষম করতে পারি?


12

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

আমি বর্তমানে ওপেনএসএইচ ইনস্টল করে উবুন্টু সার্ভার 10.04.1 64 বিট ব্যবহার করছি।

আমি আমার এসএস সার্ভারে স্থানীয় পোর্টে একটি টানেল তৈরি করতে উইন্ডোজ বাক্সে পুট্টি ব্যবহার করছি।

start putty -D 9999 mysshserver.com -N

তারপরে আমি ফায়ারফক্সকে বলি লোকালহোস্ট: 9999 এ একটি সোকস প্রক্সি ব্যবহার করতে।

-N পতাকা ক্লায়েন্টের পক্ষ থেকে ইন্টারেক্টিভ শেলটি অক্ষম করবে। সার্ভারের পাশে এটি করার কোনও উপায় আছে?

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

উত্তর:


15

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

sshd_config

আপনি (আপনার নির্দিষ্ট ব্যবহারের ক্ষেত্রে) একটি গোষ্ঠী, যেমন proxy-onlyবা Matchস্বতন্ত্র ব্যবহারকারী হিসাবে মনোনীত করতে পারেন । ইন sshd_config। এটি গ্লোবাল সেটিংসের পরে এবং বিশ্বব্যাপী সেটিংসে প্রদত্ত কিছু সেটিংস প্রত্যাহার, পুনরাবৃত্তি বা সংশোধন করার পরে এটি করা হয়।

দ্রষ্টব্য: ব্যবহৃত সিনট্যাক্স / নির্দেশাবলীর কয়েকটি পৃষ্ঠায় sshd_config(5)নথিভুক্ত করা হয়েছে । বিশেষত PATTERNS বিভাগটি পড়ার বিষয়টি নিশ্চিত করুন ।manssh_config(5)ssh_config(5)

একটি গোষ্ঠীর পক্ষে এর অর্থ এটি আপনার Matchব্লকটি শুরু হবে:

Match group proxy-only

আপনি Matchনিম্নোক্ত মানদণ্ডের: User, Group, Host, LocalAddress, LocalPortএবং Address। বেশ কয়েকটি মানদণ্ডের সাথে মেলে যাচাইয়ের জন্য মাপদণ্ড-প্যাটার্ন জোড়া ( group proxy-onlyউপরে) কমা-পৃথক করুন ।

এই জাতীয় ব্লকের অভ্যন্তরে, যা vতিহ্যগতভাবে সংক্ষিপ্ত আকারের জন্য যুক্ত হয় (তবে প্রয়োজন হয় না), আপনি তখন authorized_keysসেই গোষ্ঠীর সদস্যদের জন্য প্রতিটি ফাইল সম্পাদনা না করে আপনি ব্যবহারকারী গোষ্ঠীর জন্য যে সেটিংস প্রয়োগ করতে চান তা ঘোষণা করতে পারেন ।

no-ptyথেকে সেটিং authorized_keysএকটি দ্বারা প্রতিফলিত হবে PermitTTY noসেটিং এবং command="/sbin/nologin"হয়ে যাবে ForceCommand /sbin/nologin

অতিরিক্ত হিসাবে আপনি কোনও প্রশাসকের প্যারানোইয়াকে সন্তুষ্ট করতে আরও সেটিংস সেট করতে পারেন যেমন chrootব্যবহারকারীকে তার বাড়ির ফোল্ডারে রাখুন এবং এরকম কিছু দিয়ে শেষ করতে পারেন:

Match group proxy-only
    PermitTTY no
    ForceCommand /sbin/nologin
    ChrootDirectory %h
    # Optionally enable these by un-commenting the needed line
    # AllowTcpForwarding no
    # GatewayPorts yes
    # KbdInteractiveAuthentication no
    # PasswordAuthentication no
    # PubkeyAuthentication yes
    # PermitRootLogin no

(আপনার প্রয়োজন কিনা মন্তব্য করা লাইনগুলি এবং প্রয়োজন হিসাবে অসুবিধা প্রয়োজন কিনা তা পরীক্ষা করুন)

%hএকটি টোকেন যে ব্যবহারকারীর হোম ডিরেক্টরি দ্বারা প্রতিস্থাপিত হয় (হয় %uব্যবহারকারী নাম এবং উত্পাদ হবে %%একটি শতাংশ চিহ্ন)। আমি ChrootDirectoryআমার sftp-onlyব্যবহারকারীদের সীমাবদ্ধ রাখতে বিশেষভাবে দরকারী বলে মনে করেছি :

Match group sftp-only
    X11Forwarding no
    AllowTcpForwarding no
    ChrootDirectory %h
    ForceCommand internal-sftp
    PasswordAuthentication no

দয়া করে মনে রাখবেন যে কোনও নির্দিষ্ট নির্দেশিকা একটি Matchব্লকে ব্যবহার করা যেতে পারে । পরামর্শ manপৃষ্ঠা sshd_config(5)বিবরণ (অনুসন্ধান জন্য Match)।

authorized_keys -র

এনবি: এই মন্তব্যের নীচের অংশটি ছিল আমার আসল উত্তর। এদিকে - তবে এটি আপনার সঠিক sshdসংস্করণের বৈশিষ্ট্যগুলির উপরও নির্ভর করে - বেশিরভাগ ক্ষেত্রে উপরে বর্ণিত পদ্ধতিটির জন্য আমি যেতে চাই।

হ্যাঁ আপনি যেমন সরকারী কী বরাদ্দ করতে পারেন তত সূক্ষ্মভাবে তৈরি করতে পারেন। আজাদেকন দ্বারা প্রস্তাবিত নোলগিন ছাড়াও, আমি কী কী প্রবেশের সামনে নিম্নলিখিতটি সেট করার পরামর্শ দেব authorized_keys:

no-pty ssh-rsa ...

কোনও pty সার্ভার-সাইডকে বলে যে কোনও কী সিউডো-টার্মিনাল সেই কীটির জন্য বরাদ্দ করা উচিত নয়।

আপনি এটিকে প্রিপেন্ড করে কোনও নির্দিষ্ট কী এর জন্য নোলগিনের মতো কিছু কার্যকর করতে বাধ্য করতে পারেন:

command="/sbin/nologin",no-pty ssh-rsa ...

দয়া করে মনে রাখবেন যে no-ptyএকা কী ব্যবহারকারীর কমান্ড কার্যকর করতে বাধা দেয় না। Superuser.com/q/1230979/195460 দেখুন ।
ট্যাড লিপি

3

যে কোনও টানেলিং-কেবল ব্যবহারকারীর জন্য, তাদের লগইন শেলটি / sbin / nologin এ পরিবর্তন করুন। এইভাবে আপনার ব্যবহারকারী সার্ভারে একটি শেল অ্যাক্সেস করতে অক্ষম হবে, তবে এখনও তাদের ক্লায়েন্টের থেকে এসএসএস টানেলগুলি সেট আপ করতে সক্ষম হবে।


0

আমি জানি আপনি যে উত্তরটি সন্ধান করছেন এটি এটিই নাও হতে পারে তবে আপনি কি বিকল্প হিসাবে ওপেনভিপিএন ব্যবহারের বিষয়টি বিবেচনা করেছেন?


0

আপনি যদি ব্যবহারকারী / পাস প্রমাণীকরণ ছেড়ে দিতে এবং লগ ইন করার জন্য কীগুলি ব্যবহার করতে প্রস্তুত হন, আপনি প্রতিটি পাবলিক কীতে প্যারামিটার নির্দিষ্ট করতে পারেন ।

উল্লেখযোগ্য পরামিতিগুলি হ'ল:

কমান্ড = "কমান্ড"

নির্দিষ্ট করে যে কমান্ডটি কার্যকর করা হয় যখনই এই কীটি প্রমাণীকরণের জন্য ব্যবহৃত হয়। ব্যবহারকারী দ্বারা সরবরাহিত কমান্ড (যদি থাকে) উপেক্ষা করা হয়।

এবং

সীমাবদ্ধ করা

সমস্ত বিধিনিষেধ সক্ষম করুন, পোর্ট, এজেন্ট এবং এক্স 11 ফরওয়ার্ডিং অক্ষম করার পাশাপাশি PTY বরাদ্দ অক্ষম করে এবং ~ / .ssh / আরসি কার্যকর করুন।

এবং পরিশেষে

পোর্ট-ফরোয়ার্ডিং সীমাবদ্ধ বিকল্প দ্বারা পূর্বে অক্ষম পোর্ট ফরওয়ার্ডিং সক্ষম করুন।

এগুলির সাহায্যে আপনি সেই বিশেষ কী জুটির ব্যবহারকারীর পক্ষে এসএসএইচ অধিবেশনটি কী (গুলি) করতে পারেন তা বেশ সীমাবদ্ধ করতে পারেন।

এটি দেখতে এটি দেখতে হবে:

restrict,port-forwarding,command="/sbin/nologin" ssh-rsa <base64-encoded key>

আমি দেখতে পাচ্ছি যে আমার উত্তরটি সার্ভারফল্ট.com / a / 242411 / 13364 এর তুলনায় কিছুটা অপ্রয়োজনীয় , তবে আমি 'সীমাবদ্ধ' এবং 'পোর্ট-ফরোয়ার্ডিং' পরামিতিগুলির কারণে রেখেছি, যা আমার মতে 'নো-পিটিআই' এর চেয়ে ভাল।
এডমিন

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