资源描述
Vsftpd服务器配置
【基本知识与操作】
安装vsftpd: yum install vsftpd
服务名: vsftpd
vsftpd配置文件: /etc/vsftpd/vsftpd.conf
默认本地用户不给登陆的文件: /etc/vsftpd/ftpusers (在此文件中的用户都不能登录FTP服务器)
禁止或允许vsftpd的用户列表文件: /etc/vsftpd/user_list
匿名用户登录的主目录: /var/ftp (该文件夹不可以有写权限,否则匿名用户无法登录)
匿名用户使用的目录: /var/ftp/pub (为了能够让匿名用户上传文件,该文件夹权限为777)
vsftpd的日志文件: /etc/logrotate.d/vsftpd.log
当遇到500访问错误时:
使用getsebool –a |grep ftp 可以查看与FTP服务有关的设置
setsebool -P ftp_home_dir=1
并查看文件权限问题(不能为满权限,属主不能为ftp)
若匿名用户允许上传也开了写权限还是不能上传,则进行如下修改
setsebool -P allow_ftpd_anon_write=1
本地用户无法重命名自己上传的文件:
setsebool -P allow_ftpd_full_access=1
设置匿名用户只能上传不能下载
chown_enable=YES
chown_username=nobody
【服务基本配置】
1、匿名用户设置:
anonymous_enable=YES ——是否允许匿名用户登录
wirte_enable=YES ——是否允许本地用户&匿名用户写入的权限
no_anon_password=YES ——若是启动这项功能,则使用匿名登入时,不会询问密码。
anon_root=/var/ftp ——设置匿名用户登陆的目录
anon_upload_enable=YES ——是否允许匿名用户上传文件(需要将wirte_enable=yes)
注意:
vsfptd默认是不给匿名文件给予w权限的,所以想要以匿名用户上传文件,就需要在匿名用户FTP主目录(/var/ftp)下创建一个新的目录(默认为/var/ftp/pub)给予777权限就可以了。
anon_mkdir_wirte_enable=YES ——是否允许匿名用户创建目录
anon_other_wirte_enable=YES ——设置匿名用户具有删除或重命名文件或文件夹的权限
chown_uploads=YES ——设置是否需要改变匿名用户上传文件或目录的的属主(owner)
chown_usernamed=xxx ——将匿名用户上传文件属主设置为xxx,与chown_upload配套使用
anon_umask=022 ——默认为077,为了能够让匿名用户访问自己上传的文件,需设置为022
2、本地用户设置:
local_enable=YES ——是否允许本地用户登录
write_enable=YES ——是否允许登陆用户有写权限
local_umask=022 ——设置本地用户上传文件的权限值,正常设置为022
3、控制用户是否允许切换到上级目录:
chroot_local_user=YES ——将本地用户禁锢在自己的主目录,无法切换到上级目录
chroot_list_enable=YES ——chroot_local_users=YES,则允许chroot_list_file文件中的用户切换
chroot_local_users=NO或者没有设置,则禁止文件中的用户切换
chroot_list_file=/etc/vsftpd/chroot_list ——该文件中的内容为本地用户名
4、欢迎登陆提示:
dirmessage_enable=YES ——开启欢迎信息提示(在登陆目录下的.message文件中写入欢迎信息)
message_file=.message ——设置消息目录文件
【传输模式及性能设置】
1)超时时间设置:
accept_timeout=60 ——设置建立ftp连接的超时时间,单位为秒
idle_session_timeout=600 ——用户超时连接中断时间为600秒
data_connection_timeout=120 ——数据连接超时连接为120秒
2)数据传输模式设置
ascii_upload_enable=YES ——用ascii方式传输数据
ascii_download_enable=YES ——实现用ascii方式下载文档
3)访问速率设置以及连接相关设置:
ide_ids=YES|NO ——隐藏文件的所属主和组
listen_port=4000 ——修改默认端口
anon_max_rate=0 ——匿名最大传输速度,单位B/s
local_max_rate=0 ——本地最大传输速度,单位B/s
max_clients=0 ——vsftpd允许最大连接数
max_per_ip=0 ——设置每个ip允许同时建立0个连接数
max_login_fails ——最多失败次数,超过后断开连接
4)开启被动模式:
pasv_enable=YES ——开启被动模式
pasv_max_port=60000 ——客户端连接端口最大为60000
pasv_min_port=50000 ——客户端连接端口最小为50000
【访问控制设置】
1)控制主机访问:
tcp_wrappers=YES ——打开主机访问控制(在/etc/hosts.allow和/etc/hosts.deny添加)
比如,要仅允许192.168.0.1-192.168.0.254的用户去连接ftp服务器的设置如下:
vsftpd:192.168.0. ——格式: 服务名:ip地址&网段[:allow|deny] all:all[:allow|deny]
2)设置是否允许用户登录
userlist_enable=YES ——开启vsftpd的user_list控制功能
userlist_file=/etc/vsftpd/user_list ——默认的用户列表文件,一行一个用户
userlist_deny=YES ——不设置或设置为YES时,userlist文件中的用户不可以登录
设置为NO时,只能有userlist文件中的用户可以登录
3)修改用户登录FTP后的主目录
user_config_dir=/etc/vsftpd/userconf ——指定用户配置文件所在的目录
在该目录下,创建以本地用户名为名称的文件,以jack用户为例:
local_root=/ftp/jack ——指定jack用户的登录主目录为/ftp/jack
【使用虚拟用户】
创建虚拟用户,保证FTP安全
示例:创建虚拟用户vuser1和vuser2,密码都为123,主目录分别是/myftp/vuser1和/myftp/vuser2
1)创建虚拟用户数据库文件
l 创建虚拟用户账本(/etc/vsftpd/vusers)保存需要创建的虚拟用户名和密码
vuser1 ——奇数行是用户名
123 ——偶数行是密码
vuser2
123
l 用db_load命令将虚拟账户文件/etc/vsftpd/vusers转换为数据库文件/etc/vsftpd/vusersLlogin.db
db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusersLogin.db
2)配置PAM文件/etc/pam.d/vsftpd.pam
在文件最上面添加以下两行(本地用户和虚拟用户都可以访问)
auth sufficient pam_userdb.so db=/etc/vsftpd/vusersLogin ——文件目标不能有后缀
account sufficient pam_userdb.so db =/etc/vsftpd/vusersLogin
【注意:】
如果将上两行配置添加到已有内容的后面,则只有本地用户可以访问(相当于没有设置)
如果不希望本地用户访问,则只保留添加的两行,其余注释掉
3)在vsftpd.conf文件中进行相关配置
添加: guest_enable=YES
guest_username=ftp ——虚拟用户借用本地用户ftp的名去访问VSFTPD服务器,可改成其他用户
pam_service_name=vsftpd.pam ——要调用的pam文件(/etc/pam.d/vsftpd.pam),默认为vsftpd
user_config_dir=/etc/vsftpd/userconf ——对虚拟用户配置主目录(与本地用户配置相同)
【增加SSL加密功能】
0、检查vsftpd有无支持SSL模拟
ldd ${which vsftpd} |grep ssl
1、建立证书数据
cd /etc/pki/tls/certs
make vsftpd.pem
cp –a vsftpd.pem /etc/vsftpd
2、修改配置文件
添加以下配置
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_tlsv2=NO
ssl_tlsv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
如果已经启用SSL,但客户端不满足要求,则显示如下错误:
530 Non-anonymous sessions must use encryption
展开阅读全文