zoukankan      html  css  js  c++  java
  • 网络安全与主机基本防护-linux鸟哥的私房菜服务器篇07(阅读笔记)

    7.1    网络封包联机进入主机的流程

        7.1.1 封包进入主机的流程
                -------------------------------------------------------------------------
                                                      Internet
                                                            |
                                        第一层防火墙:iptables(netfilter)
                                                            |
                                        第二层防火墙:TCP_Wrapper
                                                            |                                             --------
                                        服务器设定值:http,ftp,samba...    ——>|    登    |
                                                            |                                            |    录    |
                                          权限的细部设定:SELinux            ——>|    档    |
                                                            |                                             --------
                                                档案权限的设定(r, w, x)
            ----------------------------------------------------------------------------------
            1. 经过防火墙的分析
                (1). 封包过滤防火墙:IP Filtering或 Net Filter
                    软件:    iptables(netfilter)        ----分析TCP/IP的封包表头来进行过滤
                    OSI:    二、三、四
                    封包阶段:    MAC、IP、ICMP、TCP/UDP的端口与状态(SYN、ACK)
                (2). 第二层防火墙:TCP Wrappers
                    /etc/hosts.allow
                    /etc/hosts.deny
            2. 服务(daemon)的基本功能
                httpd.conf        ----通过这个配置文件规范某些IP开源不能使用httpd这个服务
            3. SELinux对网络服务的细部权限控制
                注意:比如说通过SELinux将httpd程序的权限控制在啊/var/www/html中
            4. 使用主机的文件系统资源
        7.1.2 常见的攻击手法与相关保护:猜密码,漏洞,社交工程,程序误用,rootkit,DDoS
                1. 取得账户信息后猜密码
                    应对:
                    (1)减少信息的曝光机会:Email Address不要随便用
                    (2)建立较严格的密码设定规则:chattr限制账号文档的更改
                    (3)完善权限限定
                2. 利用系统的程序漏洞主动攻击
                    应对:
                    (1)关闭不需要的网络服务:开的端口越少越好
                    (2)随时保持更新
                    (3)关闭不需要的软件:比如SSH
                3. 利用社交工程作欺骗
                    (1)追踪对谈者
                    (2)不要随意透露账号/密码信息
                4. 利用程序功能的被动攻击
                    应对:
                    (1)随时更新主机上的所有软件
                    (2)弱化软件的功能
                    (3)不要连接到不明的主机
                5. 蠕虫或木马的rootkit
                    (1)不要随意安装不明来源的档案或者不明当那数据
                    (2)不要让系统有太多危险的指令:例如SUID/SGID的程序
                    (3)可以以rkhunter之类的软件来追查:有个网站提供rootkit程序的检查,可以分析你的主机
                        http://www.rootkit.nl/projects/rootkit_hunter.html
                6. DDoS攻击法(Distributed Denial of Service: 分布式阻断服务攻击)
                    注意:比如常见的SYN Flood攻击,就是透过分散在各地的僵尸计算机发送大量SYN封包,如果client端在发送SYN的封包后,却将来子鸡server端的确认封包丢弃,这样server端就会一直空等,如果在你短时间内持续发送这样的SYN封包,那么server就会持续不断发送确认封包。
                7. 其它高大上的攻击方法  
                    (1)设定规则完善的防火墙
                    (2)核心功能
                    (3)登录文件与系统监控(使用MRTG之类的监控软件)
        7.1.3 主机能作的保护:软件更新、减少网络服务、启动SELinux
                1. 软件更新的重要性
                2. 认识系统服务的重要性
                3. 权限与SELinux的辅助
    7.2    网络自动升级软件
        7.2.1 如何进行软件升级
                (1)升级到较新的版本
                (2)利用tarball来字型升级核心与软件
        7.2.2 CentOS的yum软件更新、映象站使用的原理
                -------------------------------------------------------------------------------------------------------
                                                                                 取得清单列表
                             YUM服务器                               <——————>                        Linux用户端
                 容器资料清单:/path/repodata                实际安装                             清单记录:/var/cache/yum/
                 实际软件目录:FTP/http均可                <——————>
                -------------------------------------------------------------------------------------------------------
            1. 先由配置文件判断yum server所在的IP地址、
            2. 连接到yum server后,先下载新的RPM档案的表头数据
            3. 分析比较使用者所欲安装/升级德尔档案,并提供使用者确认
            4. 下载用户选择的档案到系统中的/var/cache/yum,并进行实际安装                                                                                                     
        7.2.3 yum的使用:安装,软件群组,全系统更新
            yum [option] [查询的工作项目] [相关参数]
            -----------------------------------------------------------------------------------------------------------
            |option:  
            |    -y:    当yum询问使用者的意见时,主动回答yes而不需要由键盘输入
            |查询的工作项目:
            |    install:    安装指定的软件,后面跟软件名称
            |    update:    进行整体升级的行为;也可以仅升级一个软件,后面接某个软件
            |    remove:    移除某个软件,后面跟软件名称
            |    search:    搜寻某个软件或者是重要关键字
            |    list:    列出目前yum所管理的所有软件的名称与版本,有点类似rpm -qa
            |    info:    同上,不过有点类似于rpm -qai
            |    clean:下载的档案被放到/var/cache/yum,可使用cclean将它移除,可清楚的项目:packages|headers|metadata|cache等
            |    grouplist:    列出所有可以使用的软件群组
            |    groupinfo:    后面接group_name,则可了解该group内含的所有软件名;
            |    groupinstall:    可以安装一整组软件;常与--installroot=some/path共享来安装新系统
            |    groupremove:    移除某个软件群组
          --------------------------------------------------------------------------------------------------
            1. 利用yum安装
            # yum search raid        ----查找CentOS官网提供的软件名称和RAID有关的软件
            # yum info madam       ----查看madam功能为何
            # yum install madam        ----安装madam
            # yum list javacc*
            # vim /etc/yum.conf        ----yum预设会将下载的RPM档案安装完毕后予以删除,通过修改配置文件予以保留
                [main]
                cachedir=/var/cache/yum/$basearch/$releaserver        ----RPM下载的目录
                keepcache=1        ----默认不删除
                debuglevel=2
                logfile=/var/log/yum.log
                exactarch=1
                obsoletes=1
            # rpm -Fvh*.rpm        ----将所有下载好的RPM档案安装
    2. yum安装软件群组
        # LANG=C yum grouplist        ----查询系统有的软件群组有多少个
        Installed Group:         ----已经安装的软件群组
            Additional Development
            ...
        Available Group:        --------尚可安装的软件群组
            ...
        # yum groupinfo "Desktop Platform"        ----查看Desktop Platform内含有多少个RPM软件呢
        Group:  桌面环境平台
            Description:    受支援的CentOS Linux桌面平台函式库
            Mandatory Packages:        ----主要的会被安装的软件有这些
            Optional Packages:       ----额外可选择的软件
        # yum groupindtsll "Desktop Platform"
    3. 全系统更新
        # vim /etc/crontab
        40 5 * * * root yum -y update $$ yum clean packages        ----每天5:40自动更新
        7.2.4 挑选特定的映象站:修改yum配置文件与清除yum快取
            注意:网址下包含repodata目录则说明这个网址可以作为yum的容器配置文件
            1. 修改yum配置文件
            方式一:修改系统的默认配置文件(使用特定映象站)
                 # vim /etc/yum.repos.d/CentOS-Base.repo        ----容器的配置文件
                    #下面仅列出base这个容器
                    [base]        ----容器的名字(一定要有中括号,名字不能重复)
                    name=CentOS-$releaseerver - Base    ----说明容器的意义
                    mirrorlist=http://mirrorlist.centos.org/release=$releasever&arch=$basearch&repo=os&repo=os         ----列出这个容器使用个的映象站台,是有yum程序自行去捉影响站台
                    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/        ----制定一个固定的容器网址
                    gpgcheck=1        ----指定是否需要查阅RPM档案内的数字签名
                    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6        ----数字签名的公钥文件所在位置
                # yum clean all        ----清除已有的清单
                # yum repolist all        ----列出目前yum server所使用的容器,enabled才是启动了的
            方式二:在.etc.yum.repos.d/下新建档案,扩展名为.repo(为其他软件提供容器)
            2. 清除yum缓存
                注意:如果修改指定的网址却没有修改容器名称,会造成本机的列表与yum服务器不同步,进而无法步
                # yum clean [packages|headers|all]
                -----------------------------------------------------
                |选项与参数:
                |    packages:    将已经下载的软件档案清除
                |    headers:    将下载的软件文件头删除
                |    all:    将所有容器数据删除
                -----------------------------------------------------
                # yum clean all        ----删除已经下载的所有容器的相关数据(含软件本身与列表)
                范例一:提供一个包含自由软件的网址,配置好yum容器
                    # vim /etc/yum.repos.d/drbl.repo
                    [drbl]
                    name=This is DBRL site.        ----解释
                    baseurl=http://free.nchc.org.tw/drbl-core/i386/RPMS.drbl-stable/        ---最重要
                    enable=1        ----激活这个容器
                    gpgcheck=0        ----不进行签名检验
                    # yum repolist all        ----观察所有的容器,看看有没有新增drbl
    7.3    限制联机端口
        7.3.1 什么是port
            1. 服务器启动的监听端口所对应的服务是固定的
            2. 客户端启动端口时,随机启动一个大于1024以上的端口
            3. 一部服务器可以同时提供多种服务
            4. 共65536(2^16)个端口
                只有root才能启动保留的端口;
                大于1024用于clent端的端口;
            5. 是否需要三次握手
            6. 通讯协议可以启动在非正规的端口
            7. 所谓端口的安全性
        7.3.2 端口的观察:netstat,nmap
            1. netstat    在本机上面以自己的程序检测自己的端口
                # netstat -tunl        ----列出在监听的网络服务
                # netstat -tun        ----列出已联机的网络联机状态
                # netstat -tunp        ----观察联机服务的PID并删除之
                # kill -9 1342        ----建设监理的联机的PID为1342
            2. nmap    透过网络侦测软件辅助,可侦测非本机上的其它网络主机,担忧违法之虞
                nmap [扫描类型] [扫描参数] [hosts地址与范围]
                ------------------------------------------------------------------------------------
                |扫描类型:
                |    -sT:    扫描TCP封包已建立的联机
                |    -sS:    扫描TCP封包带有SYN卷标的数据
                |    -sP:    以ping的方式进行扫描
                |    -sU:    以UDP的封包格式进行扫描
                |    -sO:    以IP的协议进行主机的扫描
                |扫描参数:
                |    -PT:    使用TCP里头的ping的方式进行扫描,可以获知目前有几部计算机存活(较常用)
                |    -Pl:    使用实际的ping(带有ICMP封包)来进行扫描
                |    -p:    这个port range,例如1024-,80-1023,30000-60000等等的使用方式
                |Hosts地址与范围:
                |    192.168.1.100        ----直接写入HOST IP而已,仅检查一部
                |    192.168.1.0/24        ----为C Class的形态
                |    192.168.*.*        ----B Class的形态,扫描的范围变广了
                |    192.168.1.0-50,60-100,103,200        ----这种事变形的主机范围
                ---------------------------------------------------------------------------------------------------  
                范例一:使用预设参数扫描本机所启用的port(只会扫描TCP)
                    # yum install nmap              ----安装nmap
                    # nmap localhost        ----扫描本机所有端口,预设仅扫描TCP协议
                范例二:同事扫描本机的TCP/UDP端口
                    # namp -sTU localhost    
                范例三:透过ICMP封包的检测,分析区网内有几部主机是启动的
                    # namp -sP 192.168.1.0/24    ----启动的主机的IP对应的MAC也会被记录下来
                范例四:将各个主机的启动的端口都作一番侦测
                    # nmap 192.168.1.0/24
            3. 预设启动的服务
                
    服务名称 服务内容
    acpid 新版的电源管理模块地,通常仓建议开启,不过某系而笔记本如果不支持就得关闭
    std 在管理单一预约命令执行的服务,需要启动
    crond 管理工作排程的重要服务
    haldaemon 作系统硬件变更侦测的服务,务必启动
    iptables linux内建的防火墙软件
    network 网络服务
    postfix 系统内部邮件传递服务
    rsyslog 系统的登录文件服务
    sshd 远程以文字终端登陆
    xinetd 就是super daemon,要启动
        7.3.3 端口与服务的启动/关闭及开机时状态设定:服务类型,开机启动
                7.3.3.1 服务类型
                    1. Stand alone
                    2. Super daemon
                7.3.3.2 范例
                    范例一:找到系统上面开启111端口的程序并将其关闭
                        # netstat -tnlp | grep 111        ----找到程序名
                        # which rpcbind        ----利用程序名找到实际对应的档案
                        # rpm -qf /sbin/rpcbind        ----找到这个档案对应的程序的完整名称
                        # rpm -qc rpcbind | grep init        ----找到启动这支程序的执行文件
                        # /etc/init.d/rpcbind stop        ----关掉它
                    范例二:启动telnet(super daemon控管)
                        # rpm -qa | grep telnet-server        ----看看有没有安装telnet
                        # yum install telnet-server        ----安装telnet
                        # vim /etc/xinetd/telnet            ----编辑telnet在super daemon,控管下的配置文件
                            disable=no
                        # /etc/init.d/xinetd restart        ----重新启动super daemon
                        # netstat -tnlp        ----观察23端口是否启动
        7.3.4 安全性考虑-关闭网络断端口
            范例一:找出目前系统上面正在运作中的服务,并找到相对应的启动脚本(/etc/init.d/)
                # netstat -tlunp
                # vim rpc.stated        ----在这个脚本中写入想要关闭的服务
                # rpm -qc $(rpm -qf $(which rpc.stated)) | grep init        ----查找对应的启动脚本
                # vim /bin/closedaemon.sh        ----编写关闭一系列服务的脚本
                for daemon in nfslock rpcgssd rpcidmapd rpcsvcgssd xinetd rpcbind
                do 
                    chkconfig $daemon off
                    /etc/init.d/$daemon stop
                done
                # sh /bin/closedaemon.sh        ----启动关闭服务的脚本
                # netstat -tlunp        ----看看还剩下哪些服务在开启
    7.4    SELinux管理原则
        7.4.1 SELinux的运作模式:安全性文本,domain/type
            范例一:httpd和/var/www/html的安全性本文
                # ll -Zd /usr/sbin/httpd /var/www/html
                -rwxr-xr-x. root root system_u:object_r:httpd_exec_t:s0 /usr/sbin/httpd
                drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
                SELinux工作流程:
                1. 首先,触发/usr/sbin/httpd这个档案,档案类型为httpd_exec_t;
                2. 这个档案产生的主体程序具有httpd这个领域(domain),我们的政策针对这个领域已经制定了许多规则,其中包括这个领域可以读取的目标资源类型;
                3. 由于httpd domain被设定为可以读取httpd_sys_content_t这个类型的目标档案(Object),因此你的网页放置到/var/www/html目录下,就能够被htttpd那支程序所读取了;
                4. 但最终能不能读到正确地资料,还要看rwx是否符合Linux权限的规范!
        7.4.2 SELinux的启动、关闭与观察:gentenforce, setenforce
            1. SELinux的观察
                # getenforce        ----显示目前SELinux所处在的模式
                Enforcing        ----强制模式,表示已经在运作中,且已经正确地开始限制domain/type
                # vim /etc/selinux/config
                SELINUX=enforcing        ----调整enforcing|disabled|permissive
                SELINUXTYPE=targeted        ----目前仅有targeted与mls
            2. SELinux的启动与关闭
                注意:从disabled转到启动SELinux模式时,由于系统必须要针对档案写入安全性文本的信息,因此开机过程会花不少时间等待写入,而且完成之后还要再次重启。
                    Enforcing    
                            ^       <--------->         
               不需要   |          需要重启              Disabled
                             v       <--------->
                    Permissive
                setenforce [0|1]  在Enforcing与permition之间进行模式的转换,无法在Disabled模式下进行模式的切换
                ------------------------------------
                |    0:转成permissive宽容模式
                |    1:转成Enforcing强制模式
                -------------------------------------
                范例一:将SELinux在Enforcing与permission之间切换与观察
                    # setenfoerce 0        ----Enforcing-->permission
                    # getenforce        ----查看状态改变了没有
                    # setenforce 1
                范例二:Disabled切换为Enforcing之后,一堆服务无法启动,但切换为permision后正常
                    # setenforcing 0        ----可能是因为重新写入SELinux type出错,先切换为permission
                    # restorecon -Rv /        ----重新还原所有SELinux的类型
                    # setenforcing 1        ----再转为Enforcing,然后启动执勤啊出错的服务试试
        7.4.3 SELinux type的修改:chcon,restorecon,semanage
            注意:复制时,SELinux的type字段会继承目标目录的,移动时SELinux的类型也会被移动过去
            范例一:复制,并观察相关的SELinux类型变化
                # cp /etc/hosts /root
                # ls -dZ /etc/hosts /root/host  /root      ----发现/root/host继承了/root的类型
            范例二:移动,并观察SElinux的类型
                # mv /root/hosts /tmp
                # ls -dZ /tmp /tmp/hosts        ----/tmp和/tmp/hosts类型不相同,也就是说/tmp/hosts保持了原来的类型没
            chcon    [-R] [-t type] [-u user] [-r role] 档案
            chcon    [-R] --reference=范例文件 档案
                ------------------------------------------------------------
                |选项与参数:
                |    -R:    联通该目录下的次目录也同时修改
                |    -t:    后面接安全性本文的类型字段,比如https_sys_content_t
                |    -u:    后面接身份识别,例如system_u
                |    -r:    后面接角色,例如system_r
                |    --reference=范例文件:    拿某个档案当范例来修改后面接的档案的类型
                -------------------------------------------------------------
                范例一:将刚刚的/tmp/hosts类型改为net_conf_t的类型
                    # chcon -t net_conf_t /tmp/hosts       
                    # ll -dZ /tmp/hosts      ----观察类型是否改变
                范例二:以/var/spool/mail为依据,将/tmp/hosts修改成为该类型
                    # ll -dZ /var/sspool/mail        ----看看它一开始的类型
                    # chcon --reference=/var/spool/mail /tmp/hosts        ----修改类型
                    # ll -Z /tmp/hosts
            restorecon    [-Rv] 档案或目录    恢复为预设的设定
                -----------------------------------------------
                |选项与参数:
                |    -R:    连同次目录一起修改
                |    -v:    将过程显示到屏幕上
                 -----------------------------------------------
                范例一:将刚刚的/tmp/hosts移动至/root并以预设的安全性本文改正过来
                    # mv /tmp/hosts /root
                    # ll -Z /root/hosts
                    # restorecon -Rv /root
            semanage [login|user|port|interface|fcontext|translation]   默认目录的安全性本文查询与修改
            semanage fcontext -[a|d|m] [-first] file_spec   主要用在安全性本文方面的用途(/etc/selinux/targeted/context)
                -------------------------------------------------
                |选项与参数:
                |    fontext:    主要用在安全性本文方面的用途
                |    -l:    查询的意思
                |    -a:    增加一些目录的默认安全性本文类型设定
                |    -m:    修改的意思
                |    -d:    删除的意思
                ---------------------------------------------------
                范例一:查询一下/var/www/的预设安全性本文设定为何
                    # yum install policycoreutils-python
                    # semanage fcontext -l | grep '/var/www'
                范例二:利用semanage设定/srv/vbird目录的默认安全性本文为public_content_t
                    # mkdir /srv/vbird
                    # ll -Zd /srv/vbird        ----预设的情况为var_t
                    # semanage fcontext -a -t public_content_t "/srv/vbird(/.*)?"        ----将/srv/vbird/底下所有的目录递归地修改为public_content_t
                    # semanaeg fcontext -l | grep '/srv'        ----查看/src目录的安全性本文
                    # semanage fontext -a -t public_content_t '/ssrv/vbird(/.*)?'        ----增加安全性本文类型
                    # semanage fcontext -l | grep '/src/vbird' /srv/vbird(/.*)?        ----再次查看/srv/vbird及其子文件夹的安全性文本类型
                    # cat /etc/selinux/targeted/contexts/files/file_context.local        ----看看增加新的安全性文本类型对这个文本造成的更改
                    /srv/vbird(/.*)?    system_u:object_r:public_content_t:s0        ----前面的动作就是写入这个内容
                    # restorecon -Rv /srv/vbird*        ----尝试恢复默认值
                    # ll -Zd /srv/vbird        ----看看新的默认值有没有生效
        7.4.4 SELinux政策内的规则布尔值修订:seinfo,sesearch,getsebool,setsebool
            1. 政策查询
            # yum install setools-console
            seinfo [-Atrub]     查询政策提供的相关规则
                ---------------------------------------------------------------------
                |    -A:    列出SELinux的状态、规则布尔值、身份识别、角色、类别等所有信息
                |    -t:    列出SELinux的所有类型(type)种类
                |    -r:    列出SELinux的所有角色(role)种类
                |    -u:    列出SELinux的所有身份识别
                |    -b:    列出所有规则的种类(boolean)
                ------------------------------------------------------------------------
                范例一:列出SELinux在此政策下的统计状态(targeted的type有3076中,针对网络服务的Booleans有73个)
                    # seinfo
                范例二:列出与httpd有关的规则
                    # seinfo -b | grep httpd         ----没有规则的详细信息
            sesearch [--all] [-s 主体类别] [-t 目标类别] [-b 布尔值]
                -------------------------------------------------------------------------------
                |选项与参数:
                |    --all:    列出该类别或布尔值的所有相关信息
                |    -t:    后面接类别,例如-t httpd_t
                |    -b:    后面还要接布尔值的规则例如-b httpd_enable_ftp_server
                -------------------------------------------------------------------------------
                范例一:找出目标档案资源类别为httpd_sys_content_t的有关信息
                    # sesearch --all -t httpd_sya_content_t            ----【allow 主题程序安全性本文类别    目标资源安全性本文类别】,这样可以查看某个主体程序可以读取的目标资源档案
                范例二:我知道有个布尔值为httpd_enable_homedirs,请问该布尔值规范多少规则?
                    # sesearch -b httpd_enable_homedirs --all
            2. 布尔值的查询与修改
                注意:布尔值决定了一系列的规则的启动与关闭
                getsebool    [-a]    [布尔值条款]    查询布尔值状态
                    -----------------------------------------------------------------------------
                    |    -a:    列出目前系统上面所有的布尔值条款设定为开启或关闭状态
                    -----------------------------------------------------------------------------
                    范例一:查询本系统内所有的布尔值设定状况
                        # getsebool -a
                setsebool    [-P]     布尔值=[0|1]    关闭或启动布尔值
                    -----------------------------------------------------------------
                    |选项与参数:
                    |    -P:    直接将设定值写入配置文件,该设定数据未来会生效
                    -----------------------------------------------------------------
                    范例一:查询httpd_enable_homedirs是否为on,若不为on请启动他
                        # getsebool http_enable_hoomedirs            ----未开启
                        # setsebool -P httpd_enable_homedirs=1        ----启动这个布尔值,记得一定要加-P选项
                        # getsebool http_enable_hoomedirs         ----已开启
        7.4.5 SELinux登记文件记录所需服务-以httpd为范例:setroubleshoot, sealert
            1.setroubleshoot    将错误信息写入/var/log/messages和/var/log/setroubleshoot/*
                注意:setroubleshoot需要安装两个软件setroubleshoot和setroubleshoot-server
                # yum install setroubleshoot setroubleshoot-server        ----安装两套软件
                # /etc/init.d/auditd restart        ----整合到auditd当中
                (1)先由auditd去呼叫audispd服务
                (2)然后audispd服务去启动sedispatch程序
                (3)sedispatch再将原来的auditd讯息转成setroubleshoot的讯息,进一步储存下来
                范例一:使用httpd这支程序产生的错误来说明。WWW是由htttpd这支服务提供的,因此你必须要安装且启动它才行
                    # /et/init.d/httpd start        ----    开启WWW服务
                    # netstat -tlnp | grep  http         ----看看80端口是否已经启动
                    tcp    0    0    :::80    :::*    LISTEN    2218/httpd
                    # echo "My first selinux check" > index.html        ----写一个简单的网页
                    # ll index.html        ----看看权限有没有什么问题
                    # mv index.html /var/www/html        ----将其复制到WWW服务器的文件夹中
                    # links http://localhost/index.html        ----文字接口打开网页试试,权限不对劲
                    # cat /var/log/messages | grep setroubleshoot        ----看看有说呢么错误记录信息,有的话会看到错误代码
                    # sealert -l 6c927892-2469-4fcc-8568-949da0b4cf8d        ----查阅完整的数据
            2. 用email或在指令列上面直接提供setroubleshoot错误讯息
                # vim /etc/setroublrshoot/setroubleshoot.cfg        ----修改setroubleshoot的配置文件让setroubleshoot主动发送信息到自己的email
                recipients_filepath=/var/lib/setroubleshoot/email_alert_recipients        (81)----这行必须要存在
                console=True        (147)----将原来的False修改成True
                # vim /var/lib/setroubleshoot/email_alert_recipients        ----填写邮件地址
                root@localhost
                your@email.adderss
                # /etc/init.d/auditd restart        ----重启auditd
            3. SELinux错误克服的总结
                1. 在服务与rwx权限都没有问题,却无法成功的使用网络服务时;
                2. # setenforce 0        ----先设定为宽容模式
                3. 再次使用该网络服务,如果这样能用表示确实是SELinux的问题
                4. 分析/var/log/messages内的信息,然后用sealert -l处理
                5. 找到AlloowAccess的关键词。照里面的动作进行SELinux的错误克服
                6. # setenforce 1        ----再次测试网络服务 
    7.5    被攻击后的主机修复工作
        7.5.1 网管人员应该具备的技能
            1. 了解什么是需要保护的内容
            2. 预防黑客的入侵
            3. 主机环境安全化
            4. 防火墙规则的设定
            5. 实时维护你的主机:log file、portsentry
            6. 良好的教育训练课程
            7. 完善的备份计划: rsync工具
        7.5.2 主机受攻击或复原工作流程
            1. 立即拔出网络线
            2. 分析登陆文件信息,搜寻可能的入侵途径
                分析登录档;
                检查主机开放的服务;
                查询Internet上面的安全通报。
            3.  重要数据备份
            4. 重新全新安装
            5. 软件的漏洞修补
            6. 关闭或 移除不需要的服务
            7. 数据恢复与恢复服务设定
            8. 连上Internet
    7.6    重点回顾
    7.7    本章习题

     

  • 相关阅读:
    【无旋转treap】模板
    线性选择算法好题
    【codeforces】305C GCD,容斥
    双连通
    线段树(3)
    线段树(2)
    线段树
    2015 Multi-University Training Contest 2
    2015 Multi-University Training Contest 1
    Codeforces Round #302 (Div. 1)
  • 原文地址:https://www.cnblogs.com/eli01/p/3559621.html
Copyright © 2011-2022 走看看