Vsftpd.conf配置文档
vsftp是一个高速,稳定,安全的ftp server,目前有许多大型ftp站点都使用它,如ftp.redhat.com,ftp.kde.org,ftp.gnome.org..etc
对比同类server(proftpd,wu-ftpd),它配置起来更简单,更安全。 它能让你快速的搭建起一个即稳定又安全的ftp server VS ftpd(Very Secure FTP Daemon)特点:
高速,稳定,比同类ftp server(wu-ftpd,proftpd)更安全.设定更简单
vsftp安装:
下载:
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.1.tar.gz
解压:
[root@LFS ~]# tar zxvf vsftpd-2.0.1.tar.gz
[root@LFS ~]# cd vsftpd-2.0.1
如果需要vsftp支持tcpwrappers,ssl在make前编辑 builddefs.h:
[root@LFS vsftpd-2.0.1]# echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h
[root@LFS vsftpd-2.0.1]# echo "#define VSF_BUILD_SSL" >>builddefs.h
编译:
[root@LFS vsftpd-2.0.1]# make
编译后生成vsftpd binary文件:
[root@LFS vsftpd-2.0.1]# ls -l vsftpd
-rwxr-xr-x 1 root root 88072 Mar 26 12:09 vsftpd*
[root@LFS vsftpd-2.0.1]#
创建必要的帐号,目录:
[root@LFS vsftpd-2.0.1]# useradd nobody
[root@LFS vsftpd-2.0.1]# mkdir /usr/share/empty
如果需要匿名用户访问还需要创建ftp用户:
[root@LFS vsftpd-2.0.1]# mkdir /var/ftp
[root@LFS vsftpd-2.0.1]# useradd -d /var/ftp ftp
设定安全权限:
[root@LFS vsftpd-2.0.1]# chown root:root /var/ftp
[root@LFS vsftpd-2.0.1]# chmod og-w /var/ftp
安装vsftp配置文件,可执行程序,man等:
[root@LFS vsftpd-2.0.1]# install -m 755 vsftpd /usr/sbin/vsftpd
[root@LFS vsftpd-2.0.1]# install -m 644 vsftpd.8 /usr/share/man/man8
[root@LFS vsftpd-2.0.1]# install -m 644 vsftpd.conf.5 /usr/share/man/man5
[root@LFS vsftpd-2.0.1]#install -m 644 vsftpd.conf /etc
对比同类server(proftpd,wu-ftpd),它配置起来更简单,更安全。 它能让你快速的搭建起一个即稳定又安全的ftp server VS ftpd(Very Secure FTP Daemon)特点:
高速,稳定,比同类ftp server(wu-ftpd,proftpd)更安全.设定更简单
vsftp安装:
下载:
ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.1.tar.gz
解压:
[root@LFS ~]# tar zxvf vsftpd-2.0.1.tar.gz
[root@LFS ~]# cd vsftpd-2.0.1
如果需要vsftp支持tcpwrappers,ssl在make前编辑 builddefs.h:
[root@LFS vsftpd-2.0.1]# echo "#define VSF_BUILD_TCPWRAPPERS" >>builddefs.h
[root@LFS vsftpd-2.0.1]# echo "#define VSF_BUILD_SSL" >>builddefs.h
编译:
[root@LFS vsftpd-2.0.1]# make
编译后生成vsftpd binary文件:
[root@LFS vsftpd-2.0.1]# ls -l vsftpd
-rwxr-xr-x 1 root root 88072 Mar 26 12:09 vsftpd*
[root@LFS vsftpd-2.0.1]#
创建必要的帐号,目录:
[root@LFS vsftpd-2.0.1]# useradd nobody
[root@LFS vsftpd-2.0.1]# mkdir /usr/share/empty
如果需要匿名用户访问还需要创建ftp用户:
[root@LFS vsftpd-2.0.1]# mkdir /var/ftp
[root@LFS vsftpd-2.0.1]# useradd -d /var/ftp ftp
设定安全权限:
[root@LFS vsftpd-2.0.1]# chown root:root /var/ftp
[root@LFS vsftpd-2.0.1]# chmod og-w /var/ftp
安装vsftp配置文件,可执行程序,man等:
[root@LFS vsftpd-2.0.1]# install -m 755 vsftpd /usr/sbin/vsftpd
[root@LFS vsftpd-2.0.1]# install -m 644 vsftpd.8 /usr/share/man/man8
[root@LFS vsftpd-2.0.1]# install -m 644 vsftpd.conf.5 /usr/share/man/man5
[root@LFS vsftpd-2.0.1]#install -m 644 vsftpd.conf /etc
OK,安装好啦,看看该如何配置它吧 :)
vsftp的配置文件 /etc/vsftpd.conf, 基本都是自解释的,很简单,并且有相关说明还可以通过man vsftpd.conf 查看所有参数具体说明
vsftpd配置:
/etc/vsftpd.conf :
anonymous_enable=YES
#允许匿名访问
local_enable=YES
#允许本地用户访问(/etc/passwd中的用户)
write_enable=YES
#允许写入权限,包括修改,删除
local_umask=022
#本地用户文件上传后的权限是-rw-r-r
#anon_umask=077
#匿名用户上传后权限是-rw----
anon_world_readable_only=YES
#允许匿名用户浏览,下载文件
anon_upload_enable=YES
#允许匿名用户上传
#anon_mkdir_write_enable=YES
#允许匿名用户建立目录
anon_other_write_enable=YES
#允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
dirmessage_enable=YES
#当使用者转换目录,则会显示该目录下的.message信息
xferlog_enable=YES
#记录s使用者所有上传下载信息
xferlog_file=/var/log/vsftpd.log
#将上传下载信息记录到/var/log/vsftpd.log中
connect_from_port_20=YES
#确保ftp-datad 数据传送使用port 20
idle_session_timeout=600
#如果使用者600秒没有动作,则踢出
chroot_list_enable=YES
#限制使用者不能离开家目录,例如blue登陆后位于/home/blue下,设置该选项后,他不可以转到/home/blue的上层目录,如/bin, /usr,/opt...etc。
chroot_list_file=/etc/vsftpd.chroot_list
#与上条同时使用,设置限制使用者的存放文件为/etc/vsftpd.chroot_list
#建立文本文件/etc/vsftpd.chroot_list,写入要限制的用户,一行一个。
#如果希望限制所有用户,则可以设置 chroot_local_user=YES 代替上面两行
tcp_wrappers=YES
#支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES(我的sles10 就是需要打开这个,不然就启动不了)
#使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
listen_port=21
#ftp监听端口
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.user_list中,一行一个帐号
pam_service_name=vsftpd
# PAM所使用的名称.同userlist_*一样限制用户登陆,不同的是userlist_*在进行密码验证之前拒绝用户登陆,pam是在密码验证之后拒绝登陆.(提示密码错误) 用户列表默认存放在/etc/ftpusers中,一行一个. (可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
#获得 /etc/pam.d/vsftpd:
#[root@LFS vsftpd-2.0.1]#cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
max_clients=100
#最大用户在线数量
max_per_ip=2
#每ip最大线程
anon_max_rate=30000
#匿名用户最大传输速度 单位: bytes/秒
local_max_rate=50000
#本地用户最大传输速度 单位:bytes/秒
user_config_dir=/etc/userconf
#个别用户配置目录(用来设定特殊帐号),例如我想让blue这个用户的传输速度是100KB
就可以在/etc/userconf/下创建文本文件blue(与用户名相同),加入 local_max_rate=100000即可
anon_root=/var/ftp
#设定匿名用户登陆后所在的目录
local_root=/var/local_user
#设定所有本地用户登陆后的目录,如不设置此项,则本地用户登陆后位于各自家目录下。
use_localtime=YES
#使用本地时间而不是GMT
nopriv_user=vsftpd
#设定服务执行者为vsftpd,默认使用的是nobody,vsftpd推荐使用一个权限很低的用户.这里用vsftpd代替nobody,创建 vsftpd用户:
[root@LFS vsftpd-2.0.1]# groupadd vsftpd
[root@LFS vsftpd-2.0.1]# useradd -d /dev/null -g vsftpd -s /bin/false vsftpd
这样就有了个权限非常低的vsftpd用户(没有家目录(/dev/null),没有登陆shell(/bin/false),系统会更安全,设定好后就可以启动啦 :)
[root@LFS etc]# /usr/sbin/vsftpd
[root@LFS etc]# netstat -tul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:6000 *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
[root@LFS etc]#
OK,ftp已经启动
vsftp的配置文件 /etc/vsftpd.conf, 基本都是自解释的,很简单,并且有相关说明还可以通过man vsftpd.conf 查看所有参数具体说明
vsftpd配置:
/etc/vsftpd.conf :
anonymous_enable=YES
#允许匿名访问
local_enable=YES
#允许本地用户访问(/etc/passwd中的用户)
write_enable=YES
#允许写入权限,包括修改,删除
local_umask=022
#本地用户文件上传后的权限是-rw-r-r
#anon_umask=077
#匿名用户上传后权限是-rw----
anon_world_readable_only=YES
#允许匿名用户浏览,下载文件
anon_upload_enable=YES
#允许匿名用户上传
#anon_mkdir_write_enable=YES
#允许匿名用户建立目录
anon_other_write_enable=YES
#允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
dirmessage_enable=YES
#当使用者转换目录,则会显示该目录下的.message信息
xferlog_enable=YES
#记录s使用者所有上传下载信息
xferlog_file=/var/log/vsftpd.log
#将上传下载信息记录到/var/log/vsftpd.log中
connect_from_port_20=YES
#确保ftp-datad 数据传送使用port 20
idle_session_timeout=600
#如果使用者600秒没有动作,则踢出
chroot_list_enable=YES
#限制使用者不能离开家目录,例如blue登陆后位于/home/blue下,设置该选项后,他不可以转到/home/blue的上层目录,如/bin, /usr,/opt...etc。
chroot_list_file=/etc/vsftpd.chroot_list
#与上条同时使用,设置限制使用者的存放文件为/etc/vsftpd.chroot_list
#建立文本文件/etc/vsftpd.chroot_list,写入要限制的用户,一行一个。
#如果希望限制所有用户,则可以设置 chroot_local_user=YES 代替上面两行
tcp_wrappers=YES
#支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES(我的sles10 就是需要打开这个,不然就启动不了)
#使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
listen_port=21
#ftp监听端口
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd.user_list
#以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.user_list中,一行一个帐号
pam_service_name=vsftpd
# PAM所使用的名称.同userlist_*一样限制用户登陆,不同的是userlist_*在进行密码验证之前拒绝用户登陆,pam是在密码验证之后拒绝登陆.(提示密码错误) 用户列表默认存放在/etc/ftpusers中,一行一个. (可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
#获得 /etc/pam.d/vsftpd:
#[root@LFS vsftpd-2.0.1]#cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
max_clients=100
#最大用户在线数量
max_per_ip=2
#每ip最大线程
anon_max_rate=30000
#匿名用户最大传输速度 单位: bytes/秒
local_max_rate=50000
#本地用户最大传输速度 单位:bytes/秒
user_config_dir=/etc/userconf
#个别用户配置目录(用来设定特殊帐号),例如我想让blue这个用户的传输速度是100KB
就可以在/etc/userconf/下创建文本文件blue(与用户名相同),加入 local_max_rate=100000即可
anon_root=/var/ftp
#设定匿名用户登陆后所在的目录
local_root=/var/local_user
#设定所有本地用户登陆后的目录,如不设置此项,则本地用户登陆后位于各自家目录下。
use_localtime=YES
#使用本地时间而不是GMT
nopriv_user=vsftpd
#设定服务执行者为vsftpd,默认使用的是nobody,vsftpd推荐使用一个权限很低的用户.这里用vsftpd代替nobody,创建 vsftpd用户:
[root@LFS vsftpd-2.0.1]# groupadd vsftpd
[root@LFS vsftpd-2.0.1]# useradd -d /dev/null -g vsftpd -s /bin/false vsftpd
这样就有了个权限非常低的vsftpd用户(没有家目录(/dev/null),没有登陆shell(/bin/false),系统会更安全,设定好后就可以启动啦 :)
[root@LFS etc]# /usr/sbin/vsftpd
[root@LFS etc]# netstat -tul
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:6000 *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
[root@LFS etc]#
OK,ftp已经启动
来源:oschina
链接:https://my.oschina.net/u/187928/blog/33862