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

Centos 7 এ vsftpd দিয়ে কীভাবে এফটিপি সার্ভার সেটআপ করবেন

ইনস্টল করুন cacti গ্রাফ 1.2.9 (সর্বশেষ সংস্করণ) পদক্ষেপে CentOS 7

ইনস্টল করুন cacti গ্রাফ 1.2.9 (সর্বশেষ সংস্করণ) পদক্ষেপে CentOS 7

সুচিপত্র:

Anonim

এফটিপি (ফাইল ট্রান্সফার প্রোটোকল) একটি মানক ক্লায়েন্ট-সার্ভার নেটওয়ার্ক প্রোটোকল যা ব্যবহারকারীদের দূরবর্তী নেটওয়ার্ক থেকে এবং ফাইলগুলি স্থানান্তর করতে দেয়।

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

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

আরও সুরক্ষিত এবং দ্রুত ডেটা স্থানান্তরের জন্য, এসসিপি বা এসএফটিপি ব্যবহার করুন।

পূর্বশর্ত

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

CentOS 7 এ vsftpd ইনস্টল করা হচ্ছে

Vsftpd প্যাকেজটি ডিফল্ট CentOS সংগ্রহস্থলগুলিতে উপলব্ধ। এটি ইনস্টল করতে, নিম্নলিখিত কমান্ডটি জারি করুন:

sudo yum install vsftpd

প্যাকেজ ইনস্টল হয়ে গেলে, vsftpd ডিমনটি শুরু করুন এবং বুট করার সময় এটি স্বয়ংক্রিয়ভাবে শুরু করতে সক্ষম করুন:

sudo systemctl start vsftpd sudo systemctl enable vsftpd

আপনি ভাসফ্টপিডি পরিষেবাটি এর স্থিতি মুদ্রণ করে যাচাই করতে পারবেন:

sudo systemctl status vsftpd

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

● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2018-11-22 09:42:37 UTC; 6s ago Main PID: 29612 (vsftpd) CGroup: /system.slice/vsftpd.service └─29612 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

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

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

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

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

sudo nano /etc/vsftpd/vsftpd.conf

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

আমরা কেবল স্থানীয় ব্যবহারকারীদের এফটিপি সার্ভারে অ্যাক্সেসের অনুমতি দেব, anonymous_enable ও স্থানীয়_আবারযোগ্য নির্দেশাবলী খুঁজে পেতে এবং নীচের লাইনে আপনার কনফিগারেশন মেলে যাচাই করব:

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES

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

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

/etc/vsftpd/vsftpd.conf

write_enable=YES

৩. ক্রুট জেল

ক্রুট নির্দেশকে অস্বীকার করে এফটিপি ব্যবহারকারীদের তাদের হোম ডিরেক্টরিগুলির বাইরে যে কোনও ফাইল অ্যাক্সেস করতে বাধা দিন।

/etc/vsftpd/vsftpd.conf

chroot_local_user=YES

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

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

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

    /etc/vsftpd/vsftpd.conf

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

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

    /etc/vsftpd/vsftpd.conf

    allow_writeable_chroot=YES

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

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

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

/etc/vsftpd/vsftpd.conf

pasv_min_port=30000 pasv_max_port=31000

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

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

/etc/vsftpd/vsftpd.conf

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/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem

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

sudo nano /etc/vsftpd/vsftpd.conf

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

/etc/vsftpd/vsftpd.conf

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

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

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

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

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO tcp_wrappers=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YES

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

sudo systemctl restart vsftpd

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

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

sudo firewall-cmd --permanent --add-port=20-21/tcp sudo firewall-cmd --permanent --add-port=30000-31000/tcp

টাইপ করে ফায়ারওয়াল বিধিগুলি পুনরায় লোড করুন:

firewall-cmd --reload

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

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

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

    sudo adduser newftpuser

    এর পরে, আপনাকে ব্যবহারকারীর পাসওয়ার্ড সেট করতে হবে:

    sudo passwd 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 শেল তৈরি করতে এবং তা /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

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

উপসংহার

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

এফটিপি সেন্টোস