标签:ftp服务原理与基本配置
ftp是一种文件传输协议,分为主动模式与被动模式主动:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
被动模式基本原理:
被动:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
搭建ftp服务过程
1、安装服务,并进行火墙操作
在搭建好yum源的前提下,进行
yum install vsftpd -y
setenforce 0
firewalld-cmd --permanent --add-service=ftp
firewalld-cmd --reload
systemctl start vsftpd
2、配置ftp服务
1、修改匿名用户登陆的家目录
anon_root=/ftpdirhaha #将匿名用户登陆的新目录进行建立
重启服务
2、匿名用户与本地用户是否可以登陆
anonymous_enable=YES | NO
YES表示匿名用户可以登陆,NO表示匿名用户不可以进行登陆
local_enable=YES | NO
YES表示本地用户可以登陆,NO表示本地用户不可以进行登陆
若登陆不成功,则显示的是这样的界面
3、本地用户是否可以进行上传
前提是将write_enable=YES (将本地用户可写打开)
anon_upload_enable=YES 表示支持本地用户可以上传文件
因为本地用户上传的目录是/var/ftp/pub目录,所以要将此目录给以相应的权限。
匿名用户使用的是ftp用户,所以再次将此目录给以这样的权限
chgrp ftp /var/ftp pub
chmod 775 /var/ftp/pub
4、匿名用户进行下载
anon_world_readable_only=YES|NO(设定参数为NO表示匿名用户可以下载)
5、对匿名用户下载进行限速处理
anon_max_rate=102400 #控制速度在100kb左右
实验为往ftp服务器上上传文件,所以要将anon_upload_enable=YES参数打开
不限速的实验效果
进行限速后的实验效果
速度是控制在100k左右
6、本地用户与匿名用户上传文件的权限
local_umask=022 #值越大,安全级别越高
anon_umask=077
本地用户的权限是644
匿名用户的权限是600
7、将本地用户锁在家目录中
chroot_local_user=YES
chmod u-w /home/* #不进行此不操作会出现权限过大的报错
8、虚拟用户的设置
步骤:
(1)在/etc/vsftpd/创建一个保存虚拟用户名与密码的文件
(2)对此文件进行加密
db_load -T -t hash -f userdb userdb.db
-T 表示进行转换
-t hash 表示进行hash加密
-f 表示原文件是userdb文件
(3)修改配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpuser
此模块是一个认证的模块,源文件写的是vsftp,将此改变,表示让服务去读取重新写入的ftpuser的认证模块
guest_enable=YES #使用guest的身份进行登陆
guest_username=ftp #是guest_enable参数必须设置的一个参数使用ftp身份
local_root=/vftphome/$USER
user_sub_token=$USER
(4)写入自定义的认证模块
[root@localhost user3]# cat /etc/pam.d/ftpuser
account required pam_userdb.so db=/etc/vsftpd/userdb
auth required pam_userdb.so db=/etc/vsftpd/userdb
(5)测试
标签:ftp服务原理与基本配置
原文地址:http://blog.51cto.com/13584122/2114557