第十一章

(借鉴请改动)

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. ABP使用Miniprofiler监测EF

    在上篇教程中,我们在WebApi项目中集成了Miniprofiler,本篇文章中,将继续集成Miniprofiler EF6,以实时监测分析EF的执行语句.执行效率等.Miniprofiler会针对E ...

  2. WRITE T AFTER ADVANCING 2 LINES

    WRITE T AFTER ADVANCING 2 LINES 意思是“在前进两行之后打印T记录内容”  (ADVANCING 和 LINE 字可省略) WRITE T BEFORE ADVANCIN ...

  3. JAVA基础复习与总结<一>(2) 父类引用指向子类对象(向上转型、动态链接)

    先来看看下列代码 public class Animal { public static void main(String[] args){ Animal animal = new Cat(); // ...

  4. Elasticsearch学习笔记一

    Elasticsearch Elasticsearch(以下简称ES)是一款Java语言开发的基于Lucene的高效全文搜索引擎.它提供了一个分布式多用户能力的基于RESTful web接口的全文搜索 ...

  5. JavaScript浏览器解析原理

    首先,JavaScript的特点是: 1. 跨平台 可以再不同的操作系统上运行. 2. 弱类型 与之相对的是强类型 强类型:在定义变量的时候,需要将变量的数据类型表明.例如:Java 弱类型:定义变量 ...

  6. Yarn任务提交流程(源码分析)

    关键词:yarn rm mapreduce 提交 Based on Hadoop 2.7.1 JobSubmitter addMRFrameworkToDistributedCache(Configu ...

  7. 百度分享到修改url

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. [LeetCode] Minimize Max Distance to Gas Station 最小化去加油站的最大距离

    On a horizontal number line, we have gas stations at positions stations[0], stations[1], ..., statio ...

  9. AWS Nginx Started but not Serving AWS上Nginx服务器无法正常工作

    After install the Nginx on AWS instance, and visit your public ip address, you might see the followi ...

  10. PAT甲级1034 Head of a Gang【bfs】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805456881434624 题意: 给定n条记录(注意不是n个人的 ...