0
点赞
收藏
分享

微信扫一扫

FTP服务器的配置与管理

FTP功能简介:

FTP服务器的功能处理单纯的进行档案的传输与管理之外,一句服务器软件的设定架构,它可以提供几个主要功能,
不同等级的用户身份:user ,guest , anonymous
FTP服务器在预设情况下,依据使用者登录的情况分为三类:
A 实体账号 real user
B 访客 guest
C 匿名登录者 anonymous
实体用户取得系统的权限比较完成,所以可以进行比较多的动作,至于匿名者登录,大概只会拥有下载文件的能力权限而已,

FTP是基于TCP协议之上的具有C/S架构的文件服务器
需要通过控制连接(20端口)来控制整个双方的通信
需要通过数据连接(21端口)来进行数据通信
数据连接有两种不同的方式,分别是主动模式和被动模式
主动模式,最大的特点是数据连接由服务器的20端口主动发起连接,这种情况有可能被客户端的防火墙给拒绝
被动模式,是由客户端向服务端随机端口发起连接

FTP的主动与被动模式:

主动模式
通过三次握手,建立控制连接;客户端的源端口是高位随机端口,目标端口是21端口
控制连接建立后,客户端进行份验证,协商数据连接采用主动模式;随后客户端会向FTP
服务器发送Port报 文,表明自己监听的IP+端口,并等待FTP服务器(20端口)向自己监
听的IP+端口发起数据连接请求。
服务端发起数据连接请求,建立数据连接
被动模式
通过三次握手,建立控制连接;客户端的源端口是高位随机端口,目标端口是21端口;
控制连接建立后,客户端进行身份验证,协商数据连接采用被动模式;随后客户端会向
服务器发送PASV报 文,表示我们用被动模式
服务端收到PASV报文,于是向客户端发送Port报文,表明自己监听的IP+端口
客户端发起数据连接请求,建立数据连接

FTP服务器的配置与管理_服务端

VSFTPD服务介绍

服务包:vsftpd

服务类型:由Systemd启动的守护进程

配置单元: /usr/lib/systemd/system/vsftpd.service

守护进程: /usr/sbin/vsftpd

端口: 21(ftp) , 20(ftp-data)

主配置文件: /etc/vsftpd/vsftpd.conf

用户访问控制配置文件: /etc/vsftpd/ftpusers /etc/vsftpd/user_list

日志文件: /etc/logrotate.d/vsftpd ​

基础配置

服务端:

yum install -y vsftpd

Linux

客户端:

yum install ftp  -y   ftp <IP地址>
yum install lftp -y lftp <IP地址>

Windows

客户端:目录可以输入 ftp://IP地址/目录/文件名

在DOS窗口中,输入命令 ftp <IP地址> 即可访问

ftp的常用命令

上传文件:put 源文件名 目的文件名

下载文件:get 源文件名 目的文件名

重命名文件: rename 源文件名 目的文件名

创建目录:mkdir​

ftp的三种不同的登陆方式

​匿名用户访问(默认开启)

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=Yes
anon_mkdir_write_enable=Yes
anon_other_write_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
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

匿名用户想要有所有权限(anonymous)

第一个要点,/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=Yes

anon_mkdir_write_enable=Yes

anon_other_write_enable=Yes

第二个要点,不能将/var/ftp目录的权限修改过大,否则会登陆失败

本地用户访问

vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

本地用户想要有所有权限

local_enable=YES

write_enable=YES

local_umask=022

注意:出现在/etc/vsftpd/ftpuser /etc/vsftpd/user_list这两个文件 中的内容将会被定义为黑名单

虚拟用户访问

1. 创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。

cd /etc/vsftpd/
vim vuser.list
eagle
centos
cisco
centos
huawei
centos

​​2. 使用db_load命令用哈希(hash)算法将原始的明文信息文件转换成数据库文件

3. 降低数据库文件的权限(避免其他人看到数据库文件的内容) ​

4. 把原始的明文信息文件删除。

db_load -T -t hash -f vuser.list vuser.db
file vuser.db
chmod 600 vuser.db
rm -f vuser.list

5. 创建一个本地用户,用来做虚拟用户在本地的代理,为了安全起见,禁止这个本 地用户登录

useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 777 /var/ftproot/

6. 新建一个用于虚拟用户认证的PAM文件vsftpd.vu

vi /etc/pam.d/vsftpd.vu 
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser

7. 配置文件

cat /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES

虚拟用户想要有所有权限

第一个要点,/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

anon_umask=022

anon_upload_enable=Yes

anon_mkdir_write_enable=Yes

anon_other_write_enable=Yes

第二个要点,不能将/var/ftp目录的权限修改过大,否则会登陆失败

如果想要单独设置针对某一个用户的权限控制,可以将权限的目录通过user_config_dir=/etc/vsftpd/vusers_dir指定,在这个目录下创建与用户名同名的文件

mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch huawei
vi eagle
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES


举报

相关推荐

0 条评论