অ্যান্ড্রয়েড

ডেবিয়ান 9 এ vsftpd দিয়ে কীভাবে ftp সার্ভার সেটআপ করবেন

Sekej Sekej শাড়ি // विश्व आदिवासी दिवस धनबाद 2019 // 9 আগস্ট 2019 ধানবাদ ঝাড়খণ্ড

Sekej Sekej শাড়ি // विश्व आदिवासी दिवस धनबाद 2019 // 9 আগস্ট 2019 ধানবাদ ঝাড়খণ্ড

সুচিপত্র:

Anonim

এফটিপি (ফাইল ট্রান্সফার প্রোটোকল) একটি স্ট্যান্ডার্ড নেটওয়ার্ক প্রোটোকল যা দূরবর্তী নেটওয়ার্ক থেকে এবং ফাইলগুলি স্থানান্তর করতে ব্যবহৃত হয়। আরও সুরক্ষিত এবং দ্রুত ডেটা স্থানান্তরের জন্য, এসসিপি বা এসএফটিপি ব্যবহার করুন।

লিনাক্সের জন্য অনেকগুলি ওপেন সোর্স এফটিপি সার্ভার উপলব্ধ। সর্বাধিক জনপ্রিয় এবং বহুল ব্যবহৃত পিউরএফটিপিডি, প্রোএফটিপিডি এবং বনফুটপিডি।

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

পূর্বশর্ত

আপনি যে ব্যবহারকারী হিসাবে লগ ইন করেছেন তা অবশ্যই প্যাকেজ ইনস্টল করতে সক্ষম হওয়ার জন্য সুডোর অধিকার থাকতে হবে।

ডেবিয়ান 9 এ vsftpd ইনস্টল করা

বনফুটপিডি প্যাকেজটি দেবিয়ান সংগ্রহস্থলগুলিতে উপলব্ধ। ইনস্টলেশনটি বেশ সোজা:

sudo apt update sudo apt install vsftpd

vsftpd পরিষেবা ইনস্টলেশন প্রক্রিয়া শেষ হওয়ার পরে স্বয়ংক্রিয়ভাবে শুরু হবে। পরিষেবার স্থিতি মুদ্রণ করে এটি যাচাই করুন:

sudo systemctl status vsftpd

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

● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf

Vsftpd কনফিগার করা হচ্ছে

Vsftpd সার্ভারটি /etc ডিরেক্টরিতে পাওয়া যায়, vsftpd.conf ফাইলটি সংশোধন করে কনফিগার করা যেতে পারে।

বেশিরভাগ সেটিংস কনফিগারেশন ফাইলের অভ্যন্তরে ভালভাবে নথিভুক্ত করা হয়। সমস্ত উপলভ্য বিকল্পের জন্য অফিসিয়াল vsftpd পৃষ্ঠাটি দেখুন।

নিম্নলিখিত বিভাগগুলিতে, আমরা একটি সুরক্ষিত vsftpd ইনস্টলেশন কনফিগার করতে প্রয়োজনীয় কিছু গুরুত্বপূর্ণ সেটিংস অতিক্রম করব।

Vsftpd কনফিগারেশন ফাইলটি খোলার মাধ্যমে শুরু করুন:

sudo nano /etc/vsftpd.conf

1. এফটিপি এক্সেস

anonymous_enable এবং স্থানীয়_ সক্ষম সক্ষম নির্দেশাবলী সনাক্ত করুন এবং নীচের লাইনে আপনার কনফিগারেশন ম্যাচটি যাচাই করুন:

/etc/vsftpd.conf

anonymous_enable=NO local_enable=YES

এটি নিশ্চিত করে যে কেবল স্থানীয় ব্যবহারকারীরা এফটিপি সার্ভারটি অ্যাক্সেস করতে পারবেন।

২. আপলোডগুলি সক্ষম করা

ফাইল সিস্টেমে যেমন ফাইলগুলি আপলোড এবং মুছে ফেলার পরিবর্তনের অনুমতি দেওয়ার জন্য write_enable সেটিংসটি write_enable

/etc/vsftpd.conf

write_enable=YES

৩. ক্রুট জেল

এফটিপি ব্যবহারকারীদের বাড়ির ডিরেক্টরিগুলির বাইরে যে কোনও ফাইল অ্যাক্সেস করতে বাধা দেওয়ার জন্য chroot সেটিংটি chroot

/etc/vsftpd.conf

chroot_local_user=YES

সুরক্ষিত দুর্বলতা রোধ করতে ডিফল্টরূপে, ক্রুট সক্ষম করা থাকলে vsftpd ফাইলগুলি আপলোড করতে অস্বীকার করবে যদি ব্যবহারকারীরা যে ডিরেক্টরিটি লকড থাকে সেই ডিরেক্টরিটি লিখিত হয়।

ক্রুট সক্ষম থাকা অবস্থায় আপলোডগুলি অনুমোদিত করতে নীচের একটি পদ্ধতি ব্যবহার করুন।

  • পদ্ধতি 1. - আপলোডের অনুমতি দেওয়ার জন্য প্রস্তাবিত পদ্ধতিটি ক্রুটকে সক্ষম করে রাখা এবং এফটিপি ডিরেক্টরিগুলি কনফিগার করা। এই টিউটোরিয়ালে, আমরা ব্যবহারকারীর ঘরের ভিতরে একটি ftp ডিরেক্টরি তৈরি করব যা ফাইল আপলোড করার জন্য ক্রুট এবং লিখনযোগ্য uploads ডিরেক্টরি হিসাবে কাজ করবে।

    /etc/vsftpd.conf

    user_sub_token=$USER local_root=/home/$USER/ftp

    পদ্ধতি 2 - অন্য বিকল্পটি হ'ল vsftpd কনফিগারেশন ফাইলে নিম্নলিখিত নির্দেশগুলি যুক্ত করা। আপনি যদি তার ব্যবহারকারী ডিরেক্টরিতে তার ডিরেক্টরিতে লেখার যোগ্য অ্যাক্সেস দিতে চান তবে এই বিকল্পটি ব্যবহার করুন।

    /etc/vsftpd.conf

    allow_writeable_chroot=YES

৪. প্যাসিভ এফটিপি সংযোগগুলি

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

কনফিগারেশন ফাইলে নিম্নলিখিত লাইনগুলি যুক্ত করুন:

/etc/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

5. ব্যবহারকারী লগইন সীমাবদ্ধ

কেবলমাত্র নির্দিষ্ট ব্যবহারকারীদের এফটিপি সার্ভারে লগ ইন করার অনুমতি দেওয়ার জন্য ফাইলের শেষে নীচের লাইনগুলি যুক্ত করুন:

/etc/vsftpd.conf

userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

যখন এই বিকল্পটি সক্ষম করা থাকে আপনি /etc/vsftpd.user_list ফাইলটিতে (ব্যবহারকারী প্রতিটি লাইনে একজন ব্যবহারকারী) যুক্ত করে কোন ব্যবহারকারী লগইন করতে পারবেন তা স্পষ্ট করে উল্লেখ করতে হবে।

SSL. এসএসএল / টিএলএস দিয়ে ট্রান্সমিশন সুরক্ষিত করা

এসএসএল / টিএলএস এর সাথে এফটিপি সংক্রমণ এনক্রিপ্ট করার জন্য, আপনার এটির জন্য একটি এসএসএল শংসাপত্র এবং এফটিপি সার্ভারটি কনফিগার করতে হবে।

আপনি কোনও বিশ্বস্ত শংসাপত্র কর্তৃপক্ষের দ্বারা স্বাক্ষরিত একটি বিদ্যমান এসএসএল শংসাপত্র ব্যবহার করতে পারেন বা একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে পারেন।

এই টিউটোরিয়ালে, আমরা openssl কমান্ডটি ব্যবহার করে একটি স্ব-স্বাক্ষরিত SSL শংসাপত্র তৈরি করব।

নিম্নলিখিত কমান্ডটি একটি 2048-বিট প্রাইভেট কী এবং স্ব স্বাক্ষরিত শংসাপত্র 10 বছরের জন্য বৈধ তৈরি করবে। ব্যক্তিগত কী এবং শংসাপত্র উভয়ই একই ফাইলে সংরক্ষণ করা হবে:

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

একবার SSL শংসাপত্র তৈরি হয়ে গেলে vsftpd কনফিগারেশন ফাইলটি খুলুন:

sudo nano /etc/vsftpd.conf

rsa_cert_file এবং rsa_private_key_file নির্দেশিকা সন্ধান করুন, তাদের মানগুলি pam ফাইলের পথে পরিবর্তন করুন এবং ssl_enable YES ssl_enable সেট করুন:

/etc/vsftpd.conf

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

অন্যথায় নির্দিষ্ট না করা থাকলে, এফটিপি সার্ভারটি নিরাপদ সংযোগ তৈরি করতে কেবল টিএলএস ব্যবহার করবে।

Vsftpd পরিষেবাটি পুনরায় চালু করুন

একবার আপনি সম্পাদনা শেষ করার পরে, vsftpd কনফিগারেশন ফাইল (মন্তব্যগুলি বাদে) এর মতো দেখতে হবে:

/etc/vsftpd.conf

listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO

পরিবর্তনগুলি কার্যকর হওয়ার জন্য ফাইলটি সংরক্ষণ করুন এবং vsftpd পরিষেবাটি পুনরায় চালু করুন:

sudo systemctl restart vsftpd

ফায়ারওয়াল খোলা হচ্ছে

21 (এফটিপি কমান্ড পোর্ট), পোর্ট 20 (এফটিপি ডাটা পোর্ট) এবং 30000-31000 (প্যাসিভ পোর্টস পরিসর) 30000-31000 , নিম্নলিখিত কমান্ডগুলি চালান:

sudo ufw allow 20:21/tcp sudo ufw allow 30000:31000/tcp

লক আউট এড়াতে আমরা বন্দরটি 22 টিও খুলব:

sudo ufw allow OpenSSH

ইউএফডাব্লু অক্ষম করে এবং পুনরায় সক্ষম করে ইউএফডাব্লু বিধিগুলি পুনরায় লোড করুন:

sudo ufw disable sudo ufw enable

চালিত পরিবর্তনগুলি যাচাই করতে:

sudo ufw status

Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)

এফটিপি ব্যবহারকারী তৈরি করা হচ্ছে

আমাদের এফটিপি সার্ভারটি পরীক্ষা করতে আমরা একটি নতুন ব্যবহারকারী তৈরি করব।

  • আপনার যদি ইতিমধ্যে এমন কোনও ব্যবহারকারী থাকে যা আপনি এফটিপি অ্যাক্সেস দিতে চান তবে প্রথম পদক্ষেপটি এড়িয়ে যান I আপনি যদি আপনার কনফিগারেশন ফাইলের allow_writeable_chroot=YES সেট করেন তবে 3rd য় ধাপ এড়িয়ে যান।
  1. newftpuser নামে একটি নতুন ব্যবহারকারী তৈরি করুন:

    sudo adduser newftpuser

    অনুমোদিত এফটিপি ব্যবহারকারীদের তালিকায় ব্যবহারকারীকে যুক্ত করুন:

    echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list

    এফটিপি ডিরেক্টরি ট্রি তৈরি করুন এবং সঠিক অনুমতিগুলি সেট করুন:

    sudo mkdir -p /home/newftpuser/ftp/upload sudo chmod 550 /home/newftpuser/ftp sudo chmod 750 /home/newftpuser/ftp/upload sudo chown -R newftpuser: /home/newftpuser/ftp

    পূর্ববর্তী বিভাগে আলোচিত হিসাবে ব্যবহারকারী তার ফাইলগুলি ftp/upload ডিরেক্টরিতে আপলোড করতে সক্ষম হবে।

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

শেল অ্যাক্সেস অক্ষম করা হচ্ছে

ডিফল্টরূপে, কোনও ব্যবহারকারী তৈরি করার সময়, স্পষ্টভাবে নির্দিষ্ট না করা থাকলে ব্যবহারকারীর সার্ভারে এসএসএইচ অ্যাক্সেস থাকবে।

শেল অ্যাক্সেস অক্ষম করতে, আমরা একটি নতুন শেল তৈরি করব যা কেবল একটি বার্তা প্রিন্ট করবে যা ব্যবহারকারীকে বলবে যে তাদের অ্যাকাউন্ট কেবলমাত্র FTP অ্যাক্সেসের মধ্যে সীমাবদ্ধ।

/bin/ftponly শেলটি তৈরি করুন এবং এটি সম্পাদনযোগ্য করুন:

echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly sudo chmod a+x /bin/ftponly

নতুন শেলটি /etc/shells ফাইলের বৈধ শেলগুলির তালিকায় যুক্ত করুন:

echo "/bin/ftponly" | sudo tee -a /etc/shells

ব্যবহারকারীর শেলটি /bin/ftponly পরিবর্তন করুন:

sudo usermod newftpuser -s /bin/ftponly

আপনি কেবল FTP অ্যাক্সেস দিতে চান এমন সমস্ত ব্যবহারকারীর শেল পরিবর্তন করতে একই কমান্ডটি ব্যবহার করুন।

উপসংহার

এই টিউটোরিয়ালে, আপনি কীভাবে আপনার ডেবিয়ান 9 সিস্টেমে সুরক্ষিত এবং দ্রুত এফটিপি সার্ভারটি ইনস্টল এবং কনফিগার করতে পারবেন তা শিখলেন।

এফটিপি ডিবিয়ান