配置与管理FTP服务器
1,文本传输协议,FTP的两个连接:控制连接(端口21),数据连接(端口20)
2,**功能:**任意计算机之间相互传输文件的机制。
3,工作模式:私做主动模式,私做被动模式。
4,数据传输模式:ASCII方式,二进制方式。
5,用户分类:匿名用户(Anonymous用户),实体用户(本地账号),虚拟用户(建立专有的用户)
6,工作过程
FTP服务器的安装与维护
#安装
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# rpm -qa |grep ftp
vsftpd-3.0.2-27.el7.x86_64
#基本操作
start/status/stop/resart/enable
配置FTP服务器
1,/etc/pam.d/vsftpd:加强用户认证
2,/etc/vsftpd/ftpusers:指定不能访问账号
3,/etc/vsftpd/user_list
4,/etc/vsftpd/vsftpd.conf:配置文件
#/etc/vsftpd/vsftpd.conf主配置文件
语法格式:parameter=value
1,#配置匿名用户
anonymous_enable:是否允许匿名登录
no_anon_password:是否提示输入密码
anon_root:设置登录后的主目录
anon_mkdir_writ_enable:是否允许匿名用户建立字目录
anon_other_write_enable:是否允许匿名用户其他操作
anon_upload_enable:是否允许匿名一个上传文件
anon_world_readabled_only:匿名用户只能下载
2,#配置监听地址和端口
listen_address:设置一个ip地址,强制监听
listen_port:vsftpd监听端口
3,#配置FTP传输模式和端口
connect_form_port_20:设置port模式使用20端口
pasv_address:设置服务器使用pasv模式的ip地址
pasv_enable:设置是否允许PASV模式
pasv_max_port:设置最大端口号,不大于65535
pasv_min_port:设置最小端口号,不小于1024
pasv_promiscuous设置是否允许FXP功能
port_enable:设置是否允许使用主动传输模式
4,#配置ASCII模式
ascii_download_enable:设置是否允许该模式下载
ascii_upload_enable:设置是否允许该模式上传
5,#配置安全选项
data_connection_timeout:设置最大停顿时间
idle_session_timeout:设置最大空闲时间
connect_timeout:设置超时时间
local_max_rate:设置本地用户最大传输速率
anon_max_rate:设置匿名用户最大传输速率
max_client:设置最大连接数
max_pre_ip:设置每个ip的最大连接数
6,#配置信息类参数
ftpd_banner:设置定义一个字符串,作为建立FTP连接后的欢迎信息
banner_file:显示客户端信息
dirmessage_enable:是否显示切换信息
setproctitle_enable:是否显示会话状态信息
7,#配置本地用户及目录
local_enable:是否允许本地用户登录
local_root:指定本地用户登录服务器是切换到工作目录
local_umask:指定创建的掩码
chroot_local_user:是否将所有用户限制在工作目录中
chroot_list_enable:设置是否限制用户的名单
8,#配置虚拟用户
guest_enable:设置所有非匿名用户都映射为一个特定的本地用户
guest_name:设置虚拟用户映射到本地用户
配置FTP客户端
1,登录方式:命令行,浏览器,第三方软件。
2,ftp命令:用于访问FTP服务器,传输文件。
#ftp命令格式:
ftp [-s :filename] [-w windowsize] [computer]
3,FTP应用
gat命令:下载文件
put命令:上传文件
ls或dir命令:查看文件
quit或bye:退出程序
ftp ip:登录程序
综合案例-配置常规FTP服务器
`公司现有一台FTP服务器,其IP地址为192.168.88.120。FTP服务器主要负责为公司员工提供相关文档的下载。公司现有三个部门,三个部门分别对应目录/ftp/dept1、/ftp/dept2和/ftp/dept3,另外设定个公共目录/ftp/share。三个部门分别适用userl、user2和user3账号进行管理。要求如下:各账号只能访问自己所属部门的目录和share目录。如userl只能访问deptl和public目录,不能访问其他目录。admin 账号为管理员,可以访问FTP服务器上的任何目录。
1,#正确配置yum源,安装服务器
[root@localhost ~]# yum list //列出可用的安装包
[root@localhost ~]# yum -y install vsftpd
2,#建立用户组和测试文件,并加以权限
[root@localhost ~]# groupadd dept1
[root@localhost ~]# groupadd dept2
[root@localhost ~]# groupadd dept3
[root@localhost ~]# groupadd myadmin
[root@localhost ~]# useradd -G dept1,myadmin user1
[root@localhost ~]# useradd -G dept2,myadmin user2
[root@localhost ~]# useradd -G dept3,myadmin user3
[root@localhost ~]# useradd -G dept1,myadmin user1
[root@localhost ~]# useradd -G dept2,myadmin user2
[root@localhost ~]# useradd -G dept3,myadmin user3
[root@localhost ~]# useradd -G dept1,dept2,dept3,myadmin admin
[root@localhost ~]# passwd user1 //密码为1
[root@localhost ~]# passwd user2
[root@localhost ~]# passwd user3
[root@localhost ~]# passwd admin
[root@localhost ~]# mkdir -p /ftp/dept1
[root@localhost ~]# mkdir -p /ftp/dept2
[root@localhost ~]# mkdir -p /ftp/dept3
[root@localhost ~]# mkdir -p /ftp/share
[root@localhost ~]# touch /ftp/dept1/dept1.txt
[root@localhost ~]# touch /ftp/dept3/dept3.txt
[root@localhost ~]# touch /ftp/dept2/dept2.txt
[root@localhost ~]# touch /ftp/share/share.txt
[root@localhost ~]# chown user1:dept1 /ftp/dept1
[root@localhost ~]# chown user2:dept2 /ftp/dept2
[root@localhost ~]# chown user3:dept3 /ftp/dept3
[root@localhost ~]# chown admin:myadmin /ftp/share/
[root@localhost ~]# chmod 770 /ftp/dept1/
[root@localhost ~]# chmod 770 /ftp/dept2/
[root@localhost ~]# chmod 770 /ftp/dept3/
[root@localhost ~]# chmod 770 /ftp/share/
3,#编辑/etc/vsftpd/vsftpd.conf
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=no
local_root=/ftp
allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_file=/etc/vsftpd/chroot_list
4,#重启服务,关闭防火墙和selinux
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
5,#在客户端安装服务
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# yum -y install ftp //安装测试命令
6,#在客户端建立上传测试文件
[root@localhost ~]# mkdir /ftp
[root@localhost ~]# cd /ftp/
[root@localhost ftp]# touch user1.txt user2.txt user3.txt
[root@localhost ftp]# ls
user1.txt user2.txt user3.txt
7,#运行测试
[root@localhost ftp]# ftp 192.168.88.120
Connected to 192.168.88.120 (192.168.88.120).
220 (vsFTPd 3.0.2)
Name (192.168.88.120:root): user1 //输入user1用户后回车
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls //查看文件
227 Entering Passive Mode (192,168,88,120,174,83).
150 Here comes the directory listing.
drwxrwx--- 2 1001 1001 23 Mar 06 05:39 dept1
drwxrwx--- 2 1002 1002 23 Mar 06 05:39 dept2
drwxrwx--- 2 1003 1003 23 Mar 06 05:39 dept3
drwxrwx--- 2 1004 1004 23 Mar 06 05:40 share
226 Directory send OK.
ftp> cd dept1 //切换目录
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,88,120,196,34).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Mar 06 05:39 dept1.txt
226 Directory send OK.
ftp> get dept1.txt //下载文件
local: dept1.txt remote: dept1.txt
227 Entering Passive Mode (192,168,88,120,32,131).
150 Opening BINARY mode data connection for dept1.txt (0 bytes).
226 Transfer complete.
ftp> put user1.txt //上传文件
local: user1.txt remote: user1.txt
227 Entering Passive Mode (192,168,88,120,102,206).
150 Ok to send data.
226 Transfer complete.
ftp> cd ..
250 Directory successfully changed.
ftp> cd dept2 //切换失败,因为没有权限
550 Failed to change directory.
ftp> cd dept3
550 Failed to change directory.
ftp> cd share
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,88,120,53,116).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Mar 06 05:40 share.txt
226 Directory send OK.
ftp> exit //退出
221 Goodbye.
[root@localhost ftp]# ls
dept1.txt user1.txt user2.txt user3.txt
ry send OK.
ftp> exit //退出
221 Goodbye.
[root@localhost ftp]# ls
dept1.txt user1.txt user2.txt user3.txt