1、ftp协议及vsftpd的基本应用
文件共享服务:
工作在应用层:ftp(file transfer protocol)
应用层协议:tcp,
工作在内核:nfs
跨平台:samba
ftp工作在221号端口,传输数据:
命令连接:文件管理类命令,始终在线的连接
数据连接:数据传输,按需创建及关闭连接
主动连接:由服务器创建连接
命令连接:
client用随机端口发起连接请求到server 21,client会把使用端口告诉服务器端
数据连接:
server用20号端口连接客户端发起端口+1或+2连接客户端
被动连接:由客户端创建连接
命令连接:
client用随机端口连接server21号端口,并告诉客户端请求数据会用哪个随机端口。
数据连接:
clinent用随机+1端口连接服务端已告知的随机端口。
ftp server:wu-ftpd、proftpd、puerftp、vsftpd、servu
ftp client:ftp、lftp、wget、filezilla、gftp、flashfxp、cuteftp
响应码:
1xx:信息
2xx:成功类状态
3xx:需要进一步提供补充类信息
4xx:客户端错误信息
5xx:服务端错误信息
用户认证:
虚拟用户:仅用于访问某特定服务中的资源
nsswitch:network server switch:名称解析框架
配置文件:/etc/nsswitch.conf
模块:/lib64/libnss*,/usr/lib64/libnss
pam:pluggable authentication module
配置文件:/etc/pam.conf,/etc/pam.d/*
模块:/lib64/security/
支持系统用户:
支持匿名用户:
centos自带的是vsftp
yum -y install vsftpd
rpm -ql vsftpd
用户认证配置文件 /etc/pam.d/vsftpd
启动服务脚本:/etc/rc.d/init.d/vsftpd
日志滚动:/etc/logrotate.d/vsftpd
配置文件目录:/etc/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
主应用程序:/usr/sbin/vsftpd
匿名用户共享资源位置:/var/ftp,匿名用户:yum install finger
系统用户登录ftp访问资源位置是用户家目录
虚拟用户通过ftp访问资源的位置映射为系统用户家目录
客户端安装:yum install ftp或者在浏览其中输入ftp://192.168.146.138
vim /etc/vsftpd/vsftpd.conf
匿名用户配置:
是否支持匿名用户登录:anonymous_enable=YES
是否支持匿名用户上传: #anon_upload_enable=YES
是否支持匿名用户创建目录:anon_mkdir_write_enable=YES
是否支持匿名用户删除目录:anon_ohter_write_enable=YES
系统用户配置:
是否支持本地用户:local_enable=YES
系统用户写权限:write_enable=YES
禁锢系统用户只能在自己家目录 :#chroot_local_user=YES
禁锢指定用户在其家目录中:#chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list
2、vsftpd的高级应用
vim /etc/vsftpd/vsftpd.conf
系统用户配置:
在ftp任何目录下创建.message文件,当用户进入该目录时显示.message中内容dirmessage_enable=YES
是否启用传输日志:xferlog_enable=YES
指定日志文件位置:#xferlog_file=/var/log/xferlog
修改上传用户:#chown_uploads=YES
指定修改上传用户:#chown_username=whoever
设定用户超时时长:#idle_session_timeout=600
数据连接超时时长:#data_connection_timeout=120
登录ftp时显示的信息:#ftpd_banner=Welcome to blah FTP service.
配置文件在:/etc/pam.d/vsftpdpam_service_name=vsftpd
(是否启用用户登录列表文件,默认配置文件/etc/vsftpd/user_list(手动创建):userlist_enable=YES
是否启用/etc/vsftpd/user_list列表文件:userlist_deny=yes|no )
tcp_wrappers=YES
最大并发连接数:max_clients
每个IP可同时发起的并发请求数:max_per_ip
本地用户最大的传输速率:local_max_rate
虚拟用户:
所有虚拟用户会被统一映射为一个指定系统账号,访问共享位置为此账号家目录。各虚拟用户被赋予不同的访问权限。通过参数进行指定
虚拟用户账号的存储方式:
编辑文件:
奇数行为用户名,偶数行为密码。此文件需要被编译为hash格式:
关系型数据库中的表:
即时查询数据库完成用户认证:
pmy_mysql
lftp:lftp -u username ip
-c:支持断点续传
3、rpc概念及nfs的基本应用
nfs:network file system
传统意义上,文件系统在内核中实现
最常见的文件系统调用:read()、open()、write()、close()
rpc(remote procedure call protocol)远程过程系统调用
rpc调用步骤。客户端应用程序在运行时发起一个系统调用,通过rpc协议借用tcp/ip发送给服务端主机,服务端接收到某个函数请求和参数,发起本地服务,调用本地实现函数或者过程,并把结果返回给本地进程,本地进程通过rpc协议,构建报文后相应给客户端。
NIS: network infomating system
身份认证不在本地验证。验证信息都以明文方式传输,
nfs:基于ip认证,监听在2049端口,服务器端需要启动nfsd、mountd、idmapd,mountd为半随机端口,所以必须监听rpc,查看111端口是否监听。rpcinfo -p:查看启动状态
nfs安装包:nfs-utils ,service nfs start 。
nfs主配置文件在/etc/exports,每一行一个文件系统例如:/opt/data 192.168.146.140(rw) 192.168.146.139(ro)
客户端默认选项为只读、异步、secure
secure: 使用 1024 以下的 TCP/IP 端口实现 NFS 的连接。如果端口不够用时需关闭,insecure 可以禁用这个选项。
rw:读写
async:异步
no_wdelay:
nohide:
no_subtree_check:
no_auth_nlm:
mp (mountpoint=path):
fsid=num:
查看NFS服务器端共享的文件系统:
showmount -e 192.168.146.138
挂载文件系统:
mount -t nfs 192.168.146.138:/opt/data /mnt
nfs映射用户选项:
root_squash:当客户端在用root登录时,服务端将映射为nfsnobody用户,默认开启
no_root_squash:不映射root用户,
all_squash:所有用户映射
anonuid 和 anongid:映射为指定用户和组
不用重启服务,读取/etc/export。
exportfs -ar:重新导出所有文件系统
-au:关闭导出所有文件系统
-u FS:指定关闭导出的文件系统
开机自动挂载nfs:
192.168.146.138:/opt/data /mnt nfs defaults,_netdev 0 0
_netdev,指明为网络挂载系统,指定时间内开机挂载无法找到会放弃挂载,系统可正常运行。
提高性能:
rsize 是服务器读取字节数。wsize 是写入到服务器字节数。默认1024,调整该值如8192,可以提高传输速度。
博客作业:2台web服务器,提供相同的访问页面,连接同一个数据库mariadb和nfs。
4、samba及其基本应用
smb:service message block(137/udp, 138/udp, 139/tcp, 445/tcp)
跨平台工作文件系统:samba
yum install samba-client:客户端工具
smbclient -L 192.168.18.5 -U administrator 客户端获取服务器共享文件夹。
smbclient //192.168.18.5/scan -U administrator:访问服务端共享文件夹。help查看使用命令。
客户端挂载Windows服务端共享目录:
mount -t cifs //192.168.18.5/scan /mnt -o username=administrator,password=123456
yum install samba:服务端工具
服务脚本:
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
主配置文件
/etc/samba/smb.conf
samba用户:
账号都为系统用户
密码为samba自行维护密码
将系统用户添加为samba用户:sambapasswd
启动服务:
service nmb start
service smb start
确定(137/udp, 138/udp, 139/tcp, 445/tcp)端口已处于监听状态
编辑(/etc/samba/smb.conf)主配置文件中的工作组
workgroup = WORKGROUP
重启服务:service smb restart && service nmb restart
添加系统用户为smb用户:smbpasswd -a xj
-a:添加系统用户为smb用户
-d: 禁用指定用户
-e:启用指定用户
-x:删除用户
自定义共享,编辑主配置文件
[file]:共享文件名
path =/opt/file:共享文件夹
comment = :说明信息
guest ok = {yes|no}:是否匿名访问
public = {yes|no}:是否公开
writable = {yes|no}:写权限
read only = {yes|no}:只读
write list = +GROUP_NAME:指定可访问用户或组
测试配置文件是否有语法错误,以及显示最终生效的配置:
# testparm
注意:共享目录时确定登录用户对该目录有相应权限,如果没有用setfacl设定,不要修改原有属主和属组。