redhat下三种网络文件共享服务搭建

来源:互联网 发布:我是中国人主题网络 编辑:程序博客网 时间:2024/06/17 10:45

所有服务必须在SELINUX=enforcing的状态下配置生效。

FTP

1.搭建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

3.配置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