一、文件服务器简介
FTP:在内网和公网使用。服务器:windows,Linux 客户端:windows,Linux
samba:只能在内网使用 (文件共享服务) 服务器:windows,Linux 客户端:windows(Linux)
NFS:Linux中的常用的文件服务器(运行级别3)
声明:Apache是web服务器,和文件服务器没半毛钱关系。
Linux打的完整防护:SELinux(没有selinux服务,是由内核直接调用的)(由美国国家安全局开发的)安全等级在B1-B2左右
[root@localhost ~]# vi /etc/selinux/config
SELINUX=enforcing
改为
SELINUX=disabled
重启Linux(修改的是内核)
目前学习难度较大,所以暂时关闭,容易报错。
1、FTP软件
Linux:wu-ftp 早期,不太安全
proftp 增强ftp工具
vsftp 安全,强大
RedHat是行业的风向标,它更改一个功能,各企业都向其靠拢。使用基数大,这就是为什么要学RedHat系列的Linux,而不学Unbunto的原因(虽然它很火)
windows:IIS windows下网页搭建服务,可以搭建ftp服务
serv-U 专用ftp服务器
2、原理
开启 21 命令传输端口
20 数据传输端口
3、FTP的用户
1、ftp允许登录用户 就是系统用户,使用的密码也是系统密码 上传位置:/home/家目录
2、匿名用户(不要用户名,不要密码(权限太大)) anonymous 密码:空 或者 邮箱地址 11@aa 上传位置:/var/ftp/
二、安装
rpm -ivh vsftpd...........(....包全名的意思,按tab键)
yum install vsftpd -y
三、相关文件
/etc/vsftpd/vsftpd.conf 配置文件
/etc/vsftpd/ftpusers 用户访问控制文件 写入此文件的用户都不能访问ftp服务器(黑名单文件)
/etc/vsftpd/chroot_list 需要手工建立(默认没有) 定义是否把用户限制在家目录
四、配置文件配置
/etc/vsftpd/vsftpd.conf
1 主机相关配置
listen_port=21 监听端口
connect_from_port_20=YES 数据传输端口
ftpd_banner= 欢迎信息(默认是注释的)
2 匿名用户登录 在Linux下识别为 ftp 用户
anonymous_enable=YES 允许匿名用户登录 必须修改为NO
3 本地用户
local_enable=YES 允许系统用户登录
write_enable=YES 允许上传
local_umask=022 默认上传权限
local_max_rate=300 上传限速
4 限制用户访问目录(这三句话默认是注释的)
chroot_local_user=YES 只有此句,所有用户限制在家目录下 (257 "/" 实际是我的家目录)
chroot_local_user=YES 如有三句话,只有文件chroot_list中的用户可以访问任何目录,其他用户限制在家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list(白名单:随便访问)
5 修改完配置文件,要想生效就必须将该服务重启
service vsftpd restart
6 !ser 命令行中的!是指:执行最后一个以ser开头的命令
如:!ser 执行的效果和 service vsftpd restart 的效果是相同的
五 ftp客户端使用
1 使用命令登录
ftp ip
get 文件名 下载
put 文件名 上传
注意:不能上传和下载目录,只能是文件
2 使用windows窗口
ftp://用户名@IP
注意:不支持断点续传
3 使用第三方工具登录
flashFXP
winscp
总结:两件事:关闭匿名用户、把所有用户限制到家目录。
实验时出现的错误:
C:>ftp 192.168.20.128
连接到 192.168.20.128。
220 (vsFTPd 2.2.2)
用户(192.168.20.128:(none)): zc
331 Please specify the password.
密码:
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list
500 OOPS: priv_sock_get_result
远程主机关闭连接。
解决:是因为没有这个文件。在/etc/下面新建一个chroot_list文件即可