第十一章

(借鉴请改动)

11.1、文件传输协议

FTP文件穿数协议,端口20用于数据传输,21端口用于传输相关FTP命令

ftp协议的两种工作模式:

主动模式:ftp向客户端发起

被动模式(默认):等待客户端发起

yun   install   vsftpd    -y    安装vsftpd服务,并 iptables   -F   清空防火墙

vsftpd的住配置文件   /etc/vsftpd/vsftpd.conf  其中大部分是注释

把配置文件更名  vsftpd.conf_bak  然后用  grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf  过滤注释,得到的常用参数:

listen=[YES|NO]                                        //是否以独立运行的方式监听服务

listen_address=IP地址                               //设置要监听的IP地址

listen_port=21                                        //设置FTP服务的监听端口

download_enable=[YES|NO]                  // 是否允许下载文件

userlist_enable=[YES|NO]                       //设置用户列表为“允许”还是“禁止”操作

userlist_deny=[YES|NO]                        //设置用户列表为“允许”还是“禁止”操作

max_clients=0                                       // 最大客户端连接数,0为不限制

max_per_ip=0                                        // 同一IP地址的最大连接数,0为不限制

anonymous_enable=[YES|NO]                  //是否允许匿名用户访问

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

anon_umask=022                              // 匿名用户上传文件的umask值

anon_root=/var/ftp                              // 匿名用户的FTP根目录

anon_mkdir_write_enable=[YES|NO]     //是否允许匿名用户创建目录

anon_other_write_enable=[YES|NO]       // 是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)

anon_max_rate=0                              // 匿名用户的最大传输速率(字节/秒),0为不限制

local_enable=[YES|NO]                            // 是否允许本地用户登录FTP

local_umask=022                                      //本地用户上传文件的umask值

local_root=/var/ftp                                    //本地用户的FTP根目录

chroot_local_user=[YES|NO]                     //是否将用户权限禁锢在FTP目录,以确保安全

  local_max_rate=0                                        //本地用户最大传输速率(字节/秒),0为不限制

11.2、vsftpd服务程序

匿名开放模式:任何人都可以登录,不安全

本地用户模式:通过服务器本地用户登录

虚拟用户模式:三种中最安全的认证方式,建立用户数据库,虚拟出来用户登录

需先安装:yum  install   ftp   -y

匿名开放模式  (/var/ftp)

        1、修改配置文件中的部分参数:

anonymous_enable=YES               //允许匿名访问模式

anon_umask=022                          //匿名用户上传文件的umask值

anon_upload_enable=YES            // 允许匿名用户上传文件

anon_mkdir_write_enable=YES    //允许匿名用户创建目录

anon_other_write_enable=YES    //允许匿名用户修改目录名称或删除目录

2、修改目录权限和selinux的域并重启服务

            

    3、测试服务(ftp默认访问的是/var/ftp目录)

            

        本地用户模式

        1、修改部分配置文件:

anonymous_enable=NO               //禁止匿名访问模式

local_enable=YES                       //允许本地用户模式

write_enable=YES                       //设置可写权限

local_umask=022                        //本地用户模式创建文件的umask值

userlist_deny=YES                     // 启用“禁止用户名单”,名单文件为ftpusers和user_list

userlist_enable=YES                  // 开启用户作用名单文件功能

2、修改selinux域并重启服务

            setsebool  -p  ftpd_full_access=on

        3、本地用户模式默认不允许root用户登录,如需登录,需要把/etc/vsftpd/user_list和/etc/vsftpd/ftpusers中root用户去掉(死亡笔记)

        虚拟用户模式

        pam模块:可插拔认证模块。是一种认证机制,通过一些动态链接库和统一的API把系统服务与认证方式分开,灵活的调整不同认证方式。

        1、创建用于认证的用户数据库文件,并加密与授权,删除原文件

[root@linuxprobe vsftpd]# vim vuser.list              //一行用户名一行密码交替
             zhangsan
             redhat
             lisi
             redhat

db_load -T -t hash -f vuser.list vuser.db              //加密

chmod  600  vuser.db

rm  -rf  vuser.db

2、把创建的虚拟用户映射到本地用户

useradd -d /var/ftproot -s /sbin/nologin virtual      //用于映射虚拟用户

chmod -Rf 755  /var/ftproot

3、建立用于认证的pam模块

vim /etc/pam.d/vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vuser

account required pam_userdb.so db=/etc/vsftpd/vuser

4、写入配置文件

anonymous_enable=NO                           //禁止匿名开放模式

local_enable=YES                                       //允许本地用户模式

guest_enable=YES                                   //开启虚拟用户模式

guest_username=virtual                          // 指定虚拟用户账户

pam_service_name=vsftpd.vu                    // 指定PAM文件

allow_writeable_chroot=YES                       // 允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求

5、为用户设置权限并写入配置文件

vim  /etc/vsftpd/vusers_dir/zhangsan

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers_dir

6、设置selinux域并重启服务

11.3、简单文本传输协议

yum  install  tftp-server  tftp   -y      //安装tftp

vim  /etc/xinetd.d/tftp   把其中的disable  项改成yes

            

防火墙添加端口:

firewall-cmd --permanent --add-port=69/udp

firewall-cmd --reload

tftp的根目录为  /var/lib/tftpboot  相关参数解释:

?                           //帮助信息

put                       //上传文件

get                      //下载文件

verbose              //显示详细的处理信息

status                 //显示当前的状态信息

binary                 //使用二进制进行传输

ascii                   //使用ASCII码进行传输

timeout              //设置重传的超时时间

quit                   //退出

重启服务:systemctl  restart  xinetd

第十二章

samba和nfs(nfs只能linux之间)总结:

Windows和linux:(smb服务)

         linux 服务端:安装Samba,将共享目录写入/etc/samba/smb.conf并且设置权限、selinux、防火墙。然后pdbedit创建smb登入用户,重启服务。

        windows客户端:开始搜索栏直接:\\192.168.10.10

linux  和  linux   :(smb服务)

        服务端:与上述一样正常配置Samba服务即可

        linux客户端:yum安装cifs-utils并写入认证文件auth.smb,然后写入挂载文件/etc/fstab

        例如://192.168.10.10/database   /database   cifs   credentials=/root/auth.smb   0   0

nfs的linux与linux(只能linux):

        服务端:安装nfs,把共享目录写入/etc/export,设置权限,selinux,防火墙,并重启服务(rpc-bind和nfs-server)

        /etc/export的写入格式:共享目录路径         允许访问nfs客户端(共享权限参数)

        客户端:showmount   -e   查看服务端共享目录,并挂载,使用mount   -t  文件类型挂载

详细如下:

12.1、samba文件共享服务

yum install  samba  -y    安装Samba服务

主配置文件  /etc/samba/smb.conf  中的参数解释:

[global] #全局参数。

 workgroup = MYGROUP               //#工作组名称

server string = Samba Server Version %v           //#服务器介绍信息,参数%v为显示SMB版本号

log file = /var/log/samba/log.%m                       //#定义日志文件的存放位置与名称,参数%m为来访的主机名

max log size = 50                                             //#定义日志文件的最大容量为50KB

security = user                                                    //#安全验证的方式,总共有4种

#share:                                                         //来访主机无需验证口令;比较方便,但安全性很差

#user:                                    //需验证来访主机提供的口令后才可以访问;提升了安全性

#server:                             //使用独立的远程主机验证来访主机提供的口令(集中管理账户)

#domain:                          //使用域控制器进行身份验证

passdb backend = tdbsam              // #定义用户后台的类型,共有3种

#smbpasswd:                         //使用smbpasswd命令为系统用户设置Samba服务程序的密码

#tdbsam:                                //创建数据库文件并使用pdbedit命令建立Samba服务程序的用户

#ldapsam:                              //基于LDAP服务进行账户验证

load printers = yes                         //#设置在Samba服务启动时是否共享打印机设备

cups options = raw                          //#打印机的选项

[homes]                                        //#共享参数

comment = Home Directories             //#描述信息

browseable = no                                  //#指定共享信息是否在“网上邻居”中可见

writable = yes                                           // #定义是否可以执行写入操作,与“read only”相反

[printers]                                     //#打印机共享参数

comment = All Printers

 path = /var/spool/samba                     //#共享文件的实际路径(重要)。

 browseable = no

guest ok = no                                 // #是否所有人可见,等同于"public"参数。

writable = no

printable = yes

             

(服务端配置)配置共享资源

1、写入配置文件并且建立smb用户

vim  /etc/samba/smb.conf

[database]                          //共享名称为database

comment = Do not arbitrarily modify the database file         //警告用户不要随意修改数据库

path = /home/database                 //共享目录为/home/database

public = no                            //关闭“所有人可见”

writable = yes                         // 允许写入操作

pdbedit   -a  -u  linuxprobe

pdbedit   用于管理Samba用户 。    pdbedit  【选项】 【账户】。

  -a   用户名     // 建立Samba账户                            -x  用户名        //删除用户名

  -L                  //列出账户列表                                 -Lv                   //列出账户详细列表

  2、创建共享文件目录/home/database   并授权和selinux的安全上下文和selinux域

  3、清空防火墙并重启服务

(客户端)配置共享

  window端:直接在开始的搜索栏:\\192.168.10.10  并输入用户名密码

  linux端:yum  install  cifs  -y ,写认证文件并授权,创建挂载目录,写入/etc/fstab中,mount  -a挂载使用

vim auth.smb

username=linuxprobe

password=redhat

domain=MYGROUP

chmod -Rf 600 auth.smb

vim /etc/fstab

//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0

 

复习:ftp的本地模式

预习:第十二章,第十三章  13.5

《linux就该这么学》第十三节课:第11章和第12章,vsftpd服务与samba和nfs服务的更多相关文章

  1. 《linux就该这么学》第三节课 第二节命令笔记

    命令笔记 (随笔原创,借鉴请修改) linux系统中一切都是文件 2.4  系统状态的命令:  ifconfig   :    查看系统网卡信息,包括网卡名称,ip地址,掩码,mac地址,收到数据包大 ...

  2. centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课

    centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB ...

  3. centos LNMP第一部分环境搭建 LAMP LNMP安装先后顺序 php安装 安装nginx 编写nginx启动脚本 懒汉模式 mv /usr/php/{p.conf.default,p.conf} php运行方式SAPI介绍 第二十三节课

    centos  LNMP第一部分环境搭建 LAMP安装先后顺序  LNMP安装先后顺序 php安装 安装nginx  编写nginx启动脚本   懒汉模式  mv   /usr/local/php/{ ...

  4. centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课

    centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符  通配符 特殊符号. * + ? 总结  问加星 cat -n  nl  输出文件内容并加上行号 alias放~ ...

  5. KALI LINUX WEB 渗透测试视频教程—第十九课-METASPLOIT基础

    原文链接:Kali Linux Web渗透测试视频教程—第十九课-metasploit基础 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第十九课-metasploit基础..... ...

  6. Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击

    Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击 文/玄魂 目录 Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击................... ...

  7. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  8. centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课

    centos shell编程4[分发系统] 服务器标准化  mkpasswd 生成密码的工具  expect讲解   expect传递参数   expect自动同步文件  expect指定host和要 ...

  9. 风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击

    风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击 文件包含漏洞 参考文章:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 分类 ...

随机推荐

  1. tensorflow安装-【老鱼学tensorflow】

    TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor ...

  2. Centos6的yum源

    更换原因: yum -y install fping 1.阿里云Linux安装软件镜像源 常用的源: 阿里云是最近新出的一个镜像源.得益与阿里云的高速发展,这么大的需求,肯定会推出自己的镜像源.阿里云 ...

  3. XOR UVALive - 8512 -区间线性基合并

    UVALive - 8512 题意 :给出一个包含n个元素的数组A以及一个k,接下来进行q次询问,每次询问给出 l 和 r , 要你求出从A[l] , A[l+1] , A[l + 2],...,A[ ...

  4. JavaScript(一)

    JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...

  5. idea使用配置

    一,打开窗口多行显示, Window→Editor Tabs→Tabs Placement→Show Tabs in Single Row 取消选中后即可在多行显示 2 .还可以自行设置打开文件窗口数 ...

  6. ECMA Script 6_模块加载方案 ES6 Module 模块语法_import_export

    1. 模块加载方案 commonJS 背景: 历史上,JavaScript 一直没有模块(module)体系, 无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来. 其他语言都有这项功能: ...

  7. 10.1jihe

    两种操作,1是加入数字,二是找最接近的 用set或者平衡二叉树就好了 只写了二叉树的,套版子就好 #include<bits/stdc++.h> #define sf scanf #def ...

  8. [Educational Round 5][Codeforces 616F. Expensive Strings]

    这题调得我心疲力竭...Educational Round 5就过一段时间再发了_(:з」∠)_ 先后找了三份AC代码对拍,结果有两份都会在某些数据上出点问题...这场的数据有点水啊_(:з」∠)_[ ...

  9. idea创建第一个普通java web项目

    1.新建项目(工作空间) 选择空项目 输入项目名称,点击完成 系统会默认选中Modules,点击上面的小+号创建模块->New Module 新建一个Java EE Web Applicatio ...

  10. nodejs----微信注册测试号获取token

    var PORT=8081; //监听8080端口号 var http=require('http'); var qs=require('qs'); var TOKEN='yezhenxu'; //必 ...