第3天

FTP 文件传输

server

安装 vsftpd

[root@server ~]# yum -y install vsftpd

配置文件 /etc/vsftpd/vsftpd.conf

1. 匿名访问

  • anonymous_enable=YES 开启匿名访问
  • anon_umask=022 匿名用户上传的 umask 值
  • anon_upload_enable=YES 允许匿名用户上传文件
  • anon_mkdir_write_enable=YES 允许匿名用户创建目录
  • anon_other_write_enable=YES 允许匿名用户修改或删除目录

2. 本地用户

  • anonymous_enable=NO 禁止匿名访问
  • local_enable=YES 开启本地本地用户访问
  • write_enable=YES 是否有写权限
  • local_umask=022 本地用户上传文件的 umask 值
  • userlist_enable=YES 使用用户列表,名单文件为 user_list(可能是白名单,也可能是黑名单)和 ftpuser(始终是黑名单)
  • userlist_deny=YES 开启用户作用名单文件功能
  • userlist_enable=YES, userlist_deny=YES
    user_list 为黑名单,禁止 user_list 中用户登录
  • userlist_enable=YES, userlist_deny=NO
    user_list 为白名单,仅允许 user_list 中的用户登录
  • chroot_local_user=YES 用户禁锢在主目录,不允许跳转上级目录
  • chroot_list_enable=YES 是否使用禁锢用户列表
  • chroot_local_user=YES, chroot_list_enable=YES
    chroot_list_file 为白名单,不受限制
  • chroot_local_user=NO, chroot_list_enable=YES
    chroot_list_file 为黑名单,受到限制
  • chroot_local_user=YES, chroot_list_enable=NO
    所有用户都受到限制,chroot_list_file 无作用
  • chroot_local_user=NO, chroot_list_enable=NO
    所有用户都不受限制,chroot_list_file 无作用

如果用户受到禁锢,那么要添加 allow_writeable_chroot=YES,或者取消主目录的写权限

3. 虚拟用户

  • anonymous_enable=NO 禁止匿名访问
  • local_enable=YES 开启本地本地用户访问
  • guest_enable=YES 开启虚拟用户访问
  • guest_username=virtftp 指定虚拟用户使用的系统用户
  • pam_service_name=ftpvuser 指定PAM文件
  • user_config_dir=/etc/vsftpd/vusers_conf 指定虚拟用户配置文件
  • allow_writeable_chroot=YES 允许写入禁锢的目录
[root@server ~]# useradd virtftp -s /sbin/nologin
[root@server ~]# vim /etc/vsftpd/vuser.list
virtuser1
redhat
virtuser2
redhat
[root@server ~]# db_load -T -t hash /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
[root@server ~]# vim /etc/pam.d/ftpvuser
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser
[root@server ~]# mkdir /etc/vsftpd/vuser_conf
[root@server ~]# vim /etc/vsftpd/vuser_conf/virtuser1
local_root=/home/virtftp/virtuser1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@server ~]# mkdir /home/virtftp/virtuser1
[root@server ~]# chmod 777 /home/virtftp/virtuser1

desktop 使用 ftp 客户端工具访问

NFS 共享

server

安装软件包 nfs-utils

[root@server ~]# yum -y install nfs-utils

编辑 /etc/exports 文件,添加共享

[root@server ~]# vim /etc/exports
/nfsshare 192.168.3.*(OPTIONS)

常用 OPTIONS 包括: * ro 只读
rw 读写 * root_squash 映射 root 为 nfs 匿名用户
no_root_squash 不映射 root 为 nfs 匿名用户
all_squash 映射所有用户为 nfs 匿名用户
no_all_squash 不映射 nfs 匿名用户,访问用户与本地匹配(UID)

  • sync 同步
    async 异步

重启服务,开放防火墙服务

[root@server ~]# systemctl restart nfs-server
[root@server ~]# systemctl enable nfs-server
[root@server ~]# firewall-cmd --add-service=mountd --add-service=rpc-bind --add-service=nfs
[root@server ~]# firewall-cmd --add-service=mountd --add-service=rpc-bind --add-service=nfs --permanent
[root@server ~]# exportfs -rfv

desktop

临时挂载

[root@desktop ~]# yum -y install nfs-utils
[root@desktop ~]# showmount -e 192.168.3.11
[root@desktop ~]# mkdir /mnt/nfsmount
[root@desktop ~]# mount -t nfs 192.168.3.11:/nfsshare /mnt/nfsmount

开机自动挂载

[root@desktop ~]# vim /etc/fstab
192.168.3.11:/nfsshare    /mnt/nfsmount    nfs    defaults    0 0

autofs 挂载

[root@desktop ~]# yum -y install autofs
[root@desktop ~]# vim /etc/auto.master
/netshare(挂载目录上级目录) /etc/netauto(映射文件)
[root@desktop ~]# vim /etc/nfsauto
nfsmount -fstype=nfs,rw 192.168.3.11:/nfs

samba 共享

server

安装 samba

[root@server ~]# yum -y install samba

新建共享

[root@server ~]# vim /etc/samba/smb.conf
workgroup = WORKGROUP
hosts allow = 127. 192.168.3.

[public]    ##共享名
comment = Public Stuff  ##说明
path = /smbpub  ##路径
public = no    ##公开,可匿名访问
writable = yes   ##是否可写
printable = no   ##是否是打印机,如果共享目录必须为no
write list = smbrw  ##可写名单
read list = smbro   ##只读名单
browseable = yes  ##可浏览

创建共享目录,设置权限

[root@server ~]# mkdir /smbpub
[root@server ~]# chmod 777 /smbpub
[root@server ~]# semanage fcontext -a -t samba_share_t '/smbpub(/.*)?'
[root@server ~]# restorecon -Rv /smbpub/

创建 samba 用户

samba 用户必须在系统中存在,通过 pdbedit 和 smbclient 均可创建 samba 用户

[root@server ~]# useradd -s /sbin/nologin smbrw
[root@server ~]# useradd -s /sbin/nologin smbro
[root@server ~]# (echo redhat;echo redhat) | pdbedit -a smbrw
[root@server ~]# (echo redhat;echo redhat) | smbpasswd -a smbro
[root@server ~]# systemctl restart smb nmb
[root@server ~]# systemctl enable smb nmb

开放防火墙

[root@server ~]# firewall-cmd --add-service=samba --add-service=samba-client
[root@server ~]# firewall-cmd --add-service=samba --add-service=samba-client --permanent

desktop

临时挂载

[root@desktop ~]# yum -y install cifs-utils samba-client
[root@desktop ~]# mkdir /mnt/smbmount
[root@desktop ~]# mount -t cifs -o username=smbrw,password=redhat //192.168.3.11/public /mnt/smbmount

多用户挂载,开机自动挂载

用只读用户挂载,不同的用户可以更新不同凭证
/etc/fstab所有用户可读,将 samba 用户和密码保存到 root 家目录可提高安全性

[root@desktop ~]# vim /etc/fstab
//192.168.3.11/public /mnt/smbpmnt cifs credentials=/root/smbpass,multiuser,sec=ntlmssp 0 0
[root@desktop ~]# echo "username=smbro"  >> /root/smbpass
[root@desktop ~]# echo "password=redhat"  >> /root/smbpass
[root@desktop ~]# mkdir /mnt/smbpub
[root@desktop ~]# mount -a

[user@desktop ~]# cifscreds add -u smbrw 192.168.3.11  ##更新用户凭证

autofs 挂载

[root@desktop ~]# yum -y install autofs
[root@desktop ~]# vim /etc/auto.master
/netshare(挂载目录上级目录) /etc/netauto(映射文件)
[root@desktop ~]# vim /etc/netauto
smbmount -fstype=cifs,username=smbro,password=redhat ://192.168.3.11/public

samba-client 上传下载

[root@desktop ~]# yum -y install samba-client
[root@desktop ~]# smbclient //172.25.0.11/public -U smbro%redhat
smb: \> lcd /etc
smb: \> put passwd
NT_STATUS_ACCESS_DENIED opening remote file \passwd

[root@desktop ~]# smbclient //172.25.0.11/public -U smbrw%redhat
smb: \> lcd /etc
smb: \> put passwd
putting file passwd as \passwd (2091.6 kb/s) (average 2091.8 kb/s)