iptables的简单的介绍

1. 防火墙服务概念介绍
    防火墙作用: 火灾(危险)  防火墙  人(安全)
                  外网   防火墙  内网
    防火墙实现: 软件实现(firewalld iptables)    硬件实现(思科 华为 H3C 深信服)
             PS: 中小企业网络防护(软件)      大型企业(硬件) 2-3s
    防火墙应用: 应用在OSI7层 二层(MAC) 三层(IP) 四层(端口)  80 443
             nginx+lua(WAF) --> 应用层
    防火墙名词:
    1) 什么是容器: 装东西 盛东西 的 器皿
    防火墙服务容器 ---> 防火墙表 ---> 链信息 ---> 规则信息
     2) 什么是规则: 安全策略
    对客户端数据包信息进行过滤判断
    只有符合规则流量可以放行或者阻止
    当第一个规则没有匹配, 会继续匹配下一条规则
    直到所有规则都没有匹配, 匹配默认规则
    3) 什么是表:   不同规则信息分类到不同表中进行配置
    filter:  主要实现防火墙流量过滤功能
    nat   :  主要实现防火墙端口或IP地址映射   10.0.0.1   --防火墙  --- 公网地址
    mangle:  对数据包进行标记 
    raw   :  对数据包标记进行取消
    4) 什么是链:   对数据包做不同的处理
       filter:
       · INPUT:    对进入防火墙流量进行规则控制
       · OUTPUT:   防火墙主机产生流量是否可以出去
       · FORWARD:  经过流量进行控制    外网 --> 防火墙服务 -->  内网   
   
2. 防火墙服务安装部署 
 yum install -y iptables-services
 systemctl start iptables
 
3. 防火墙服务配置应用
    查看默认配置信息:
 
    iptables -L -n
    -L  list    列表显示表的链和规则信息
    -n  number  将部分信息以数字形式显示
 
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination        
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0          
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
   
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination        
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
   
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination  
 
    将默认规则先清除
 iptables -F   --- 清除默认规则信息(filter表)
 iptables -Z   --- 清除计数器功能   (统计流量数据包个数 所有数据包字节数)      排错
 iptables -X   --- 删除用户自定义链 ???      
  
    Filter表配置方法:
 1) 阻止用户访问远程服务22端口
 INPUT链
 iptables -A INPUT  -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT
 iptables -A INPUT  -s 172.16.1.0/24 -p tcp --dport 22 -j ACCEPT
 iptables -A INPUT  -i eth1  -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT  -p tcp --dport 22 -j DROP(ACCEPT DROP* REJECT)
 
 OUTPUT链:
 iptables -A OUTPUT  -d 10.0.0.1 -p tcp --sport 22 -j ACCEPT
 iptables -A OUTPUT  -d 172.16.1.0/24 -p tcp --sport 22 -j ACCEPT
 iptables -A OUTPUT  -o eth1  -p tcp --sport 22 -j ACCEPT
    iptables -A OUTPUT  -p tcp --sport 22 -j DROP(ACCEPT DROP* REJECT)
 
 2) 允许外网地址可以连接22端口(10.0.0.6)
 iptables -I OUTPUT -o eth0 -d 10.0.0.6 -p tcp --sport 22 -j ACCEPT
 
 3) 除了10.0.0.1地址可以访问80端口,其他主机都不能访问80端口
 方法一:
 iptables -A INPUT -s 10.0.0.1 -p tcp --dport 80 -j ACCEPT
 iptables -A INPUT -p tcp --dport 80 -j DROP
 
 方法二:
 iptables -A INPUT -s 10.0.0.1 -p tcp --dport 80 -j ACCEPT
 默认规则阻止
 iptables -P INPUT DROP
 
 方法三:
 iptables -A INPUT ! -s 10.0.0.1 -p tcp --dport 80 -j DROP
 
 4) 允许10.0.0.6用户访问防火墙服务 80 81 82 83端口
 iptables -A INPUT -s 10.0.0.6 -p tcp --dport 80:83 -j ACCEPT
   
 5) 允许10.0.0.6用户访问防火墙服务 80,443,8080端口
 iptables -A INPUT -m multiport  -s 10.0.0.6 -p tcp --dport 80,443,8080 -j ACCEPT
 
 6) 删除规则信息
 iptables -D INPUT 2
 7) 实现禁ping功能
 其他主机 --- 禁止访问防火墙服务器
 iptables -A INPUT -p icmp --icmp-type 8 -j DROP
 iptables -A OUTPUT -p icmp --icmp-type 0 -j DROP
 
 禁止防火墙主机 --> 其他主机
 iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
 iptables -A INPUT -p icmp --icmp-type 0 -j DROP
 
 icmp 0: 回显应答(Ping应答)
 icmp 8: 回显请求(Ping请求)
 
 总结禁ping
 iptables -A INPUT -m icmp -p icmp --icmp-type any -j DROP
 
 问题: 还回接口(逻辑接口) loopback
 iptables -I INPUT -i lo -m icmp -p icmp --icmp-type any -j ACCEPT
 
 8) 实现网络流量数据包限速
 -m limit     --- 使用限速功能(数据包发送频率)
 --limit n/{second/minute/hour}:     --- 限制每秒钟/每分钟/每小时产生多少个数据包
 --limit-burst [n]                   --- 定义限制数据包一个标准
 iptables -I INPUT -s 10.0.0.6 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j ACCEPT
 iptables -A INPUT -m icmp -p icmp --icmp-type any -j DROP
 
 NAT表配置方法:
 HTTPS:
 
 openvpn
 L2TP
 
 
 
0X:  iptables命令参数信息
     -A 链信息   : 在指定链上可以添加规则
  -I 链信息   : 在指定链上可以插入规则
  -I 链信息 编号  : 自定插入到第几个规则之上
 
 
     -p 协议信息 : 指定过滤处理数据协议信息(tcp udp icmp)
     --dport 端口: 指定访问目标端口号码
  --sport 端口: 指定访问源端口号码
 
  -s 源IP地址   : 访问源IP地址信息
  -d 目标IP地址 : 访问目标IP地址信息
 
  -i 接口 : 流量流入的接口信息
  -o 接口 : 流量流出的接口信息
     -j 动作信息 : 指定需要对匹配数据包执行什么动作          
 
  -F      : 清除默认规则信息(filter表)
  -Z      : 清除计数器功能   (统计流量数据包个数 所有数据包字节数)      排错
  -X      : 删除用户自定义链 ???
  --line-number  --- 显示规则编号
 
 
posted @ 2020-06-15 14:39  小乔啊  阅读(166)  评论(0编辑  收藏  举报