rsvnc协议:远程同步协议
ftp协议:文件传输协议
基于tcp的套接子的监听于21.
此协议在使用过程中建立两个通道,一个为命令通道,一个伪数据通道。
命令通道从建立一直道结束,数据通道会在传输前建立,传输完毕后断开,下次在建立与断开。
客户端:在命令通道的端口上+1找到一个空闲的端口,链接服务器端的随机端口。
传输格式:
文本格式
二进制数据流
service:
proftpd
pureftp
vsftpd: redhat add centos自带,安全行比较好,功能不太多
ServU:位于win上的
client:
GUI:
gftp
CLI:命令行模式
ftp,lftp
用户认证:
系统用户:
虚拟用户:文件位置:hash和mysql
匿名用户
数据传输安全:
软件文件:
/etc/pam.d/vsftpd:认证文件
pam:插件式认证模块
模块:/lib64/security/pam*.so
配置文件:/etc/pam.conf和/etc/pam.d/*
/etc/vsftpd/vsftpd.conf:主配置文件
/var/ftp/pub:数据共享
主配置文件:
anonymous_enable=YES 匿名登录
local_enable=YES 本地用户登录
将本地用户禁锢在家目录,以家目录伪跟,禁锢所有用户。
chroot_local_user={yes|no}
可以将某些用户禁锢在自己的家目录下:
chroot_list_enable={yes|no} 启用列表
chroot_list_file=/etc/vsftpd/chroot_list 此文件中为要禁锢在家目录下的用户。
匿名用户配置:
anonymous_enabke=YES|NO 是否进行匿名登录
anon_upload_enable=yes|no 是否可以进行上传
anon_other_write_enable=yes|no 是否能够删除等文件
anon_mkdir_write_enable=yes|no 是否能够创建目录
注意:在启用写的功能时,ftp用户能福进行写的权限,完全取决与文件系统权限和服务权限的交集。
配置登录ftp服务器的欢迎语
banner_file=filenamme
或
ftpd_banner=欢迎语
若上述两者都配置了,banner_file有效
限制用户登录
第一种:/etc/vsftpd/ftpusers中的用户不允许登录
第二种:/etc/vsftpd/user_list有两中功能
1,黑名单
配置文件中
userlist_enable=yes
userlist_deny=yes;
2,白名单
userlist_enable=yes
userlist_deny=no
链接限制:
max_clients:最大并发链接数
max_per_ip:每个ip的链接请求数
传输速率:
anon_max_rate:匿名用户的最大传输速率,单位为字节每秒
local_max_rate:
上文件的权限:
anno_umask;匿名用户
local_umask:本地用户
匿名用户上传文件的属主属组:
chown_uplodd=yes
chown_username=user_name
虚拟用户:
每一个虚拟用户会映射一个系统用户,访问的文件目录为系统的家目录
基于关系型数据库的认证
1,编译安装pam_mysql或者yum
2,./confingur --with-mysql=mysql安装路径 --with-openssl
3,make && make install
4,准备虚拟用户
a,创建数据库
b,给某一用户赋予新创建数据库的全部权限
c,创建表id,name,passwd
d,创建用户
5,配置文件:
在/etc/pam.d/下创建vsfypd_mysql文件
加入:
auto required /lib/sercurity/pam_mysql.so(库文件) user="mysql_user" passwd=“user_passwd” host=“mysql_host” db=“database” table=”表" usercolumn=”用户名字端" passwdcolumn="密码字段" mcrypt=0(表示不加密)
account require 与上述配置一样
配置/etc/vsftpd.conf确保以下启用
anonymous_enable=yes
local_enable=yes
write_enable=yes
anon_uplocad_enable=no
anon_mkdir_write_enable=no
chroot_local_user=yes
添加一下选项:
guest_enable=yes
guest_username=yes
pam_service_name=在/etc/pam.d/下创建vsfypd_mysql文件
6,建立虚拟用户映射系统用户
useradd -s /sbin/nologin -d /var/ftproot(映射用户家目录) username
chmod go+rx 家目录
7,虚拟用户设置不同的权限:
在vsftpd的配置文件中添加
user_config_dir=/etc/vsftpd/dir_name
在/ect/vsftpd/dir_name目录下创建文件
touch 虚拟用户名
加入权限
anon_upload_enable=yes //此时虚拟用户只有上传权限