zoukankan      html  css  js  c++  java
  • linux的安全--Selinux,tcp_wrappers,iptables使用

    一、linux安全

    安全主要是端口与服务的对应配置

    1.1 linux安全主要通过下面三个进行加固

    • Selinux----主要是对内核的访问权限加以控制
    • tcp_wrappers---一定程度上限制某种服务的访问权限
    • iptables---主要是设置软件的防火墙

    1.2 ping 的禁止

    •  临时允许PING操作的命令为:#echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
    • 永久允许PING配置方法
    /etc/sysctl.conf 中增加一行
    
                  net.ipv4.icmp_echo_ignore_all=1
    • /etc/rc.d/rc.loacl
    echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all
    • iptables的设置
    iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

    二、Selinux介绍

    • 内核的强制安全访问控制
    • 可以用getenforce获取目前Selinux的状态
    • vi  /etc/sysconfig/selinux  设置SELINUX

    三、tcp_wrappers的介绍

       并不是所有的服务都是受tcp_wrappers管理的,只用采用libwrap库的服务才受管理

    3.1 服务的检查

    (1)检查服务是否受管理

       ldd $(which domainname) | grep libwrap
             domainname=sshd httpd smb xinetd .........

    如果有这个链接,说明某个服务接受tcp_wrappers管理

    (2)受管理的服务

      • 进程归xinetd管理
      • 一些独立的进程
     sendmail
     slapd
     sshd
     stunnel
     xinetd
     gdm
     gnone-session
     vsftpd
     portmap
    

    (3)有些进程不受tcp_wrappers管理

     httpd
     smb
     squid 等
    

    3.2 配置管理

    /etc/hosts.allow
    /etc/hosts.deny

    3.3 工作原理

    a.当有请求从远程到达本机的时候

           首先检查/etc/hosts.allow
           如有匹配的,就默认允许访问,跳过 /etc/hosts.deny这个文件
           没有匹配的,就去匹配/etc/hosts.deny 文件,如果有匹配的,那么就拒绝这个访问

    b.如果在这两个文件中,都没有匹配到,默认是允许访问的

    c.两个文件格式

    服务列表 :地址列表 :选项

    A. 服务列表格式:如果有多个服务,那么就用逗号隔开
    B. 地址列表格式:
      1. 标准IP地址:例如:192.168.0.254,192.168.0.56如果多于一个用,隔开
      2. 主机名称:例如:www.baidu.com, .example.con匹配整个域
      3. 利用掩码:192.168.0.0/255.255.255.0指定整个网段
         注意:tcp_wrappers的掩码只支持长格式,不能用:192.168.0.0/24
      4. 网络名称:例如 @mynetwork

    d.例子

    hosts.allow  sshd:192.168.0.1:allow
    
    hosts.deny     sshd:ALL 

    四、iptables的介绍

    4.1 简介

    iptables是由ip+tables组成,它由多个表,每个表的功能都不一样,每个表由于多个链(chain)组成,我们可以对这个链进行设置规则与策略。

    4.2 表与链

    (1)一般由三种表

      • filter----管理本机数据的进出
      • NAT---网络地址转换
      • mangle---用于标记高级路由的信息包,改变不同的包和包头

    (2)filter

    filter表
    描述
    FORWARD 将外部的数据包传递到内部的服务器
    INPUT 主要是外部数据进入内部数据的信息过滤
    OUTPUT 主要是内部数据发到外部数据的信息过滤

    (3)NAT

    NAT
    描述
    OUTPUT 改变本地产生包的目的地址
    POSTROUTING 改变数据返回来源的目的地址,SNAT,屏蔽局域网内部来源主机信息
    PREROUTING 改变访问的目的地址,DNAT,也就是内部主机只能限制防火墙访问

    (3)mangle不常用

    4.3 iptables 内部组成

     从图中可以看出,众多的路由规则(Rule)和预设的规则(policy)组成了一个功能链(chain),多个链组成一个表,多个表就组成了防火墙。最常用的就是filter表,NAT表用在地址映射方面。

    4.4 iptables 执行流程

     iptables就是由多个路由规则的组合体,满足一个规则,其他的规则就不在验证,所有的规则都不满足就执行默认的规则

    设定规则需要注意顺序

     4.5 iptables的使用

           (1)iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 参数

    -P 设置默认策略:iptables -P INPUT (DROP|ACCEPT)
    -F 清空规则链
    -L 查看规则链
    -A 在规则链的末尾加入新规则
    -I num 在规则链的头部加入新规则
    -D num 删除某一条规则
    -s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。
    -d 匹配目标地址
    -i 网卡名称 匹配从这块网卡流入的数据
    -o 网卡名称 匹配从这块网卡流出的数据
    -p 匹配协议,如tcp,udp,icmp
    --dport num 匹配目标端口号
    --sport num 匹配来源端口号
    

      (2)预设规则

    iptables  [-t  tables] -P[input output  FORWARD]  [ACCEPT  DROP]
    

      (3)针对IP网络、网络接口的过滤规则

    iptables  [-t  tables] [-AI 链]  [-io  网络接口][-p tcp|UDP|ICMP] [-s  来源网络] [-d 目标网络] [-j ACCEPT |DROP]
    

      (4)针对TCP 和UDP的过滤规则

    iptables  [-t  tables] [-AI 链]  [-io  网络接口][-p tcp,udp] [-s  来源网络][--sport 端口范围 ] [-d 目标网络] [--dport 端口范围][-j ACCEPT |DROP]
    

      

  • 相关阅读:
    python 远程 部署和运行
    学习笔记——UML类图
    Core Data 多线程操作实战篇
    Core Data系列六——Custom Migration
    Core Data系列五——数据迁移方案
    NSOperation以及NSOperationQueue的使用
    Magical Record设计小谈
    Core Data系列四——多线程设计
    Core Data系列三——基本使用
    Core Data系列二——基础概念
  • 原文地址:https://www.cnblogs.com/hl-piglet/p/8430162.html
Copyright © 2011-2022 走看看