Centos入门-3

1.逻辑卷LVM实现原理:
       |--实现传统硬盘分区不能解决容量拉伸的问题
       |--底层是把物理硬盘分成PE进行管理.
       |--  物理硬盘-->  PV-->  VG--> LV {见图}


   *.创建使用LVM:

        创建LVM:

           |-- pvcreate /dev/sdb /dev/sdc
               vgcreate myvg /dev/sdb /dev/sdc               
               lvcreate -n mylv -L 2G myvg
            
               //现在mylv这个逻辑卷路径就是: /dev/myvg/mylv

               挂载文件系统: mkfs.ext4 /dev/myvg/mylv

               现在就可以挂载: mount /dev/myvg/mylv /mnt
            

         查看LVM:
           |-- pvdisplay
               pvs
               vgdispaly
               vgs
               lvdisplay
               lvs

         删除LVM: 
               *需要注意删除的联动性:删除LV直接删除LV,删除VG必须先删除LV,而删除PV,必须先删除VG*
                lvremove /dev/myvg/mylv         //删除LV
                vgremove myvg                   //删除VG
                pvremove /dev/sdb               //删除PV


   *.LV的拉伸与缩小:
 
        *拉伸:

            |--特点:逻辑卷的拉伸操作可以在线执行,无需卸载。
               原理:从VG中获取更多PE

            |--  vgdisplay                           //保证VG中还有空闲空间
                 lvextend -L  +4G /dev/myvg/mylv     //扩充LV空间
                 lvdisplay
                 df -h                               //查看文件系统             
                 resize2fs /dev/myvg/mylv            //更新下文件系统
                 df -h                               //查看文件系统是否更新可用

            |-- 假设我们这个VG不够用了,我们必须:
                向VG里加PV来扩充VG,进而LV。

                *拉伸一个VG:
                         fdisk -l                 //查看都有哪些硬盘可用
                         pvcreate /dev/sdd
                         vgs
                         vgextend myvg  /dev/sdd
                         vgs
        
         *缩小:

              |-- 特点:LV的缩小必须离线,即卸载,否则数据丢失。
                  原理:把部分PE还给VG

              |-- 顺序:先缩小文件系统,再缩小LV
               
                  unmount /mnt
                  e2fsck -f /dev/myvg/mylv        //对文件系统进行校验
                  resize2fs /dev/myvg/mylv        //缩小文件系统
                  lvreduce -L -4G /dev/myvg/mylv  //缩小LV
                  lvdisplay                       //查看缩小后的LV
                  mount /dev/myvg/mylv /mnt       //重新挂载

              |--当我们需要撤走一部分硬盘,
  
                 *缩小VG:
                 
                    vgs                      //确保VG的当前空余空间要大于物理硬件的空间大小
                    vgreduce myvg /dev/sdd
                    vgdisplay
                    pvremove /dev/sdd
               
                         

             
2.ACL:

     |--解决传统UGO模型控制权限的缺陷:不能支持一个文件多用户多组;
    
     |--   mount -o acl /dev/sda5 /mnt            //ACL功能必须在文件挂载时打开
           getfacl linuxcast.net                  //查看文件ACL信息
           setfacl -m u:haoge:rwx linuxcast.net   //添加访问文件的用户
           setfacl -m g:traning:rw linuxcast.net  //添加组
           getfacl linuxcast.net                  //操作完之后查看一下
           setfacl -x u:haoge linuxcast.net       //删除用户
           setfacl -x g:traning linuxcast.net     //删除组
           getfacl linuxcast.net                  //咱们再来查看这个文件一下
           
           /*修改就是重新添加一次*/

           *重做笔记1的实例:ACL.png*
             groupadd training 
             groupadd market
             groupadd manage
             groupad boss
             useradd -G training nash_su
             useradd -G training bob
             useradd -G market alice
             useradd -G market john
             useradd -G manage steve
             useradd -G manage david
             useradd -G boss snake

             cd /
             mkdir linuxcast.net
             ls -ld linuxcast.net
             cd linuxcast.net
             mkdir training 
             mkdir market
             mkdir manage
             mkdir boss
             ls -ld training|market|manage|boss
             chgrp training training/
             chgrp market market/
             chgrp manage manege/
             chgrp boss boss /
             ls -ld training|market|manage|boss
             chmod o-rwx traning
             chmod o-rwx market
             chmod o-rwx manage
             chmod o-rwx boss
             ls -l
             chmod g+s training                //让每个部门下的每个用户继承相应部门。
             chmod g+s market
             chmod g+s manage
             chmod g+s boss
             ls -ld training|market|manage|boss
             
             cd training
             mkdir nash_su
             chown nash_su nash_su/
             ls -ld nash_su                    //查看它的O权限,应该默认就是r-x,所以不做修改O第五个要求。
             mkdir bob
             chown bob bob/

             cd market 
             mkdir alice
             chown alice alice
             mkdir john 
             chown john
             
             cd manage
             mkdir steve
             chown steve steve
             mkdir david 
             chown david david

             cd boss
             mkdir snake
             chown snake snake
             setfacl -m g:boss:rx training/
             setfacl -m g:boss:rx market/
             setfacl -m g:boss:rx manage
             getfacl training|market|manage            //查看manage的acl权限是否生效



3.

 RAID:
      |--特点:解决传统硬盘的两个问题:读写IO性能极低,安全稳定性极差(冗余性很差)
               基于多硬盘并行操作的原理,提高硬盘IO,提高冗余性。

      |--DAID0 RAID1 RAID5 RAID6 的各个原理及优缺点:

               |--0:
                     *至少两块硬盘,一个数据分解后存在多块硬盘上,并行读写、
                     *IO性能最佳,冗余性为0,空间利用率最佳。
                     
                
               |--1:
                     *两块硬盘,一个数据copy成两份分别存在两块硬盘上,并行读操作,写反倒是要写两份。
                     *IO性能{读等同于RAID0,写效率很低},冗余性高{可以允许一块硬盘挂掉},空间利用率一般。

               |--5:
                     *至少三块硬盘,数据分解写到三块硬盘,然后往第四块上写一个奇偶校验信息{任意知三推一},可恢复丢失数据
                     *IO{读写与RAID0相当},冗余性高{允许一块硬盘挂掉,可"知三恢"复出来},空间利用率一般。

               |--6:
                     *至少四块硬盘,相比较RAID5,多写一份奇偶校验值。
                     *IO,空间利用率接近RAID5,只是冗余性更高{允许两块硬盘挂掉,"知2推二"}


      |--实际生产中的实现分类:
             |--硬件RAID:单独安装RAID硬件卡。

             |--软件RAID:{受操作系统稳定性影响,占用CPU等系统资源,受到硬盘接口的很大影响。}

                        |--安装RAID软件:
                        |--
             
             
4.
  linux网卡绑定和子接口:

          |--网卡高级命令:
                          mil -tool eth0        //查看网卡状态
                          ethtool eth0          //查看网卡物理特性
                          ethtool -i eth0       //查看网卡舞动信息
                          ethtool -S eth0       //查看网卡状态{非常详细}

          |--IP别名:

                   |--目的:把一块物理网卡配置多个ip,充分利用网卡资源
     
                   |-- 
                      service NetworkManage shutdown  //centos为了方便图形界面用户管理网络,默认使用NM{上方那个电脑图标}
                      chkconfig NetworkManage off        //永久禁用NM
                      ifconfig
                      ip addr add 192.168.1.300/24 dev eth0 label eth0:0|eth0:1
                      ifconfig

                      /* ip命令只是临时修改,如果需要永久修改,cd /etc/sysconfig/network-scripts/ 添加配置文件 */
                       cd /etc/sysconfig/network-scripts/
                       vim ifcfg-eth0:0

                       DEVICE=eth0:0
                       IPADDR=192.168.1.300         
                       PREFIX=24                   //子网掩码的缩写
                       ONPARENT=yes                //设置父母网卡
                      

          |--多网卡绑定:

                   |--目的:* 把多块物理网卡并行启动,合并成一块逻辑网卡:提高速度,提高稳定性{冗余性}
                            * 绑定后单独是网卡不再使用,ip地址将绑定在逻辑网卡上:/etc/bond0
                            * 三种模式:0{平衡轮训,提高速度}       1{主动备份,提高冗余性}        3{广播}

                   |-- /* 修改某配置文件,记得先关闭相应的服务,否则或报错。 */

                         cd /etc/sysconfig/network-scripts/    //首先修改添加一个bond0的配置文件{逻辑网卡}              
                         ls 
                         vim ifcfg-bond0
                         
                         DEVICE=bond0
                         IPADDR=192.168.1.2
                         PREFIX=24
                         ONBOOT=yes                             //开机自启动
                         BOOTPROTO=none
                         USERCTL=no
                         BOND_OPTS="mode=0 mlimon=50"           //向bond0的模块程序传入两个参数。
 
                         cd /etc/sysconfig/network-scripts/     //然后去修改物理网卡的配置文件
                         ifconfig
                         ifdown eth0                            //在修改服务配置文件前,先关掉服务、
                         ifdown eth1
                         vim ifcfg-eth0                      //同理修改 ifcfg-eth1
                         
                         DEVICE=eth0
                         BOOTPROTO=none
                         HWADDR=...                          //mac地址不用修改
                         ONBOOT=yes
                         MASTER=bond0                        //逻辑网卡{主网卡}为bond0
                         SLAVE=yes                           //设置这块网卡为slave{从网卡}
                         USERCTL=no
    
                         cd /etc/modprobe.d/                //为新网卡{bond0}配置模块{windows里的驱动}
                         ls 
                         vim bonding.conf                   //moudle的文件名格式就是XXXing.conf

                         alias bond0 bonding                //这句话就是对bond0网卡启用bonding这个模块

                         ifup bond0
                         ifconfig

                      /*
                        之后可在另外一台机器上ping这个bond0的ip, 
                        然后在配置了bond0的这台机器上观察流量变化:watch -n ifconfig
                        试着把 BOND_OPTS="mode=0 mlimon=50"  的模式改成1,3看看流量变化。   
                      */
                       

                       
                                                
 
5.selinux:

        |--特点:* selinux属于是NSA开发的一种全新的安全机制,属于内核级别的安全策略。

                 * 进程和系统资源{文件,socket系统调用}	分别对应着 domain context, 
                   domain限制进程,context限制系统资源。
					
                 * 策略:selinux通过定义策略来控制哪些进程访问哪些资源。domain-->context

                 * centos/rhel 默认有预置策略,无需用户自定义{除非我们自己加入某些自定义服务},它称作target策略,
                   意思是:selinux只会限制target进程:即网络进程。
                   {其他进程不受selinux限制,因为服务器上的安全问题大部分来自网络服务}

                 *被限制的常见网络服务有:dhcpd httpd mysqld named ntpd rpcbind squid syslogd
               

        |--selinux的工作模式:

                 * enforce{强烈禁止}  permissive{警告}  disable{禁用selinux}

                 * 模式配置文件: /ect/sysconfig/selinux        //如果需要永久性修改selinux的某些配置,需要修改配置文件

                 * getenforce                //查看当前selinux信息      {不过这两个命令都是暂时的修改}
                   setenforce 0|1            //设置当前selinux工作状态       

                 * ps -Z{domain} ls -Z{context}   //查看当前selinux信息

       |-- 运维中系统排错:

               *情形:如果用户在运行网络服务的时候,修改了某些文件,引起进程无法访问某些文件,很可能是修改文件导致domain
                       和content不对应,这时候需要ps -Z 或者 ls -Z 分析selinux是不是正常。
                      然后一般我们能够修改的就是恢复文件的content,和修改content.
                      
                      restorecon -R -v 文件路径                                 //恢复文件的content
                      chcon --reference=/etc/named.conf.orig /etc/named.conf    //前一个路径下的文件的content为模板 
                                                  
    
               *实例:
                      比如用户在home目录下创建了一个index.html,然后启动apache服务,利用mv命令移动到/var/www/html/,
                      发现apache正常启动之后解析不了index.html,我们 ls -Z index.html 和 ls -Z apache.html 
                      {在/var/www/html/创建一个apache.html},发现他们的content不一样。
                      正是因为在家目录下面创建的index.html默认自动继承home对应的content,而mv又并不改变它的content,
                      所以当index.html被移动到/var/www/html/后,apache默认的domain无权限访问home目录下的content,
                      {apache只认自己目录下的文件对应的content},所以我们需要把/var/www/html/下所有的文件的content
                       恢复为apache默认的content。
 
                      restorecon -R -v /var/www/html/
                      /* 之后我们再ls -Z 发现index.html的content变成了apache服务默认的content,
                         而且apache可以解析index.html了 */


6.iptables:
 
        |--linux服务器安全需考虑:

                       *哪些ip可以访问服务器
                       *可以使用哪些协议
                       *可以使用哪些接口
                       *是否要对数据包进行修改
                       *如果服务器被攻击,这时就需要对某些ip进行禁用

        |--linux内核集成了以上这些基本的访问控制功能,由netfilter模块控制。
           而在用户层,我们使用iptables对netfilter进行控制。

        |--netfilter:
                    *支持对数据accept drop modify操作.

                    *对数据分类方式:

                       源ip地址
                       目标ip地址
                       使用接口
                       使用协议      // TCP UDP ICMP等
                       端口号 
                       连接状态      // new ESTABLISHED RELATED INVALID

         |--netfilter的基础图解:NetFilter.png NetFilter2.png

         |--常用功能:
                    |-- 作为服务器:

                    |-- 作为路由:

         |--规则:

         |--iptables的配置管理:

            




7.linux远程管理:

        |--基础协议类别:
                      |-- RDP   : windows系统下图形界面使用的远程协议
                      |-- telnet:  几乎所有系统支持的明文传输的协议 {很不安全}

                      |-- SSH   : 类linux的CLI界面下支持内容加密的远程管理协议,openssh是实现ssh的一个开源软件。
                      |-- RFB   : 类linux的GUI界面下支持加密内容的远程管理协议,vnc是实现RFB的最常用软件。

        |-- SSH:
               |--特点:

                   * 使用非对称算法的秘钥对数据进行加密传输。
                   * SSH协议使用TCP协议,端口号22,开源实现程序是openssh
                   * 分为clinet和server,默认已安装自启动{常驻服务}

               |--使用:
 
                   *默认第一次在两台主机上连接,需要接受公钥,互相验证。
                   * ssh nash_su@192.168.1.100                 //登陆远程主机
                     ssh nash_su@192.168.1.100 ls /            //支持不登陆地执行一个命令

                   *其他使用ssh的命令:

                     *  scp source destination                        //linux下常用的远程加密传输文件
                        scp linuxcast nash_su@192.168.1.100:/home/    //确保登陆的用户有权限访问目标文件
                        /*  -r 复制文件夹 -p 传输时保留文件的权限及时间戳 -C 传输时进行数据压缩  */

                     *  rsync *.* nash_su@192.168.1.100:/home/       //两台机器间的一种增量的同步文件方式,用于备份。

        |-- RBF:
 
                |--服务端:yum install -y tigervnc-server

                           cd /etc/sysconfig/                        //vnc的配置文件
                           ls -ld vncservers
                           vim vncservers
                           VNCSERCERS="1:linuxcast 2:nash_su"        //这是指定vnc服务的编号及其对应用户

                           su - linuxcast                            //切换到vnc服务对应的用户下创建相应的vncpasswd
                           vncpasswd 
                       
                           service vncserver start                   //启动vnc服务
                            /* 这里注意可能要关闭防火墙或者添加允许策略,实验下就直接关闭:iptables -F */
                           
                         
                |-- 客户端:
                           |-- centos默认集成了tigervnc,但是未安装,我们在客户机上安装它: 
                                yum install -y tigervnc 

                           |-- 图形界面登陆即可。
                                vnc server 192.168.1.100:1       
                            // :1指的是我们登陆哪个vnc服务{我们在服务端配置文件里面配置了linuxcast和nash_su两个}


8.DHCP服务基础:   

        |--基础原理:client DHCPDISCOVER   //client发出discovr
                     server DHCPOFFER      //所有的DHCP全部提供
                     client DHCPREQUEST    //从所有的offer里面选择一个并向该提供服务的server发出request
                     server DHCPACK        //server给client发送packet

        |--

        |--         
           
             


/**************/
后面还有三个很重要,记得要学习:mysql    
                                git
                                ubuntu
       
            

 
posted @ 2018-03-19 19:13  hzhang_NJU  阅读(159)  评论(0编辑  收藏  举报