配置vsftpd服务
FTP服务器默认匿名可以访问。
1.搭建yum仓库
[root@accp~]# vim /etc/yum.repos.d/dvd.repo
[server]
name=redhat6
baseurl=file:///mnt/rheldvd 为本地光盘路径
enabled=1
gpgcheck=0
[root@accp~]# yum install -y vsftpd* yum安装vsftpd服务
[root@accp~]# service vsftpd restart 重启完服务后,默认可以匿名用户访问
[root@accp~]# vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES 设置匿名上传内容的属主为"tom"
chown_username=tom
********************************************************
2.建立用户验证访问
建立一个用户并设置密码
[root@accp~]# useradd harry
[root@accp~]# passwd harry
[root@accp~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enabl=NO/YES 控制匿名用户访问 注释掉匿名访问不能关闭匿名,注释匿名是设置为默认设置,默认设置是可以匿名访问
ftp_username=ftp 此参数用来设置匿名用户的用户名
anon_root=/var/ftp 设定匿名访问的根目录
anon_world_readable_only=NO 控制是否允许用户下载可阅读的文件,YES为可以下载,NO为不可以下载但可浏览。
anon_upload_enable=NO 允许匿名ftp用户访问并上传文件
anon_mkdir_write_enable=NO 是否允许匿名用户有创建目录的权利
anon_other_write_enable=NO 匿名用户是有除上传之外的其它权限
local_enable=YES 本地用户访问
write_enable=YES 本地用户写入
local_umask=022 写入的权限为755
chroot_local_user=YES 所有用户禁锢在家目录中,提高安全性,本地用户在访问时只能访问自己家目录。
chroot_list_enable=YES 指定用户访问限止在自己的home目录下
chroot_list_file=/etc/vsftpd/chroot_list 在/etc/vsftpd/chroot_list文件中列出的是被限制的用户的列表。
dirmessage_enable=YES 访问某用户的FTP时显示的欢迎信息,在用户的家目录中编辑“vim .message”,方可显示效果
data_connection_timeout=120 数据传输时间为120秒
pam_service_name=vsftpd 可插拔模块 "vim /etc/pam.d/vsftpd" 控制 "vim /etc/vsftpd/ftpusers"中的用户denny与allow
默认为denny
userlist_enable=YES YES与NO 决定"vim /etc/vsftpd/user_list" 中的用户能否被访问
tcp_wrappers=YES 是否启用tcp_wrappers主机访问控制防御设置,"vim /etc/hosts.deny" "vim /etc/hosts.allow"
ftpd_banner=welcome to ftp service 定制FTP欢迎信息
banner_file=/etc/vsftpd/banner 使用欢迎文件
dirmessage_enable=YES 当用户切换到一个目录时,是否显示目录切换信息
xferlog_enable=YES 是否记录ftp传输过程
xferlog_file=/var/log/vsftpd.logftp 传输日志的路径和名字默认是/var/log/vsftpd.log
xferlog_std_format=YES 是否使用标准的ftp xferlog模式
connet_from_port_20=YES 是否确信商品传输来自20
chown_uploads=YES 设定是否改变匿名上传的文件的拥有者
chown_username=username 设定匿名上传的文件的的拥有者
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
ascil_upload_enable=YES
ascil_download_enable=YES 是否使用ascil码方式上传和下载文件
userlist_enable=YES 在/etc/vsftpd/user_list 文件中列表出用户不能访问FTP服务器
tcp_wrappers=YES 是否支持tcp_wrappers
[root@accp~]# service vsftpd restart 每当修改完配置,就重启一次
********************************************************
3.建立虚拟用户访问
以上vsftpd 已经安装完毕,在此不做详细说明
安装yum install -y db4-utils-4.7.25-16.el6.x86_64 数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)
或 yum install -y db4* 全部安装
[root@accp~]# yum install -y db4*
建立账户文件(vim /etc/vsftpd/virtual.file)
[root@accp~]# vim /etc/vsftpd/virtual.file
tom 奇数为用户名,偶数为密码
tigerzhang
john
tigerzhang
将virtual.file 文本内容加载到db数据库
[root@accp~]# cd /etc/vsftpd
[root@accp vsftpd]# db_load -T -t hash -f virtual.file virtual.db
注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在
文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。
"-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。
"-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"
[root@accp~]# chmod 600 /etc/vsftpd/virtual.* 降低文件权限增强安全性
采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,
[root@accp~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/virtual
account required pam_userdb.so db=/etc/vsftpd/virtual
如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。
建立系统帐户
[root@accp~]# useradd -d /var/ftp -s /sbin/nologin luce
vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即
luce作为virtual.file文件内的用户映射。
[root@accp~]# chmod 755 /var/ftp 给虚拟用户目录一个权限
修改配置文件
[root@accp~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES 禁锢在家目录中,增强安全性
guest_enable=YES 启用用户映射功能
virtual_use_local_privs=YES
pam_service_name=vsftpd.vu 修改使用的PAM文件位置(与指定的PAM验证文件名一致)
user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用
配置文件,注意:配置文件名必须和虚拟用户名相同
[root@accp~]# service vsftpd restart 重启服务
[root@accp~]# mkdir /etc/vsftpd/virt_dir
[root@accp~]# cd /etc/vsftpd/virt_dir
[root@accp~]# vim luce 此文件里的配置可以根据需要配置项目
guest_enable=YES (在centos下yes必须为小写字母)
guest_username=luce
local_root=/var/ftp/
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=100000
1.建立虚拟用户访问
以上vsftpd 已经安装完毕,在此不做详细说明
安装yum install -y db4-utils-4.7.25-16.el6.x86_64 数据库文件,需要将虚拟用户转换为数据库文件,(这里为RHEL6.0的db4版本文件)
或 yum install -y db4* 全部安装
[root@accp~]# yum install -y db4*
建立账户文件(vim /etc/vsftpd/virtual.file)
[root@accp~]# vim /etc/vsftpd/virtual.file
tom 奇数为用户名,偶数为密码
tigerzhang
john
tigerzhang
将virtual.file 文本内容加载到db数据库
[root@accp~]# cd /etc/vsftpd
[root@accp vsftpd]# db_load -T -t hash -f virtual.file virtual.db
注:在db_load命令中,"-T"选项允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在
文件里的,为了让vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用-T。
"-t " 用来指定转译载入的数据库类型。可以指定的数据类型有Btree、Hash、Queue、Recon数据库,这里选Hash。
"-f"用于指定用户名/密码列表文件,如:virtual.file。参考:"/usr/share/doc/db4-utils-4.3.29/utility/db_load.html"
[root@accp~]# chmod 600 /etc/vsftpd/virtual.* 降低文件权限增强安全性
采用pam验证模块,如果没有可以进行"yum install -y pam*"安装,
[root@accp~]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/virtual
account required pam_userdb.so db=/etc/vsftpd/virtual
如果是32位系统则需要把lib64换成lib,否则会报530错误无法登录,也可加"/lib64/security/pam_userdb.so"。
建立系统帐户
[root@accp~]# useradd -d /var/ftp -s /sbin/nologin luce
vsftpd虚拟用户需要有一个对应的系统用户帐号,该帐号无需登录shell,该用户帐号的宿主目录作为所有虚拟用户登录后共同的FTP棣目录,即
luce作为virtual.file文件内的用户映射。
[root@accp~]# chmod 755 /var/ftp 给虚拟用户目录一个权限
修改配置文件
[root@accp~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES 禁锢在家目录中,增强安全性
guest_enable=YES 启用用户映射功能
virtual_use_local_privs=YES
pam_service_name=vsftpd.vu 修改使用的PAM文件位置(与指定的PAM验证文件名一致)
user_config_dir=/etc/vsftpd/virt_dir给虚拟用户个人vsftp的配置文件一个存放路径,/etc/vsftpd/virt_dir里面的文件都是虚拟用户的专用
配置文件,注意:配置文件名必须和虚拟用户名相同
[root@accp~]# service vsftpd restart 重启服务
[root@accp~]# mkdir /etc/vsftpd/virt_dir
[root@accp~]# cd /etc/vsftpd/virt_dir
[root@accp~]# vim luce 此文件里的配置可以根据需要配置项目
guest_enable=YES (在centos下yes必须为小写字母)
guest_username=luce
local_root=/var/ftp/
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=100000
********************************************************
注意:
1.搭建完服务器后,要注意查看iptables 防火墙 和 setsebool
iptables -F
iptables -X
getsebool -a 查看所有的bool信息
setsebool -P 修改bool信息 将某一个条目改为 "on" 开启。
setsebool -P allow_ftpd_anon_write on
chcon -t public_content_rw_t /var/ftp/mydir 设置上下文
chcon -t public_content_rw_t/var/ftp/mydir 更改目录的条目
特此声明,由于在下是一个刚出道的学生,以上实验是自己在VMware里搭建的服务,并且运行正常。如有问题望君能及时分享提出宝贵修改意见,以供
能够学习参考,谢谢!!!
本文出自 “雕琢棱角” 博客,转载请与作者联系!