এসএসএইচ অ্যাক্সেসের অনুমতি দেওয়ার পরেও কি এসসিপি প্রতিরোধ করা সম্ভব?


13

সোলারিস এবং লিনাক্স সার্ভার এবং ওপেনএসএসএইচ ব্যবহার করে, "এসএসপি" দিয়ে শেল অ্যাক্সেসের অনুমতি দেওয়ার পরেও কি "এসসিপি" ব্যবহার করে ফাইলগুলি অনুলিপি করা থেকে বিরত রাখা সম্ভব?

আমি বুঝতে পেরেছি যে 'ssh $ সার্ভার "ক্যাট ফাইল" "টাইপ ফাইল অ্যাক্সেসগুলি প্রতিরোধ করা খুব কঠিন, তবে আমার শুরুটি" scp "বন্ধ করার বিষয়ে দেখা দরকার।

এটি ব্যর্থ হয়ে, সার্ভারের পাশ দিয়ে সমস্ত এসসিপি অ্যাক্সেসের মাধ্যমে বিশ্বস্তভাবে লগ করার কোনও উপায় আছে syslogকি?


আপনি ঘনিষ্ঠ SSH চেয়েছিলেন কিন্তু scp না আপনি এই ব্যবহার করেছেন পারে: sublimation.org/scponly/wiki/index.php/Main_Page খুব খারাপ আপনি এটা অন্যান্য উপায় কাছাকাছি চাই: - \

আমার একই প্রশ্ন কিন্তু অন্য কারণে। আমার ক্ষেত্রে আমি সার্ভারে এসএফটিপিডি এবং এসসিপিডি বন্ধ করতে চাই। কারণটি হ'ল আমরা ফাইল স্থানান্তরের অনুমতি দিই তবে আমরা ব্যবহারকারীদের আমাদের অনুলিপি নোডের মাধ্যমে স্থানান্তরগুলি করতে পছন্দ করি। এটি কীভাবে আমরা আমাদের লিঙ্কগুলিতে লোডকে আলাদা করে দেই তার কারণ এটি। সুতরাং এই লুপ অনুসারে এসএফটিপিডি বন্ধ করা সহজ, তবে আমি যদি সঠিকভাবে বুঝতে পারি তবে এসসিপিডি বন্ধ করা অসম্ভব অসম্ভব?

উত্তর:


12

আপনি /etc/ssh/sshd_configএই জাতীয় কিছু দেখতে সম্পাদনা করতে পারেন:

ForceCommand           /bin/sh
PermitOpen             0.0.0.0
AllowTcpForwarding     no
PermitTunnel           no
# Subsystem sftp       /usr/lib/openssh/sftp-server
PermitUserEnvironment  no

পরিবর্তে আমি ব্যবহারকারী এটির জন্য কী ব্যবহার করতে পারে তা নির্ধারণ করব। কারণ যদি আপনি কেবলমাত্র কয়েকটি কমান্ড পেয়ে থাকেন যা আপনি তাদের অ্যাক্সেস করতে চান তবে আমি পরিবর্তে তাদের জন্য এমনকি সাধারণ sshশেলটি চালিয়ে যাওয়ার ক্ষমতা সরিয়ে ফেলব would

AllowUsers             root
PermitRootLogin        forced-commands-only

PermitUserEnvironment  no

AllowTcpForwarding     no
PermitTunnel           no

# Subsystem sftp       /usr/lib/openssh/sftp-server
Subsystem smb-reload   /usr/bin/smbcontrol smbd reload-config
Subsystem status       /opt/local/bin/status.sh

ssh root@example -s smb-reload

যদি আপনি দেখতে পান যে আপনার কাছে একটি সাধারণ শেল চালিত হওয়ার পক্ষে সত্যই দরকার রয়েছে তবে সবচেয়ে বেশি আপনি যা আশা করতে পারেন তা হ'ল তাদের ধীর করে দেওয়া এবং আরও জটিল করে তোলা।


8

অন্যরা যেমন উল্লেখ করেছে, আপনি scp ব্লক করতে পারবেন না (ভাল, আপনি করতে পারেন: rm /usr/bin/scpতবে এটি আপনাকে কোথাও পাবেন না)।

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

মনে রাখবেন, তারা যদি ফাইলগুলি পড়তে পারে তবে তারা সেগুলি স্ক্রিন থেকে কপি / পেস্ট করতে পারে। বাইনারি ফাইল? এক্সএক্সডি / ইউউনকোড / মেমেনকোড সমস্ত এটিকে ঘিরে।

ক্রিয়াকলাপ ট্র্যাক করতে সহায়তা করার জন্য আমি প্রক্রিয়া অ্যাকাউন্টিং ব্যবহার করার পরামর্শ দিই।


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

1
কোনও প্যাচযুক্ত সীমাবদ্ধ শেলটি কীভাবে ব্যবহার করা যায় যা সমস্ত কমান্ড কোথাও পাইপের সাথে চালানো লগ করে? একটি কেন্দ্রিয়ায়িত .বাশ_তিহাসিক ধরণের ধারণা।
মাইকিবি

আসলে সার্ভার সাইডে আপনাকে / usr / lib / openssh / sftp-server মুছে ফেলতে হবে তবে আমি মনে করি sshd এর একটি বিল্ট ইন sftp সার্ভার রয়েছে।
ব্র্যাড গিলবার্ট

@ ব্র্যাড: ক্লায়েন্ট দ্বারা নির্দিষ্ট করা কোনও কমান্ড এখনও শেলের মাধ্যমে চালিত হয়; সুতরাং যদি sftp- সার্ভার ডিফল্ট PATH এ না থাকে (যা এটি নয়) শেলটি একটি সীমাবদ্ধ হিসাবে পরিবর্তন করা এটি অক্ষম করার জন্য যথেষ্ট, আপনার বাইনারি মুছতে হবে না।
মাইকিবি

6

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

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


5

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

এটি আপনার উল্লেখ করা "ক্যাটিং" আক্রমণকেও আটকাবে।

দুর্ভাগ্যক্রমে এর অর্থ হ'ল কোনও পাঠ্য সম্পাদকের সাহায্যে আপনার কিছু ফাইল সম্পাদনা করতে সমস্যা হতে পারে, যদি স্ক্রিনটিতে আরও 1400 টি অক্ষর আঁকতে প্রয়োজন হয়, বা আপনাকে যদি একটি দীর্ঘ ফাইল বিড়াল করতে হয় বা একটি দীর্ঘ ডিরেক্টরি তালিকা করতে হয়।

সর্বাধিক সাধারণ ক্ষেত্রে এটি করার একটি আদেশ হয়ত এর মতো দেখতে পারে

iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff -j DROP

আমরা প্যাকেট দৈর্ঘ্যের চেকগুলি আইপিটি_সেন্টের সাথে একত্রিত করে এই কাজটি আরও ভাল করে তুলতে পারি, যাতে আপনি একটি নির্দিষ্ট সময়সীমার মধ্যে 1400 বাইটের বেশি সীমিত সংখ্যক প্যাকেটগুলি (5 সেকেন্ডে 8 টি প্যাকেট বলুন) মঞ্জুরি দিন - এতে 12k অবধি প্যাকেটগুলি পিছলে যেতে পারে মাধ্যমে সম্পাদনা করতে পারে তবে আপনাকে ফাইল সম্পাদনা করার জন্য প্রয়োজনীয় ইন্টারঅ্যাকটিভিটি প্রদান করতে পারে ইত্যাদি।

এটি দেখতে কিছুটা দেখতে লাগবে

iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
         -m recent --name noscp --rdest --set 
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
         -m recent --name noscp --rdest --update --seconds 5 --hitcount 8 \
         -j REJECT --reject-with tcp-reset

উপরের নিয়মের উদাহরণগুলি কেবল স্ক্রিপ আপলোডগুলি থেকে রক্ষা করে scp myfile.data remote.host:~। অতিরিক্ত যেমন scp কমান্ড ডাউনলোডসমূহ রক্ষা করার জন্য scp remote.host:~/myfile.data /local/path, উপরের নিয়ম পুনরাবৃত্তি কিন্তু প্রতিস্থাপন --dportসঙ্গে --sport

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

চিয়ার্স, ডেভিড গো


2

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


অথবা আপনি উভয় করতে পারে।
মিসানফোর্ড


1

না scpএবং sshএকই বন্দরগুলিতে পরিচালনা করুন এবং একই প্রোটোকল ব্যবহার করুন। আপনি যদি কোনও sshসেশন খোলেন , আপনি পছন্দ মতো বিকল্পগুলি ব্যবহার করে পরবর্তী এসসিপি কলগুলির সাথে আপনার সংযোগও ভাগ করতে পারেন ControlMaster

যদি আপনি না চান যে লোকেরা কোনও মেশিন থেকে নির্দিষ্ট ফাইলগুলি অনুলিপি করতে পারে তবে আপনার মেশিনে তাদের কোনও ধরণের শেল অ্যাক্সেস দেওয়া উচিত নয়।


হ্যাঁ, সুস্পষ্ট উত্তরটি হ'ল সিস্টেমটি লকআপ করা এবং অ্যাক্সেস না দেওয়া। বাস্তবে তবে, আমার সংস্থার নিরীক্ষক রয়েছে যারা বলে যে আমাদের সার্ভারগুলি অনুলিপি করা এবং / অথবা লগ প্রচেষ্টা চালিয়ে যাওয়া দরকার তা সত্ত্বেও আমরা ssh অ্যাক্সেসকে সীমাবদ্ধ করে রেখেছি এবং তার জায়গায় একটি শক্তিশালী আরবিএসি সিস্টেম রয়েছে।

2
@ জেসন: তারপরে আপনার ফাইল অ্যাক্সেস লগ করতে হবে। এমনকি আপনি স্কিপ অক্ষম করলেও আপনি কাউকে চালানো থেকে কীভাবে আটকাবেন: এসএসএস সার্ভার 'ক্যাট / পাথ / টু / ফাইল'> অনুলিপি?
ডারোবার্ট

0

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

বিপরীতটি সম্পাদন করতে আপনি স্ক্যাপনি শেল হ্যাকিং অন্বেষণ করতে সক্ষম হতে পারেন।


0

এটি আসলে কিছুটা গুগল করার পরে সম্ভব নয়।

এই আলোচনাটি দেখুন: http://www.mydatediasupport.com/forums/unix-admin/387261-how-restrict-ssh-users- block-scp-sftp.html


এই লিঙ্কটি মারা গেছে।
rox0r

0

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

আমি পণ্যটি ব্যবহার করি নি, তাই ওয়াইএমএমভি।


0

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

সুতরাং আমি পরিবর্তে আপনার লগিং বিকল্পের উপর ফোকাস করব:

"স্ক্রিপ্ট" নামে একটি প্রোগ্রাম রয়েছে যা ব্যবহারিকভাবে প্রতিটি ডিস্ট্রোতে অন্তর্ভুক্ত থাকে এবং এটি যেখানে নেই সেখানে ইনস্টল করা সহজ হওয়া উচিত। এটি একটি সেশন লগার যা শেল থেকে সমস্ত ইনপুট এবং আউটপুট রেকর্ড করে optionচ্ছিকভাবে টাইমিং ডেটার সাথে যাতে এটি পুনরায় প্লে করা যায় এবং ঠিক এটি দেখতে যখন আপনি ব্যবহারকারীর কাঁধের উপর নজর রেখেছিলেন। (95% যাইহোক, Ncurses জড়িত থাকে তবে এটি মাঝে মধ্যে আউটপুটটিকে bobbles করে, তবে খুব বেশিবার নয়))

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

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


0

আমি বিশ্বাস করি আপনি সার্ভারে ওপেনশ-ক্লায়েন্টগুলি (বা সমমানের) আনইনস্টল করতে পারেন।

আমার মনে হয় scp ক্লায়েন্ট সার্ভারে স্কিপ আহ্বান করে যখন ডেটা অনুলিপি করে থাকে তাই আপনি যদি সার্ভারে স্ক্যাপ থেকে মুক্তি পান তবে আপনার ভাল হওয়া উচিত।

$ scp bla server:/tmp/
...
debug1: Sending environment.
debug1: Sending env LC_ALL = en_US.utf8
debug1: Sending env LANG = en_US.utf8
debug1: Sending env XMODIFIERS = @im=ibus
debug1: Sending env LANGUAGE = en_US.utf8
debug1: Sending command: scp -v -t /tmp/
bash: scp: command not found
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
lost connection
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.