第十八天(双更)

编程知识 更新时间:2023-04-16 01:31:09

 

                                                   接着上次的双更

 

                                     本次更新是 6章-15章(但排除13章,不为什么,任性)

 

 

如有错误,我看时间和心情决定是否修改,谢谢~

 

存储结构与磁盘划分:
 
       一、FHS协议:文件系统的结构系统,规定每个目录的作用是什么,方便用户找东西。你总不能把所有文件都放C盘吧。


1.     /  : 万物的起始,所有的目录都在  /  目录内的,根目录。

2.   root:我们管理员(对是我们)自己的目录,家目录存放自己的文件的。

!3.   home:普通用户该呆的地方,和我们没法比......。

4.   bin:我们开机时候,没有被使用到的命令。
    sbin:我们开机时候,    被使用到的命令。

5.   boot:存放开机所需信息文件的,像什么驱动啊、引导文件啊等。

!6.   dev: 存放设备硬件文件的目录,像什么鼠标啊、键盘啊、硬盘啊、光驱啊、内存啊映射成文件然后保存到dev目录。

!7.   etc: 存放配置文件,包括系统配置文件和每个服务程序对应的配置文件

!8.   var: 存放经常被改变的数据,比如日志信息、数据库。

9.   lib: 存放系统的函数库的一些文件。

10.  usr: 用户第三方自己的程序,我们可以把他们的程序安装到这个目录里面

11.  media:用来挂载光盘镜像程序的。

12.  tmp:开放型的目录,用来存放临时的文件。

13.  srv: 网络服务的数据目录,程序自动获取,人不用看。

14.  proc: 虚拟目录,里面的文件并不是真实的文件而是一种动态刷新的系统信息,比如当前内存情况。

15.  lost+found:当我们的系统程序出错时,它会尝试帮我们恢复一些数据。


切换目录:  cd /etc  cd /home    切换目录。
         
  有两种:    1. 绝对路径。     2.相对路径。                          

              1./       2.         。 (最简单的解释,至于2为什么是空的,因为它就是空的)

Udev服务:自动的根据一定的规则命名的服务。


物理设备命名规则:
 
              硬件设备                        文件名称
 
              IDE 设备                        /dev/hd [a-d]             

         !   SCSI/STAT/U盘                   /dev/sd [a-p] 硬盘格式

              打印机                          /dev/lp [0-15]

         !   光驱                            /dev/cdrom    光盘(第一个)
                                              /dev/sr0      第一个
                                              /dev/sr1      第二个

              鼠标                            /dev/mouse


硬盘分区:

        1——4 是主分区;扩展分区恰巧也占4。

        5——...是逻辑分区。

        主引导分区--主分区--扩展分区--逻辑分区


硬盘格式:              

         R4-1----ext2
         
         R5------ext3 (加入了日志系统)
         
         R6------ext4(容量和速度提升)

         R7------XFS  (为了大数据云计算,所以容量大18EP)


文件有一个最的小保存单元
block (捕捞块儿)
文件的实际内容会保存到block中。
block有一个默认的值一般是1kb或2kb

当要保存文件的时候,文件属性和文件内容分开保存,分别由 inode和block 共同完成(所以我们看文件属性的时候实际大小和占用空间不一样)


1.inode文件:1.这个文件的访问权限、所有者与所属组、文件大小、创建或内容修改时间、最后一次访问时间、文件最后修改时间、文件特殊权限(SUID SGID SBIT))、真时数据地址
             2.默认大小为128b,写满后系统会自动分配出一个block


VFS:我们与我们的文件系统之间还有翻译官。它用来消除底层差异性,帮用户翻译文件系统(如EXT3 EXT4 XFS等),用户不用管底层是什么系统只管干活就行。

分区格式化 和 挂载操作

新买的硬盘怎么使用

1.分区
  
  命令:fdisk

2.格式化,把硬盘分区格式成各种格式

  命令:mkfs
   
  例子:mkfs.ext4

3.挂载,就是使用啦(老刘专用)将我们的设备与我们的目录相关联的动作,叫挂载

  命令:mount


如何使用一个新硬盘:

一、
1. 首先创建一个新的20G硬盘


2. ls /dev/sdb
看一下有没有创建成功


3. fdisk /dev/sdb
给 sdb分区


接下来是一个交互界面,你可以敲 m 提供帮助


m:

4. n:新建一个分区(告诉系统我们要分区了)

5. p:主分区     e:扩展分区

6. 提示你给主分区一个编号1—4随便哪个  1(sdb1)

7. 起始扇区,这个空格就行

8. 提示给主分区多少空间大小 +5G

9. 敲w  保存退出。 

10. ls -l /dev/sdb1
  查看一下sdb1 (主分区编号1所以sdb1)


#如果ls了看不见,没有那么两个办法:
1.命令:partprobe 通知系统内核发生了变化(在脑子里加块硬盘都没感觉,傻)
2.重启(万能)reboot

二、 格式化

命令:mkfs  (两下tab可以查看可以使用的命令)


1.mkfs.xfs /dev/sdb1
把sdb1格式化成 xfs格式

2.没有了,就一步......


三、 挂载(老刘专用)

命令:mount


mount必须和目录使用,所以我们第一步是新建目录

1. mkdir /111
创建目录111


2. mount /dev/sdb1 /111
把sdb1和111 挂载上

   umount /dev/sdb1
          /111
卸载硬盘二选一就行


3. 然后就是最重要的,最重要的,最重要的。

编辑 vim /etc/fstab 。我们设置完的挂载重启后就会失效所以一定要编辑fstab
(它很重要,在硬盘的一切配置中,都必须修改fstab!无论是分区、交换分区、磁盘配额都需要。)
 
/dev/sdb1 /111 xfs defaults 0 0      0是否备份(否)  0是否开机校验(否)


4.重启系统:reboot


5. 命令:df -h
        查看我们当前挂载情况,用来检查。


6.命令: du -sh *
        查看当前目录内,每一个文件的占用大小,查看文件体积的
  
         du -sh /*
        查看根目录内每个文件大小


总结:一块新硬盘要怎么使用: 1.分区   2.格式化   3.挂载   4.编辑 vim/etc/fstab   5.重启使用


交换分区:
         先在我们硬盘中划分一部分空间,然后当我内存不够时临时充当内存使用。

命令:swap

1. fdisk /dev/sdb
接着给那20G继续分区

2. n :创建分区

接下来是一个交互界面,你可以敲 m 提供帮助

3.e:扩展分区
     
     提示2-4 是否默认为2。我们默认2(sdb2)

     扩展分区的起始扇区。空格就行

     提示扩展分区的大小。默认就是剩余的全盘(18G)

扩展分区设置到这就结束了,但不能直接使用,得接着设置逻辑分区。

4. n:创建分区

   l:创建逻辑分区
      它会自动设置扇区编号,为5(sdb5)

      逻辑分区的起始扇区。空格   

      逻辑分区的大小。    +3G

逻辑分区到这就结束了

5. 敲p 查看分区信息,会看到我们设置过的分区。

   敲w。保存退出


ls -l /dev/sdb*  查看有几个设置好的分区

#如果ls了看不见,没有那么两个办法:
1.命令:partprobe 
2.重启(万能)reboot


二、格式化SWAP分区

命令:mkswap

格式化SWAP分区不用加格式像xfs、ext4等,因为我们格的就是格式...

1. mkswap /dev/sdb5
直接格式化逻辑分区就行(这点和win一样)


2. swapon /dev/sdb5
开启分区,这样free -m 的时候Swap就会在加上3G空间了。 


3.最后,最重要的
编辑 vim /etc/fstab

/dev/sdb5 swap swap defaults 00
逻辑分区5  设备名称swap不用目录,同时格式也是swap ,  权限 , 0是否备份(否)  0是否开机校验(否)


4.保存退出。重启

磁盘容量配额:就是用来规划我们的磁盘空间。很高大上对吧


isoft软限制
个数限制

ihard硬限制
个数限制


bsoft软限制
大小限制

bhard硬限制
大小限制


新建一个用户我们就用linuxprobe吧。

1.vim /etc/fstab
  编辑fstab

2.找到一个xfs文件系统的目录,boot就是 就它了
  在defaults后面加上“,uquota”把12  改成00


  然后重启,然后boot目录就支持uquota了。
  
  


怎么查看boot支持磁盘配额?:

1. 命令:mount  可以查看分区信息 

2. mount | grep boot
这样就看见了

3.命令:xfs_quota
        专门针对xfs的磁盘配额的命令


xfs_quota      -x                  -c                        limit         bsoft=3m         bhard=6       isoft=3        ihard=6          linuxprobe'     /boot
xfs的命令  专家模式   通过非交互式        限制的意思      文件大小(软)   大小(硬)    个数(软)     个数(6)       被限制的用户     所在目录                    
                            执行命令没有帮助了


设置完了最后还要给目录一个写入权限

chmod -Rf 777 /boot

普通用户不能对boot进行写入,但我们要实验啊,所以给他777最大权限。

好,一切准备就绪。

实验1

1.su - linuxprobe
先切换到普通用户 linuxprobe 下

2.cd /boot
去boot内干事

3.touch 1 2 3 4 5 6 (7)
创建123456个文件都没事,但第7个文件就不行了


实验2

dd   if=/dev/zero   of=yy   bs=3M  count=1
提取出一个3m大小的文件 到yy中 是可以的

dd   if=/dev/zero   of=yy  bs=9  count=1
提取出一个9m大小的文件 到yy中 是不可以的,不可以。


 exit是从普通用户回到root管理员的命令


如何编辑用户的磁盘配额限制大小?

命令:edquota

          edquota -u 指的是编辑哪个?

         edquota -u linuxprobe

Disk quotas for  user  linuxprobe  (uid 1000):
Filesystem                    blocks              soft           hard                    inodes            soft           hard
/dev/sda1                     6144                3072         6144                        1                    3               6
设备名字                  已经使用的大小      大小(软)  大小(硬)   已经使用的个数    个数(软)   个数(硬)                   


如何编辑大小,很简单直接修改 硬 限制数字就行了。


命令:ln
     创建文件的快捷方式

     ln:      硬链接,硬快捷方式
 
     ln -s    软连接  软快捷方式

第七章:使用RAID和LVM磁盘阵列技术


RAID的命令

命令:mdadm 
      管理系统中软件RAID磁盘阵列的命令

例子:mdadm    -C       v               /dev/md0             -n  4                 -l                10               /dev/sd[b-e]
            命令   阵列组 显示过程   创建后的设备名称    用4块盘做      RAID级别     用1 0模式     哪四块盘啊 BCDE

mdadm -Q  /dev/md0
查看md0的信息


dev/md0:    39.97GiB    raid10        4 devices ,   0 spares.  Use mdadm   --detail  for   more  
  名字            大小           阵列组10    4个设备                 查看mdadm信息可以--detail      


mdadm -D  /dev/md0
显示详细信息

mdadm -D  /dev/md0
显示详细信息


mkfs.xfs /dev/md0
格式化


mkdir /111

mount /dev/md0 /111

然后最重要的:
编辑 vim /etc/fstab
/dev/md0 /111 xfs defaults 0  0  
我就不解释了

[asdadsd 111]# cp -rf /etc/* ./
从其他目录中复制文件到111中


mdadm -D /dev/md0
查看md0的磁盘阵列组详细的信息

mdadm /dev/md0 -f /dev/sde
通知系统sde设备损坏了

mdadm /dev/md0 -r /dev/sde
把损坏的sde,移除掉

mdadm /dev/md0 -a /dev/sde
添加一块sde的硬盘到md0

RAID 0

0 有两块硬盘,写入数据是依次写入,这样有几块硬盘速度就会提升几倍,但不会对数据进行备份,因为没有多余的硬盘啊(就像双祭坛暴英雄,一个DK、一个Lich,不顾干扰同时复活。)


优点:速度快                  缺点:不安全

RAID 1

1 也有两块硬盘,但写入数据同时用另一块硬盘进行备份,这样速度不变、同时更安全,但是会浪费一块硬盘以前2块能办到,现在需要4块;4块硬盘就得8块。(就像两个祭坛同时暴DK,这样被拆掉一个也不要紧,不是还有一个嘛,这是被打的多惨,要双祭坛爆英雄)

优点:更安全                    缺点:钱,浪费一个盘


RAID 5

5 同时兼容了 0和1,它是以奇偶校验进行保存,一个数据下来后会被压缩分别保存到其他盘中,这样一旦硬盘损坏其他硬盘会试图恢复它。速度会提升60%;安全也会提升,但只能坏一块不能坏两块。(就像4个祭坛同时暴DK、Lich、Dr、DL,在游戏中没有限制,但如果限制1号祭坛只能复活DK、2号只能复活Lich、3号Dr、4号DL那么这个就有用了,DK祭坛被拆可以通过其他祭坛试图复活DK)

优点:有点速度,有点容量                  缺点:最少3块盘,还是有点花钱


RAID 10

1和0 的结合体,既有速度又有安全。以 1 位一小组组,以 0 为一大组,这样只要不是同一小组坏两块就完全没问题。(这就相当于8个祭坛暴8个英雄,而且每个英雄都有复制体,除非对面是小炮投石车要不然拆到手软)


优点:安全,速度             缺点:超级费钱

热备盘:

当然,如果你超级有钱,不差钱那么我建议你做热备盘,热备盘平时不工作,一旦某块硬盘出问题了它就会顶替上去,就像复活币一样,只有你死了才会触发效果(就像兽族的迷你基地,只要你有钱6个包包全买迷你基地,这样就没有暗夜什么事了)


优点:你能想象到的所有 至于缺点,还用说吗.......。


1. mdadm -Cv /dev/md0 -n 3 -l 5    -x 1         /dev/sdb[b-e]
                                                  有一块是热备盘
       

2. mkfs.ext4 /dev/md0
格式化一下

3. mkdir /111

  mount /dev/md0 /111

  vim /tec/fstab
/dev/md0 /111 ext4 defaults 0 0 

cd /111

cp -rf /etc/* ./
好,结束。

这样坏一个之后,热备盘会马上顶替上去。

cat /var/log/messages
日志文件存放点......

LVM : 逻辑卷管理器

动态的调整逻辑盘的扩大、缩小的操作

顺序 1.pv  2.vg  3.lv

1. pv:创建物理卷,让我们的硬盘支持LVM技术

2. vg:将我们支持LVM技术的硬盘进行整合,整合成一个整体。逻辑卷组。

3. lv:逻辑卷,把整合过的整体硬盘进行切割。


pv:pvscan                    vg: vgscan                                 lv:  lvscan
    扫描                           扫描                                         扫描
 
 ! pvcreate                   !  vgcreate                            !    lvcreate
    建立                           建立(合并硬盘)                             建立
   
    pvdisplay                      vgdisplay                                 lvdisplay
    显示                           显示                                         显示
        
!  pvremove                   !  vgremove                            !    lvremove
    删除                           删除                                         删除

                               !  vgextend                            !     vgextend
                                   扩展                                         扩展
 
                               !  vgreduce                            !     vgreduce
                                   缩小                                          缩小

pvcreate: 让物理设备支持LVM技术
pvremove:不要让物理设备支持LVM技术

vgcreate: 将我们多块硬盘合并到一起,变成一个大的卷组。
vgremove: 彻底删除我们合并好的卷组。
vgextend: 将一个新的硬盘加入卷组里面,进行一次扩展(生意很火爆啊,又扩展)
vgreduce: 将某一块特定的盘剔除出去。

lvcreate:从卷组中重新划分逻辑卷大小
lvremove:删除所有的逻辑卷
vgextend:扩展逻辑卷
vgreduce:缩小逻辑卷


提示:当我们要扩展逻辑卷lv时,一定要看看扩展分区就是卷组vg够不够大,不够大就先添加vg。

提示:扩容一定要大于之前的容量; 缩小一定要大于,文件占用的大小,要不然会损坏文件。

实验:pvcreate /dev/sdb /dev/sdc
1. 第一步,创建硬盘,整理都有哪几个硬盘


2. vgcreate 111 /dev/sdb /dev/sdc
开始整合,把流氓宵小之辈整合成正规军,起一个名字叫 111。sdb、sdc就是宵小之辈


3. lvcreate       -n           000     -l             100         111
        创建逻辑卷参数  逻辑卷名称  逻辑卷大小  100个PE     卷组名称

-l参数:是指PE的个数,每个固定是4m所以,1个是4m、10个是40m、100个是400m,需要计算一下,比较麻烦
-L参数:是指容量大小,和-l一样但不需要计算,直接填你想要的就行,比如100m、200m

当你这么设置后,系统会在:/dev/卷组/逻辑卷 这么个格式下为你放入文件。
例子:dev/111/000     111卷组   000逻辑卷


4. 格式化,需要注意的是xfs不支持LVM技术,所以只能格式成xfs以外的格式
xfs_growfs: xfs特有的扩展的命令,并且不能缩小!

mkfs.ext4 /dev/111/000

5. mkdir /999

编辑vim /etc/fstab
/dev/111/000 /999 ext4 defaults 0 0

6. df -h
查看卷组(就是扩展分区,一样的)

结束

扩展卷组:

1.cd ~ 先回到家目录
  
  umount /999
  然后卸载掉目录,如果要变更设备,请先将他卸载掉


2.lvextend -L 800M /dev/111/000
扩容的时候用-L 


3.e2fsck -f /dev/111/000
用命令  检查一下卷组是否损坏


4.resize2fs /dev/111/000
用命令  告诉系统要激活/111/000新加的800M空间同步到系统内核当中


5. monut -a
挂载上/dev/111/000

结束


缩小卷组:

如果之前有卷组,那么第一步就先卸载掉,如果没有就不用管

1. umount /999
卸载目录999


2. e2fsck -f /dev/111/000
用命令  检查一下卷组是否损坏,可以被缩小吗。


3. resize2fs /dev/111/000   300M
通知文件系统,大小要变更了。缩小300m

一般情况会同意缩小。

4. lvreduce -L 300M /dev/111/000
命令 缩小000 大L
它会提示[y/n]: y


5. mount -a
挂载/111/000

df -h
查看一下

会发现已经缩小了。

逻辑卷快照:

就是对你的硬盘进行一次备份,出事了就拿出来覆盖还原然后快照就没了。其实和系统备份是一样的用的时候特别少,你看看系统还原啥事用过,基本上出事就一个系统拍上去。


命令:vgdisplay  查看一下当前逻辑卷信息(你看这命令多可怜,出场率多低,都快结束了才出现,亏它还是vg家族中人。)
当前逻辑卷是/000

lvcreate -L 300M -s -n DK /dev/111/000
创建300m大小空间,为什么是300没因为要和000大小保持一致,至少比它大。-s 就是快照的参数。 -n快照的名字叫DK吧随便了。给谁拍照/000

恩...结束了。


然后做一个实验,在这个试验中,我们将要请到一位我们学习Linux到现在虽然一次面都没见过,但已经是大名鼎鼎如雷贯耳的存在!

有请最牛逼的命令:
 
                      rm -rf *       rm -rf /*(加强版)


1. cd /000
走到000中

2.  rm -rf *
清空所有文件


3. cd ~ 回到家目录中

  umount /dev/111/000
卸载000


4. lvconvert --merge /dev/111/DK
            合并参数          快照名字

回车就行了,还原速度慢,拍照速度快

5. mount -a 
挂载  

   df  -h
查看

就OK了

删除逻辑卷:

1. cd到家目录


2.umount /dev/111/000
卸载掉当前文件系统


3. lvremove /111/000
先移除掉逻辑卷

4. vgremove 111
在移除卷组

5. pvremove /dev/sdb

   pvremove /dev/sdb
让它不在支持LVM技术,删除sdb  sdc.


6. 编辑 vim/etc/fstab
把之前编写的信息删除掉。

删完了.....。就是反着操作一遍。

 

 

 

 

 

 

 

 

iptables与firewalld防火墙:
R7 网卡不叫网卡了,“叫网络接口”

配置网卡方法:


 虚拟机VMnet1 ,设置一下成192.168.10.1

方法一:

1.vim /etc/sysconfig/network-scripts/ifcfg-eno16777728 。(eno16777728是网卡的名字,每个电脑不一样。)
网卡的配置文件具体位置(很长吧......)


2.修改一下:
  IPADDRO=192.168.10.10
 
  改成
  IPADDRO=192.168.10.20


3.修改完了要重启,重启对应的服务
  systemctl restart network
  这才能ping通

方法二:命令nmtui

RHEL5/6中,该命令是setup
RHEL7  中,该命令是nmtui


敲命令 nmtui
之后会出现一个图形界面,对没错是图形界面

1.选择Edit a connection
2.选择<Edit...>
3.出现主界面了
选择:Addresses 192.168.10.20/24 <Remove>
改成:Addresses 192.168.10.30/24 <Remove>
至于改完怎么保存简单,一直向下,有个OK
4.退回到了2;选<Quit>


5. systemctl restart network
修改完了要重启,重启对应的服务

结束。


方法三:命令 nm-connection-deitor

OK第二个图形界面了......


1. 双击中间的网卡信息
2.选择Addresses下的  192.168.10.30
  改成192.168.10.40
  Save  Close

3.systemctl restart network
修改完了要重启,重启对应的服务

方案四:最简单的方案

在虚拟机中的右上角有个图标,是两台叠在一起的电脑,点一下选择......不用选就一个。点右下角有个齿轮图标,选IPv4选项,然后改Addresses92.168.10.40,40改50。点Apply。最后最后点一下Wired旁边的开关,关闭一下在开启一下哦了(你看,这方法全程都是粗俗的语言汇聚成的,这是我写到这里唯一一次不用命令就解决问题的,就像从百度上复制下来的方法一样,不和你说你都不知道这是Linux!全程傻瓜式操作一步到位。)


systemctl restart network......fakeyou!wodefack!
修改完了要重启,重启对应的服务......什么?没我什么事了?怎么可能!没我怎么连接?!
路人甲:你走错片场了老弟......这一集(好尴尬...)


配置防火墙:

! 1. INPUT:处理流入的数据包,从外到内
2. OUTPUT:处理流出的数据包,从内到外,往外发。
3. FORWARD:处理转发的数据包,当防火墙处理不了时转发给第三方处理
4. 在进行路由选择前处理数据包,SNAT
5. 在进行路由选择后处理数据包,DNAT

主要针对1号:

进行一下流程:1.允许  2.拒绝  3.拒绝  4.记录成日志。


1.允许:ACCEPT

2.拒绝:REJECT(这个拒绝是交互式的,就是他要进来,你说滚!他听见了,他滚了...恩,没毛病!)

3.拒绝:DROP不回答隐身对面会误以为你不在线(这个拒绝就像在一个夜黑风高鬼见愁的夜晚里你在外面遇到鬼了,立即千辛万苦跑回家、锁上门、关上窗、躲到被窝里,然后鬼        来了,鬼问你:在家吗亲~~。你敢回答吗.......)

4.日志:就像监控一样,记录发生的一切。

考试的时候一定一定用:REJECT

第一种:配置iptables 防火墙:

1. 如果默认是 允许 那么要写拒绝的条件,没有匹配上的话,最后还是放行
2. 如果默认是 拒绝 那么要写放行的条件,没有匹配上的话,最后是拒绝。
iptables -L
显示当前已有的策略


iptables -F
清空当前防火墙里面的策略


iptables -L
查看防火墙


iptables -P
设置默认规则链


iptables -I 插入最上面 -A最后面
插入规则,最上面


iptables -D 
删除掉一个策略

例子:1.

1.  iptables -P INPUT DROP

-p参数是修改默认规则的,修改从外到内的访问,修改后的规则是丢包(都是大写哈)
先全部禁止,然后在规定哪几个可以访问

2.  iptables -I INPUT -s 192.168.10.10/24 -p tcp --dport 22 -j ACCEPT
放行 来自tcp协议下的192.168.10.10/24的 22号端口号

-I  参数是插入规则,插入到最上面没要求默认是上面 。 -A是插入最下面

-s  参数是来源地址,地址是192.168.10.1/24,24是掩码长度 

-p  是地址的协议,-p tcp。tcp协议

--dport 端口参数. 22

-j  参数是一个动作,(不懂)。

ACCEPT 放行

如果不小心某一条敲多了,怎么删除:

iptables -D INPUT 2

-D 删除

2 是第二条


例子:2.

iptables -P INPUT ACCEPT
-p参数是修改默认规则的,修改从外到内的访问,修改后的规则是允许


iptables -F 
全清防火墙策略

iptables -I INPUT -p tcp --dport 22 -j REJECT
对输入流量进行控制,控制谁呢?控制自己的tcp协议下的22号端口号(这样只要用户远程访问我的22号端口号,就拒绝它)

#如果是要禁止端口号范围的话就是  1000:1024 。1000到1024的端口号,中间用 :号间隔。1000,1024这是禁止两个端口号,不一样


firewalld 防火墙配置管理工具:

首先:区域(官方)=模板(私人)(老刘自创名词)

zone:就是模板的统称
设置好模板,到不同的地方用不同的模板,这样就省时间设置防火墙(无节操红白的符纸一样)

public模板:默认的模板,当前正在使用的模板

drop模板:  禁止所有流量(相当于切断网络,更绝一点...)

trusted模板:允许所有流量


firewall-cmd : 是firewall防火墙配置工具 的CLI(命令行界面,你可以理解成固定格式,就像解方程的 “解”)


runtime:当前生效模式,意思是设置完就生效重启后就凉凉了。firewall运行时的默认模式。(默认模板是public;默认模式是runtime)

permanent:永久生效模式:当前执行的命令不生效只有当我们重启后才生效。或者执行命令:firewall-cmd --reload立即生效。

panic-on :开启应急模式,万一有黑客进攻就开启这个模式。(类似win的无网络安全模式)
panic-off:关闭应急模式。


#firewalld 有个好处就是 它的模板参数都是 -- 长格式,而且很长所以它默认了可以tab键补齐(很酷)输入开头字符敲两下tab会出现和头字符相关的参数。


firewall-cmd --get-default-zone
显示firewall 的当前模板是什么(因为是刚刚开始所以是默认模板,所以肯定是public)

firewall-cmd --get-zone-of-interface=eno167777
不光看模板,还能查任意看网卡的模板(毕竟网卡不可能只有一个,每个的模板都不一样)


修改默认模式(不修改容易坑!!!...)

firewall-cmd --set-default-zone=dmz
修改默认模式 set-default-zone是专门为默认模式服务的。改成dmz模式
success提示成功(这个没有用)


firewall-cmd --panic-on
开启应急模式(安全模式:我本人自创的名词)


然后,像iptables一样对于具体的服务来进行放行和拒绝的防火墙策略配置操作,是怎么进行的:

1. firewall-cmd --zone=public --query-service=ssh
你要设置哪个模板,设置public模板。然后查询一下可以访问ssh服务吗?从外到内的访问
yes 

2. firewall-cmd --zone=public --query-service=https
no
不可以从外到内访问https

这样需要把https添加到防火墙允许当中:
firewall-cmd --zone=public --add-service=https
-add-service 是允许、添加的意思,把https添加进去、允许进去。 


好,玩个游戏:

1. firewall-cmd --zond=public --query-service=http
看看能访问HTTP吗?
no
不能

2. firewall-cmd --permanent --zone=public --add-service=http
既然不能访问,那么就加进去。而且不光加进去还让你永久生效(哼...让你不听话,打你小屁屁)

3. firewall-cmd --zond=public --query-service=http
然后在看看能不能访问......能不能呢???


4.不能!!
  因为是永久模式所以要么重启,要么在 firewall-cmd --reload 一下

所以这个游戏告诉我们一个道理:

Linux系统中的一切都是文件
部署一个服务就是在修改配置文件
修改之后要重启一下
顺手加入到开机启动项中

如何删除、禁止服务呢?

firewall-cmd --zond=public --remove-service=http

--remove-service
删除、禁止服务

放行端口号:

1. firewall-cmd --zone=public --add-port=8080/tcp (8080-8280/tcp哪到哪的tcp协议)
在public模板下 放行8080/tcp端口号

2. firewall-cmd --list-ports
查询当前允许的端口号

结束。

# ssh的端口号是22号

端口号的转发:
如果用户从外面访问888端口号,但也像访问22号端口号,那么就需要端口号的转发了。0-65535端口号范围


1. firewall-cmd --permanent --zone=public -add-foward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10
用public模板,添加foward-port,当有人访问888端口号用的协议是tcp,那么就转发到22端口号上面,转发到哪个主机?转发到192.168.10.10

2. firewall-cmd --reload
让它立即生效


单独禁止某一个用户或者某一个网段访问我们某一个服务怎么办呢???:

富规则(复规则):精准的流量匹配,以防止“误杀(五杀?)”

firewall-cmd --permanent --zone=public --add-rich-rule="rule familt="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
永久生效模式,public模板,添加一个复规则:“规则 协议族”=ipv4,来源地址="192.168.10.0/24",禁止流量的名称="ssh" reject"拒绝掉!
(不能瞎空格,会凉凉的......)


在iptables下就不会这么长了:

iptables -I INPUT -s 192.168.10.0/24 -p -tcp --dport=22 -j REJECT

当然还有一种方法,特简单,和配置网卡的第四种方法一样:

firewall-config

然后,欢迎来到图形界面

上面是菜单栏有:
options: panic mode紧急模式,打√开启

Configuration: Runtime当前模式 下一个就是永久生效模式


左边栏就是zone啦!,我们会看到public被黑体字加粗了

public:Ports 添加端口号
如果题目提示添加对应端口号入4325那么就选这个,然后点add输入端口号添加


public:Masouerading 伪装区域
SNAT 源地址转换协议(欺骗协议)


por forwarding :端口号的转发
和添加差不多......。但要注意,要把Rich rules复规则选项给Remove一下就ok了


Rich rules:复规则
1. ipve   2. service服务例如ssh   3. action选择允许还是拒绝       4. source:来源地址填ip地址、网段加 /24                                                      
    
interfaces网卡:   
1.edit编辑   2.点击切换到别的模板  3.ok


options菜单 : reload firewalld 是重新加载,如果选了永久生效模式就一定要点它。


TCP Wrappers流量监控程序,基于应用层。前面3个是基于数据链路层

怎么配置:

它有两个服务文件

1. 天使文件:/etc/hosts.allow                         2. 恶魔文件:/etc/hostst.deny
   放行流量                                              拒绝流量

# 如果有一个服务既没有在天使,也没有在恶魔,那么默认天使。
# 配置完立即生效,不像firewall 那样永久还要重启,麻烦。

# cat /etc/services
  用来查看计算机协议对应的端口号,


开始使用恶魔配置文件:

1. vim /etc/hosts.deny
编辑hosts.deny恶魔文件

2.sshd : 192.168.10.0/24IP地址或者192.168.10.禁止网段
首先是服务名称 : IP地址 或 网段 ,因为是在恶魔文件里所以自动禁止


开始使用天使配置文件:

1. vim /etc/hosts.deny
编辑hosts.deny恶魔文件

2.sshd : 192.168.10.0/24IP地址或者192.168.10.禁止网段
首先是服务名称 : IP地址 或 网段 ,因为是在恶魔文件里所以自动禁止

3. vim /etc/hosts.allow
编辑hosts.deny天使文件

4.sshd : 192.168.10.1
服务名称 :IP地址

恶魔文件虽然禁止了,但天使有权在里面抓人,允许一些文件放行。

                       天使 > 恶魔

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用ssh服务管理远程主机

网卡会话:
类似firewall-cmd的模板(区域)。网卡的配置模板

命令:nmcli
用来配置网络的


会话:company: 手动去设置的地址
     
会话:house: 用DHCP来分配的,它是由虚拟机提供DHCP来分配的。所以点击虚拟机菜单上的“编辑”、“虚拟网络编辑器”、仅主机模式下√使用本地DHCP服务...

1. nmcli connection show (可以tab补齐参数)
显示当前已有的会话,不过如果没有设置会只显示一个网卡的信息。


2. nmcli connection add con-name company ifname eno16777728 autoconnect no type ethernet ip4 192.168.10.88/24 gw4 192.168.10.1
会话,添加一个会话名字,叫company公司,网卡的名称,eno16777728(这个和实际的来,实际网卡是什么就填什么),是否进行自动连接no(默认它不要生效等我吗启动它),定义网卡类型是以太网ip4   /24,基于ipv4的网关地址
192.168.10.1

(1)会话:company: 手动去设置的地址                (2)会话:house: 用DHCP来分配的
      192.168.10.88/24(不一定)                        192.168.100.0(可能不一定)


3. nmcli connection add con-name house type ethernet ifname eno16777728
会话,添加一个会话名字,叫house家庭,定义网卡类型以太网,网卡名称.......


4.nmcli connection up company
开启会话,开启公司


5. ifconfig
查看网卡,就会发现IP地址变成了192.168.10.88。所以这就像魔法阵一样只要画好它的作用,在往里面输入魔力就够了。


6. nmcli connection up house
开启家庭会话


7.ifconfig
查看网卡,就会发现IP地址变成192.168.100.2~254。公司是我们手动设置成88所以就变88。而家庭由DHCP提供IP所以网段不一样。(其实就是模拟公司和家庭的环境,就像我现在路由就是DHCP提供IP地址,谁会莫名其妙的改手动IP啊,就我一台电脑2-254任我选)

还有一种配置方法就是:

命令:nmtui
这是一个图形界面......
 


还有右上角的 小电脑 也可以  

网卡绑定技术:
就是两块网卡同时工作。坏的时候可以马上顶替上去(故障转移+负载均衡)


1. 现在虚拟机上装载一个网卡,再加上我们原先的一共就两块啦


2.ifconfig
查看一下装载成功没~
1.号卡:eno16777728          2号卡:eno33554968


3. cd /etc/sysconfig/network-scripts/
进入到 /etc 目录下的网卡配置文件。网卡配置必须有“主” “从”属性,1号卡为主2号卡为从,从卡不应该有IP地址信息等。


4. ls
查看目录里的网卡


5. vim ifcfg-eno16777728
编辑1号卡


6.删除光里面的内容

TYPE=Ethernet                           网卡类型=以太网
BOOTPROTO=none                          网卡启动类型=默认(它有静态和动态、默认)
ONBOOT=yes                              开机启动=是       (一定要,是)
USERCTL=no                              是否让我们用户用命令行控制=不
DEVICE=eno16777728                      设备名称=1号卡
MASTER=bond0                            绑定网卡的名称=bond0(绑定网卡的专用名称)
SLAVE=yes                               是否是从卡=是


7. vim ficfg-eno33554968
编辑2号卡,和1号卡内容一样


8. vim ifcfg-bond0
编辑bond0

type=ethernet                        
bootproto=none                      
onboot=yes                        
userctl=no                     
device=bond0                      
ipaddr=192.168.10.10             
prefix=24               子网掩码位数 24位
dns=192.168.10.1
nm-controlled=no         禁用它(NetWorkManager)


systemctl status NetWorkManager:
它是管理我们网卡正常服务的,考CA的时候会把它关闭掉,现在不用管。

9. vim /etc/modprobe.d/bond.conf
编辑它,通知系统内核,我们修改了设备配置文件

alias bond0 bonding
定义一个bond0,它使用了网卡绑定技术

options bond0 miimon=100 mode=6
参数,时间是=100毫秒。模式6,意思是如果没坏就同时工作,坏了就让另一个顶替上去


systemctl restart network
重启网卡


远程控制服务:


先规定两个服务端:

服务端192.168.10.10

客户端192.168.10.20


远程连接就是在服务端上执行 ssh 192.168.10.20访问客户端。
这样就可以远程控制客户端了


主配置文件:保存了最重要的参数
/etc/服务名称/服务名称.conf
普通配置文件:


例子1
vim /etc/ssh/sshd_config
ssh 的主配置文件

#开头的是注释文件
:开头的是注释文件

:set un
显示行号

78:是否使用密码验证,yes
48:是否允许root登录,yes
17:端口号,22


然后修改17行的端口号22,改成3389(win的端口号,会误以为是win系统,其实是骗他的)


试一下:
ssh -p 3389 192.168.10.10
用3389端口号,连接.10.10
-p:连接哪个端口号


systemctl restart sshd
重启服务sshd


systemctl enable sshd
加入到启动项当中

这才是完整的一套。

例子2

vim /etc/ssh/sshd_config

48行的yes 改成 no,这样别的root就不能登录我们的root


安全密钥验证:

私钥加密,公钥解密

在客户端生成密钥对(公钥和私钥),然后将公钥传送给我们服务端,由我们服务端进行保存我们公钥的操作,这样就可以让我们的服务端没有密码的取访问

命令: ssh-keygen 生成公钥和私钥

ssh可以tab补齐

敲完命令会提示,要设置文件保存路径,这个不管直接回车

然后会提示,是否给密钥设置密码呢?,不用,在回车

最后会提示,你是否确认呢?,回车
ok


cat ~/.ssh/id_rsa                                 .pub 是公钥位置
密钥保存在客户端的这里(以.开头是隐藏文件) 
私钥文件


ssh-copy-id 192.168.10.10
密钥传到服务端上面
yes
传的是公钥文件


这样,在访问
ssh 192.168.10.10
就直接访问了,不用再输入密码了

如何不用密码,直接密钥登录,毕竟这样更安全嘛:

1. 在服务端下
vim /etc/ssh/sshd_config

2.然后到78行,改成no(或者在前面加#号,让它变成注释信息)


3. systemctl restart sshd
重启服务sshd

4. systemctl enable sshd
加入到启动项当中

远程传输命令:

命令:scp

ssh可以传输命令,那么scp就可以传输一个文件。它是基于ssh协议下的传输命令

在客户端是上创建一个文件

1. vim haha

在写入一些信息(随便啥都行)


2. scp haha 192.168.10.10:/root
用scp 把haha 传送到.10.10 的 root里

远程下载一个服务器上的文件,操作:

1. 在服务端上创建文件
vim hoho

在写入一些信息(随便啥都行)


2. 在客户端上输入命令
scp 192.168.10.10:/root/hoho /home
你只要知道文件的具体位置就行。下载到我们的home里面


不间断会话服务:

它会让我们的远程连接不中断

screen服务

因为screen服务没有安装,所以先配置Yum仓库
yum仓库:1.挂在光盘  2.编写配置文件  3.使用

1. mount /dev/cdrom /mdeia/cdrom
把/dev/cdrom光盘所在的文件位置 挂载 到 /mdeia/cdrom。如果没有mdeia那就mkdir -p创建一个

vim /etc/fstab
编辑老熟人

/dev/cdrom /mdeia/cdrom iso9660 defaults 0 0


2. vim /etc/yum.repos.d/xiaomao.repo
编辑yum仓库,名字叫做xiaomao

一下是yum仓库的格式:


[]             里面写的yum仓库的唯一标识符(就是名字,我们刚刚起的是xiaomao)           
name=          仓库的名称      
baseurl=       挂载是由什么提供的     本地提供file:///mdeia/cdorm      网站提供http://        ftp://   
enabled=       1  启用yum仓库            
gpgcheck=      0   不要校验                 

好,yum仓库配置完了(挺简单的)


3.  yum install screen
配置好了就安装screen服务吧

安装过程中会提示一次 [y/d/N] 不用说,肯定y啊

4.如何使用 screen

1. screen -S xiaoxin
新建一个会话 ,参数大写 ,名字xiaoxin
回车,就进入到xiaoxin的会话里了

这样万一断电、断网
那么就敲screen -ls
查看当前有哪些会话任务 (Detached就是等待传输的意思)
screen -r xiaoxin
恢复xiaoxin的会话,或者编码也行


2. 还有一种快捷的使用screen

screen vim haha
直接在vim前 加screen

还可以实现多台服务器的 屏幕的共享

实验:

开启两个终端

ssh 192.168.10.10

ssh 192.168.10.10

都去连接一下服务器


然后在一个终端
screen -S xiaohai
新建一个会话,回车

再在另一个终端
screen -x
进行同步,回车

这样就两个界面显示一个内容,类似上计算机课时老师的切换共享她的主机屏幕


第十章
使用Apache 服务部署静态网站

网站:让我们用户通过浏览器去访问到的文本资源叫做网站服务(老刘:刘遄专利)

http:是网站协议

httpd:是服务名称,软件包名称


配置网站服务:

1.配置yum仓库
mount /dev/cdrom /media/cdrom
挂载光盘 到 media

df -h
查看挂载信息,一定要挂载好,这才第一步啊


vim /etc/yum.repos.d/rhel.repo
编辑 yum仓库

[rhel]                        
name=rhel                
baseurl=file:///mdeia/cdorm       
enabled=1                   
gpgcheck=0                      

好,yum仓库配置完了

yum install httpd
yum 安装 httpd服务

2. vim /etc/httpd/conf/httpd.conf
编辑我们的男主角:httpd     (什么?你问女主角是谁?当然是yum啊!你说yum不是和screen好上了吗?拜托yum可是很博爱的!)


systemctl restart httpd
重启httpd
systemctl enable httpd
加入到启动项


然后输入网址192.168.10.10

然后会看到一大啪啦的东西,这代表两个情况

1.网站没有数据。 2.权限不足

因为是我们的网站所以不存在2情况
所以编辑网站数据。怎么编辑那?

/var/www/html
因为网站数据,随时都在变化,所以都放/var目录下

ls
里面是空的

vim index.html
编辑网站首页文件

写一些东西

再刷新一下就有你写的那些东西了


提升一下难度:

我觉得/var/www/html作为存放网站的目录,啊~太LOW了,换一个,怎么换

vim /etc/httpd/conf/httpd.conf

:set un

119:DocumentRoot "/var/www/html"
这就是网站的目录,把它改成/home/wwwroot

124:<Directory "/home/wwwroot">
对这个定义好的目录,在进行一次说明(就像密码输入两次一样)

systemctl restart httpd
重启

mkdir /home/wwwroot
因为是你一时的兴起改目录,尴尬的是还没有,所以创建一个目录

systemctl enable httpd
顺手

然后在wwwroot里写一些东西,最后开启网页

但是输入网址后出现一个红色标题的网页说明:
1.网站没有数据。 2.权限不足

但很遗憾,这两个都不是,是因为一个叫做SElinux安全子系统搞的鬼。

SELinux 安全子系统:

目的就是让我们用户得到更安全的使用界面。目的是好的。

考试要求开启SELinux的前提下,操作。

由两个部分组成:

SELinux域:对于服务的功能进行限制,比如美图秀秀就一个看图的软件,就不能看银行卡信息。

SELinux安全上下文:针对文件,在文件上打标签,做二次防护。上管服务,下管文件。


cat /etc/selinux/config
查看selinux,看看模式是否是 enforcing。


setenforce 0 临时关闭

setenforce 1 临时开启

setenforce 0 临时关闭

这样在wwwroot里写入内容后再刷新网页就会看到内容了

其实/home/wwwroot 中 home目录有问题

ls -ldZ /var/www/html
查看目录,查看文件上的上下文的值,查看html的
所以原先网站的上下文的值是 httpd_sys_content_t 这个网站_系统_存的内容


再看/home/wwwroot,会看到上下文的值是 home_root。

它们两个上下文的值根本不一样,这就是为什么wwwroot会出错的原因

所以需要这个命令:
semanage 管理SELinux的策略

-l 查询     -a 添加      -m修改       -d删除

semanage 目录后面不能有/

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
用命令  修改上下文 修改  -t具体是什么  是httpd_sys_content_t /home/wwwroot

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
然后在执行一遍,加/*代表里面的全部


这只是第一步,接下来还要让它 “生效一下”
restorecon -Rv /home/wwwroot   -R针对目录 -v显示过程


再刷新就OK了,能看见里面的内容了。


个人用户主页功能

1.yum install httpd
安装apache网站服务


2.vim /etc/httpd/conf/httpd.conf
编辑etc下的httpd配置玩文件
让你熟悉熟悉,其实不用配置........


3.cd /etc/httpd/conf.d/
去这个目录里
ls
看一下,有个userdir.conf,编辑它 。是否开启个人用户的主页功能


4.17:UserDir disabled  禁用当前个人用户的主页功能。加#,变成注释就取消禁用了。
  24:UserDir public_html 禁用当前模板。加#,定义每个用户保存网站数据的地方(目录)


5.systemctl restart httpd
重启,重启,重启。
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。


6.su - linuxprobe
切换到普通用户linuxprobe
mkdir public_html
新建用户保存网站数据的目录
cd public_html
去目录
echo"hahaha" > index.html 
创建用户自己的网页文件,名称叫做index.html 
cd..
回到上级目录,上级是家目录
chmod -Rf 755 /home/linuxprobe
给linuxprobe一个高点的权限755
exit
退回到 root


7.然后就可以看看效果了,打开网页192.168.10.10/-linuxprobe
但是因为SELinux的安全,你不能看见内容,所以要开启SELinux的域。
这需要修改SELinux的策略(天天修改win策略,现在修改SELinux策略,很牛逼吧)


8.命令 getsebool -a 查看策略
  

  命令 setsebool    设置策略
-P 永久生效


单纯的使用 getsebool -a 的话会有一大堆策略(就像我看win策略一样)
所以 getsebool -a | grep http

httpd enable homedirs --> off
启用homedirs(但是是 off 所以应该开启)

setsebool -P httpd_enable_homedirs=on
-P永久生效 =on

然后然后然后!!刷新网页,就能看见因为echo"hahaha" > index.html。而出现的 hahaha字母了


用户信息保护起来,密码加密:

网站验证小窗口界面。

htpasswd
生成密码文件,用来验证登录请求。

-c 生成密码文件

1. htpasswd -c /etc/httpd/passwd zhangsan
生成密码文件 的 地址是zhangsan
输入两次密码

2. file /etc/httpd/passwd
这一步按照字面意思理解是:查看passwd文件类型。不知道是不是,然后显示是:ASCII text


3. vim /etc/httpd/conf.d/userdir.conf
编辑,然后把<Directoyy "/home/*/publin_html">下的所有东西一概删除掉(老刘一贯作风)


allowoverride all               是否允许伪静态技术。(便于搜索引擎搜索到)
authuserfile /etc/httpd/passed  认证文件参数,待会要到哪找到这个文件。
authname"sdfsdfdsfdsfdsf"       提示信息而已。让他知道输入错误密码会很倒霉。
authtype basic                  账号和密码方式验证
require user zhangsan           登录用户的名称 zhangsan

systemctl restart httpd
重启,重启,重启。
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。


在访问网站就会提示:这是私人网站,(只能zhangsan进)如果你输入错误密码,会很倒霉。


虚拟主机功能

可以让你的服务器上部署多个网站


每个网站的标识信息(防止误访问)


一、基于IP地址
1. 通过4个方法配置网卡(第四种最好......)

vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
编辑网卡配置文件

复制两次ip地址,然后改192.168.10.20/30
这样就有三个了10.20.30
这一步目的就是搞出3个IP地址


2.systemctl restart network
保存
可以ping IP地址一下全当检查配置网卡了


3. mkdir -p /home/wwwroot/10 (作死,修改目录,还记得上次的wwwroot吗~,这一步是不需要的,为了增加难度)
   mkdir -p /home/wwwroot/20
   mkdir -p /home/wwwroot/30

cd /home/wwwroot
echo "192.168.10.1111111111111111111111111" > 10/index.html
echo "192.168.20.2222222222222222222233321" > 10/index.html
echo "192.168.30.3333333333333333333333331" > 10/index.html


如果没有安装yum,现在就安装一下


vim /etc/httpd/conf/httpd.conf
编辑主配置文件(孟获文件???)
:set nu

:130行 <virtualhost 192.168.10.10>         写入虚拟机信息,定义一个IP地址。这是网站名称
       documentroot /home/wwwroot/10       当有用户访问.10的时候,就从这个目录里获取资源
       servername www.linuxprobe。com      这个没有用处,仅仅是防止报错
       <diretcory /home/wwwroot/10>        对目录权限进行设置,否则会提示权限不足的报错
       allowoverride nonoe                 伪静态技术,不需要
       require all granted                 允许所有访问请求
       </diectory>                         结束对目录权限的设置          
       </virtualhost>                      结束对虚拟机的设置

然后把它复制 两份 因为有三个ip地址嘛
改ip地址 和 访问位置目录 和 权限 (就3个.10)网站服务不区分大小写。

复制时,中间空一行。好孟获编辑完了(???)

systemctl restart httpd
保存
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。


但是如果现在访问会提示SELinux报错(虽然很讨厌但不能关),所以...

ls - ldZ /var/www/html

查到原先值是 httpd_sys_content_t

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/*

restorecon -Rv /home/wwwroot
激活、生效一下

改完所有文件

在访问文件就没问提了。

二、基于主机域名(就是网站地址)

vim /etc/hosts
有问题就修改hosts(开玩笑)
可以再本地上面强制解析

写:
192.168.10.10 www.linuxprobe bbs.linuxprobe tech.linuxprobe

ping www.linuxprobe
检查一下

还原虚拟机了所以 yum install httpd 重新配置一下(不需要每次,只是老刘为了从0开始每次都还原)


1. mkdir -p /home/wwwroot/www
   mkdir -p /home/wwwroot/bbs
   mkdir -p /home/wwwroot/tech

   cd /home/wwwroot

   echo "wwwwwwwwwwwwwwww" > www/index.html

    
   echo "bsbsbssbsbsbsbbs" > bbs/index.html


   echo "xxxxxxxxxxxxxxxx" > tech/index.html


   vim /etc/httpd/conf/httpd.conf
   配置孟获???

   :set nu  130行

   # 要写具体的域名
   <virtualhost 192.168.10.10>         写入虚拟机信息,定义一个IP地址。这是网站名称      
   documentroot /home/wwwroot/www      当有用户访问www的时候,就从这个目录里获取资源 
   servername www.linuxprobe       以前是防止报错,现在域名就不是了,不能瞎写(只有域能用得上,ip和端口号都不用管)     
   <directory> /home/wwwroot/www       对目录权限进行设置,否则会提示权限不足的报错
   allowoverride none                  
   require all granted                 允许所有访问请求
   </directory>                 
   </virtualhost>               


然后和ip方式一样,复制2份,每份空一行,www改成 bbs 和 tech
 </directory>                 
 </virtualhost>
结束符不用


systemctl restart httpd
保存
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。


但是如果现在访问会提示SELinux报错,所以......

ls - ldZ /var/www/html
查到原先值是 httpd_sys_content_t

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*

restorecon -Rv /home/wwwroot
激活、生效一下

改完所有文件

在访问文件就没问提了。


三、基于端口号(最难,不考)
让用户通过制定的端口号来访问服务器上的网站资源。使用Apache配置虚拟网站主机功能时候,基于端口号配置是最难的。

还原虚拟机了所以 yum install httpd 重新配置一下


   mkdir -p /home/wwwroot/6111

   mkdir -p /home/wwwroot/6222

   echo "61111111111" > /home/wwwroot/6111/index.html
   echo "62222222222" > /home/wwwroot/6222/index.html

   vim /etc/httpd/conf/httpd.conf
   
    :set nu
  43:listen 6111
  44:listen 6222
 130:<virtualhost 192.168.10.10:6111>
     documentroot /home/wwwroot/6111
     servername www.linuxprobe      这一步又一次,变得没用了
     <directory /home/wwwroot/6111>
     allowoverride none
     require all granted
     </directory>                 
     </virtualhost> 

应该在空一行,但老刘没空,我先空了。

    <virtualhost 192.168.10.10:6222>
     documentroot /home/wwwroot/6222
     servername www.linuxprobe      这一步又一次,变得没用了
     <directory /home/wwwroot/6222>
     
:wq!


systemctl restart httpd
保存
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。

以上感觉都一样,因为最后都会SELinux限制。但是这次不光SELinux报错、重启也会报错,以前是80端口号,但现在是6111和6222所以会直接限制掉,不光SELinux的文件资源,同时也限制网站去访问端口号的资源。


所以第一步:先解决SELinux

1. ls - ldZ /var/www/html
查到原先值是 httpd_sys_content_t

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*

semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*

restorecon -Rv /home/wwwroot
激活、生效一下

第二步:

semanage port -l
显示SELinux所有端口号的协议

semanage port -l | grep http
通过管道符搜索关键字 http
找到 http_port_t网站使用的端口号是多少

semanage port -a -t http_port_t -p tco 6111
-a修改 -t添加 -p使用什么协议 tco协议 端口号6111

semanage port -a -t http_port_t -p tco 6222

添加2个端口号到策略当中,让它能访问放行我们用户的请求操作。

systemctl restart httpd
保存
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。


这就完成了

Apache的访问控制

自带的功能,比较冷门,就像win自带画图,但一般都用美图秀秀,好尴尬。....


还原虚拟机了所以 yum install httpd 重新配置一下


cd /var/www/html

mkdir server
(或者cd /var/www/html/server怎么写都一样)

echo "hahahhhahahahahha" > server/index.html

vim /etc/httpd/conf/httpd.conf
主配置文件(孟获???)

:set un
129: <directory "/var/www/html/server>      必须是目录全称
     setenvif  user-agent "Firefox" ff=1    当我们用户访问浏览器的时候,浏览器的标识Firefox 小名ff=1
     order allow,deny                       allow允许,没有火狐时deny拒绝
     allow from env=ff                      允许ff
     </directory>

systemctl restart httpd
保存
systemctl enable httpd
顺手,顺手,顺手,顺手,顺手,顺手。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

第十一章 
使用vsftpd服务传输文件

它有三个模式:
1. 匿名开放模式     2. 本地用户模式       3.虚拟用户模式(最难,超难,不考)

20:传输文件
21:远程控制vsftpd

一、匿名公开模式

vsftpd安装:

1. yum install vsftpd
会提示y/n  y


2. vim /etc/vsftpd/vsftpd.conf
编辑 (有是一个孟获,哈哈)vsftpd的主配置文件

这个编辑很有讲究,先退出。
cd /etc/vsftpd
先进到vsftpd里
mv vsftpd.conf vsftpd_bak
重命名叫做vsftpd_bak(备份的意思)        
grep "#" vsftpd
过滤出包括#行的vsftpd_bak
然后你会看见所有带“#”的行
在反选一下:
grep -v "#" vsftpd_bak
显示出不带#行的内容
grep -v "#" vsftpd_bak > vsftpd.conf
把显示出不带#行的内容输出覆盖的写入到vsftpd

这样一通骚操作再看一下
wc -l vsftpd.conf
就剩下14行了。


3. vim vsftpd.conf

anonymous_enable=YES          是否允许匿名公开访问模式,是
anon_umask=022                文件的反掩码,目录是777减去umask ;文件是666减去umask 。umask值越小文件权限越大,通过调控umask值来控制文件权限大小,不过默认是022
anon_upload_enable=YES        是否允许匿名用户上传文件,是
anon_mkdir_write_enable=YES   是否允许匿名用户创建和写入文件,是
anon_other_write_enable=YES   是否允许其他的写入权限,删除文件,是
local_enable=YES              是否允许本地模式登录,是
write_enable=YES              是否允许本地模式写入,是
local_umask=022               本地模式的反掩码
dirmessage_enable=YES         是否显示提示信息,就是你进入某个系统目录,会给你提示:这是系统文件,没事别瞎改,手贱。
xferlog_enbale=YES            是否记录成日志,是 
connect_from_port_20=YES      文件传输是否用 20 端口号传输,是 
xferlog_std_format=YES        是否以标准的格式来写入日志,是(真他妈废话,写得了)      
listen=NO                     是否开启独立的监听服务,否       
listen_ipv6=YES               是否允许ipv6访问,是     
pam_service_name=vsftpd       是否允许pam(胖母)模块的验证          
userlist_enable=YES           限制本地用户登录的功能,黑名单文件,是   
tcp_wrappers=YES              是否受到防火墙限制,是       

systemctl restart vsftpd
保存
systemctl enable vsftpd
顺手,顺手,顺手,顺手,顺手,顺手。

4. yum install ftp
安装ftp连接工具

ftp 192.168.10.10
连接一下服务器

它会问你名字:anonymous(匿名)(匿名登录的目录在/var/ftp)

密码:空

ls

修改一下pub的权限cd /var/ftp
 ls
里面有个pub文件

chmod -Rf 777 pub


cd pub

mkdir xiaohai

到这一步就会EXLinux安全提示了,怎么办呢?

exit
退出

getsebool -a | grep ftp
搜索关键词ftp

ftpd_full_access --> off
开启这一条意思是开启一切权限

getsebool -P ftpd_full_access=on
开启

midir xiaohai
现在在现新建 xiaohai就不会提示了,并创建成功。结束。

同时还能进行删除,重命名

接着上面的:
rename xiaohai xioagguo
回车
重命名 xiaohai 变成 xiaoguo

rmdir xiaohai
删除 xiaohai
回车

结束。

二、本地用户模式:

yum install vsftpd
安装vsftpd

yum install ftp
在安装ftp

cd /etc/vsftpd

ls

mv vsftpd.conf  haha
重命名 haha

grep -v "#" haha
过滤掉#的行,留下有用的行

grep -v "#" haha > vsftpd.conf
内容输出到vsftpd.conf

vim vsftpd.conf
其实不用编辑,只不过习惯打这一行了。
ls
ftpusers  和  user_list
这个两个文件是黑名单文件,在里面的用户文件就被禁止登录。


systemctl restart vsftpd
重启

systemctl enable vsftpd
顺手,顺手,顺手,顺手,顺手,顺手

ftp 192.168.10.10
远程连接服务器

我们起个名叫root
但是不行,因为黑名单里有root,那么就......

vim ftpusers
编辑黑名单1号

删除root

vim user_list
编辑黑名单2号

删除root


systemctl restart vsftpd
重启


ftp 192.168.10.10

root 这就允许了

密码:


因为是本地模式,默认在家目录所以我们在创建一个目录


mkdir haha

会提示不允许,那么就...

getsebool -a | grep ftp
搜索关键词ftp

ftpd_full_access --> off
开启这一条意思是开启一切权限

getsebool -P ftpd_full_access=on
开启


mkdir haha

这就允许了

rename haha hoho
然后修改名字

rmdir hoho
然后在删除掉


三、虚拟用户模式:

专门虚拟出来用户登录服务器,虚拟用户只负责登录服务器,在本地中是没有实体的,这样万一黑客入侵虚拟用户,他只能登录文件传输服务,而不能登录整台服务器。

命令:db_load
      用来加密

参数:-T 我要加密啦!    -t 格式

1. cd /etc/vsftpd

vim vuser.list

里面的规则是:

单数行:是账户
偶数行:是密码

zhangsan
123
lisi
123

2. db_load -T -t hash -f vuser.list vuser.db
用hash(哈希值)给vuser.list加密


3. useradd -d /var/ftproot -s /sbin/nologin virtual
创建本地用户(实体)-d家目录保存到/var/ftproot  -s登录终端/sbin/nologin virtual

创建一个本地用户实体的,用来和虚拟用户映射(大概意思就是虚拟用户的载体,身体),然后这具身体的位置是/var/ftproot,登录终端/sbin/nologin目的是不让用户登录到服务器上面,映射用户的名称。


4. 编写pam模块
可插拔式模块,意思是召之则来挥之即去,还可以当中间人。增加安全


cd /etc/pam.d/
先进入中间人当中

vim vsftpd.vu

auth required pam_userdb.so db=/etc/vsftpd/vuser
调取一个文件

account required pam_userdb.so db=/etc/vsftpd/vuser
验证登录

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO         匿名用户 
local_enable=YES            本地用户  
guest_enable=YES            虚拟模式
guest_username=virtual      验证用户的名称
allow_writeable_chroot=YES  登录到服务器了,默认目录var,不让它到别的目录,因为有牢笼机制。

write_enable=YES              
local_umask=022               
dirmessage_enable=YES         
xferlog_enbale=YES            
connect_from_port_20=YES     
xferlog_std_format=YES          
listen=NO                       
listen_ipv6=YES              
pam_service_name=vsftpd.vu            
userlist_enable=YES          
tcp_wrappers=YES             
user_config_dir=/etc/vsftpd/vusers_dir
:wq!

vim /etc/vsftpd/vsftpd.conf

mkdir /etc/vsftpd/vusers_dir

cd /etc/vsftpd/vusers_dir

touch zhangsan

touch lisi

vim zhangsan
anon_upload_enable=YES        是否允许用(虚拟)户上传文件,是
anon_mkdir_write_enable=YES   是否允许用户(虚拟)创建和写入文件,是
anon_other_write_enable=YES   是否允许其他的写入权限,删除文件,是

:wq!

systemctl restart vsftpd
重启

systemctl enable vsftpd
顺手,顺手,顺手,顺手,顺手,顺手

ftp 192.168.10.10
访问服务器

zhangsan
密码:123
回车

mkdir xiaofan
创建
回车

rename xiaofan xiaoguo
重命名
回车

rmdir xiaoguo
删除
回车

以上操作都可以在服务器 192.168.10.10上操作。


exit

ftp 192.168.10.10
访问服务器

lisi
123(你连密码都输入不了......没权限。)


结束。

简单的文件传输协议 TFTP

yum install tftp-server tftp
安装tftp

vim /etc/xinetd.d/tftp

:set up

14: disable    =no
     禁用       不   所以就是开启(好坑...)


systemctl restart xinetd
重启 xinetd

exit

cd /var/lib/tftpboot

ls

vim xiaofeng
dasdsad
sadsad
sadasdxzczc
eeerer

:wq!


另开一个界面
tftp 192.168.10.10 

get xiaofeng
下载 xiaofeng

结束

 

 

 

 

 

 

 

 

 

 

 

 

 

第十二章 

使用Samba或 NFS 实现文件共享


yum install samba
安装samba

cd /etc/samba/
进入samba

ls

vim smb.conf

:set un

mv smb.conf  haha.conf

grep -v "#" haha.conf
过滤掉 #

grep -v "#" haha.conf | grep -v ";"
过滤掉 # 和 ;

grep -v "#" haha.conf | grep -v ";" | grep "^$"
过滤掉 # 和 ;和 空 行

grep -v "#" haha.conf | grep -v ";" | grep "^$" > smb.conf
在输出到smb.conf中
过滤结束。(正好用用多重|||管道符)


vim smb.conf

:set nu

20---14行是 打印机配置

13---10行是 共享每个用户的家目录

8-9 行是  打印机 类型

7 行是  日志

以上都没用,都可以删掉


开始配置:
[xiaofeng]                          待会用户也能看见的名称
comment = qweerttyuoasdgfjhlkj      描述信息,没有用
path = /xiaofeng                    共享的目录,是根目录下的xiaofeng
public = no                         是否共享,不(我们需要验证才能共享,所以是no)
writable =yes                       是否允许写入,是

其实 = 号两边可以不用空格,在5/6里面必须要空,但在7里面就随便了。

:wq!


命令 pdbedit
用来管理smb服务程序的账户信息数据库

-a 在第一次把账户写入到数据库是需要使用。 -u 要加入的用户名称      

pdbedit -a -u linuxprobe

密码:123
确认密码:123
这个密码是,专门用来验证samba登录用的。

mkdir /xiaofeng
在设置 目录xiaofeng

systemctl restart smb
重启
systemctl enable  smb
顺手,顺手,顺手,顺手,顺手,顺手。


然后用win访问Samba试试

结果访问超时,为什么呢?

1.iptables -F
防火墙没有清空,然后在等一会 10秒左右吧

最后输入用户名 linuxprobe 密码123

但是,你只能访问linuxprobe,不能看里面的文件,为什么呢?

这个是SELinux的安全保护


getsebool -a | grep samba
过滤出和samba有关的行

找到 samba_export_all_rw --> off

setsebool -P samba_export_all_rw=on

chmod -Rf 777 /xiaofeng
在给他文件权限
这样,才能实现真正的,访问用户,访问文件,修改文件

结束。

两台win系统的共享

yum install cifs-utils
安装cifs-utils

vim auth.smb
认证文件

username=linuxprobe       名字
password=redhat           密码
domain=MYGROUP            工作域   vim /etc/samba/smb.conf 忘记了到这里查看。

:wq!

vim /etc/fstab

//192.168.10.10/xiaofeng /xiaofeng cifs credentials=/root/auth.smb 0 0
服务端的ip地址  共享的目录,挂载到本地xiaofeng,格式cifs是samba的协议,认证文件....  不要备份。没有优先级。


mkdir /xiaofeng

mount -a
挂载

df -h

cd /xiaofeng

ls
会看见haha.txt

vim haha.txt 
adasdasd
sadsadsa
sadasdsa
asdzxcz
zxc
zxxzczx

你可以有权编辑文件了

NFS 网络文件系统

iptables -F
清空防火墙

mkdir /linuxcool

echo "qqqqqqqqqqqqqqqq" > /linuxcool/readme.txt

chmod -Rf 777 /linuxcool/readme.txt

vim /etc/exports
/linuxcool 192.168.10.20(rw,sync,root_squash)rw读写,数据同步异常断电可保数据,避免对方root操作我们的系统 {192.168.10.20()共享给ip。192.168.10.*()共享给网段。*共享给所有人}

systemctl restart rpmbind
重启

systemctl restart nfs-server
重启

systemctl enable nfs-server
顺手,顺手,顺手,顺手,顺手,顺手。


最后进入到客户端
命令: showmount -e
查看对方服务器上有哪些共享

结束。


showmount -e 192.168.10.10
查看有哪些共享

vim /etc/fstab

192.168.10.10:/linuxcool /linuxcool nfs defaults 0 0    

:wq!


mkdir /linuxcool
创建目录

mount -a
挂载目录

cd /linuxcool

ls
readme.txt

cat readme.txt
qqqqqqqqqqqqqqqq

结束。

autofs 自动挂载服务

我使用的时候自动挂载,不使用的时候不要工作。减少消耗资源

 yum install autofs
安装 autofs

vim /etc/auto.master
autofs的主配置文件(孟获????)

:set un

7:/media /etc/iso.misc
:wq!


vim /etc/iso.misc

iso -fstype=iso9660,ro :/dev/cdrom       文件系统类型是iso9660,ro只读的意思 ,设备名称和位置
:wq!


systemctl restart autofs
重启
systemctl enable autofs
顺手,顺手,顺手,顺手,顺手,顺手。

当你查看时时没有的,没有目录。但当你走进去 cd iso 时,你却进去了。然后在查看光盘内容,就看见详细信息了。


 

 

 

 

 

 

 

 

 

 

 

 

 

第十四章
使用DHCP动态管理主机地址(天天打交道的)

dhcp可以分配IP地址、子网掩码、网关、主机名称

DHCP是0
1-254是地址


1.作用域      2.超级作用域       3.排除范围      4.地址池       5.预约      6.租约:1.默认租约 2.最大租约     

默认租约:一定的时间到了就检测你还在网中吗
最大租约:如果不在的时间超过最大租约就回收IP地址

yum install dhcp
安装dhcp

vim /etc/dhcp/dhcpd.conf
dhcp的主配置文件


1.点击虚拟机,点击虚拟网络适配器,吧dhcp取消掉。


2.ddns-update-style none;                             动态主机地址更新技术,否             
  ignore client-updates;                              忽略客户端给我们更新的内容          
  subnet 192.168.10.0 netmask 255.255.255.0 {         定义作用域,子网掩码           
  range 192.168.10.30 192.168.10.100;                 定义地址池,30到100
  option subnet-mask 255.255.255.0;                   定义子网掩码
  option routers 192.168.10.10;                       定义路由地址(吓一跳地址)
  option domain-name-servers 8.8.8.8;                 分配DNS地址
  default-lease-time 21600;(秒)                      租约时间
  max-lease-time 43200;(秒)                          最大租约时间
}
:wq!

systemctl restart dhcpd
重启
systemctl enable dhcpd
顺手,顺手,顺手,顺手,顺手,顺手。

3. iptables -F

service iptables save


进入虚拟的win7系统 , 重启网卡(本地连接)

结束

绑定IP地址
每次卡机都是一个ip

1. vim /etc/dhcp/dhcpd.conf


2.ddns-update-style none;                             动态主机地址更新技术,否             
  ignore client-updates;                              忽略客户端给我们更新的内容          
  subnet 192.168.10.0 netmask 255.255.255.0 {         定义作用域,子网掩码           
  range 192.168.10.30 192.168.10.100;                 定义地址池,30到100
  option subnet-mask 255.255.255.0;                   定义子网掩码
  option routers 192.168.10.10;                       定义路由地址(吓一跳地址)
  option domain-name-servers 8.8.8.8;                 分配DNS地址
  default-lease-time 21600;(秒)                      租约时间
  max-lease-time 43200;(秒)
  host xiaozhu {
          hardware ethernet 00:0c:29:69:46:20;        cat /var/log/messages到这里找物理地址,一般在最下面。
          fixed-address 192.168.10.88                 要保存的吉祥ip号
}
}
:wq!

systemctl restart dhcpd
重启

结束


第十五章

使用Postfix与Dovecto部署邮件系统

yum install bind-chroot
安装bind-chroot
DNS

1. vim /etc/hostname
配置主机名称

2. mail.linuxprobe

:wq!


3. iptables -F
清空防火墙
service iptables save

4.hostname
可以看见里面有 mail.linuxprobe(检查一下)

5. vim /etc/named.conf
配置DNS

第一行的 listen-on port 50 {127.0.0.1;}   改成 { any;}

最后一行的 allow-query {localhost}        改成 { any;}

:wq!


vim /etc/named.rfc1912.zones 

第一步,清空

zone "linuxprobe" IN {       域的信息     
type master;                     服务器类型,主服务器
file "linuxprobe";           
allow-update {none;};            允许从服务器地址,no禁止别人同步我们的数据
};                        

:wq!


6. cd /var/named

ls
找到 named.localhost

cp -a named.localhost linuxprobe.zone
把named复制到linuxprobe里

vim linuxprobe.zone
编辑

@    IN   SOA   linuxprobe. root.linuxprobe. (              
                                       0        ; serial         
                                       1D       ; refresh          
                                       1H       ; retry         
                                       1W       ; expire       
                                       3H       ; minimum       
     NS        ns.linuxprobe.           域名服务器,供应商提供的,一般不要改                        
ns   IN  A      192.168.10.10                                     
@    IN  MX  10  mail.linuxprobe.      要转发邮件前面要加@符号,MX代表邮件,10优先级。                 
mail IN  A     192.168.10.10               服务端地址

:wq!


systemctl restart named
重启

【如果提示出错,怎么排错,首先复制see`systemctl status named.service`有问题的地方see后面然后copy,接着输出复制的内容。
 接着就会提示具体什么错了,提示3577有问题,3577是zone开头的,所以有可能vim /etc/named.rfc1912.zones 有问题。经查找:file "linuxprobe";
  com后面没有 .zone。应该改成:file "linuxprobe.zone";】


systemctl restart named
重启
systemctl enable named
顺手,顺手,顺手,顺手,顺手,顺手。


7. 打开虚拟机win7(盗版win7)配置本地连接192.168.10.30   DNS 192.168.10.10

然后 ping mail.linuxprobe
能ping通就成功了。

部署基础的电子邮件系统

1. vim /etc/postfix/main.cf
找到postfix的主配置文件

:76 可以直接到76行

76: myhostname = mail.linuxprobe    主机名称

83: mydomain = linuxprobe           发送出去的邮件地址(加mail,就变成mail.linuxprobe)

99: myorigin = $mydomain (便于维护)   变量 上面两个被定义成变量了。所以这行也可以写成linuxprobe

116:inet_interfaces = all               能够为用户提供邮件域名信息的地址。在这个服务器上无论什么网卡、主机地址都会为用户提供DNS服务

164:mydestination = $myhostname,$mydomain 发送出去的域可以有哪些? 变量易于维护。也可以写
:wq!


2. useradd xiaozhu  (老刘钦点的名字,原意是蜘蛛,我要在这说明一下。没错就是博主在下。)
   新建 xiaozhu用户

   passwd xiaozhu
   
   123

systemctl restart postfix
重启
systemctl enable postfix
顺手,顺手,顺手,顺手,顺手,顺手。

结束。

配置Dovecot服务程序

用来收取邮件


1. yum install dovecot
安装

2. vim /etc/dovecot/dovecot.conf  (只负责收到邮件)
dovecot的孟获

24:protocols = imap pop3 lmtp    我们收取邮件的协议,不用改,开启就行(把#删了就开了)
25:disable_plaintext_auth = no   禁止强制的明文认证服务,关闭
48:如果公司内部使用就开启这行。你只允许谁访问你的主机  = 192.168.10.0/24 这个网段允许
:wq!


vim /etc/dovecot/conf.d/10-mail.conf (收到邮件保存到哪里?)

25:开启 mail_location = mbox:~/mail:INBOX=/var/mail/%u  待会邮件会放到~家目录里的mail里的INBOX里面。但是~/mail:INBOX里有隐藏文件(可能是bug 。~/mail/.imap/INBOX)

:wq!


3. su - xiaozhu
连人带房子切换到xiaozhu目录下

mkdir -p mail/mail/.imap/INBOX
一定要把“隐藏文件写上”/.imap

exit


systemctl restart dovecot
重启
systemctl enable dovecot
顺手,顺手,顺手,顺手,顺手,顺手。

iptables -F
清空防火墙

最后试验一下(rootkit病毒)
在盗版win7上安装了一个盗版out look 2007(开玩笑的)


打开out look

您的姓名 :xiaozhu
电子邮件地址: xiaozhu@linuxprobe
密码:123
重新键入密码:123

                           下一步

第一次连接会提示报错,下一步,成了。

好,这就设置完了


发送邮件:

1. mail xiaozhu@linuxprobe

subject: xxxxxxxxxxxxxxxxx
标题
asdasdasdsadasdasdasdas
sadasdasdasd
asdasdasd
sadasdsa
.
回车

。是发送


然后在虚拟机win7上的out上的菜单栏上,点击“发送/接受”就ok了

编写邮件发送给root

写邮件 
 收件人      root@linuxprobe


 主题       rrrrrrrooooooottttttt


内容       dddddddddddddddddd

发送

然后在客户端linux上

敲mail

就会发现有个邮件在那。


设置用户别名信箱

vim /etc/aliases

在 General redirections fot pseudo accounts.下写入

左面是别名(外号)              右面是真名(root)

xiaoguo:                         root

:wq!

systemctl restart dovecot
重启

newaliases
做使用者名称转换的动作,邮件专用的命令。

在虚拟机win7上发送一个邮件

xiaoguo@linuxprobe

xiaoxiaoxxiaoxoa

sdsadsadsa
dasdasd
dsaddasdsad
dsadas
das

发送

这时候你切换xiaoguo用户是没有用的,以为它不存在,它只是root的别名,邮件发送给了root。


 

 

 

 

 

好,结束。至于13章和以后的章节就以后再说吧......客观的讲,我是不可能一个一个敲上去的,全都是复制,所以行段之间位置有问题,但复制的内容是我在TXT中一点点打出来的,所以也算是原创.

 

            

转载于:https://my.oschina/u/4093513/blog/3039758

更多推荐

第十八天(双更)

本文发布于:2023-04-13 01:50:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f258b735dae089cf6c396f3afbcc2896.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 71488文章数
  • 14阅读数
  • 0评论数