• Linux防火墙Centos6的常用命令iptables


    一、iptables基础知识

    二、作者玩玩的配置文件

    • 文件地址为/etc/sysconfig,文件名为iptables
    cd /etc/sysconfig
    
    • 1
    vim iptables
    
    • 1
    # Firewall configuration written by system-config-firewall
    # Manual customization of this file is not recommended.
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -s 192.168.1.1 -p tcp --dport 22 -j ACCEPT
    -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
    -A INPUT -s 185.23.234.219/24 -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 6666 -j ACCEPT
    -A INPUT  -p tcp  -m  multiport --dports  18848,16501:16800  -j  ACCEPT
    -A INPUT -j REJECT --reject-with icmp-host-prohibited
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited
    COMMIT
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    三、iptables中常用的参数以及作用

    • -A 在规则链的末尾加入新规则
    • -d 匹配目标地址
    • –dport num 匹配目标端口号
    • -D num 删除某一条规则
    • -F 清空规则链
    • -j 动作 匹配数据包后执行的动作
    • -I num 在规则链的头部加入新规则
    • -L 查看规则链
    • -m 用于指定扩展模块
    • -i 网卡名称 匹配从这块网卡流入的数据
    • -o 网卡名称 匹配从这块网卡流出的数据
    • -p 匹配协议,如TCP、UDP、ICMP
    • -P 设置默认策略
    • -s 匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
    • –sport num 匹配来源端口号

    -j参数的动作类型

    • ACCEPT 允许
    • DROP 丢弃(无响应)
    • REJECT 拒绝(回应请求者明确的拒绝)
    • MASQUERADE 伪装上网使用
    • SNAT 共享地址上网
    • DNAT 目标地址改写

    四、安装iptables

    yum install iptables-services
    
    • 1

    五、iptables启动命令

    • 查看防火墙状态
    service iptables status
    
    • 1
    • 启动防火墙
    service iptables start
    
    • 1
    • 关闭防火墙
    service iptables stop
    
    • 1
    • 开机启动防火墙
    chkconfig iptables on
    
    • 1
    • 开机禁用防火墙
    chkconfig iptables off
    
    • 1

    六、iptables命令结构

    iptables [-t table]  command CHAIN [match] [target/jump]
    
    • 1
    • [-t table] 用来指定要操作的表。一般情况下不是必须要指定使用的表,因为 iptables 不指定 table 就默认使用 filter 表来执行所有的命令。
    • command 告诉程序该做什么,比如插入一条规则还是追加一条规则,或者是删除一条规则。
    • CHAIN 说明了要操作哪一条链
    • match 来根据包的特点来匹配数据包,其中会细致地描述包的某个特点,比如来源 IP 地址,网络接口,端口,协议类型等,以使这个包区别于其它所有的包。
    • target/jump 说明了对 match 到的数据包做什么操作,或者告诉数据包它应该去往何处。若数据包符合所有的 match,内核就用 target 来处理它,或者说把包发往 target。比如我们可以让内核把包发送到当前表中的其他链(可能是自定义链),或者只是丢弃这个包而没有什么处理,或者向发送者返回某个特殊的应答信息。非常重要的一点是 target 指令必须在最后。

    命令例子

    iptables -t filter -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
    
    • 1
    • iptables对应iptables
    • -A对应command
    • INPUT对应CHAIN
    • -t filter 对应 [-t table]
    • -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT 对应的是[target/jump]

    默认执行方式

    • 不指定表名时,默认指filter表
    • 不指定链名时,默认指定表内的所有链
    • 除非设置链的默认策略,否则必须指定匹配标记
    • 选项、链名、控制类型使用大写字母,其余均为小写

    执行iptables命令和写入配置文件两种方式的对比

    • 执行命令立即生效,写入配置文件需要将iptables重启才能生效
    • 直接使用iptables命令修改防火墙配置的时候,防火墙规则只是保存在内存中,重启后就会失效。
    • 如果要使内存的命令保存到配置文件中使用下面这条命令,但是要注意,这个命令会格式化你原来的配置文件,导致你写的注释会丢失。原配置文件会备份命令为iptables-save
      service iptables save
      
      • 1
    • 执行下面的命令
      iptables -t filter -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
      
      • 1
    • 等同于写入配置文件filter表下的这段话
      -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT
      
      • 1
    • 差别,写入配置文件不用写iptables、表名,其他都一样

    相对常用的命令

    参考文档

  • 相关阅读:
    Java:Perl和Java的详细比较
    java计算机毕业设计工资管理系统MyBatis+系统+LW文档+源码+调试部署
    #DAYU200#OpenHarmony 视频播放器
    07 【动态组件 组件注册】
    批量自动html文档排版工具
    k8s - Flannel
    多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术
    【MySQL】JDBC编程
    AcWing 800. 数组元素的目标和——算法基础课题解
    PHP基础面试题
  • 原文地址:https://blog.csdn.net/qq_45928041/article/details/133129461