CS架构(client-server)
在Client/Server结构的系统中,应用程序分为客户端和服务器端两大部分。客户端部分为每个用户所专有,而服务器端部分则由多个用户共享其信息与功能。客户端部分通常负责执行前台功能,如管理用户接口、数据处理和报告请求等;而服务器端部分执行后台服务,如管理共享外设、控制对共享数据库的操作等。这种体系结构由多台计算机构成,它们有机地结合在一起,协同完成整个系统的应用,从而达到系统中软、硬件资源最大限度的利用。
例如:
服务名 服务端软件 协议名 客户端软件
vsftpd vsftpd ftp lftp
httpd httpd http 浏览器
sshd openssh-server ssh openssh-clients
vsftp中的配置参数设置:
(1)匿名用户设定之登录:
anonymous_enable=YES|NO ##匿名用户登陆限制
[root@desktop4 ftp]# rpm -qc vsftpd //查询vsftpd的配置文件
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
[root@desktop4 ftp]# vim /etc/vsftpd/vsftpd.conf
[root@desktop4 ftp]# systemctl restart vsftpd
默认匿名用户是可以登录的,默认发布目录是/var/ftp/
vim /etc/vsftpd/vsftpd.conf
在服务端把匿名用户登录改为 NO
systemctl restart vstpd 重新启动服务
此时客户端再次连接服务端:
显示连接不上!
(2)匿名用户设定之上传:
write_enable=YES ,anon_upload_enable=YES
服务端:
vim /etc/vsftpd/vsftpd.conf :
19和29行
systemctl restart vstpd 重新启动服务
[root@desktop4 ftp]# mkdir /var/ftp/upload/ 创建上传目录
[root@desktop4 ftp]# chown ftp /var/ftp/upload/ 更改目录所有人
[root@desktop4 ftp]# ll -d /var/ftp/upload/ 查看信息
drwxr-xr-x. 2 ftp root 6 Nov 7 07:19 /var/ftp/upload/
[root@desktop4 ftp]# setenforce 0 内核防火墙关闭
[root@desktop4 ftp]# getenforce 查看内核防火墙是否关闭
Permissive 关闭
客户端:lftp连接服务端,上传文件:
成功上传/etc/passwd/文件!
(3)匿名用户设定之家目录修改:
anon_root=/direcotry
服务端:
[root@desktop4 ftp]# vim /etc/vsftpd/vsftpd.conf
[root@desktop4 ftp]# systemctl restart vsftpd
[root@desktop4 ftp]# mkdir /ftpub 创建目录
[root@desktop4 ftp]# cd /ftpub/
[root@desktop4 ftpub]# touch file{1..5} 创立文件
vim /etc/vsftpd/vsftpd.conf 写入:
systemctl restart vsftpd 重新启动服务:
客户端:lftp连接查看是否在/ftpub/下:
可以看到服务端主机在默认发布目录/ftpub下创建的五个文件。
修改匿名用户家目录成功!
(4)匿名用户设定之创建目录:
anon_mkdir_write_enable=YES|NO
服务端:
vim /etc/vsftpd/vsftpd.conf 写入:
systemctl restart vsftpd 重新启动服务
(5)匿名用户设定之下载:
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
(6)匿名用户设定之删除:
anon_other_write_enable=YES|NO
<最大上传速率>
anon_max_rate=102400
<最大链接数>
max_clients=2
最多连接两台客户主机,第三台连接不上。
vstpd配置参数设定之设置虚拟用户
为什么要设置虚拟用户?
创建虚拟用户 以便于客户端用虚拟用户连接 第一是安全(如果给了真实的用户和密码,
对方可以用ssh来连接到我的主机 不安全 第二是节省内存)
如何设置?
操作:
服务端:
(1)设置三个虚拟用户名称和密码
[root@desktop4 student]# vim /etc/vsftpd/loginusers ##文件名称任意
写入:
(2)
[root@desktop4 student]# db_load -T -t hash -f /etc/vsftpd/loginusers /etc/vsftpd/loginusers.db
[root@desktop4 student]# cd /etc/vsftpd/
[root@desktop4 vsftpd]# ls
ftpusers loginusers.db vsftpd.conf
loginusers user_list vsftpd_conf_migrate.sh
(3)
[root@desktop4 vsftpd]# vim /etc/pam.d/ckvsftpd##文件名称任意
写入:
(4)
[root@desktop4 vsftpd]# vim /etc/vsftpd/vsftpd.conf
写入 :
(5)虚拟帐号家目录独立设定:
vim /etc/vsftpd/vsftpd.conf 写入虚拟用户的默认家目录:
客户端:lftp连接一下看是否可以使用虚拟用户并且登录到其家目录下:
输入密码可以看到其虚拟用户的家目录下的文件!
成功!
本地用户设定(selinux关闭)
[root@desktop4 ftpub]# vim /etc/vsftpd/vsftpd.conf
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
[root@server4 qian]# chmod u-w /home/* 去掉qian用户家目录的写权限,如果不去掉系统认为不安全,本地用户无法登录。
[root@server4 qian]# pwd
/home/qian
默认在qian用户的家目录下,可以看到建立的文件file1
cd到qian用户的/目录下,成功!
[root@foudation7 ~]# lftp 172.25.254.99 -u qian 指定本地用户qian登录
Password:
lftp qian@172.25.254.99:~> ls
-rw-r--r-- 1 0 0 0 Nov 10 12:09 file1
lftp qian@172.25.254.99:~> cd / 切换到qian用户的根目录下
cd ok, cwd=/
lftp qian@172.25.254.99:/> ls
lrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bin
dr-xr-xr-x 4 0 0 4096 Jul 10 2014 boot
drwxr-xr-x 19 0 0 2900 Nov 10 11:40 dev
drwxr-xr-x 135 0 0 8192 Nov 10 11:57 etc
drwxr-xr-x 8 0 0 84 Nov 10 11:57 home
lrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/lib
lrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64
drwxr-xr-x 2 0 0 6 Mar 13 2014 media
dr-xr-xr-x 10 0 0 4096 May 07 2014 mnt
drwxr-xr-x 3 0 0 15 Jul 10 2014 opt
dr-xr-xr-x 168 0 0 0 Nov 10 11:39 proc
dr-xr-x--- 15 0 0 4096 Nov 10 12:13 root
drwxr-xr-x 38 0 0 1200 Nov 10 12:01 run
lrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbin
drwxr-xr-x 2 0 0 6 Mar 13 2014 srv
dr-xr-xr-x 13 0 0 0 Nov 10 11:39 sys
drwxrwxrwt 39 0 0 4096 Nov 10 11:54 tmp
drwxr-xr-x 13 0 0 4096 May 07 2014 usr
drwxr-xr-x 24 0 0 4096 Nov 10 11:54 var
<本地用户家目录修改>
local_root=/directory
<本地用户上传文件权限>
local_umask=xxx
<限制本地用户浏览/目录>
所有用户被锁定到自己的家目录中
[root@desktop4 ftpub]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
[root@server4 qian]# chmod u-w /home/*
[root@server4 qian]# pwd
/home/qian
[root@server4 qian]# touch file1
本地用户qian登录默认在家目录下,家目录下有一个文件file1
[root@foudation7 ~]# lftp 172.25.254.99 -u qian
lftp qian@172.25.254.99:/> ls
-rw-r--r-- 1 0 0 0 Nov 10 12:09 file1
没有限制本地用户在家目录下,可以切换到根目录下,现在切换不成功:
[root@foudation7 ~]# lftp 172.25.254.99 -u qian
Password:
lftp qian@172.25.254.99:~> ls
-rw-r--r-- 1 0 0 0 Nov 10 12:09 file1
lftp qian@172.25.254.99:/> cd /
lftp qian@172.25.254.99:/> cd / 切换到根目录显示不了东西,实际上并没有切换进去。
lftp qian@172.25.254.99:/>
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
<限制本地用户登陆>
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp