前言:
此刻咱们对“centosftp数据连接模式”可能比较重视,姐妹们都想要学习一些“centosftp数据连接模式”的相关文章。那么小编在网络上汇集了一些关于“centosftp数据连接模式””的相关内容,希望你们能喜欢,小伙伴们快快来学习一下吧!近来因为工作原因进行了FTP服务器的搭设,就写一篇文章来记录一下,方便之后回顾,并且跟大家一起分享一下经验。
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
Ftp服务器就是支持FTP协议的服务器就是FTP服务器。与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。
FTP服务器
CentOS 7 搭设FTP环境
看完上述介绍,我们可以来开始试着通过CentOS 7 系统来搭设FTP服务器啦。
01
vsftpd安装及防火墙配置
1、安装VSFTP:
[root@localhost ~]# yum -y install vsftpd
2、安装完成后,查看位置
[root@localhost ~]# whereis vsftpd
3、直接启动VSFTP服务
[root@localhost~]#systemctl start vsftpd
(启动vsftpd服务)
[root@localhost ~]# systemctl enable vsftpd
(设置vsftp开机自启动)
4、查看是否启动成功
[root@localhost ~]# netstat -npal|grep vsftpd
可以看到服务已经启动,端口为21,pid为2887
5、关闭SELinux限制,添加防火墙白名单
(1)设置关闭SELinux(很多问题都是selinux权限导致的,个人是直接关闭了selinux)
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
(2)将ftp加入防火墙白名单,并开放端口
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --zone=public --add-port=6000-6
010/tcp --permanent
firewall-cmd --reload
查看防火墙状态:
firewall-cmd --list-all
02
vsftpd配置修改
1.修改配置文件
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vsftpd.conf
#不允许匿名访问(不登录默认访问某目录/var/vsftpd)
anonymous_enable=NO
#允许ascii文件上传和下载
ascii_upload_enable=YES
ascii_download_enable=YES
#将用户限制在为其配置的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
03
FTP配置多用户访问
1、首先需要在vsftpd.conf添加如下配置
#设置启用虚拟用户功能
guest_enable=YES
#制定宿主用户名(我们后续需要为我们的系统增加该用户)
guest_username=guest1
guest_username=guest2
#制定虚拟用户配置文件放置文件夹(需要我们自己建立)
user_config_dir=/etc/vsftpd/vuser_conf
#允许写
allow_writeable_chroot=YES
#开启被动模式
pasv_enable=YES
#开启最小ip
pasv_min_port=6000
#开启最大ip
pasv_max_port=6010
#:wq保存vsftpd.conf文件,并创建用户配置文件放置文件夹
mkdir /etc/vsftpd/vuser_conf
2.创建宿主用户
#创建宿主主文件夹
cd /home
mkdir vsftpd
# 创建用户 guest1 指定 "/home/vsftpd"目录
# -s /sbin/nologin ftpuser 表示不允许该用户通过命令行方式登录
useradd -g root -M -d /home/vsftpd -s /sbin/nologin guest1
# 设置用户guest1的密码
passwd guest1
# 把 /home/vsftpd 的所有权给guest1.root
chown -R guest1.root /home/vsftpd
#guest2的设置和guest1完全一致
3.创建虚拟用户信息文件
vsftp目录下
cd /etc/vsftpd/
touch vuser_passwd(创建用户信息文件)
vim vuser_passwd(编辑用户信息文件)
#编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码
guest1
123456
guest2
123456
4.生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db
#在当前文件夹下生成一个vuser_passwd.db文件
5.编辑pam认证文件
vim /etc/pam.d/vsftpd
将其他都注释掉,根据系统位数的不通添加下面两行;
注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。
#查看系统位数
gtconf LONG_BIT
#系统为32位:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd
#系统为64位:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
6.为虚拟账户创建访问根目录,要在宿主用户下
# 下面是目录结构
/home/vsftpd
├──guest1
│ └── files
└──guest2
└──files
#修改权限
chmod 777 /home/vsftpd/guest1
chmod 777 /home/vsftpd/guest2
7.创建虚拟用户配置目录
cd /etc/vsftpd/
#创建上述配置文件中配置的虚拟用户文件夹,一定要对应
mkdir vuser_conf
cd vuser_conf
#创建虚拟用户配置文件,文件名称要与虚拟用户名称相同
#这里我们配置两个虚拟用户就创建两个配置文件
touch guest1 guest2
vim guest1
#编辑两个文件,加入以下信息(注意加粗部分要替换为你虚拟账户要访问的根目录名称)
local_root=/home/vsftpd/guest1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#guest2的配置与guest1一致
8.创建chroot_list
cd /etc/vsftpd
#创建使当前配置的虚拟用户允许访问
[root@localhost vsftpd]# touch chroot_list
[root@localhost vsftpd]# vim chroot_list
#写入虚拟用户名
guest1
guest2
9.重启VSFTP服务
systemctl restart vsftpd
至此完成初步安装
04
FTP服务器的测试
在浏览器中输入ftp://服务器ip,
或者是用都可以进行测试。
标签: #centosftp数据连接模式