zoukankan      html  css  js  c++  java
  • linux上的文件服务

    vsftp、Samba、NFS对比

    服务器名称

    用户客户端平台

     使用范围

    服务端口

    VSFTP 

     Windows/linux/unix/macOS等

    发布网站,文件共享 

    Tcp/21

    Samba

    Windows 

    文件共享(网上邻居)

    Tcp/445,tcp/139

    NFS 

    Linux/unix 

    网站发布,文件共享,可挂载(mount)

    Tcp/2049

    ftp搭建

    vsftpd搭建FTP服务:

    简介

    安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。

    是SentOS或者redhat上自带的ftp软件,默认不安装,一般执行yum安装

    vsftp安装配置

    首先检查是否安装vsftp包         # rpm –qa | grep vsftpd

    yum安装:yum install -y vsftpd db4-utils                         //这里db4-utils用来生成密码文件

    建立账号

    vsftp支持系统账号登陆,出于安全考虑我们使用虚拟账号登陆

    #useradd -virftp -s /sbin/nologin

    创建虚拟账号的配置文件:

    #vim /etc/vsftpd/vsftpd_login

    test1
    123456
    test2
    abcdef
    #该文件存储用户和密码,奇数行为用户名,偶数行为密码

    安全起见设置权限

    #chmod 600 /etc/vsftpd/vsftpd_login

    vsftpd使用的密码不是明文,现在使用“用户&密码”文件生成对应库文件:

    #db_load -T -t hash -f /etc/vsftpd/vsftpd_login  /etc/vsftpd/vsftpd_login.db

    最后建立与虚拟账号相关的目录及配置文件,如下所示:

    #mkdir /etc/vsftpd/user_conf                    //此文路径要和全局配置文件中的用户配置目录设置一致

    创建和用户对应的配置文件

    每一个用户都有一个对应的配置文件,文件名和用户名一致,用来自定义用户配置

    切换到上面创建的user_conf下

    #vim test1

    local_root=/home/virftp/test1
    anonymous_enable
    =NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=5 local_max_rate=50000
    根据字面意思应该不难理解各参数意义

    #mkdir /home/virftp/test1; touch test.txt

    #chown -R virftp.virftp /home/virftp

    #vim /etc/pam.d/vsftpd  //在最开头添加

    auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
    account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

    CentOS为64位,所以库文件路径为/lib64/security/pam_userdb.so(32位的为/lib/security/pam_userdb.so)

     修改全局配置文件/etc/vsftpd/vsftpd.conf

    除了修改我们的用户配置文件外,我们还需要修改一些全局配置文件

    vim  /etc/vsftpd/vsftpd.conf

    修改
    anonymous_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO

    增加
    chroot_local_user=YES
    guest_enable=YES
    guest_username=virftp
    virtual_use_local_privs=YES
    user_config_dir=/etc/vsftpd/user_conf
    allow_writeable_chroot=YES

    启动:

    #service vsftpd start

    测试:安装客户端工具lftp

    #yum install lftp

    #lftp test1@127.0.0.1

    Password:
    lftp test1@127.0.0.1:~> ls
    -rw-r--r-- 1 503 504 11 Dec 02 13:37 text.txt

    NFS共享存储配置

    简介

    NFS(Network File System)即网络文件系统的缩写,由Sun公司研发,其目的是为了解决网络文件共享的问题。用户可以实现像挂载本地文件系统一样挂载NFS服务器的共享目录;其具有配置简单、使用高效的特点,但只能在Linux系统使用,不能跨平台使用。

    要设定好 NFS 服务器我们必须要有两个软件才行,分别是:

    • RPC 主程序:rpcbind他是一个RPC(远程过程调用协议)服务,主要是在nfs共享时候负责通知客户端,服务器的nfs端口号的。简单理解rpc就是一个中介服务。   

    • NFS 主程序

    安装配置

     

    NFS服务端配置

    安装

    #确认是否安装
    [oracle@jydb1 ~]$ rpm -qa | grep nfs
    nfs-utils-lib-1.1.5-9.el6.x86_64
    nfs4-acl-tools-0.3.3-6.el6.x86_64
    nfs-utils-1.2.3-54.el6.x86_64
    [oracle@jydb1 ~]$ rpm -qa | grep rpcbind
    rpcbind-0.2.0-11.el6.x86_64
    
    未安装则yum安装yum install -y nfs-utils rpcbind

    主配置文件:

    • /etc/exports:需要我们在服务安装好后手动创建
    # cat /etc/exports
    /data 192.168.13.0/24(rw,sync)

       常见参数有

    常见的参数则有:
    
    参数值      内容说明
    rw  ro     该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关。
    
    sync  async    sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘!
    
    no_root_squash  root_squash    客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行!
    
    all_squash    不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 
    
    anonuid  anongid    anon 意指 anonymous (匿名者) 前面关于 *_squash 提到的匿名用户的 UID 设定值,通常为 nobody(nfsnobody),但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中! anonuid 指的是 UID 而 anongid 则是群组的 GID 。

    NFS文件访问权限

    NFS服务本身没有身份验证的功能,权限是遵循共享目录在NFS服务器上的权限设置,而且只识别UID和GID。假如现在有一个共享的目录share其属主、属组及权限信息如下:

    用户和组为mysql,但当客户端访问此目录时,NFS是判定访问者的uid是否为400,如果uid相符,那么访问者就有可能拥有与mysql用户相同的权限,这还要取决于/share设置共享时所分配的权限;如果访问者的uid对应了NFS服务器上的另一个用户,则访问者就对应拥有other权限,但是否能够完全对应用other权限也要取决于share的共享权限;如果访问者的uid恰好在NFS服务器上不存在,则服务器用自动将其压缩成为匿名用户,其uid为65534,而CentOS将其显示为nfsnobody。

    由于在绝大部分Linux系统中root用户的uid为0,也就是说客户端可以轻易的获得NFS的root权限来访问共享目录,这样是极不安全的,所以NFS默认会将root的身份压缩成匿名用户。

    配置生效

    # exportfs -r

    启动rpcbind、nfs服务

    # service rpcbind start
    # service nfs start
    Starting NFS services:                                     [  OK  ]
    Starting NFS quotas:                                       [  OK  ]
    Starting NFS mountd:                                       [  OK  ]
    Starting NFS daemon:                                       [  OK  ]
    Starting RPC idmapd:                                       [  OK  ]

    查看RPC的注册状况

    # rpcinfo -p localhost
       program vers proto   port  service
        100000    4   tcp    111  portmapper
        100000    3   tcp    111  portmapper
        100000    2   tcp    111  portmapper
        100000    4   udp    111  portmapper
        100000    3   udp    111  portmapper
        100000    2   udp    111  portmapper
        100024    1   udp  19859  status
        100024    1   tcp  30274  status
        100011    1   udp    875  rquotad
        100011    2   udp    875  rquotad
        100011    1   tcp    875  rquotad
        100011    2   tcp    875  rquotad
        100005    1   udp  44795  mountd
        100005    1   tcp  44611  mountd
        100005    2   udp  29470  mountd
        100005    2   tcp  59381  mountd
        100005    3   udp  32527  mountd
        100005    3   tcp  55847  mountd
        100003    2   tcp   2049  nfs
        100003    3   tcp   2049  nfs
        100003    4   tcp   2049  nfs
        100227    2   tcp   2049  nfs_acl
        100227    3   tcp   2049  nfs_acl
        100003    2   udp   2049  nfs
        100003    3   udp   2049  nfs
        100003    4   udp   2049  nfs
        100227    2   udp   2049  nfs_acl
        100227    3   udp   2049  nfs_acl
        100021    1   udp  47974  nlockmgr
        100021    3   udp  47974  nlockmgr
        100021    4   udp  47974  nlockmgr
        100021    1   tcp  29453  nlockmgr
        100021    3   tcp  29453  nlockmgr
        100021    4   tcp  29453  nlockmgr
    # rpcinfo -p localhost
    选项与参数:
    -p :针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息;
    -t :针对某主机的某支程序检查其 TCP 封包所在的软件版本;
    -u :针对某主机的某支程序检查其 UDP 封包所在的软件版本;

    secver端测试

    # showmount -e localhost
    Export list for localhost:
    /data 192.168.13.0/24
    
    选项与参数:
    -a :显示目前主机与客户端的 NFS 联机分享的状态;
    -e :显示某部主机的 /etc/exports 所分享的目录数据。

    客户端配置

    安装nfs-utils客户端

    # yum -y install nfs-utils

    创建挂载目录

    # mkdir /data

    查看服务器抛出的共享目录信息

    [root@bogon ~]# showmount -e 192.168.12.111
    Export list for 192.168.12.111:
    /data 192.168.12.111/24

    为了提高NFS的稳定性,使用TCP协议挂载,NFS默认用UDP协议

    # mount -t nfs 192.168.12.111:/data /data -o proto=tcp -o nolock

    nfs参考:https://www.cnblogs.com/liuyisai/p/5992511.html

    作者:运维·拖拉斯基

    作者水平很低, 如果有错误及时指出, 如果你觉得本文写的好请点一波赞~(≧▽≦)/~

    出处:https://www.cnblogs.com/-abm/

    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    《统计学习方法》
    《赤裸裸的统计学》
    a[i]=i++
    正态分布(normal distribution)
    可视化
    数据转换
    beLazy
    水到渠成
    数据过滤
    数据合并
  • 原文地址:https://www.cnblogs.com/-abm/p/7955708.html
Copyright © 2011-2022 走看看