在使用Linux时,外部文件的传输拷贝是一个比较繁琐的操作,不像Windows桌面系统那样,有各种文件传输工具可用,对于 Linux 系统而言,通常就是两种文件传输协议:FTP 和 SFTP,前者即文件传输协议,后者是基于SSH协议的文件传输协议。
一、开启FTP端口
1.查看vsftpd是否安装
rpm -qa | grep vsfrpd
若是没有安装则 yum install vsftpd -y
2.开启vsftpd服务
systemctl start vsftpd
3.查看端口
#ps -ed | grep ftp
#ps -aux | grep ftp
#netstart -ano | grep '21'
二、配置
1.#安装
yum install -y vsftpd
#设置开机启动
systemctl enable vsftpd.service
#启动
systemctl start vsftpd.service
#停止
systemctl stop vsftpd.service
#查看状态
systemctl status vsftpd.service
2.创建用户文件
编辑用户文件
vim /etc/vsftpd/virtusers
第一行为用户名,第二行为密码。不能使用root作为用户名
eg:DELL
123456
3.生产用户加密文件
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
设定PAM验证文件,并指定对虚拟用户数据库文件进行读取
chmod 600 /etc/vsftpd/virtusers.db
4.修改 /etc/pam.d/vsftpd 文件
修改前先备份
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
vi /etc/pam.d/vsftpd
#先将配置文件中原有的 auth 及 account 的所有配置行均注释掉
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
#如果系统为32位,上面改为lib
5.创建系统用户vsftpd,用户目录为/home/vsftpd
#用户登录终端设为/bin/false(即:使之不能登录系统)
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd
6.建立虚拟用户个人配置文件
mkdir /etc/vsftpd/vconf
cd /etc/vsftpd/vconf
#这里建立虚拟用户leo配置文件
touch DELL
#编辑leo用户配置文件,内容如下,其他用户类似
vi DELL
local_root=/home/vsftpd/leo/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#建立leo用户根目录
mkdir -p /home/vsftpd/leo/
7.防火墙设置
IPtables 的设置方式:
vi /etc/sysconfig/iptables
#编辑iptables文件,添加如下内容,开启21端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 40000:40010 -j ACCEPT
firewall 的设置方式:
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=40000-40010/tcp --permanent
8.重启vsftpd服务器
systemctl restart vsftpd.service
9.使用ftp工具进行连接
链接错误时
一、关闭SELINUX
打开SELINUX配置文件
vim /etc/selinux/config
#修改配置参数
#注释
SELINUX=enforcing
#增加
SELINUX=disabled
#修改完成后,需要重启!
二、SELINUX不对vsftp不做任何限制
setsebool -P ftpd_connect_all_unreserved 1