vsftpd 虚拟用户详细配置
如果企業用戶太多,創建太多的系統賬戶顯然是不明智,這時候我們就需要利用虛擬賬戶,vsftpd虛擬賬戶的數據保存在Berkeley DB格式的數據文件中,所以需要安裝db4-utils工具來創建這樣的數據文件。以下適用于Linux(contos6,redhat6,oracle linux6)其他尚未測試。
版本7.0以上安裝vsftpd沒有db4 需要安裝?
yum install -y psmisc net-tools systemd-devel libdb-devel perl-DBI需要在vsftpd.conf 配置文件添加一行
allow_writeable_chroot=YES??
不添加報錯
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
錯誤原因為:
- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.上面是7系統和6不一樣的地方,其他配置都一樣
1)系統安裝完成后配置靜態IP?
? vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 HWADDR=00:0C:29:ED:3B:E5 TYPE=Ethernet UUID=45ad3dc1-032c-43e4-85e4-6d5ebd9ecc88 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.1.168 ##根據自己需求更改 NETMASK=255.255.255.0 GATEWAY=192.168.1.12)關閉selinux
vi /etc/selinux/config SELINUX=disabled ##將enabled改為disabled3)配置yum
mv /etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo.bak ##重命名源文件vi /etc/yum.repos.d/eld.repo ##創建新文件[EL] name =Linux 6.5 DVD baseurl=file:///media/Server/ gpgcheck=0 enabled=1 ##保存退出mount /dev/cdrom /media/ ##掛載光盤yum list ##測試yum4)開始安裝vsftpd
yum -y install vsftpd ##安裝vsftpd服務yum -y install db4 db4-utils db4-devel ##安裝虛擬用戶數據庫相關文件5)修改vsftpd的PAM驗證配置文件
Linux一般都通過PAM設置賬戶的驗證機制,修改login認證配置文件,在文件中的db選項指定并驗證賬戶和密碼的數據庫文件,注意數據庫文件無須.db名稱后綴(注意系統版本,如果你是64bit系統,是調用/lib64目錄下的模塊)估計現在32位用的比較少吧。
vi /etc/pam.d/vsftpd ##屏蔽默認的行添加最最下面兩行,注意32位系統是/lib目,64位系統是/lib64目錄 #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login6)添加Linux本地用戶及虛擬用戶名和密碼
useradd -s /sbin/nologin ftptest ##創建Linux本地用戶不登錄vi /etc/vsftpd/virtual_login ##創建虛擬用戶文件,注意第一行是虛擬用戶,第二行是虛擬用戶的密碼 test1 ##虛擬用戶 testpas ##虛擬密碼 test2 ##虛擬用戶 testpas ##虛擬密碼7)編譯文件及修改文件權限
db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db ##編譯之前創建的虛擬用戶文件為dbchmod 600 /etc/vsftpd/{virtual_login,virtual_login.db}8)修改vsftpd配置文件
cp -rp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak ##源配置文件vi /etc/vsftpd/vsftpd.conf ##修改原配置文件,參數解釋請查看本博客內vsftpd簡介 https://blog.csdn.net/make_zhf/article/details/73799945 anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=YES chown_username=ftptest ##注意:這里是步驟(6)創建的Linux本地用戶ftptest,不改這里虛擬用戶將不能下載文件 xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=600 data_connection_timeout=180 ascii_upload_enable=YES ascii_download_enable=YESpasv_min_port=5881 pasv_max_port=5886ftpd_banner=Welcome to ZHOU FTP service. chroot_local_user=YES listen=YESpam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=ftptest user_config_dir=/etc/vsftpd/vsftpuser_conf9)創建虛擬用戶上傳文件目錄
mkdir /testftp/test1 -pmkdir /testftp/test2 -p10)創建虛擬用戶配置文件目錄及虛擬用戶配置文件
mkdir /etc/vsftpd/vsftpuser_conf -p #創建虛擬用戶文件目錄,存放虛擬用戶配置文件[root@jenkins vsftpuser_conf]# cd /etc/vsftpd/vsftpuser_confvi test1 local_root=/testftp/test1 anon_umask=022 anon_world_readable_only=NO write_enable=YES #anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5vi test2 local_root=/testftp/test2 anon_umask=022 anon_world_readable_only=NO write_enable=YES #anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5##注意:創建虛擬用戶配置文件內容,用戶必要和virtual_login文件用戶保持一致11)啟動啟動vsftpd服務及修改虛擬用戶上傳文件目錄用戶和用戶組
service vsftpd restartchown ftptest.ftptest /testftp -R ##linux 本地用戶vi /etc/sysconfig/iptables ##添加防火墻規則,放開那21端口,讓虛擬用戶過來。 -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPTservice iptables restart?
?
?
?
總結
以上是生活随笔為你收集整理的vsftpd 虚拟用户详细配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴恩达深度学习课程——神经网络与深度学习
- 下一篇: 三角函数的思维导图(上)