Linux云服务器初学之八——FTP服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37163479/article/details/79537946

FTP服务

FTP服务是Internet上最早应用主机之间进行数据传输的基本服务之一。FTP服务的一个非常重要的特点就是可以独立于平台,也就是说在UNIX、MAC、Windows等操作系统中都可以实现FTP的客户端和服务器。尽管目前已经普遍采用HTTP方式传送文件,但FTP仍然是跨平台直接传送文件的主要方式。FTP在文件传输中还支持断点续传功能,可以大幅度地减小CPU和网络带宽的开销。

FTP的文件传输模式

(1) 主动模式

客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,客户端在命令链路上用 PORT命令告诉服务器:“我打开了**端口(大于1024的随机端口),你把数据通过我打开的这个端口发送给我”。
于是服务器从20端口向客户端的**端口发送连接请求,建立一条数据链路来传送数据。

(2)PASV(被动)方式的连接过程是:(默认是被动模式)

客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。
当需要传送数据时,服务器在命令链路上用 PASV命令告诉客户端:“我打开了**端口(大于1024的随机端口),你过来提取数据”。
于是客户端向服务器的**端口发送连接请求,建立一条数据链路来传送数据。

抉择?:

防火墙会拒绝进来的包,所以两种模式都有可能被拒绝掉。
折中的方法就是使用被动模式,并指定一个连接过来的端口范围,可以针对这个范围的端口进行一个防火墙的设置。

FTP服务的安装及配置

(1)安装ftp服务

yum -y install vsftpd –服务端
yum -y install ftp lftp –客户端

FTP配置文件:
主配置文件:/etc/vsftpd/vsftpd.conf
用户访问控制配置文件:/etc/vsftpd/{ftpusers, user_list}

FTP的家目录:/var/ftp

(2) 启动服务
1.启动服务

service vsftpd restart
关闭 vsftpd: [失败]
为 vsftpd 启动 vsftpd: [确定]

2.设为开机自启动

chkconfig vsftpd on
netstat -ntl |grep :21 –现在是只能看到监听21端口
tcp6 0 0 :::21 :::* LISTEN

3.查看是否启动成功

lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 3321 root 3u IPv4 21400 0t0 TCP *:ftp (LISTEN)

(3) 修改配置文件

vim /etc/vsftpd/vsftpd.conf

可修改如下参数

12 anonymous_enable=YES –是否允许匿名用户登陆,yes是允许
16 local_enable=YES –允许本地用户登陆
19 write_enable=YES –允许本地用户写权限
23 local_umask=022 –本地用户上传或创建文件时的权限
37 dirmessage_enable=YES –文件的描述
40 xferlog_enable=YES –开启日志(/var/log/xferlog),只上传和下载的记录
43 connect_from_port_20=YES –是否允许开启主动模式,通过20端口传输数据
57 xferlog_std_format=YES –为yes的话代表创建一个新的日志文件,为no的话,日志放到/var/log/vsftpd.log文件里
114 listen=YES –独立模式,为yes代表是用vsftpd本身脚本启动,为no代表要以xinetd守护进程启动
125 pam_service_name=vsftpd –支持模块的植入
126 userlist_enable=YES –打开用户列表
127 tcp_wrappers=YES –通过TCP把数据打包再传输
27 #anon_upload_enable=YES –默认是注释的,意为允许匿名用户上传文件
31 #anon_mkdir_write_enable=YES –默认是注释的,意为允许匿名用户创建文件

(4)实例

实例1 : 禁止匿名用户登录

12 anonymous_enable=NO –改为NO

结果

ftp 192.168.5.10
Connected to 192.168.5.10 (192.168.5.10).
220 (vsFTPd 3.0.2)
Name (192.168.5.10:root): ftp
331 Please specify the password.
Password:
530 Login incorrect.
Login failed. –登陆失败

实例2:匿名用户的下载和上传

anonymous_enable=YES
anon_upload_enable=YES –允许匿名用户上传文件,这行默认是注释掉的,要把#去掉
anon_mkdir_write_enable=YES –允许匿名用户创建目录,这行默认是注释掉的,要把#去掉

总结:匿名用户只能对登录目录内的子目录里面进行上传,并且对这个子目录要有w权限,还要有anon_upload_enable=YES和anon_mkdir_write_enable=YES的支持就可以上传了

实例3:关于普通用户(系统的普通用户)的登录

local_enable=NO –建议使用服务的参数去禁止,但是这里会把所有的普通用户给禁止掉,要实现特定的用户的控制

实例4: 白名单和黑名单

1.修改配置文件

userlist_enable=yes –打开用户列表功能,默认就是打开的
userlist_deny=YES\NO –加上这句,启用黑名单\白名单

2.修改用户名单

vim /etc/vsftpd/user_list
此处的用户当上方为YES是就为禁止登录,NO则为只允许名单里的允许登录。

猜你喜欢

转载自blog.csdn.net/qq_37163479/article/details/79537946