当前位置:文档之家› RedHat 配置与安装vsftp服务

RedHat 配置与安装vsftp服务

RedHat 配置与安装vsftp服务
(综合他人和自己实践所得,若有冲突还请见谅)
1. vsftp要求功能:
a) 不允许匿名登录,只允许特定用户登录
b) 文件上传到指定目录,不允许进入其它目录
2. 在RedHat下安装ftp
rpm -qavsftpd #查询是否已安装vsftpd服务,若没有则安装
方式一:找到rpm包安装:rpm -ivhvsftpd.*****.rpm
方式二:搭建yum本地光盘源安装:yum install vsftp
3. 手动配置ftp 的配置文件:/etc/vsftpd/vsftpd.conf
vsftp的/etc/vsftp/vsftp.conf相关默认设置
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
自己设置(和默认的差不多,有的默认的没打开则打开,已经打开的按需求修改属性)
anonymous_enable=NO #禁止匿名用户登录
local_enable=YES#允许本地实体用户登录
write_enable=YES #允许用户上传数据
local_umask=022 #建立新目录(755)与文件(644)的权限
dirmessage_enable=YES#若登录目录下有.message则会显示该文件内容可以自己在登录目录下创建.message文
件并写入信息
xferlog_enable=YES #启动日志文件记录,记录于/var/log/xferlog
connect_from_port_20=YES#支持主动式连接功能
xferlog_std_format=YES#支持WuFTP的日志文件格式
ascii_upload_enable=YES#允许上传ascii文件
ascii_download_enable=YES #允许下载ascii文件
#local_root=/home/xx/ftp #限制登录用户只能在/home/xx/ftp目录下操作,不设置
chroot_local_user=YES #限制登录用户在主目录内local_root定义目录①
chroot_list_enable=YES #与chroot_list_file配合,允许某些用户不被限制②
chroot_list_file=/etc/vsftpd/chroot_list #不被限制的用户写入这个文件这项需要手动建立文件chroot_list
注:chroot_list文件中格式为一行一个用户。

当①和②为YES时,该文件中的用户可以随意切换目录;
当①为YES②为NO时,该文件中的用户根目录被锁定;其他情况待定
listen=YES #使用stand alone方式启动vsftpd
pam_service_name=vsftpd #支持PAM模块的管理
userlist_enable=YES#支持/etc/vsftpd/user_list文件内的账号登录控制
userlist_deny=NO#当该值为NO时,在user_list中且不再ftpusers中的用户可以登陆该ftp服务器;当为YES时该文件中的用户均不能登陆ftp服务器
tcp_wrappers=YES#支持TCP Wrappers的防火墙机制
4. 启动服务
方式一:servicevsftpd start/service vsftpd restart
方式二:/etc/init.d/vsftpd start/restart
5. 设置开机启动
root用户编辑/etc/rc.d/rc.local 添加第四步服务启动的任意一种即可
6. 终端输入sestatus -b | grep ftp
allow_ftpd_anon_write off
allow_ftpd_full_access off
allow_ftpd_use_cifs off
allow_ftpd_use_nfs off
ftp_home_dir on
ftpd_connect_db off
ftpd_use_passive_mode off
httpd_enable_ftp_server off
tftp_anon_write off
如果ftp_home_dir选项为off,则执行如下操作终端输入setsebool -P ftp_home_dir on(加-P则不用每次重启之后再执行此操作),需要等待一段时间完成后执行:service vsftpd restart重启服务
7. vsftp添加用户并指定用户目录
a) 添加用户
useradd -g ftp -d /home/ftp/ -s /sbin/nologin ftpuser1
useradd -g ftp -d /home/ftp/ -s /sbin/nologin ftpuser2
........
注:-g 添加到ftp组,用户家目录是/home/ftp/ -s /sbin/nologin 不允许以此用户登录系统,用户名ftp
passwd ftpuser1 修改用户ftp登陆密码
b)在/etc/vsftp/vsftp.conf中添加user_config_dir=/etc/vsftpd/userconf#添加读取用户配置目录
注:本行配置默认没有需要手动输入
手动创建mkdir/etc/vsftpd/userconf
建立各用户的登陆目录
mkdir /root/ftpfolder1
mkdir /root/ftpfolder2
......
在/etc/vsftpd/userconf目录下添加用户配置文件(有很多用户时,需要建每个用户相对应的文件)
touch/etc/vsftpd/userconf/ftpuser1
touch/etc/vsftpd/userconf/ftpuser2
......
echolocal_root=/root/ftpfolder1>/etc/vsftpd/userconf/ftpuser1
echolocal_root=/root/ftpfolder2>/etc/vsftpd/userconf/ftpuser2
...........
c) 重启服务
注意:
当从另外一台linux通过ftp方式连到Linux ftp服务器上ftp 192.168.80.128,输入用户名密码,一切正常,而在进入ftp命令行的ls的时候,就报错了:
227 Entering Passive Mode (192,168,80,128,25,126).
ftp: connect: No route to host,见下图:
又从Windows PC机上试一下,非常正常,见下图:
在网上搜了下,发现原来是Linux ftp服务器上的nf_nat_ftpnf_conntrack_ftp两大内核模块没加载,故修改,/etc/sysconfig/iptables-config,加上
IPTABLES_MODULES="nf_nat_ftpnf_conntrack_ftp",重启iptables就OK。

在其他内核版本上可能不一样,具体可以modprobe -l | grep ftp看下具体用的模块名是什么。

具体为什么,跟ftp协议有关系,这次做下简单记录,后面查明后再写上。

相关主题