vsftpd - PAM - MySQL এবং pam_mkhomedir ডিরেক্টরি তৈরি করতে


11

আমি পিএএম এর সাথে আমার মাইএসকিএল ডিবিতে সংযোগ স্থাপন করে ভার্চুয়াল ব্যবহারকারীদের সাথে সফলভাবে vsftpd ব্যবহার করছি। এখন আমি সফল vsftpd সংযোগ সহ ব্যবহারকারী ডিরেক্টরি তৈরি করতে স্বয়ংক্রিয় করতে চাই।

এখানে /etc/pam.d/vsftpd কনফিগারেশন রয়েছে:

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth required pam_mysql.so verbose=1 user=root passwd=mypass host=localhost db=mydb table=mytable usercolumn=username passwdcolumn=password crypt=3
account required pam_mysql.so verbose=1 user=root passwd=mypass host=localhost db=mydb table=mytable usercolumn=username passwdcolumn=password crypt=3
session required pam_mkhomedir.so skel=/home/skel/ umask=0022 debug

এখন পাম_মখোমেডির যুক্ত করা কেবল দেখায় যে এটি কোনও লগের সাথে অন্য কোনও বার্তা ছাড়াই ডিরেক্টরিটি তৈরি করতে পারে না। সুতরাং এটি অবশ্যই প্রয়োগ করা হয় না। আমার আর কি দরকার আছে?

আমার /etc/vsftpd/vsftpd.conf:

# No ANONYMOUS users allowed
anonymous_enable=NO
# Allow 'local' users with WRITE permissions (0755)
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES

# define a unique user on your system which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=vsftpd
chroot_local_user=YES
listen=YES

# here we use the authentication module for vsftpd to check users name and passw
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES
# here the vsftpd will allow the 'vsftpd' user to login into '/home/vsftpd/$USER directory
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
download_enable=NO

force_local_data_ssl=NO
force_local_logins_ssl=NO

# PASV - passive ports for FTP 
pasv_enable=YES
pasv_min_port=14000
pasv_max_port=14100

আমি আমার পোস্টটি দেখেছিলাম আমার vsftpd.conf এ এটি প্রয়োজন তাই আমিও এটি চেষ্টা করেছিলাম:

session_support=YES

তবে এখন লগগুলি যেমন দেখায় তেমন প্রমাণীকরণ করার বিষয়টি মনে হয় না:

Mar 24 00:46:16 ip-10-212-239-40 vsftpd[1962]: pam_keyinit(vsftpd:session): Unable to look up user "user1"
Mar 24 00:46:16 ip-10-212-239-40 vsftpd[1962]: pam_mkhomedir(vsftpd:session): User unknown.

আমি ডিরেক্টরিটি ইতিমধ্যে তৈরি করেছি তা হলেও এটি। এখন কেউ .ুকতে পারে না।

কোন ধারনা?


হাই, আপনি কি কখনও এই সমস্যাটি সমাধান করতে পেরেছিলেন?
জর্জ

@ জর্জি মোটেও নয়
টম

আমি বিষয়টি খুব অন্যভাবে সমাধান করেছি, আমি vsftpd থেকে সরে এসে খাঁটিফুট দিয়ে চলেছি। এই সমস্ত সমস্যা ছাড়াই কয়েক ঘন্টার মধ্যে সেটআপ এবং চলমান। পুরোপুরি কাজ করে।
জর্জ

/ বাড়ী / ভার্সফ্টপিডি কি ভিসফ্টপিডি এর মালিকানাধীন?
লুকা গিবেলি

উত্তর:


0

পিএএম মডিউল দ্বারা ব্যবহারকারী অনুসন্ধানের জন্য সফল হতে আপনাকে মাইএসকিউএল-এর জন্য এনএসএস মডিউল সক্ষম করতে হবে nsswitch.conf(5)nss_mysqlতোমার বন্ধু.


কোন রেফারেন্স আপনি এই উপর সরবরাহ করতে পারেন? আমি nss-mysqlআমার প্রসঙ্গে প্রয়োজনীয়তা সম্পর্কে কিছুই খুঁজে পাচ্ছি না ?
টম

কেমন আছে pam_mkhomedirব্যবহারকারী এটিকে তৈরি করতে অনুমিত এর বাড়িতে ডিরেক্টরি পাথ জিনিসটা যাচ্ছ? ব্যবহারকারীকে সমাধান করার জন্য কোন ডাটাবেসটি ব্যবহার করবেন তা এটি কীভাবে জানতে পারে? এনএসএস এটি তথ্য সরবরাহ করে। আপনার ক্ষেত্রে, আপনার ব্যবহারকারীর ডাটাবেসটি একটি মাইএসকিউএল ডাটাবেসে সঞ্চিত আছে তা ধরে নিয়ে আপনার nss_mysql দরকার হবে ।
আশীষ শুক্লা

আমি এই গ্রন্থাগারটি সম্পর্কে কিছু জানার চেষ্টা করছি। আপনার প্রদত্ত লিঙ্কটি একটি খুব পুরানো প্রকল্প যার কোনও ডকুমেন্টেশন নেই। যদি আমি এটি ইনস্টল করি তবে এটি আপনার এনএসএসউইচ। সিএনএফ-তে কী রাখবে তার কোনও ইঙ্গিত দেয় না। কেবলমাত্র এতে 3 টি পরামিতি থাকতে পারে। আপনি কি কোনও ধরণের দিকনির্দেশনা সরবরাহ করতে পারেন? এটি পাম_মাইএসকিএল-এর মতো এনএসএস-মাইএসকিএল-এর মতো শব্দ বলে মনে হচ্ছে? আমার কাছে pam_mysql কাজ করছে যেখানে এটি vsftpd ভার্চুয়াল ব্যবহারকারীদের সাথে প্রমাণীকরণের জন্য mysql db ব্যবহার করে।
টম

প্যাম এনএসএসের মতো নয় । পিএএম প্রমাণীকরণের দিকে লক্ষ্যযুক্ত, অন্যদিকে এনএসএসের উদ্দেশ্য হল নামগুলি (হোস্টনাম, ব্যবহারকারী নাম, ইত্যাদি) সমাধান করা। বেশিরভাগ ডিস্ট্রো এর জন্য একটি প্যাকেজ সরবরাহ করে nss_mysql, যেমন ডেবিয়ান এবং ডেরিভেটিভগুলি এটি সরবরাহ করে libnss-mysql। এবং, হ্যাঁ এটি অর্ধ-দশক ধরে আপডেট করা হয়নি, তবে এটি দুর্দান্ত কাজ করে। আপনি মডিউলটি ইনস্টল করার পরে এটিটি কনফিগার করুন এবং এটিকে আপনার যুক্ত করুন nsswitch.conf(5), জিনিসগুলি আপনার জন্য কাজ শুরু করবে।
আশীষ শুক্লা

আমি আমার ডিস্ট্রো থেকে libnss-mysql যুক্ত করেছি। বাক্সটি থেকে চেষ্টা করে দেখুন এবং কিছুই কাজ করছে না। আমার কী পরিবর্তন করতে হবে?
টম

0

আপনি চেষ্টা করে দেখতে পারেন pam_script- এটি একটি প্যাম মডিউল যা ব্যবহারকারীর সেশনটি খোলা হওয়ার পরে (অন্যদের মধ্যে) স্বেচ্ছাসেবী শেল স্ক্রিপ্টগুলি কার্যকর করতে দেয়।

আপনি pam_scriptএখানে খুঁজে পেতে পারেন : https://github.com/jeroennijhof/pam_script । এটি প্যাকেজ পরিচালকদের মাধ্যমেও ইনস্টলযোগ্য হওয়া উচিত, কমপক্ষে আমি এপ-গেটের মাধ্যমে এটি ইনস্টল করতে সক্ষম হয়েছি।

সাবধানতা অবলম্বন করুন, যেমন vsftpd কমপক্ষে প্রমাণীকরণ অস্বীকার করার সাথে সাথে পাম_স্ক্রিপ্টে কিছু সমস্যা রয়েছে বলে মনে হচ্ছে, আমার অমীমাংসিত প্রশ্ন দেখুন: vsftpd পাম_স্ক্রিপ্ট প্রমাণীকরণ ব্যর্থ হওয়ার পরে হিমায়িত হয়েছে । তবে আপনার ক্ষেত্রে এটি সমস্যা হওয়া উচিত নয়।


0

সংক্ষিপ্ত উত্তরটি হ'ল আপনি সিস্টেম এবং পরিষেবা শংসাপত্রগুলি মিশ্রণ করছেন, এবং vsftpd- তে ভার্চুয়াল ব্যবহারকারীদের সাথে pam_mkhomedir ব্যবহার করা উচিত নয়?

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

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

কেবল মনে রাখবেন, ভার্চুয়াল ব্যবহারকারীদের সাথে, আপনি কেবল vsftpd এর মধ্যে কাজ করছেন, সিস্টেমটি নয়।

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