所有服务必须在SELINUX=enforcing的状态下配置生效。
FTP
1)本地用户能登录到自己的家目录中,并且不能跳转到其他目录。
A:假设user为user1,密码为user1
配置repo仓库,安装vsftpd,ftp
yum -y install vsftpd ftp
a) setsebool -P ftp_home_dir 1
b) vim /etc/vsftpd/vsftpd.conf
[ chroot_local_user=YES
]//也可以写在文件中到chroot user list里。
验证:
lftp user1@192.168.0.112
打开另外一个终端,查看/home/user2下到内容与lftp登录到根内容一致。并且lftp终端执行cd ..不会到上级目录。
附加:匿名登录默认在/var/ftp下有pub目录;保证服务器IP地址为static;ftp_selinux的bool值可通过 getsebool -a |grep ftp查阅
2)打开允许匿名用户上传文件到/var/ftp/testdir目录的功能。
A:a) mkdir /var/ftp/testdir
ls -ld /var/ftp/testdir
chgrp ftp /var/ftp/testdir //让ftp用户可写
chmod g+w /var/ftp/testdir //
b) vim /etc/vsftpd/vsftpd.conf
[anon_upload_enable=YES]
/etc/init.d/vsftpd reload
c) getsebool -a | grep ftp
setsebool -P allow_ftpd_anon_write 1
d) semanage fcontext -a -t publlic_content_rw_t "/var/ftp/testdir(/.*)?"
restorecon -F -R -v /var/ftp/testdir
3)打开user_list白名单的功能,仅允许user1登录ftp服务器。
A: a) vim /etc/vsftpd/vsftpd.conf
[userlist_deny=NO] //开启白名单。ftpusers为黑名单,黑名单优先生效
cd /etc/vsftpd
b) vim user_list
[加入user1] //并保证同级目录下到ftpusers中没有user1
/etc/init.d/vsftpd restart
NFS
2.搭建NFS服务器,共享/commom 目录给192.168.0.0/24网段,并且允许客户端以root访问时,也有root权限。客户端开机自动挂载nfs共享。
A://server端和client端都要安装rpcbind软件包,并且保证该服务是启动的
//unix之间或者和linux变种之间传输文件使用nfs
server端配置:
a) mkdir /common
b) vim /etc/exports
[/common 192.168.0.0/255.255.255.0 ro,sync,no_root_squash] //【共享目录名称 共享网络段 共享选项】其中no_root_squash表示客户端创建用户为
//root,服务端那里也为root。默认是服务端那里为nfsnobody
/etc/init.d/nfs restart
客户端配置,连接到服务器:
c) vim /etc/fstab
[192.168.0.112:common /media nfs defualts 0 0]
d) mount -a
测试:在服务器端/common下写入内容,在客户端/media下查看是否内容同步,同步即配置成功
rpcinfo 【server ip地址】//查看对方rpc信息
//方便测试,给予/common目录写权限,chmod u+w /common
SAMBA
1)把samba到windows的STAFF工作组。
A://不修改配置文件到情况下,默认共享用户家目录和打印机
//支持ldap帐号,匿名帐号,本地
a) yum -y install samba
b) vim /etc/samba/smb.conf
[workgroup = STAFF]
//保证 有配置过 hosts allow = 127. 192.168.0.
c) /etc/init.d/smb restart
2)允许redhat用户能上传下载文件到自己的家目录中。(redhat密码为redhat)
server端配置:
a) useradd redhat
smbpasswd -a redhat
[输入密码为redhat]
b) setsebool -P samba_enable_home_dirs on
c) setfacl -m u:redhat:rwx /common --保证redhat到权限写
d)客户端检验:
1.smbclient //192.168.0.112/homes -U redhat
2.mount //192.168.0.112/homes /media -o username:redhat%redhat
3.图形化
在server端redhat家目录下创建文件,如果client端有同步到则成功。
3)通过samba 也共享上题中的/common目录,共享标签为pub,并且匿名用户和redhat用户,也能访问这个共享目录,且仅允许redhat用户通过samba在该目录下创建、修改文件。
a)
[pub]
comment = Share commmon directory
path = /common
public = yes //可以让匿名用户也能访问
writable = no
write list = redhat
# hosts allow = 127. 192.168.0. //全局中应该有了
b)
/etc/init.d/smb restart
c)
semanage fcontext -a -t samba_share_t "/common(/.*)?" //
restorecon -R -v /common //也可以设全局到bool值,setsebool -P samba_export_all_rw 1
//记得要保证redhat对/common文件有写权限
d)客户端检验:
smbclient //192.168.0.112/homes -U redhat
mount //192.168.0.112/pub /media -o username=redhat%redhat