5.2 Linux FTP 服务

1、概念介绍

FTP(File Transfer Protocol:文件传输协议)作用Internet 上用来传送文件的协议

FTP Server(File Transfer Protocol Server)是在互联网/局域网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。采用C/S架构模式。

a. 常见 FTPS

windows:Serv-U FTP Server,filezilla_server

Linux:VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。

b. 服务端口

21 :用于建立控制连接,并传输指令

20 :用于建立数据连接,并传输文件数据

ftp会话包含了两个通道,控制通道和数据通道。根据ftp服务器在建立数据连接过程中的主、被动关系,ftp数据连接分为主动模式和被动模式。

注意:这里的主动和被动,是相对于的FTP server 端来判断的,如果server 去连接client 开放的端口,说明是主动的,如果client去连接server开放的端口,则是被动的。

c. 主动模式

服务器主动连接客户端传输数据

d. 被动模式

服务器等待客户端的连接传输数据

2、安装配置 vsftpd
a. vsftpd 服务端
# 服务端 安装 vsftpd
yum install -y vsftpd
b. vsftpd 配置文件

/etc/vsftpd/vsftpd.conf

vsftpd 的主配置文件

/etc/vsftpd/ftpusers

黑名单文件,用于指定哪些用户不能访问FTP 服务器。此文件中列出的用户将禁止登陆vsftpd服务器。

/etc/vsftpd/user_list

此文件中包含的用户可能被禁止登录,也可能被允许登录。具体取决于主配置文件vsftpd.conf中的设置。当存在userlist_enable=YES的配置项时,user_list列表文件方可生效;若指定userlist_deny=YES,则仅禁止此列表中的用户登录(黑名单),若指定userlist_deny=NO,则仅允许列表中的用户登录。

/etc/vsftpd/vsftpd_conf_migrate.sh

是vsftpd 操作的一些变量和设置脚本

/var/ftp/

默认情况下匿名用户的根目录

# 启动 vsftpd
systemctl start vsftpd

# 设置开机自启动
systemctl enable vsftpd

# 查看 vsftpd 状态
systemctl status vsftpd

# 查看 vsftpd 端口
netstat -antup vsftpd | grep vsftpd

# 查看 vsftpd 进程
ps -ef | grep vsftpd

c. vsftpd 客户端

最简单的ftp客户端工具莫过于ftp命令程序了,通过ftp命令程序可以连接到ftp服务器进行交互式的上传、下载通信。

除此之外还有大量的图形化客户端工具,如cuteftp、flashftp、filezilla等

# 客户端 安装 ftp
yum install -y ftp
d. vsftpd.conf 常用配置
listen_address=ftp服务器的地址  	# 只在一个接口监听服务
listen_port=2121                # 监听端口改为2121
pasv_min_port=24500           	# 指定被动模式的下限端口
pasv_max_port=24600           	# 指定被动模式的上限端口
max_clients=20                	# 限制并发客户端最多20个
max_per_ip=2                 		# 限制每个ip地址的连接数最多2个
3、远程登录 vsftpd

FTP服务器默认情况下允许匿名用户登陆,只允许匿名用户下载文件,不允许上传和删除文件

# 使用ftp命令连接服务器
ftp 192.168.137.253

a. ftp 常用命令

命令

含义

open [ftpservername]

和指定的远程Linux FTP服务器连接

user [username]

pwd

显示远程Linux FTP服务器上的当前路径。

ls

列出远程Linux FTP服务器上当前路径下的目录和文件。

dir

列出远程Linux FTP服务器上当前路径下的目录和文件(同上)。

mkdir [foldname]

在远程Linux FTP服务器上当前路径下建立指定目录。

rmdir [foldname]

删除远程Linux FTP服务器上当前路径下的指定目录。

cd [foldname]

更改远程Linux FTP服务器上的工作目录。

delete [filename]

删除远程Linux FTP服务器上指定的文件。

rename [filename] [newfilename]

重命名远程Linux FTP服务器上指定的文件。

close

从远程Linux FTP服务器断开但保留FTP命令参数提示。

disconnect

从远程Linux FTP服务器断开但保留FTP命令参数提示(同上)。

bye

结束和远程Linux FTP服务器的连接。

quit

结束和远程Linux FTP服务器的连接(同上)。

!

直接从远程Linux FTP服务器进入到本地shell中。

exit

(接上步)从本地shell环境中返回到远程Linux FTP服务器环境下。

!ls

列出本地机器上当前路径下的目录和文件。

lcd [foldname]

更改本地机器的工作目录。

?

显示ftp命令说明。

help

显示ftp命令说明(同上)。

# 在ftp中查看当前目录
ftp>pwd											# 输出-> 257 "/"

# 查看当前目录下的文件
ftp>ls

# 下载文件
get test.txt

# 退回Shell查看 下载文件
ls

b. Windows 查看服务器

4、实战:匿名访问VSFTP
a. 需求分析

需求:公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用户自己的目录。

分析:允许所有员工上传和下载文件,需要设置成允许匿名用户登录,并且需要允许匿名用户上传功能。

b. 修改配置文件

# 允许匿名用户访问
anonymous_enable=YES
# 允许匿名用户上传文件
anon_upload_enable=YES
# 允许匿名用户创建目录
anon_mkdir_write_enable=YES
# 允许匿名用户写文件和删除文件
anon_other_write_enable=YES
c. 设置ftp根目录权限
# 给ftp根目录设置权限
chown -R ftp:ftp /var/ftp/pub

# 重启 vsftpd 服务
systemctl restart vsftpd
d. Linux 客户端测试
# 登陆ftp服务器
ftp 192.168.137.253

# 测试目录创建
ftp>pwd
ftp>mkdir test
ftp>cd pub
ftp>mkdir test

# 退出ftp并创建测试文件
ftp>!
echo "Hello Linux" > test.txt

# 回到ftp
exit
ftp>cd pub

# 上传测试文件
ftp>put /root/test.txt test.txt

# 更改文件名字
ftp>rename test.txt test_ftp.txt

# 删除文件
ftp>delete test

e. Windows 文件管理器测试

可以在Windows管理器中进行 文件夹的创建、修改、删除以及文件上传

5、实战:用户名密码方式访问VSFTP
a. 需求分析

需求:公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。ftp 和web服务器相结合。

  • web服务器根目录:/var/www/html
  • team1账号只能在/var/www/html/team1/ftp上传文件和目录
  • team2账号只能在/var/www/html/team2/ftp上传文件和目录

只允许:team1和team2两用户可以上传。 vsftp禁止匿名。

分析:将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性:

  • 首先需要使用仅允许本地用户访问,并禁止匿名用户登录。
  • 其次使用chroot 功能将team1和team2 锁定在/var/www/html 目录下。
  • 如果需要删除文件则还需要注意本地权限。

Vsftpd可以直接使用linux主机的系统用户作为ftp账号,提供基于用户名/密码的登录验证。用户使用系统用户账号登录ftp服务器后,将默认位于自己的家目录中,且对家目录拥有读写权限。

b. 修改配置文件
# 恢复配置文件
cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf

# 修改配置文件
vim /etc/vsftpd/vsftpd.conf

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# 禁止匿名用户登录
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
# 允许本地用户登录
local_enable=YES
# 启用 chroot 锁定本地用户功能
chroot_local_user=YES
# 启用 chroot 锁定本地用户列表功能
chroot_list_enable=YES
# 本地用户列表保存文件目录
chroot_list_file=/etc/vsftpd/chroot_list
# 锁定本地用户ftp根目录,如果不是设置,默认用户ftp根目录为用户家目录
local_root=/var/www/html
# 锁定用户拥有写权限
allow_writeable_chroot=YES
# ftp 用户限制
userlist_enable=YES
userlist_deny=NO
c. 创建网站根目录
mkdir -p /var/www/html/team{1..2}/ftp
tree /var/www/html

d. 创建用户并设置权限
useradd team1
useradd team2
echo "team1:123456" | chpasswd
echo "team2:123456" | chpasswd

权限设定除了在配置文件设定用户写权限,还必须要让用户对自己的目录拥有读写权限

# team1 用户对 team1/ftp 有rwx权限
setfacl -Rm u:team1:rwx /var/www/html/team1/ftp
# team2 用户对 team2/ftp 有rwx权限
setfacl -Rm u:team2:rwx /var/www/html/team2/ftp

# team1用户 不可以访问team2目录
setfacl -Rm u:team1:- /var/www/html/team2
# team2用户 不可以访问team1目录
setfacl -Rm u:team2:- /var/www/html/team1
e. 将用户添加到限制文件
# ftp 用户限制
echo -e "team1\nteam2" >> /etc/vsftpd/user_list

# 添加chroot_list文件
echo -e "team1\nteam2" > /etc/vsftpd/chroot_list
cat /etc/vsftpd/chroot_list

# 重启服务
systemctl restart vsftpd
f. 使用 Filezilla 测试

6、实战:使用虚拟用户
a. 需求分析

在vsftpd服务器中,使用虚拟用户的主要好处在于,可以将ftp登录账户与系统登录账号分开,用户名、密码都不相同,从而进一步增强ftp服务器的安全性。

需求:公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载:

  • 对所有互联网开放共享目录,允许下载产品信息,禁止上传。
  • 公司的合作单位能够使用FTP 服务器进行上传和下载,但不可以删除数据。需要保证服务器的稳定性并做优化。
  • 创建ftp虚拟帐号,允许客户使用ftp帐号下载文件。
  • 自己的合作伙伴帐号:vip可以上传内部文件

分析:根据企业的需求,对于不同用户进行不同的权限限制,FTP 服务器需要实现用户的审核。需考虑到服务器的安全性,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。

b. 创建虚拟用户数据库:db_load

建立用户文本文件,添加两个虚拟帐号:

  • 管理员帐号admin,admin账号有FTP所有权限
  • 合作账号帐号vip,vip只能上传和下载文件
  • 匿名用户只能下载文件
# 一行用户一行密码 
vim /etc/vsftpd/vsftpd_virtualuser.txt 

生成虚拟用户数据库文件:保存虚拟帐号和密码的文本文件无法被系统帐号直接调用。我们需要使用db_load 命令生成db数据库文件。

db_load 命令

  • 描述:将文本文件生成数据库文件
  • 语法:db_load [选项] 文本文件 数据库文件

-T:允许应用程序能够将文本文件转译载入进数据库

-t:hash使用hash码加密

-f:指定包含用户名和密码文本文件。此文件格式:奇数行用户名、偶数行密码

# 查看 db_load 命令的位置,通过rpm查看在个安装包中
rpm -qf `which db_load`
# 安装 db_load 所在的软件包
yum install -y libdb-utils-5.3.21-25.el7.x86_64

# 将虚拟用户文本文件 转换为 数据库文件
db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt  /etc/vsftpd/vsftpd_virtualuser.db

修改数据库文件访问权限:数据库文件中保存着虚拟帐号的密码信息,为了防止非法用户盗取,我们可以修改该文件的访问权限。生成的认证文件的权限应设置为只对root 用户可读可写。

chmod 600 vsftpd_virtualuser.db

添加虚拟用户的映射账号:Vsftpd服务器对虚拟用户的控制采用了映射的控制方式,将所有的虚拟用户对应到同一个系统用户,该系统用户家目录作为有虚拟用户登录后共用的ftp根目录。因此还需要添加一个对应的系统用户账号(此账号无须设置密码登录shell)

# 因为匿名用户默认家目录为/var/ftp,把virtual用户家目录设为/var/ftp/pub,
# 这样匿名用户和虚拟用户就可以访问相同的ftp根目录
useradd -d /var/ftp/pub -s /sbin/nologin virtual_user

# 设置虚拟用户对 /var/ftp/pub 的权限
setfacl -Rm u:virtual_user:rwx /var/ftp/pub
c. vsftpd 服务添加虚拟认证

在vsftpd服务器中,用户认证是通过PAM(pluggable authentication module,可插拔认证模块)机制来实现的, Vsftpd服务默认的PAM认证文件位于/etc/pam.d/vsftpd,该文件适用于以Linux的系统用户账号进行认证。若要读取虚拟用户的账号数据文件,则需要创建新的PAM认证文件。

# 为虚拟用户建立PAM认证文件
vim /etc/pam.d/vsftpd.vu
  auth	required	/lib64/security/pam_userdb.so
  db=/etc/vsftpd/vsftpd_virtualuser
  account	required	/lib64/security/pam_userdb.so
  db=/etc/vsftpd/vsftpd_virtualuser
  • 这里的db=/etc/vsftpd/vsftpd_virtualuser,是pam文件的写法规范,不是真正指向db=/etc/vsftpd/vsftpd_virtualuser 这个文件,而是/etc/vsftpd/vsftpd_virtualuser.db 这个文件中(注意:省略了.db扩展名)
d. 修改 vsftpd.conf 文件
cp /etc/vsftpd/vsftpd.conf.bak /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
# 开启匿名用户访问,默认匿名用户只有下载权限
anonymous_enable=YES
#开启本地用户映射
local_enable=YES
# 启用上传写入支持
write_enable=YES
# 指定上传权限掩码, 666-022=644
anon_umask=022
# 允许来宾访问
guest_enable=YES
# 允许对ftp根目录有写权限
allow_writeable_chroot=YES
# 指定映射的系统用户名称
guest_username=virtual_user
# 指定新的PAM认证文件
pam_service_name=vsftpd.vu
# 指定虚拟用户权限文件目录
user_config_dir=/etc/vsftpd/vusers_dir
# 指定被动模式的下限端口
pasv_min_port=24500
# 指定被动模式的上限端口
pasv_max_port=24600
# 限制并发客户端最多20个
max_clients=20
# 限制每个ip地址的连接数最多2个
max_per_ip=2                

注意事项:

  • 从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误:500 OOPS: vsftpd: refusing to run with writable root inside chroot()。要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,或者你可以在vsftpd的配置文件中增加下列项:allow_writeable_chroot=YES
  • vsftpd.conf配置文件中默认存在pam_service_name配置项,建议加#号注释掉或直接修改。
  • 在vsftpd服务中,虚拟用户默认作为匿名用户进行处理以降低权限,因此对应的配置项通常以anon_开头。例如,在设置虚拟用户所上文件的默认权限掩码时,应采用的配置项为anon_umask而不是local_umask。
e. 为不同的虚拟用户创建独立的配置文件

在/etc/vsftpd/vusers_dir目录下为不同的用户创建不同的权限文件

mkdir /etc/vsftpd/vusers_dir

# 创建admin的配置文件
vim /etc/vsftpd/vusers_dir/admin
  # 允许用户上传文件
  anon_upload_enable=YES
  # 允许用户创建目录
  anon_mkdir_write_enable=YES
  # 允许用户删除文件权限
  anon_other_write_enable=YES

# 创建vip的配置文件
vim /etc/vsftpd/vusers_dir/vip
  # 允许用户上传文件
  anon_upload_enable=YES
  # 允许用户创建目录
  anon_mkdir_write_enable=YES
# 重启 vsftpd 服务
systemctl restart vsftpd
f. 使用Filezilla 测试
  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 Linux系统安装与环境介绍 5 1.1 Linux产生 5 1.2 Linux功能 5 1.3 Linux术语 5 1.4 Kernel 5 1.5 版本 5 1.6 安装RedHat Enterprise Linux ES 6 1.7 开关机操作 7 1.8 桌面环境简介 7 1.9 安装故障排除 7 1.10 安装逻辑卷 8 第二章 Linux设备管理和引导流程 9 2.1 Linux文本编辑器 9 2.2 Linux下安装配置网卡 12 2.2.1 Linux下支持的网络设备 12 2.2.2 以太网网卡 13 2.3 配置显卡 13 2.4 Linux下使用外设 13 2.4.1 文件系统类型、设备名、装载目录 14 2.5 Linux文件目录 15 2.5.1 文件名 15 2.5.2 路径 15 2.6 Linux引导流程 15 2.7 有关的配置文件 16 2.8 Linux Shell 简介 17 第三章 Linux 用户管理与磁盘管理 20 3.1用户和组 20 3.1.1 添加用户和组 20 3.1.2 与用户和组有关的重要文件 20 3.1.3 查封用户 21 3.2 权限管理 21 学习权限要掌握的基础 21 3.2.1 Linux中的访问权限 22 3.2.2 改变权限的命令 22 实例练习: 23 3.2.3 改变文件作者 26 3.3 Linux文件系统 26 3.4 Linux磁盘管理 26 第四章 远程登录和PAM 30 4.1 OpenSSH 30 4.1.1 OpenSSH的安装 30 4.1.2 OpenSSH服务器的配置 30 4.1.3 使用ssh命令登录SSH服务器 30 4.2 Telnet服务 31 4.3 插入式身份认证模块 32 第五章 SAMBA和NFS服务 33 5.1 SAMBA服务简介 33 5.2 配置方法 33 5.3 NFS服务配置方案 36 第六章 DHCP服务 38 6.1 DHCP服务简介 38 6.2 DHCP服务的原理 38 6.3 DHCP服务的配置 38 配置方案: 39 测试及管理方法: 39 第七章 域名系统 40 7.1 域名系统简介 40 7.2 配置文件 40 7.3 相关工具 40 7.4 安装DNS服务 40 7.5 DNS的配置 41 7.6 测试及管理办法 43 第八章 Apache和Vhost服务 44 8.1 Web服务器简介 44 8.2 安装和启动Adache 44 8.3 Apache的配置 44 1、查看编译配置参数 44 2、查看已经被编译的模块 44 3、Apache的配置文件 44 4、基本配置 44 5、分割配置任务 45 8.4 Vhost配置 45 1、DNS配置 45 第九章 邮件服务器和数据库服务器 49 9.1 SendMail 服务 49 9.2服务原理 49 9.3配置文件 49 9.4安装sendmail 50 9.5 配置方案 50 9.6 数据库服务器的安装和配置 52 一、所需软件: 52 二、安装和配置 52 三、测试 54 四、Server的启动与关闭 54 第十章 FTP服务器和Linux安全 55 10.1 FTP服务器简介 55 10.2 FTP运行原理 55 10.3 Linux下的FTP服务器 55 10.3.1安装并启动vsftpd 55 10.3.2 配置vsftpd 55 10.4 使用vsftp服务 56 10.4 Linux安全初步 56
第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig配置IP地址及辅助IP地址 1.2.3 禁用和启用网卡 1.2.4 更改网卡MAC地址 1.2.5 route命令设置网关 1.2.6 网卡配置文件 1.2.7 setup命令 1.2.8 修改resolv.conf设置DNS 1.3 网络环境测试 1.3.1 ping命令检测网络状况 1.3.2 netstat命令 1.3.3 nslookup测试域名解析 1.4 本章习题 第2章 Samba服务 2.1 Samba原理 2.1.1 Samba概述 2.1.2 Samba应用环境 2.1.3 Samba工作原理 2.2 安装Samba服务 2.2.1 Samba所需软件 2.2.2 Samba的安装 2.3 Samba常规服务器配置 2.3.1 主要配置文件smb.conf 2.3.2 Samba服务日志文件 2.3.3 Samba服务密码文件 2.3.4 Samba的启动与停止 2.3.5 share服务器实例及详解 2.3.6 user服务器实例及详解 2.4 Samba高级服务器配置 2.4.1 用户账号映射 2.4.2 客户端访问控制 2.4.3 设置Samba的权限 2.4.4 Samba的隐藏共享 2.5 Samba客户端配置 2.5.1 Linux客户端访问Samba共享 2.5.2 Windows客户端访问Samba共享 2.6 Samba的打印共享 2.7 Samba企业实战与应用 2.7.1 企业环境及需求 2.7.2 需求分析 2.7.3 解决方案 2.8 Samba排错 2.9 本章习题 2.10 smb.conf字段汇总 第3章 DHCP服务 3.1 DHCP原理 3.1.1 DHCP概述 3.1.2 DHCP的应用环境 3.1.3 DHCP术语 3.1.4 DHCP工作原理 3.2 安装DHCP服务 3.2.1 DHCP所需软件 3.2.2 DHCP的安装 3.3 DHCP常规服务器配置 3.3.1 主配置文件dhcpd.conf 3.3.2 常用参数介绍 3.3.3 常用声明介绍 3.3.4 常用选项介绍 3.3.5 租约数据库文件 3.3.6 应用案例Ⅰ 3.3.7 DHCP的启动与停止 3.3.8 IP地址绑定 3.3.9 应用案例Ⅱ 3.4 DHCP高级服务器配置 3.4.1 DHCP规划 3.4.2 DHCP多作用域设置 3.4.3 DHCP中继代理 3.5 DHCP客户端配置 3.5.1 Linux客户端配置 3.5.2 Windows客户端配置 3.6 DHCP服务配置排错 3.6.1 dhcpd 3.6.2 租约文件 3.6.3 ping 3.6.4 MULTICAST 3.6.5 查看系统日志 3.7 本章习题 3.8 字段汇总 第4章 DNS服务 4.1 DNS原理 4.1.1 DNS简介 4.1.2 域名空间 4.1.3 区(Zone) 4.1.4 主域名服务器与辅助域名服务器 4.1.6 DNS查询原理及流程 4.1.7 正向解析与反向解析 4.1.8 资源记录 4.2 安装DNS服务 4.2.1 BIND简介 4.2.2 DNS所需软件 4.2.3 DNS的安装 4.3 DNS常规服务器配置 4.3.1 主配置文件named.conf 4.3.2 配置正向解析区域 4.3.3 配置反向解析区域 4.3.4 区域文件与资源记录 4.3.5 SOA资源记录 4.3.6 NS记录 4.3.7 A资源记录 4.3.8 DNS应用案例Ⅰ 4.3.9 其他常用资源记录 4.3.10 根区域设置及对应区域文件 4.3.11 DNS的启动与停止 4.3.12 host命令测试DNS 4.3.13 rndc 4.3.14 DNS应用案例Ⅱ 4.4 DNS高级服务器配置 4.4.1 辅助DNS服务器及区域数据同步 4.4.2 子域与区域委派 4.4.3 转发服务器 4.4.4 缓存服务器(Caching-only Name Server) 4.5 DNS客户端配置 4.5.1 RHEL5客户端配置 4.5.2 Windows客户端配置 4.6 DNS企业实战与应用 4.6.1 企业环境 4.6.2 需求分析 4.6.3 解决方案 4.7 DNS排错 4.7.1 rndc reload 4.7.2 查看启动信息 4.7.3 查看端口 4.7.4 权限问题 4.8 本章习题 4.9 字段汇总 第5章 Sendmail服务 5.1 Sendmail原理 5.1.1 Sendmail概述 5.1.2 邮件系统工作原理 5.1.3 简单邮件传输协议(SMTP) 5.1.4 POP3协议 5.1.5 IMAP协议 5.1.6 邮件中继 5.1.7 邮件认证机制 5.2 安装Sendmail服务 5.2.1 Sendmail服务软件简介 5.2.2 Sendmail服务安装 5.2.3 相关的配置文档 5.3 Sendmail常规服务器配置 5.3.1 sendmail.cf和sendmail.mc 5.3.2 m4工具的使用 5.3.3 local-host-names文件 5.3.4 Sendmail的启动与停止 5.3.5 POP3和IMAP 5.3.6 Sendmail应用案例Ⅰ 5.3.7 别名和群发设置 5.3.8 利用access文件设置邮件中继 5.3.10 Sendmail应用案例Ⅱ 5.3.10 Sendmail调试 5.4 Sendmail高级服务器配置 5.4.1 Sendmail认证 5.4.2 邮箱容量设置 5.4.3 POP3S和IMAPS设置 5.5 Sendmail客户端配置 5.5.1 Linux客户端 5.5.2 Windows客户端 5.6 Sendmail服务企业实战与应用 5.6.1 企业环境 5.6.2 需求分析 5.6.3 解决方案 5.7 Sendmail排错 5.7.1 无法定位邮件服务器 5.7.2 身份验证失败 5.7.3 邮箱配额限制 5.8 本章习题 5.9 字段汇总 第6章 FTP服务 6.1 FTP原理 6.1.1 FTP概述 6.1.2 FTP工作原理 6.1.3 主动与被动模式 6.1.4 FTP用户分类 6.2 安装FTP服务 6.2.1 vsftp所需软件 6.2.2 vsftp的安装 6.2.3 vsftp相关文档 6.3 常规服务器配置 6.3.1 主配置文件vsftpd.conf 6.3.2 实现匿名用户访问 6.3.3 实现实体用户访问 6.3.4 FTP应用案例Ⅰ 6.3.5 限制用户目录 6.3.6 限制服务器连接数 6.3.7 定制FTP目录欢迎信息 6.3.8 限制下载速度 6.3.9 FTP的启动与停止 6.3.10 FTP应用案例Ⅱ 6.4 高级服务器配置 6.4.1 设置VSFTP虚拟账号 6.4.2 使用xinetd控制vsftpd 6.5 客户端配置 6.5.1 Linux客户端配置 6.5.2 Windows客户端配置 6.6 企业实战与应用 6.6.1 企业环境 6.6.2 需求分析 6.6.3 解决方案 6.7 FTP排错 6.8 本章习题 6.9 字段汇总 第7章 Web服务 7.1 WWW原理 7.1.1 WWW概述 7.1.2 WWW工作原理 7.1.3 LAMP模型 7.1.4 SSL和CA 7.2 安装Web服务 7.2.1 Apache简介 7.2.2 Apache所需软件 7.2.3 Apache的安装 7.3 Apache常规服务器配置 7.3.1 主配置文件httpd.conf 7.3.2 根目录设置(ServerRoot) 7.3.3 超时设置 7.3.4 客户端连接数限制 7.3.5 设置管理员邮件地址 7.3.6 设置主机名称 7.3.7 设置文档目录 7.3.8 设置首页 7.3.9 网页编码设置 7.3.10 Apache的启动与停止 7.3.11 Web应用案例 7.3.12 Apache日志设置 7.3.13 目录设置 7.3.14 虚拟目录 7.3.15 为Apache建立专门的用户和组 7.4 Apache高级服务器配置 7.4.1 配置Apache虚拟主机 7.4.2 Apache访问控制 7.4.3 htaccess实现用户认证 7.4.4 实现HTTPS 7.5 企业实战与应用 7.5.1 企业环境及需求 7.5.2 需求分析 7.5.3 解决方案 7.6 本章习题 7.7 字段汇总 第8章 iptables 8.1 iptables原理 8.1.1 防火墙概述 8.1.2 iptables简介 8.1.3 iptables工作原理 8.1.4 NAT工作原理 8.2 安装iptables 8.2.1 iptables的安装 8.2.2 iptables的启动与停止 8.3 防火墙配置 8.3.1 iptables的基本语法 8.3.2 设置默认策略 8.3.3 查看iptables规则 8.3.4 添加、删除、修改规则 8.3.5 保存规则与恢复 8.3.6 常用实例及技巧分析 8.3.7 使用日志监控iptables 8.4 NAT(网络地址转换) 8.4.1 iptables实现NAT 8.4.2 配置SNAT 8.4.3 配置DNAT 8.4.4 MASQUERADE 8.4.5 连接跟踪 8.5 企业实战与应用 8.5.1 企业环境及需求 8.5.2 需求分析 8.5.3 解决方案 8.6 本章习题 8.7 字段汇总 第9章 代理服务 9.1 代理服务原理 9.1.1 什么是代理服务器 9.1.2 代理服务器的工作原理 9.1.3 代理服务器的作用 9.2 安装Squid 9.2.1 Squid简介 9.2.2 Squid的安装 9.3 Squid常规服务器配置 9.3.1 Squid主配置文件squid.conf 9.3.2 设置Squid监听的端口号 9.3.3 内存缓冲设置 9.3.4 Squid磁盘缓存 9.3.5 设置缓存日志 9.3.6 设置访问日志文件 9.3.7 设置网页缓存日志 9.3.8 设置Squid的拥有者 9.3.9 设置Squid所属组 9.3.10 设置DNS服务器地址 9.3.11 设置Squid可见主机名 9.3.12 设置管理员E-mail地址 9.3.13 设置访问控制列表 9.3.14 Squid的启动和停止 9.3.15 代理服务应用案例 9.4 Squid高级服务器配置 9.4.1 代理服务器用户访问控制 9.4.2 实现透明代理 9.4.3 反向代理加速Web网站 9.5 代理客户端配置 9.5.1 Linux客户端配置 9.5.2 Windows客户端配置 9.6 Squid企业实战与应用 9.6.1 企业环境 9.6.2 需求分析 9.6.3 解决方案 9.6.4 真实案例配置文件 9.7 本章习题 9.8 字段汇总 第10章 NFS 10.1 NFS原理 10.1.1 NFS概述 10.1.2 RPC简介 10.1.3 NFS工作原理 10.2 安装NFS 10.2.1 NFS所需软件 10.2.2 NFS的安装 10.2.3 NFS相关文档 10.3 常规服务器配置 10.3.1 架设流程 10.3.1 主配置文件exports 10.3.2 NFS应用实例 10.3.3 NFS的启动与停止 10.3.4 exportfs命令 10.3.5 配置NFS固定端口 10.3.6 测试NFS服务 10.4 客户端配置Linux客户端的使用 10.5 NFS排错 10.6 本章练习 10.7 字段汇总 第11章 NIS 11.1 NIS原理 11.1.1 NIS简介 11.1.2 NIS工作原理 11.1.3 NIS工作模式 11.2 NIS的安装 11.2.1 NIS所需软件 11.2.2 安装NIS 11.2.3 NIS相关文档 11.3 服务器端配置 11.3.1 设置NIS域名 11.3.2 主配置文件 11.3.3 创建NIS数据库 11.3.4 建立信任群 11.3.5 配置多NIS服务器 11.3.6 NIS固定端口设置 11.3.7 自动挂载NIS用户主目录 11.3.8 启动与停止NIS服务 11.3.9 NIS应用案例 11.4 客户端配置 11.4.1 所需软件 11.4.2 加入NIS域 11.4.3 修改hosts文件 11.4.4 修改密码验证方式 11.4.5 修改/etc/yp.conf文件 11.4.6 重新启动ypbind服务 11.4.7 客户端检测 11.4.8 修改用户密码 11.5 NIS排错 11.5.1 客户端无法查询NIS信息 11.5.2 添加新的数据无法生效 11.6 练习题 第12章 网络访问 12.1 远程登录服务概述 12.1.1 什么是远程登录 12.1.2 远程登录的特点 12.2 Telnet服务 12.2.1 Telnet概述 12.2.2 Telnet工作原理 12.2.3 安装Telnet程序 12.2.4 Telnet的访问控制 12.2.5 限制最大连接数 12.2.6 Telnet服务的启动与停止 12.2.7 防火墙设置 12.2.8 更改Telnet端口号 12.2.9 Linux客户端 12.2.10 Windows客户端 12.3 SSH服务 12.3.1 SSH概述 12.3.2 安装OpenSSH 12.3.3 SSH的启动与停止 12.3.4 OpenSSH配置文件 12.3.5 OpenSSH身份验证 12.3.6 OpenSSH客户端配置 12.4 本章习题 12.5 字段汇总
ftp--虚拟用户 Benet6.0 S2 LINUX 第十二章 实验报告 姓名: 李勰 所在班级: hb3017 日期: 2020 年 7 月 7 日 实 验 任 务 1. 搭建服务之前先关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 2.挂载并安装软件vsftpd和ftp。(服务端和客户端) mount /dev/cdrom /mnt/ (挂载) rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm (安装服务端) rpm -ivh /mnt/Packages/ftp-0.17-67.el7.x86_64.rpm (安装客户端) 3.构建匿名可上传的FTP服务器,操作目录为 /var/ftp/pub 注:在客户端登录后,默认情况下是可以下载的,但不能上传。 3.1配置主配置文件:vim /etc/vsftpd/vsftpd.conf 添加: anon_upload_enable=YES (允许匿名上传) 3.2修改完成之后重启服务systemctl restart vsftpd 3.3 修改文件目录的w权限:chmod o+w /var/ftp/pub/ 3.4 查看并验证:ls -lhd /var/ftp/pub/ 3.5 知识扩充:anon_mkdir_write_enable=YES (允许匿名用户可创建目录) anon_other_write_enable=YES (允许匿名用户可删、可覆盖) anon_umask=022 (允许匿名用户上传文件有r权限,没有r权限不可下载) vim /var/ftp/pub/.message (切换目录提示信息) dirmessage_enable=YES (开始主配置文件该功能默认开启) 4.构建本地用户验证的FTP服务器,本地用户为zhangsan lisi wangwu,并将其禁锢到宿主目录中,上传的权限掩码值为022(默认) 4.1 创建本地用户zhangsan、lisi、wangwu。并设置密码。(创建的用户不需要登录操作系统,只需要登录ftp。) useradd -s /sbin/nologin zhangsan useradd -s /sbin/nologin lisi useradd -s /sbin/nologin wangwu 4.2 完成上一部操作,就可以使用本地用户访问,要禁锢需要修改只配置文件 chroot_local_user=YES (是否将用户禁锢在主目录) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) 重启服务并测试。 4.3 知识扩充:chroot_list_enable=YES (开启白名单功能,允许白名单中的用户随意切换目录) chroot_list_file=/etc/vsftpd/chroot_list(白名单所在位置,需自己创建) cd /etc/vsftpd/ vim chroot_list :(文件中填写允许切换的用户) 5.结合user_list文件限制用户,仅允许zhangsan lisi 用户访问(设置白名单或黑名单) 5.1修改user_list vim user_list, 添加zhangsan、lisi。 5.2修改主配置文件:userlist_enable=NO (不禁用user_list列表中的用户) 6.设置服务器的监听地址,并将端口修改为2121 重启服务测试 6.1.主配置文件添加:listen_port=2121 6.2.重启服务:systemctl restart vsftpd 6.3. netstat -anutp |grep "vsftpd" 进行查看 7.设置FTP虚拟用户,readuser,writeuser 1.创建用户列表 2.生成db文件(数据库) 3.权限管理 4.新建虚拟用户映射账号 (系统账号) 5.pam认证文件 6.修改配置文件 7.1.创建虚拟用户文件 cd /etc/vsftpd/ vim vusers.list (奇数为用户名,偶数为密码) readuser 666666 Writeuser 666666 7.2. 生成db文件(数据库) 1. 建立虚拟FTP用户的帐号数据库文件用到db_load工具先安装软件包 rpm -ivh libdb-utils-5.3.21-19.el7.x86_64.rpm (默认已安装) 2. db_load -T -t hash -f vusers.list vusers.db 通db_load工具创建出Berkeley DB格式的数据库文件 7.3. 配置权限 chmod 600 vusers.* (保证其安全性) 7.4. 新建虚拟用户映射账号 (系统账号) useradd -d /viruser -s /sbin/nologin virtual 7.5. pam认证文件 在vsftpd服务器中,用户认证是通过PAM(Pluggable Authentication Module,可插拔认证模块)机制来实现的,该机制包含灵活的选择认证方式。 vim /etc/pam.d/vsftpd.vu(此文件名可自定义) 加入以下两行 auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers 7.6. 修改主配置文件 vim /etc/vsftpd/vsftpd.conf(:g /^#/d) guest_enable=YES 启用用户映射功能(添加) guest_username=virtual 指定映射的系统用户名称(添加) pam_service_name=vsftpd.vu 指定新的PAM认证文件(修改) allow_writeable_chroot=YES (允许被限制用户的主目录具有写的权限) user_config_dir=/etc/vsftpd/dir 匿名配置文件目录(添加) mkdir dir 创建目录 7.7. 为虚拟用户建立独立的配置文件,启动服务并测试。 注:虚拟用户配置文件时,将主配置文件中自定义的匿名用户相关设置注释掉。 注:给映射用户的家目录设置o+r让虚拟用户有读取权限 1.用户可以上传:(anon_umask=022) anon_upload_enable=YES 2.用户可以创建目录: anon_mkdir_write_enable=YES 3.用户可以修改文件: anon_upload_enable=YES 允许上传文件(为了覆盖开启的) anon_other_write_enable=YES 允许重名和删除文件、覆盖 4.设置权限: readuser 用户可以登录,并可以浏览、下载,但无法上传 writeuser 用户可以登录,并可以浏览、下载,只可以上传文件 5.匿名用户或其他系统用户将不能登录 vim user_list,向其中添加readuser Writeuser vim /etc/vsftpd/vsftpd.conf (修改主配置文件) userlist_enable=YES //*启用user_list用户列表文件 userlist_deny=NO //*不禁用user_list列表中的用户登录 详 细 实 验 步 骤 结 果 验 证 问 题 及 分 析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值