CentOS 7 এ নিরাপদ ফাইল স্থানান্তরের জন্য এসএসএল/টিএলএস ব্যবহার করে কোনও এফটিপি সার্ভারকে কীভাবে সুরক্ষিত করা যায়


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

এই টিউটোরিয়ালে, আমরা কীভাবে CentOS/RHEL 7 এবং ফেডোরার এফটিপি সার্ভারে ডেটা এনক্রিপশন পরিষেবাগুলি ম্যানুয়ালি সক্ষম করতে পারি তা ব্যাখ্যা করব; আমরা এসএসএল/টিএলএস শংসাপত্র ব্যবহার করে ভিএসএফটিপিডি (খুব সুরক্ষিত এফটিপি ডিমন) পরিষেবাগুলি সুরক্ষার বিভিন্ন পদক্ষেপের মধ্য দিয়ে যাব।

  1. আপনি অবশ্যই CentOS 7
  2. এ কোনও এফটিপি সার্ভারটি ইনস্টল এবং কনফিগার করেছেন

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

পদক্ষেপ 1. এসএসএল/টিএলএস শংসাপত্র এবং ব্যক্তিগত কী তৈরি করা

1. আমাদের নীচে একটি উপ-ডিরেক্টরি তৈরি করে শুরু করতে হবে: /ইত্যাদি/এসএসএল/ যেখানে আমরা SSL/TLS শংসাপত্র এবং কী ফাইলগুলি সংরক্ষণ করব:

# mkdir /etc/ssl/private

2. তারপরে একটি একক ফাইলে vsftpd এর জন্য শংসাপত্র এবং কী তৈরি করতে নীচের কমান্ডটি চালান, এখানে ব্যবহৃত প্রতিটি পতাকাটির ব্যাখ্যা এখানে।

  1. প্রশ্ন - এক্স.509 শংসাপত্র স্বাক্ষর করার অনুরোধ (সিএসআর) পরিচালনার জন্য একটি আদেশ is
  2. x509 - এর অর্থ X.509 শংসাপত্রের ডেটা ম্যানেজমেন্ট।
  3. দিন - সংখ্যার দিন শংসাপত্রের জন্য বৈধ def
  4. সংজ্ঞা দেয়
  5. নিউকি - শংসাপত্র কী প্রসেসর নির্দিষ্ট করে
  6. আরএসএ: 2048 - আরএসএ কী প্রসেসর, একটি 2048 বিট প্রাইভেট কী উত্পন্ন করবে
  7. কীআউট - কী স্টোরেজ ফাইল সেট করে।
  8. আউট - সার্টিফিকেট স্টোরেজ ফাইল সেট করে, নোট করুন যে শংসাপত্র এবং কী উভয়ই একই ফাইলে সংরক্ষণ করা হয়েছে: /etc/ssl/private/vsftpd.pem

# openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

উপরের কমান্ডটি আপনাকে নীচের প্রশ্নের উত্তর জিজ্ঞাসা করবে, আপনার দৃশ্যে প্রযোজ্য মানগুলি ব্যবহার করতে ভুলবেন না।

Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:Lower Parel
Locality Name (eg, city) [Default City]:Mumbai
Organization Name (eg, company) [Default Company Ltd]:TecMint.com
Organizational Unit Name (eg, section) []:Linux and Open Source
Common Name (eg, your name or your server's hostname) []:tecmint
Email Address []:[email 

পদক্ষেপ 2. এসএসএল/টিএলএস ব্যবহার করতে ভিএসএফটিপিডি কনফিগার করুন

৩. আমরা কোনও ভিএসএফটিপিডি কনফিগারেশন সম্পাদন করার আগে, টিএলএস সংযোগগুলি এবং প্যাসিভ পোর্টগুলির পোর্ট রেঞ্জটি যথাক্রমে ভিএসএফটিপিডি কনফিগারেশন ফাইলটিতে সংজ্ঞায়িত করার জন্য পোর্টগুলি 990 এবং 40000-50000 খুলুন:

# firewall-cmd --zone=public --permanent --add-port=990/tcp
# firewall-cmd --zone=public --permanent --add-port=40000-50000/tcp
# firewall-cmd --reload

৪. এখন, ভিএসএফটিপিডি কনফিগারেশন ফাইলটি খুলুন এবং এতে এসএসএল বিশদটি নির্দিষ্ট করুন:

# vi /etc/vsftpd/vsftpd.conf

Ssl_enable বিকল্পটি সন্ধান করুন এবং এসএসএল ব্যবহার সক্রিয় করতে তার মানটি YES এ সেট করুন, এছাড়াও, যেহেতু টিএসএল এসএসএল-এর চেয়ে বেশি সুরক্ষিত, আমরা ssl_tlsv1_2 বিকল্পটি ব্যবহার করে TLS নিয়োগের জন্য VSFTPD- কে সীমাবদ্ধ করব:

ssl_enable=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO

৫. তারপরে, এসএসএল শংসাপত্র এবং কী ফাইলের অবস্থান নির্ধারণ করতে নীচের লাইনগুলি যুক্ত করুন:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Next. এর পরে, আমাদের বেনামে ব্যবহারকারীদের এসএসএল ব্যবহার করা থেকে বিরত রাখতে হবে, তারপরে সমস্ত অ-বেনামে লগইনগুলিকে ডেটা স্থানান্তর করার জন্য একটি নিরাপদ এসএসএল সংযোগ ব্যবহার করতে এবং লগইনের সময় পাসওয়ার্ডটি প্রেরণে বাধ্য করতে হবে:

allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

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

অতএব, আমাদের এটি বন্ধ করতে হবে।

require_ssl_reuse=NO

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

ssl_ciphers=HIGH

৮. এখন, প্যাসিভ পোর্টগুলির বন্দর পরিসর (নূন্যতম এবং সর্বাধিক পোর্ট) সেট করুন।

pasv_min_port=40000
pasv_max_port=50000

9. Oচ্ছিকভাবে, এসএসএল ডিবাগিংকে অনুমতি দিন, ওপেনএসএসএল সংযোগ ডায়াগোনস্টিকগুলি ডিবাগ_এসএল বিকল্পের সাথে ভিএসএফটিপিডি লগ ফাইলটিতে রেকর্ড করা হয়েছে:

debug_ssl=YES

সমস্ত পরিবর্তনগুলি সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন। এর পরে ভিএসএফটিপিডি পরিষেবাটি পুনরায় আরম্ভ করা যাক:

# systemctl restart vsftpd

পদক্ষেপ 3: এসএসএল/টিএলএস সংযোগের সাথে এফটিপি সার্ভার পরীক্ষা করা

১০. উপরোক্ত সমস্ত কনফিগারেশন করার পরে, VSFTPD কমান্ড লাইন থেকে FTP ব্যবহার করার চেষ্টা করে SSL/TLS সংযোগগুলি ব্যবহার করছে কিনা তা পরীক্ষা করুন:

# ftp 192.168.56.10
Connected to 192.168.56.10  (192.168.56.10).
220 Welcome to TecMint.com FTP service.
Name (192.168.56.10:root) : ravi
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
ftp>

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

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

পদক্ষেপ 4: নিরাপদে কোনও এফটিপি সার্ভারের সাথে সংযোগ করতে ফাইলজিলা ইনস্টল করুন

১১. ফাইলজিলা একটি আধুনিক, জনপ্রিয় এবং গুরুত্বপূর্ণভাবে ক্রস-প্ল্যাটফর্ম এফটিপি ক্লায়েন্ট যা ডিফল্টরূপে এসএসএল/টিএলএস সংযোগগুলিকে সমর্থন করে।

লিনাক্সে ফাইলজিলা ইনস্টল করতে, নীচের কমান্ডটি চালান:

--------- On CentOS/RHEL/Fedora --------- 
# yum install epel-release filezilla

--------- On Debian/Ubuntu ---------
$ sudo apt-get install  filezilla   

১২. ইনস্টলেশনটি সম্পূর্ণ হয়ে গেলে (বা অন্যথায় যদি আপনি ইতিমধ্যে এটি ইনস্টল করে রেখেছেন), এটি খুলুন এবং নীচে সাইট ম্যানেজার ইন্টারফেসটি পেতে ফাইল => সাইট ম্যানেজার বা ( Ctrl + S টিপুন) এ যান।

নতুন সাইট/হোস্ট সংযোগের বিশদ যুক্ত করতে নতুন সাইট বোতামে ক্লিক করুন।

১৩. এরপরে, হোস্ট/সাইটের নাম নির্ধারণ করুন, আইপি ঠিকানা যুক্ত করুন, নীচের স্ক্রিন শটটির মতো ব্যবহারের জন্য প্রোটোকল, এনক্রিপশন এবং লগনের ধরণের সংজ্ঞা দিন (আপনার দৃশ্যের সাথে প্রযোজ্য মানগুলি ব্যবহার করুন):

Host:  192.168.56.10
Protocol:  FTP – File Transfer Protocol
Encryption:  Require explicit FTP over   #recommended 
Logon Type: Ask for password	        #recommended 
User: username

14. তারপরে পাসওয়ার্ডটি আবার প্রবেশ করতে সংযোগে ক্লিক করুন এবং তারপরে SSL/TLS সংযোগের জন্য ব্যবহৃত শংসাপত্রটি যাচাই করুন এবং এফটিপি সার্ভারের সাথে সংযোগ করতে আরও একবার ঠিক আছে ক্লিক করুন:

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

15. সর্বশেষে তবে সর্বনিম্ন নয়, স্থানীয় মেশিন থেকে ফাইলগুলি ফোল্ডারে FTP সেভারে স্থানান্তর করার চেষ্টা করুন, ফাইল স্থানান্তর সম্পর্কিত প্রতিবেদনগুলি দেখার জন্য ফাইলজিলা ইন্টারফেসের নীচের প্রান্তটি দেখুন।

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