架设vsftp于centos

由于是第一次安装,因此想最快的安装成功,这也几乎成为此次安装如此艰辛的导火索。

  • 为了先避免不必要的麻烦,关掉防火墙

$ sudo service iptables stop

$ service iptables status

防火墙已停

  • 关掉selinux

$ sudo setenforce 0

$ getenforce

Permissive

  • 要图快,当然使用yum安装prmvsftpd

$ sudo yum -y install vsftpd

为了安全,还是做虚拟用户的ftp,虚拟用户就是让linux的某个本地用户代理ftp的用户

  1. 为这个虚拟用户建立一个本地用户,为了不让这个用户登录,将它的shell设置为nologin

$ sudo adduser -s /sbin/nologin ftpuser

$ grep ftpuser /etc/passwd

ftpuser:x:503:503::/home/ftpuser:/sbin/nologin

  1. 建立ftp账号,使用db_load命令来建立账号密码数据库
    1. 建立一个ftp账号文本文件,奇数行是用户名,偶数行是用户密码(注意,本地用户名字不必和虚拟用户相同,这里仅仅是巧合)

$ cat passwd.txt

ftpuser

123456

$ pwd

/etc/vsftpd

  1. 将文本文件变成数据库文件.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

  1. 让用户名通过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

  1. 配置/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

  1. 配置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开启的时候应该怎么做

你可能感兴趣的:(centos)