架设vsftp于centos
由于是第一次安装,因此想最快的安装成功,这也几乎成为此次安装如此艰辛的导火索。
-
为了先避免不必要的麻烦,关掉防火墙
$ sudo service iptables stop
$ service iptables status
防火墙已停
-
关掉selinux
$ sudo setenforce 0
$ getenforce
Permissive
-
要图快,当然使用yum安装prm包vsftpd:
$ sudo yum -y install vsftpd
为了安全,还是做虚拟用户的ftp,虚拟用户就是让linux的某个本地用户代理ftp的用户
-
为这个虚拟用户建立一个本地用户,为了不让这个用户登录,将它的shell设置为nologin。
$ sudo adduser -s /sbin/nologin ftpuser
$ grep ftpuser /etc/passwd
ftpuser:x:503:503::/home/ftpuser:/sbin/nologin
-
建立ftp账号,使用db_load命令来建立账号密码数据库
-
建立一个ftp账号文本文件,奇数行是用户名,偶数行是用户密码(注意,本地用户名字不必和虚拟用户相同,这里仅仅是巧合)
-
$ cat passwd.txt
ftpuser
123456
$ pwd
/etc/vsftpd
-
将文本文件变成数据库文件.db
$ sudo db_load -T -t hash -f passwd.txt passwd.db
$ ls -l passwd*
-rw-r--r-- 1 root root 12288 11-24 13:31 passwd.db
-rw-r--r-- 1 root root 15 11-24 13:25 passwd.txt
-
让用户名通过passwd.db来认证
$ grep '^[^#]' /etc/pam.d/vsftpd
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd
account required /lib/security/pam_userdb.so db=/etc/vsftpd/passwd
-
配置/etc/vsftpd/vsftpd.conf,
这部分请man vsftpd.conf,里面有详细说明,重点在:virtual user are treated with anonymous,因此所有对anonymous有效的操作,都对virtual user有效
#不允许匿名用户:
anonymous_enable=NO
#所有非匿名用户都视作guest,即virtual user
guest_enable=YES
#将virtual user关联到本地用户
guest_username=ftpuser
#放置virtual user各自配置文件的文件夹,配置文件以virtual user的名字命名
user_config_dir=/etc/vsftpd/user_conf
-
配置virtual user权限
#建立d中提到的virtual user文件夹
$ sudo mkdir user_conf
$ cat /etc/vsftpd/user_conf/ftpuser
#不让匿名用户仅仅读取所有用户都可以读取的文件
anon_world_readable_only=NO
#匿名用户可以上传
anon_upload_enable=YES
#在write_enable为真,匿名用户(就是文中的linux账户ftpuser)
#+对父文件夹可写的情况下,可以建立新文件夹
anon_mkdir_write_enable=YES
#建立文件的默认权限
anon_umask=700
#让匿名用户完全具有linux下的w权限(注意与前面bool值的区别)
anon_other_write_enable=YES
至此就可以使用了
未完待续~~~~~~~
接下来是防火墙,selinux开启的时候应该怎么做