网站维护工单,网站建设与管理怎么样,旅游景区网络营销案例,电台网站建设要求概念
1.1介绍
FTP#xff1a;File transfer protocol 文件传输协议
1.2原理
默认采用被动模式
被动模式FTP
为了解决服务器发起到客户的连接的问题#xff0c;人们开发了一种不同的FTP连接方式。这就是所谓的被
动方式#xff0c;或者叫做PASV#xff0c;当客户端通…
概念
1.1介绍
FTPFile transfer protocol 文件传输协议
1.2原理
默认采用被动模式
被动模式FTP
为了解决服务器发起到客户的连接的问题人们开发了一种不同的FTP连接方式。这就是所谓的被
动方式或者叫做PASV当客户端通知服务器它处于被动模式时才启用。在被动方式FTP中命令连接和数据连接都由客户端这样就可以解决从服务器到客户端的数据端口的入方向连接被防火墙过滤掉的问题。当开启一个FTP连接时客户端打开两个任意的非特权本地端口N ; 1024和N1。第一个端口连接服务器的21端口但与主动方式的FTP不同客户端不会提交PORT命令并允许服务器来回连它的数据端口而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口P ; 1024并发送PORT P命令给客户端。然后客户端发起从本地端口N1到服务器的端口P的连接用来传送数据。
对于服务器端的防火墙来说必须允许下面的通讯才能支持被动方式的FTP:
FTP服务器命令21端口接受客户端任意端口客户端初始连接
FTP服务器命令21端口到客户端端口1023服务器响应客户端命令
FTP服务器数据端口1023接受客户端端口1023客户端初始化数据连接到服务器指定的任意端口
FTP服务器数据端口1023到客户端端口1023服务器发送ACK响应和数据到客户端的数据端口
NFS,基于主机认证只是局域网之间文件传输
FTP可以实现用户之间的认证
Real本地用户 服务端用户
匿名用户
虚拟游客用户
1.3 配置文件
主配置文件
vim /etc/vsftpd/vsftpd.conf
从配置文件
vim /var/ftp/pub
主配置文件详解
anonymous_enableYES 是否启用匿名用户
local_enableYES
write_enableYES 允许写入(无论是匿名用户还是本地用户要实现上传就需要快开启它)
local_umask022 默认本地用户上传文件权限755
dirmessage_enableYES 显示每个目录下的文件信息
xferlog_enableYES 日志启用
connect_from_port_20YES 主动请求的数据端口
chown_uploadsYES 所有匿名用户上传的文件所属用户将会被改成chown_username
chown_usernamewhoever 匿名上传的所属用户名是whoever
xferlog_file/var/log/xferlog 启用的日志文件
xferlog_std_formatYES
idle_session_timeout600 空闲连接超时
data_connection_timeout120 数据连接超时
nopriv_userftpsecure 当服务器运行于最底层时使用的用户名
chroot_list_enableYES chroot_local_userYES 所有文件列出用户 可以切换到其他目录
chroot_list_file/etc/vsftpd/chroot_list 用于指定用户列表文件该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录
listenNO 服务将自己监听处理listen_ipv6YES
pam_service_namevsftpd 设置PAM认证模块使用名称预设为vsftpd
userlist_enableYES
tcp_wrappersYES 服务端和客户端访问控制策略服务器级别的一种防火墙
二、准备工作
2.1查看系统版本号 2.2配置本地yum仓库
1在光驱中插入kylin-server-v10的系统光盘若是虚拟机则连接相应的ISO文件然后在系统中将光盘挂载到/mnt目录。 2将本地目录/mnt/mydvd配置为本机的yum源 2.3安装vsftpd 2.4 重启vsftpd服务,关闭防火墙和修改SE linux策略 SELLinux设置查看下面常见问题
设置安全策略
setsebool -P allow_ftpd_anon_write1
修改安全上下文
chcon -R -t public_content_rw_t /var/ftp/pub
防火墙配置临时
Systemctl stop firewalld.service 开启vsftpd服务并设置开机自启
2.5配置网络
1查看虚拟网卡名称 ens33 2配置IP地址 3客户端计算机-网络‘属性’-更改适配器配置-WLAN注如果网线连接选择以太网 4按‘windowsR’键-输入“cmd”-输入ipconfig保证虚拟机和主机电脑的IPV4地址同一网段内与子网掩码、网关一致 5虚拟机中IP配置静态IP、添加IP地址、子网掩码、网关、DNS 6重启网络服务 7测试网络 三、匿名用户登录
3.1要求
vsftpd服务器只允许匿名登录匿名用户在根目录下只能下载匿名用户在pub子目录下可以新建、下载、上传、重命名文件文件夹
3.2过程
1修改配置文件/etc/vsftpd默认访问var/ftp/pub\
vsftpd的配置文件在/etc/vsftpd目录下修改 vsftp.conf 文件建议复制一个备份文件在同一目录下以防直接修改错误而无法恢复。
查看以下授权是否开启并修改
anonymous_enableYES #启用匿名访问
no_anon_passwordYES #不需要匿名密码登录
local_enableNO #启用本地用户访问NO
anon_umask022 #设置匿名用户上传的文件权限
anon_upload_enableYES #启用匿名用户上传
anon_world_readable_onlyNO #匿名用户只读
anon_mkdir_write_enableYES #启用匿名用户创建文件夹权限
anon_other_write_enableYES #启用匿名用户其它操作的权限 2保存退出重启FTP服务器 3在 /var/ftp/pub 目录下创建文件test 4在Windows的浏览器里匿名连接FTP服务器 5在Windows的文件资源系统操作匿名用户登录用户名为ftp密码为空注确定防火墙关闭 6测试
匿名用户在pub子目录下可以上传、下载、新建、重命名和删除文件
a. 在/var/ftp/pub下新建 download文件和upload文件并chmod授权777 b. 在/home/下为用户授权 c. 将Windows桌面上的kylin.txt文件拖拽上传到upload文件中 d. 进入upload文件中查看也可在火狐浏览器中查看 e. 在download文件中创建123.txt、test1.txt等文件 f. 将从download文件中的123.txt下载拖拽到Windows桌面 g. 在Windows文件资源管理器中新建文件夹和重命名 h. 删除文件 3.3常见问题及解决办法
1有的时候我们改了配置了vsftpd.conf文件之后还是不能上传下载文件需要进行以下操作
在麒麟V10系统终端中使用命令getsebool -a|grep ftp 查看ftp的相关权限
这个时候会报SElinux is disabled(因为在装vsftpd的时候SElinuxdisabled在银河麒麟V10的终端通过修改selinux配置文件/etc/selinux/config文件中的SELUNUX参数发现无法启动selinux。在银河麒麟中有个kysec安全软件怀疑是此软件拦截了selinux的启动。 解决办法
Vim /etc/sysconfig/selinux将SElinuxdisabled 改为SElinuxenforcing
2)调用指令security-switch --set default执行过程中出现selinux关闭。
查看指令帮助执行 security-switch --set custom --list selinux重启后调用sestatus发现selinux启动了。 3)重启后发现当前模式还是enforce查看/etc/default/grub, selinux1 enforcing1去除 enforcing1重启机器。Selinux模式已经正常。 2在Windows终端中登录ftp FTP550报错 解决办法
1)在虚拟机中检查用户和指定的文件目录是否授权 2)执行WindowsR输入cmd登录ftp 192.168.1.17测试 四、本地用户
4.1要求
允许账号登录FTP服务器但不能登录本地系统对账号根目录进行限制不能进入根目录以外的任何目录
4.2过程
1创建用户并禁止本地登录
useradd -s /sbin/nologin lisi
passwd lisi #设置密码
su lisi #测试是否能登录本地系统 在/home目录下执行chmod 755 lisi增加权限 检查/etc/shells下是否添加/sbin/nologin如果没有执行vim /etc/shells进行添加。 2创建根目录并赋予其他用户相应权限
mkdir -p /var/ftp/testup #创建上传文件夹
chmod ow /var/ftp/testup #赋予其它用户写的权限 在/var/ftp/testup中创建1234.txt文件并填写些东西。 3修改安全上下文使根目录能够写入上传功能
chcon -t public_content_rw_t /var/ftp/testup 4修改配置文件,执行 vim /etc/vsftpd/vsftpd.conf
anonymous_enableNO #禁止匿名用户登录
local_enableYES #允许本地用户登录
local_root/var/ftp/testup
#设置本地用户的根目录为/var/ftp/testup
write_enableYES
local_umask022
dirmessage_enableYES
xferlog_enableYES
connect_from_port20YES
xferlog_std_formatYES
chroot_local_userYES
chroot_list_enableNO
allow_writeable_chrootYES
listenNO
listen_ipv6YES
pam_service_namevsftpd
userlist_enableYES 5修改SELinux允许本地用户登录
getsebool -a|grep ftp
setsebool -P ftpd_full_access on
setsebool -P tftp_home_dir on 6重启vsftpd服务使配置生效
systemctl restart vsftpd
设置防火墙规则
8测试
a. 执行Windowsr输入cmd登录ftp 192.168.1.16虚拟机地址对账号根目录进行限制不能进入根目录以外的任何目录使用lisi用户 下载、上传、删除测试。 b. 在Windows资源管理器访问地址ftp://192.168.1.16 c. 将桌面的kylin.txt上传(拖拽)到var/ftp/textup目录文件中 4.3常见问题及解决办法
安装完vsftpd软件后SELinux安全策略默认是没有开启FTP服务直接访问会报错500 OOPS,所有需要修改为允许使用FTP服务。
目标希望FTP用户访问自己的家目录
尝试命令行输入 setsebool -P ftp_home_dir1
发现会报错 解决办法
麒麟V10服务器操作系统开始用tftp_home_dir来替代了ftp_home_dir所以修改如下 五、虚拟用户
使用虚拟用户比使用用本地用户和匿名用户的安全性更高即使被破解了用户名和密码也不会影响本地系统如果使用本地和匿名用户也就相当于破解了本地的用户名和密码。
5.1要求
vuser1只能进行下载vuser2能进行下载和上传对下载/上传流量进行控制
5.2过程
1操作虚拟用户列表
a. 建立虚拟用户的用户名、密码列表的文本文件 vim /etc/vsftpd/vusers.list b. 用db_load转换工具将文本文件上一步所建立的文件转化为数据库文件 db_load -T -t hash -f vusers.list vusers.db c. 修改虚拟用户列表文件及数据库文件访问权限。 chmod 600 /etc/vsftpd/vusers.* 2创建虚拟用户对应的本地用户
禁止他们本地登录设置用户主目录的访问权限
3建立支持虚拟用户的PAM认证文件vim /etc/pam.d/vusers.vu 注意/etc/pam.d/vusers.vu中空格用Tab键。
4修改/etc/vsftpd/vsftpd.conf主配置文件程度
vim /etc/vsftpd/vsftpd.conf
anonymous_enableNO
local_enableYES #使用虚拟用户一定要启用本地用户
chroot_local_userYES #将所有本地用户限制在家目录中(需添加)
guest_enableYES #启用用户映射功能允许虚拟用户登录(需添加)
pam_service_namevusers.vu #指定对虚拟用户进行PAM认证的文件名vuser.vu
user_config_dir/etc/vsftpd/vconfig #指定虚拟用户的配置文件的位置(需添加)
allow_writeable_chrootYES 5为虚拟用户vuser1、vuser2建立各自独立的配置文件
vuser1
vim /etc/vsftpd/vconfig/vuser1
guest_usernamesvuser1 #设置vuser1对应的本地用户为svuser1
local_root/var/ftp/share #用户登录后所在的目录
anon_world_readable_onlyNO #允许浏览和下载
anon_max_rate500000 #限定传输速率为500KB/s vuser2
vim /etc/vsftpd/vconfig/vuser2
guest_usernamesvuser2
local_root/var/ftp/noshare
anon_world_readable_onlyNO
write_enableYES //允许写入
anon_upload_enableYES //允许上传
anon_mkdir_write_enableYES //允许创建文件夹
anon_max_rate1000000 //限定传输速度为1000KB/s 6修改SELinux允许本地用户登录和匿名用户具有写入权限 7重新加载vsftpd服务使配置生效systemctl restart vsftpd
8测试
打开Windows文件资源管理器登录ftp://192.168.1.16
在vuser1中只能进行下载测试 将文件666.txt下载拖拽到桌面 将文件test上传拖拽到桌面、新建文件夹、删除测试 vuser2能进行上传、下载
将个人日日程APP.zip包上传到目录下 将123.txt下载拖拽到桌面
anonymous_enableNO
local_enableYES //使用虚拟用户一定要启用本地用户
chroot_local_userYES //将所有本地用户限制在家目录中(需添加)
guest_enableYES //启用用户映射功能允许虚拟用户登录(需添vim /etc/vsftpd/vconfig/vtext2
guest_usernamevtext2
local_root/var/ftp/noshare
anonymous_enableNO #禁止本地登录
write_enableYES #允许写入
local_umask022
anon_upload_enableNO #允许上传
anon_mkdir_write_enableNO #允许创建文件夹
idle_session_timeout600
data_connection_timeout120
anon_world_readable_onlyNO #允许浏览和下载
max_clients10 #客户端允许最大访问量
max_per_ip5
local_max_rate1048576 #本地用户最大传输速度
anon_max_rate1000000 #限定传输速度为1000KB/s
5.3常见问题及解决办法
“Windowsr”- cmd 登录ftp 192.168.8.17 发现500报错没有读取chroot_list文件这里需要我们自行创建chroot_list_file/etc/vsftpd/chroot_list 用于指定用户列表文件该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录
解决办法
在/etc/vsftpd下创建chroot_list文件 再次登录Windows终端测试 vuser2上传、下载测试