十三周四次课

14.4 exportfs命令

exportfs命令用来管理当前NFS共享的文件系统列表。

Options:
-a:全部卸载或全部挂载
-r:重新挂载
-u:卸载某个目录;取消一个或多个目录的共享。

-v:显示共享目录

下面是一些NFS共享的常用参数:

ro                      只读访问  

rw                      读写访问  

sync                    所有数据在请求时写入共享  

async                   NFS在写入数据前可以相应请求  

secure                  NFS通过1024以下的安全TCP/IP端口发送  

insecure                NFS通过1024以上的端口发送  

wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)  

no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  

hide                    在NFS共享目录中不共享其子目录  

no_hide                 共享NFS目录的子目录  

subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)  

no_subtree_check        和上面相对,不检查父目录权限  

all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。  

no_all_squash           保留共享文件的UID和GID(默认)  

root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)  

no_root_squash          root用户具有根目录的完全管理访问权限  

anonuid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的UID  

anongid=xxx 指定NFS服务器/etc/passwd文件中匿名用户的GID 

常用组合: exportfs -arv
服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。

注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。

以上操作均在服务端进行!!!

14.5 NFS客户端问题

针对NFS4版本在centos6中应用存在如下问题:
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody。

解决方法:

  • 方法1:在客户端进行挂载时加上选项-o nfsvers=3
[root@localhost ~]# monunt -t nfs -o nfsvers=3 192.168.8.130:/tmp/ /mnt/

如果目录已经挂载,而又不想卸载,执行如下命令:

[root@localhost ~]# monunt -t nfs -o remount,nfsvers=3 192.168.8.130:/tmp/ /mnt/
  • 方法2:客户端和服务端都需要
[root@localhost ~]# vim /etc/idmapd.conf

把该配置文件中的“Domain = local.domain.com”改为“Domain = xxx.com”(此处xxx.com自定义),然后重启rpcidmapd服务(在centos7中直接重启rpcbind服务)。

15.1 FTP介绍

FTP概述


  FTP是文件传输协议(File Transfer Protocal)的简写,主要完成与远程计算机的文件传输。


  FTP采用客户/服务器模式,客户机与服务器之间利用TCP建立连接,客户可以从服务器上下载文件,也可以把本地文件上传至服务器。


  FTP服务器有匿名的和授权的两种。匿名的FTP服务器向公众开放,用户可以用“ftp”或“anonymous”为帐号,用电子邮箱地址为密码登录服务器;授权的FTP服务器必须用授权的账户名和密码才能登录服务器。通常匿名的用户权限较低,只能下载文件,不能上传文件。


  客户机访问FTP服务器通常有两种方法:用FTP命令访问和用FTP客户端软件访问。

(rz和sz: 传文件)

   rz:window-->linux

   sz:linux-->window  文件超过4GB则不管用


15.2/15.3 使用vsftpd搭建ftp

一、安装并启动FTP服务

1.查询是否系统已经自带了vsftpd :rpm -q vsftpd

2.使用 yum 安装vsftpd:yum -y install vsftpd (或者使用rpm安装vsftpd:rpm -ivh vsftpd-3.0.2-22.el7.x86_64)

3.启动vsftpd服务:service vsftpd start  (设置开机启动:systemctl enable vsftpd.service)

检查vsftpd是否开启:ps -e|grep vsftpd 或者 查看21端口是否被监听,netstat -an | grep 21

可以使用netstat -ntpl | grep vsftpd命令查看到系统现在监听的vsftpd的端口为 21

4.开启防火墙

放开21端口:firewall-cmd --zone=public --add-port=21/tcp --permanent

永久开放 ftp 服務:firewall-cmd --add-service=ftp --permanent (关闭ftp服务:firewall-cmd --remove-service=ftp --permanent)

在不改变状态的条件下重新加载防火墙:firewall-cmd --reload

5、创建一个普通用户,作用是作为虚拟用户的一个映射,能让其登录使用FTP

useradd -s /sbin/nologin virftp  (-s指定用户的shell,shell为/sbin/nologin这样这个用户不能登陆系统)

6、编辑虚拟用户的密码文件:(新文件)

 vim /etc/vsftpd/vsftpd_login //内容如下,奇数行为用户名,偶数行为密码,多个用户就写多行

blob.png

修改完做权限设置:chmod 600 /etc/vsftpd/vsftpd_login

7、将文本的密码文件装换成二进制的密码文件(生成对应的库文件)

(db_load -T -t hash -f)

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

blob.png

8、创建虚拟用户的目录和配置文件:

(1)创建虚拟用户的目录

mkdir /etc/vsftpd/vsftpd_user_conf 

(2)进入到虚拟用户的目录:

cd /etc/vsftpd/vsftpd_user_conf

(3)创建虚拟用户的配置文件(文件名应该与我们设定的虚拟用户名一致)

blob.png

  vim testuser1   //配置文件testuser1加入如下内容

    local_root=/home/virftp/testuser1   //为虚拟用户testuser1的家目录(读取文件所在处)

    anonymous_enable=NO  //  是否允许匿名用户

    write_enable=YES    //是否可行

    local_umask=022    //umask的值

    anon_upload_enable=NO  //是否允许匿名用户上传文件

    anon_mkdir_write_enable=NO  //是否允许匿名用户可写、创建用户

    idle_session_timeout=600      //连接空闲超时时间,超时就重新登录

    data_connection_timeout=120 //传输文件超时时间

    max_clients=10    //最大客户端数

blob.png

9.创建虚拟用户testuser1的家目录:

 mkdir /home/virftp/testuser1

创建一个文件(测试可以看到)

 touch /home/virftp/testuser1/cansheng.txt

10.修改/home/virftp/的主和组:

chown -R virftp:virftp /home/virftp

11.修改认证的文件/etc/pam.d/vsftpd:

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

(密码文件,centos7为64位系统,所以库文件路径为/lib64/security/pam_userdb.so,32位系统为:/lib/security/pam_userdb.so 这个文件一定要存在且写对,不然虚拟用户登录ftp服务时会认证失败)

blob.png

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

blob.png

 再增加如下内容

chroot_local_user=YES

guest_enable=YES               //是否允许虚拟用户映射

guest_username=virftp                //这个就是虚拟用户映射到的系统用户virftp

virtual_use_local_privs=YES             //

user_config_dir=/etc/vsftpd/vsftpd_user_conf  //创建的虚拟用户的目录

allow_writeable_chroot=YES

13.启动服务:

 systemctl start vsftpd

blob.png

测试:

blob.png

(1)可以在window下安装一个客户端软件:filezilla client

 (2)在linux下测试,下载lftp :yum install -y lftp

使用lftp:

lftp testuser1@127.0.0.1  虚拟用户登录

blob.png

在用虚拟用户登录了一个ftp。

1.下载命令,get

get cansheng.txt (把虚拟用户下的文件cansheng.txt下载到服务器当前目录下)

blob.png

2.上传命令:put

window下测试,下载filezilla client,登录后也是进行拖拉就行。

blob.png

在xshell上实现同样的功能,上传、下载:

blob.png

链接后登录

blob.png

使用下载命令后,

get cansheng.txt

保存路径为在C:\Users\kenson\Documents\NetSarang\Xshell\Sessions\

xshell时的安装路径

blob.png

可能用到的命令:

systemctl start firewalld  启动防火墙服务

firewall-cmd --add-service=ftp  暂时开放ftp服务

firewall-cmd --add-service=ftp --permanent永久开放ftp服務

firewall-cmd --remove-service=ftp --permanent永久关闭ftp服務

systemctl restart firewalld 重启firewalld服务

firewall-cmd --reload 重载配置文件

firewall-cmd --query-service ftp查看服务的启动状态

firewall-cmd --list-all    显示防火墙应用列表

firewall-cmd --add-port=8001/tcp    添加自定义的开放端口

iptables -L -n | grep 21  查看设定是否生效

firewall-cmd --state 检测防火墙状态

二、配置 FTP 权限

1、了解 VSFTP 配置

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

vsftpd.conf 为主要配置文件

ftpusers 配置禁止访问 FTP 服务器的用户列表

user_list 配置用户访问控制------这里的用户默认情况(即在/etc/vsftpd/vsftpd.conf中设置了userlist_deny=YES)下也不能访问FTP服务器 

2、阻止匿名访问和切换根目录

匿名访问和切换根目录都会给服务器带来安全风险,我们把这两个功能关闭。编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

# 禁用匿名用户  YES 改为NO anonymous_enable=NO

# 禁止切换根目录 删除# chroot_local_user=YES

编辑完成后保存配置,重新启动 FTP 服务 service vsftpd restart

其它配置项说明:

anonymous_enable=YES #允许匿名登陆 

local_enable=YES #启动home目录 

write_enable=YES #ftp写的权限 

local_umask=022 

dirmessage_enable=YES #连接打印的消息 

connect_from_port_20=YES #20端口 

xferlog_std_format=YES 

idle_session_timeout=600 

data_connection_timeout=300 

accept_timeout=60 

connect_timeout=60 

ascii_upload_enable=YES #上传 

ascii_download_enable=YES #下载 

chroot_local_user=NO #是否限制用户在主目录活动 

chroot_list_enable=YES #启动限制用户的列表 

chroot_list_file=/etc/vsftpd/chroot_list #每行一个用户名 

allow_writeable_chroot=YES #允许写 

listen=NO 

listen_ipv6=YES 

pasv_min_port=50000 允许ftp工具访问的端口起止端口 

pasv_max_port=60000 

pam_service_name=vsftpd #配置虚拟用户需要的 

userlist_enable=NO #配置yes之后,user_list的用户不能访问ftp 

tcp_wrappers=YES 

chroot_list 文件需要自己建,内容一行一个用户名字 

anon_root=/data/ftp/public #修改匿名用户的访问路径

3 创建 FTP 用户

新建一个不能登录系统用户. 只用来登录ftp服务 ,这里如果没设置用户目录。默认是在home下:

useradd ftpuser -s /sbin/nologin

为ftpuser用户设置密码:passwd ftpuser

可能用到:

设置用户的主目录:usermod -d /data/ftp ftpuser

彻底删除用户:#userdel -rf Fuser   //强制删除用户及相关目录文件 

变更用户属性:#usermod -s /sbin/nologinftpuser (/bin/bash:可以登录shell,/bin/false:禁止登录shell )

查看当前服务:#netstat -lntp

三、访问FTP

通过 FTP 客户端工具访问

FTP 客户端工具众多,下面推荐两个常用的:

WinSCP- Windows 下的 FTP 和 SFTP 连接客户端 

FileZilla - 跨平台的 FTP 客户端,支持 Windows 和 Mac

本人测试时使用的是Xftp

打开Xftp软件,新建一个会话,输入对应的信息,点击确定(查看ip地址:ip addr)

选中我们新建的会话,点击连接

连接成功后就可以使用Xftp上传文件了

四、要使用Xshell连接,则需要安装openssh-service

查看是否安装ssh安装包,CentOS是被访问者,所以需要安装ssh-server安装包(如果没任何输出显示表示没有安装 openssh-server,可以通过输入 

yum install openssh-serve进行安装),查看命令为:rpm -qa | grep ssh,如下图所示,已经安装:找到/etc/ssh目录下的sshd_config文件,修改一些参数。去掉端口和监听地址的注释;然后允许远程登录;再开启使用用户名密码作为连接验证

开启sshd服务,service sshd start

检查sshd是否开启,ps -e|grep sshd

或者查看22端口是否被监听,netstat -an | grep 22

使用Xshell进行连接,打开Xshell软件,新建一个会话,输入对应的信息,点击确定(查看ip地址:ip addr)

选中我们新建的会话,点击连接

连接成功后就可以使用Xshell执行命令了

参考文章:

http://www.linuxidc.com/Linux/2017-08/146085.htm

http://www.linuxidc.com/Linux/2017-11/148518.htm

https://jingyan.baidu.com/article/adc81513944addf723bf73af.html

http://blog.csdn.net/u013410747/article/details/60964943

NFS参考链接:

nfs安装:https://my.oschina.net/u/1458120/blog/205484

NFS的安装和配置:https://my.oschina.net/shyl/blog/484825

Linux NFS服务器的安装与配置:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html

https://my.oschina.net/direnjie/blog/542030 

NFS搭建:https://my.oschina.net/weisky/blog/720748

NFS的使用:https://my.oschina.net/xishuixixia/blog/77745

centos nfs服务器简单配置https://my.oschina.net/u/195896/blog/335317

Linux下通过NFS将远程磁盘mount到本地:https://www.linuxidc.com/Linux/2016-04/130504.htm

NFS配置及开机自动挂载:https://www.cnblogs.com/heruiguo/p/7998260.html

Linux下配置nfs并远程挂载https://www.cnblogs.com/freeweb/p/6593861.html

猜你喜欢

转载自my.oschina.net/u/3803405/blog/1812957