防火墙开启
[root@hhj ~]# service iptables start
添加规则20主动端口,21被动端口
[root@hhj ~]# iptables -I INPUT 1 -p tcp --dport 20:21 -j ACCEPT
保存配置
[root@hhj ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
安装vsftpd服务
[root@hhj ~]# yum install vsftpd -y
设为开机自动启动
[root@hhj ~]# chkconfig vsftpd on
启动服务
[root@hhj ~]# service vsftpd start
查看ftp端口状态
[root@hhj ~]# netstat -ntulp | grep ftp
因为服务器的20端口要主动生成一个随机端口访问客户端,这里要检查服务器有没有加载nf_conntrack_ftp模块,因为有模块才会允许访问
[root@hhj ~]# lsmod | grep nf_conntrack_ftp #查看模块
[root@hhj ~]# modprobe nf_conntrack_ftp #加载模块
或者这样加载模块
[root@hhj ~]# vim /etc/sysconfig/iptables-config
修改IPTABLES_MODULES="nf_conntrack_ftp"
重启服务
[root@hhj ~]# service iptables restart
[root@hhj ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd. vsftpd的日志文件
/etc/pam.d/vsftpd
PAM认证文件
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/vsftpd
vsftpd的配置文件存放的目录
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件
/etc/vsftpd/user_list 禁止或允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd.conf 主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些变量和设置
/usr/sbin/vsftpd
vsftpd的主程序
其他一些说明文档和手册文件略!
/var/ftp
匿名用户主目录
/var/ftp/pub
匿名用户的下载目录
/etc/vsftpd/vsftpd.conf配置:
vsftpd支持三种用户:本地用户,匿名用户,虚拟用户
[root@hhj ~]# vim /etc/vsftpd/vsftpd.conf
…………
anonymous_enable=YES #是否启用匿名用户登录
……………
local_enable=YES #是否允许本地用户登录
…………
write_enable=YES #是否允许本地用户写
……………
local_umask=022 #本地用户上传后文件过滤权限
……………
anon_upload_enable=NO #是否允许匿名用户上传文件
……………
anon_mkdir_write_enable=NO #是否允许匿名用户创建文件夹
anon_other_write_enable=NO #是否允许匿名用户上传文件
……………
dirmessage_enable=YES
……………
chroot_local_user=YES # 本地用户禁锢在宿主目录中 即以家目录为根
chroot_list_enable=YES # 是否将系统用户限止在自己的home目录下
chroot_list_file=/etc/vsftpd.chroot_list # 列出的是不chroot的用户的列表
anon_root=/var/ftp 设置匿名用户的FTP根目录,也称为宿主目录。匿名登录所在的文件目录,注意ftp后面不要有“/”,否则出错
local_root=/var/ftp 设置本地用户的FTP根目录
chown_upload=YES # 是否改变上传文件的属主
ftpd_banner=Welcome to chenlf FTP service. # 定制欢迎信息
chown_username=username # 如果是需要输入一个系统用户名
xferlog_enable=YES # 是否记录ftp传输过程
xferlog_file=/var/log/vsftpd.log # ftp传输日志的路径和名字
xferlog_std_format=YES # 是否使用标准的ftp xferlog模式
connect_from_port_20=YES # 是否确信端口传输来自20(ftp-data)
idle_session_timeout=600 # 设置session超时时间
data_connection_timeout=120 # 设置数据传输超时时间
max_clients=50 # 用户最大连接数 默认是0不限止
max_per_ip=5 # 每个IP地址最大连接数
anon_max_rate=102400 # 匿名的下载速度 KB
local_max_rate=102400 # 普通用户的下载速度 KB
userlist_enable=YES #是否启用用户列表
userlist_deny=YES #只要出现在用户列表中的用户都是拒绝的
userlist_file=/etc/vsftpd/user_list #用户列表文件
查看bool值
[root@hhj ~]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off #允许用户写
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> on #允许创建家目录
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off
必须开启ftp_home_dir --> on与allow_ftpd_full_access --> on、allow_ftpd_anon_write--> on
setsebool -P ftp_home_dir on
文件不能上传要从三个方面考虑:配置文件、文件系统(权限)、selinux
[root@hhj ~]# chown ftp:ftp /var/ftp/
对FTP访问的设置
vim /etc/pam.d/vsftpd
客户端
linux 安装ftp客户端工具
yum install ftp lftp -y
可以用ftp 192.168.1.104 连接,可以输入用户名
也可以用lftp 192.168.1.104 连接,匿名用户连接
也可以指定用户lftp -u ftp(用户名) 192.168.1.104 指定用户连接
put xx.txt上传文件