linux配置vsftp教程精选集
小编:动力软件园 时间:2013-12-17 14:51:47
对于linux的vsftp用户登录权限设置的问题简单提及一下,不做详细的描述。
使用vsftp可以分为三类登录方式
1、匿名用户登录
2、本地账户权限登录
3、虚拟用户登录
我们着重讲述一下第三种方式登录。www.pw88.com站长一直认为ftp是个不安全的工具,容易造成被黑客工具和利用。尽管也可以利用
本地账户权限设置的方式来进行用户分配,但是不太符合更为精细的应用。还是虚拟用户登录权限方面更加细致到位。
以下是具体的设置步骤:
安装VSFTP 我就不写了。网上教程很多,大家随便找一下看。
[root@CentOS5 /]# rpm -qa | grep vsftp
看一下是否安全。没有的话可以 在线 yum search vsftp 然后 yum install vsftp 安装
安装完成
1. 添加虚拟用户口令文件
[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
bobyuan #用户名
123456 #密码
www.pw88.com #用户名
123456 #密码
这里写了两个用户名,需要更多请在这里陆续向下添加
2. 生成虚拟用户口令认证文件
将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。
首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。
[root@CentOS5 /]#rpm –qa |grep db4-utils
[root@CentOS5 /]#rpm –ivh db4-utils-4.3.29-9.fc6.i386.rpm
下面使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3. 编辑vsftpd的PAM认证文件
在/etc/pam.d目录下,
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
这里注意了,搭建完成后可能会出现 530 Login incorrect错误
很多“大神”都说是pam_service_name=vsftpd 缺少这句话,其实这句话默认就有,
所以问题定位为pam认证配置得不正确,将pam_userdb.so指定路径改为相对路径问题得以解决。
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpusr
改为:
auth required pam_userdb.so db=/etc/vsftpd/ftpusr
account required pam_userdb.so db=/etc/vsftpd/ftpusr
4. 建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vftpuser
[root@CentOS5 /]#chmod 700 /home/vftpsite
vsftpd匿名用户新建目录提示:550 Create directory operation failed.
chmod 700 /home/vftpsite这句话让我在后来的登陆后发现没有任何权限,只好改成777.www.pw88.com提醒大家留意问题。
解决办法:
1、如何禁止SELinux。
# vi /etc/selinux/config
修改为:SELINUX=disabled
如果不想重启系统的话,在终端中输入:setenforce 0。
重新启动vsftpd进程,问题解决。
不如直接删除这个恼人的SELinux
yum remove selinux* -y
这个世界终于清净了…
可能性二:
匿名用户的目录(/var/ftp/pub)没有写权限,需要将其设置为具有写权限。
首先转到/var/ftp
然后在终端中输入:chmod 777 pub。
也许就是这个问题绊倒了你,:-)
5. 配置vsftpd.conf(设置虚拟用户配置项)
[root@CentOS5 /]#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES #开启虚拟用户
guest_username=vftpuser #FTP虚拟用户对应的系统用户
pam_service_name=vsftpd #PAM认证文件
6. 重启vsftpd服务
[root@CentOS5 /]#service vsftpd restart
7. 测试虚拟用户登录FTP
C:UserAdministrator>ftp 192.168.120.240
连接到192.168.120.240。
220 Welcome to BOB FTP server
用户(192.168.120.240(none)):markwang
331 Please specify the password.
密码:
230 Login successful.
8、对不同的虚拟用户设置不同的权限
在vsftpd.conf配置文件中添加user_config_dir配置项,并设置用户配置文件的保存目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf (手工建立 虚拟用户配置文件)
这里这么配置的意思是可以把每个虚拟用户的配置文件单独存放,方便管理。
第一步是添加用户,这里是添加用户权限,每个用户一个文件方便管理。
local_root=www.pw88.com
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
ok了。修改服务conf文件需要restart vsftp服务,修改用户权限是不需要重启的 。随时生效。