vsftpd安装详解
来源:互联网 发布:淘宝赚运费险 编辑:程序博客网 时间:2024/05/18 03:32
windows服务器下的ftp server以前用的是filezilla,linux下还是使用vsftpd,环境centos 6.x。
1、安装软件
rpm -qa vsftpdyum install vsftpd
2、编辑配置文件
vim /etc/vsftpd/vsftpd.conf
vim命令行模式下输入:1,$d清空配置信息
将以下配置信息粘进去就好了
listen=YESbackground=YESanonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESchown_uploads=NOxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESasync_abor_enable=YESascii_upload_enable=YESascii_download_enable=YESftpd_banner=Welcome to FTP serverspam_service_name=vsftpdchroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd/vsftpd.chroot_list
添加用户列表文件并启动服务
touch /etc/vsftpd/vsftpd.chroot_list
service vsftpd start
3、添加用户和目录
useradd ftptest -d /home/ftptestchown -R ftptest /home/ftptestpasswd ftptest
将新建的用户添加到chroot_list中
echo 'ftptest'>> /etc/vsftpd/vsftpd.chroot_listservice vsftpd restart
开启服务端口
vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT service iptables restart
4、测试连接
选用ftp客户端(我自己用的是chinaftp)
结果报了“cannot change directory /home/ftptest”错误
设置selinux如下:
[ftptest@kristoffer home]$ getsebool -a | grep ftpallow_ftpd_anon_write --> offallow_ftpd_full_access --> offallow_ftpd_use_cifs --> offallow_ftpd_use_nfs --> offftp_home_dir --> offftpd_connect_db --> offftpd_use_passive_mode --> offhttpd_enable_ftp_server --> offtftp_anon_write --> off
[ftptest@kristoffer home]$ setsebool -P ftpd_home_dir 1[ftptest@kristoffer home]$ setsebool -P allow_ftpd_full_access 1
测试连接 OK!
5、vsftpd虚拟用户的配置
vsftpd中的用户有三种形式,第一种是匿名用户,第二种本地用户,第三种虚拟用户。采用虚拟用户可以很好地保证操作系统的安全性,在大量FTP用户帐号的情况下,减轻操作系统的负担,还有虚拟用户的帐号权限设置更加方便,存储位置更加灵活。
PAM(Plugable Authentication Module,可拔插认证模块)是一种完成通用认证功能的程序,它可以被程序调用,是vsftpd支持的认证方式。现在开始配置:
cd ~到用户根目录,vim ftp_user.txt,设置用户和密码,奇数行是用户偶数行是密码:
user1password1user2password2user2password2
通过rpm -qa | grep db4查看系统是否安装了db4,db4、db4-devel、db4-utils如果都在了就没问题
然后就是生成数据库并设置文件权限
db_load -T -t hash -f ./ftp_user.txt /etc/vsftpd/ftp_user.dbchmod 600 /etc/vsftpd/ftp_user.db
然后vim新建/etc/pam.d/vsftpd_login文件(pam运行的脚本),输入内容如下:
auth required pam_userdb.so db=/etc/vsftpd/ftp_useraccount required pam_userdb.so db=/etc/vsftpd/ftp_user
pam_userdb.so在32位服务器是位于/lib/security/,在64位服务器是位于/lib64/security/
建立所有FTP虚拟用户帐号使用的操作系统帐号,并设置帐号的工作目录和权限:
useradd -d /home/myweb -s /sbin/nologin ftp_virtchmod 700 /home/myweb
配置vsftpd.conf,添加虚拟用户:
guest_enable=YESguest_username=ftp_virtpam_service_name=vsftpd_login
操作系统本身有一套控制用户权限的机制,当vsftpd采用本地用户登录时,本地用户对文件的权限是由操作系统规定的,如果要求所有的虚拟用户对操作系统的权限是一样的,可以在vsftpd.conf中使用virtual_use_local_privs=YES配置,其功能是使虚拟用户权限与操作系统中所对应的用户的权限一样,这样就可以通过设置本地用户权限来决定虚拟用户的权限。但如果不同用户采用不同的权限策略,应该在vsftpd.conf中添加user_config_dir=/etc/vsftpd,然后创建独立目录:mkdir /var/ftp/dir1,mkdir /var/ftp/dir2。设置两个目录的权限chown ftp_virt mkdir /var/ftp/dir1,chown ftp_virt mkdir /var/ftp/dir2。最后,在/etc/vsftpd目录下建立3个文件,文件名为3个对应的虚拟帐号:
#vim /etc/vsftpd/user1local_root=/var/ftp/dir1#vim /etc/vsftpd/user2local_root=/var/ftp/dir2#vim /etc/vsftpd/user3local_root=/var/ftp/dir3write_enable=YESanonymous_enable=NO anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YESanon_other_write_enable=YES local_umask=022download_enable=Yes
重启测试连接,如果不能连接尝试iptables -F或关闭SELinux后能否连上。 通常情况下同时设置INPUT表和OUTPUT表就能实现PORT模式的连接。
-A INPUT -p tcp --dport 21 -j ACCEPT-A OUTPUT -p tcp --dport 21 -j ACCEPT
发现虚拟用户用IE做客户端会出现将目录指向系统根目录的危险BUG,所以将vsftpd.conf中的chroot_local_user=YES注释去掉,将用户访问目录限制在当前用户目录。
- vsftpd安装、配置详解
- vsftpd安装详解
- Vsftpd原理安装配置详解
- vsftpd服务器的安装与详解
- vsftpd服务器的安装与详解
- CentOs 7 安装 Vsftpd 服务器 图文详解
- centos 7 安装配置vsftpd教程详解
- vsftpd安装
- 安装vsftpd
- vsftpd安装
- vsftpd安装
- 安装vsftpd
- vsftpd安装
- 安装vsftpd
- vsftpd 安装
- 安装vsftpd
- 安装 vsftpd
- VSFTPD安装:
- 类的继承
- 超簡單! WSDL + Eclipse 筆記
- 异常详细信息: 未能加载文件或程序集“。。。”或它的某一个依赖项。拒绝访问。
- Google打造无人机递送包裹 摆脱陆上交通局限
- android service 生命周期
- vsftpd安装详解
- Qt 编译安装前必备库文件
- git config命令使用第一篇——介绍,基本操作,增删改查
- extjs gantt时间出错问题
- git config命令使用第二篇——section操作,多个key值操作,使用正则
- Viewport
- cursor:hand 与 cursor:pointer 的区别
- 日历控件,为了在自己的程序中随时得到一个日期所写的
- leetCode OJ(1) Single Number