一、为什么选择proftpd
1.vsftpd对于管理而言太不给力了,虚拟用户设置起来很麻烦。不支持ldap。vsftpd看来只适合对外匿名下载站
2.proftpd可以用文件做虚拟账户(可以),也可以用ldap.
二、安装
centos装上epel源之后可以yum install proftpd了
不推荐make install 。。。
三、配置port等
1.端口默认是21,如果需要改为其他端口,需要设置:
Port 12345
考虑到要为Passive模式设置固定端口会方便设置防火墙,也需要设置
PassivePorts 12346 12349
四、设置虚拟用户
建立虚拟用户,脱离于系统用户,安全性增加了许多:
ftpasswd下载从此处 http://www.castaglia.org/proftpd/
# mkdir -p /etc/proftpd
# ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=ftpadmin --uid=99 --home=/home/ftpdata --shell=/sbin/nologin
# ftpasswd --group --file=/etc/proftpd/ftpd.group --name=admin --gid=99
# ftpasswd --group --name=admin --gid=99 --member=ftpadmin
注脚:
–passwd指定建立一个新的虚拟用户,–group则建立一个虚拟组;
–file指定存储虚拟用户的文件;
–name指定此虚拟用户的用户名,密码会在命令执行时要求输入;
–uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件
–home指定此虚拟用户的根目录,就是其登陆FTP后的根目录;
–shell指定此虚拟用户的shell,为了安全当然指定一个不可登陆的shell了。
四、开启虚拟用户登录
在配置文件里增加
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
五、 用户权限指派
建议采用方法1,以免引起不必在的麻烦,Linux上POSIX 权限管理并不是所有人都熟悉
方法1:
uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件;
一、为什么选择proftpd
1.vsftpd对于管理而言太不给力了,虚拟用户设置起来很麻烦。不支持ldap。vsftpd看来只适合对外匿名下载站
2.proftpd可以用文件做虚拟账户(可以),也可以用ldap.
二、安装
centos装上epel源之后可以yum install proftpd了
不推荐make install 。。。
三、配置port等
1.端口默认是21,如果需要改为其他端口,需要设置:
Port 12345
考虑到要为Passive模式设置固定端口会方便设置防火墙,也需要设置
PassivePorts 12346 12349
四、设置虚拟用户
建立虚拟用户,脱离于系统用户,安全性增加了许多:
ftpasswd下载从此处 http://www.castaglia.org/proftpd/
# mkdir -p /etc/proftpd
# ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=ftpadmin --uid=99 --home=/home/ftpdata --shell=/sbin/nologin
# ftpasswd --group --file=/etc/proftpd/ftpd.group --name=admin --gid=99
# ftpasswd --group --name=admin --gid=99 --member=ftpadmin
注脚:
–passwd指定建立一个新的虚拟用户,–group则建立一个虚拟组;
–file指定存储虚拟用户的文件;
–name指定此虚拟用户的用户名,密码会在命令执行时要求输入;
–uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件
–home指定此虚拟用户的根目录,就是其登陆FTP后的根目录;
–shell指定此虚拟用户的shell,为了安全当然指定一个不可登陆的shell了。
四、开启虚拟用户登录
在配置文件里增加
AuthOrder mod_auth_file.c mod_auth_unix.c
AuthUserFile /etc/proftpd/ftpd.passwd
五、 用户权限指派
建议采用方法1,以免引起不必在的麻烦,Linux上POSIX 权限管理并不是所有人都熟悉
方法1:
uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件;
#chown -R nobody.root /home/ftpdata/
nobody uid 99,对用户主目录赋予所有权限
关于权限颗粒化设置:请使用Limit
更多参考 http://castaglia.org/proftpd/doc/README.PAM.html
http://www.proftpd.org/localsite/Userguide/linked/c503.html
方法二:
setfacl -m user:peter:rwx file.txt
setfacl -m u:1002:rwx /home/apache/htdocs
相关资料
http://www.proftpd.org/localsite/Userguide/linked/userguide.html
http://www.haw-haw.org/node/213#more-213 proftpd实现虚拟用户和quota(不用数据库) ,这个用的是ftpquota