zoukankan      html  css  js  c++  java
  • iptables简易使用教程

    iptables是linux里比较常用的防火墙,也是centos7.0之前的版本默认自带的防火墙。

    配置防火墙需特别注意一件事情:如果服务器在异地机房,需要谨慎配置端口,以免造成新配置生效后无法远程登录的惨状。

    以下简述一下iptables常用的操作和设置方法。

    1.查看iptables运行状态

    # 不用操作系统下略有不同
    service iptables status
    或
    systemctl | grep "iptables"

    2.查看iptables当前使用的规则

    iptables --list

    3.iptables默认规则

    iptables可以分别对 流入 流出 转发 三种数据包进行端口级的默认规则(接受 or 拒绝)

    打开iptables配置文件

    vim /etc/sysconfig/iptables

    找到 *filter 起始的行

    样例:

    # 丢弃来自所有端口 流入 的数据包
    :INPUT DROP [0:0]
    # 接受来自 2至65535 端口 流出 的数据包
    :OUTPUT ACCEPT[2:65535]
    # 丢弃来自 5至2048端口 转发 的数据包
    :FORWARD DROP [5:2048]

    接下来就是一般常规的防火墙规则了

    一般常用的参数如下:

    # -A 添加一条防火墙规则,后面一般接上 INPUT OUTPUT FORWARD
    # -i 指定流量进入的网卡,后面接上网卡名称,如:lo eth0 eth1
    # -o 指定流量出口的网卡,后面接上网卡名称,如:lo eth0 eth1
    # -j 指定规则的行为,后面一般接上 DROP ACCEPT DENY
    # -p 指定应用的协议,如 tcp udp icmp http
    # --dport 进入数据包的目标端口,后面接上端口名称
    # --sport 出口数据包的源端口,后面接上端口名称
    # --state 连接的状态,后面一般接上 NEW ESTABLISHED RELATED
    # -s 源ip地址,后面接上发起数据的ip地址
    # -d 目标ip地址,后面接上数据包的目标ip地址

    常用规则示例:

    # 允许来自本机(127.0.0.1)的流入流量 流出流量
    -A INPUT -i lo -j ACCEPT
    -A OUTPUT -o lo -j ACCEPT
    
    # 允许icmp协议的(例如ping,traceroute)数据包,类似ping,不但需要数据流出,也需要数据流入
    -A INPUT -p icmp -j ACCEPT
    -A OUTPUT -p icmp -j ACCEPT
    # 另一种写法
    -A INPUT -p icmp --state NEW -j ACCEPT
    
    # 允许80端口的所有流量
    -A INPUT -p tcp --dport 80 -j ACCEPT
    -A OUTPUT -p tcp --sport 80 -j ACCEPT
    
    # 拒绝3306端口的所有流量
    -A INPUT -p tcp --dport 3306 -j DROP
    -A OUTPUT -p tcp --sport 3306 -j DROP
    
    # 只允许来自192.168.1.150的ssh(22端口)连接
    -A INPUT -p tcp --dport 22 -s 192.168.1.150 -j ACCEPT
    -A OUTPUT -p tcp --sport 22 -d 192.168.1.150 -j ACCEPT

    4.保存iptables规则

    很多人设置完iptables后,没有保存,或者修改完配置文件后直接执行iptables-save其实都是错的,这样会导致你之前的设置丢失,直接使用iptables-save只适用于通过 iptables -A INPUT -p tcp --dport 3306 -j DROP命令行方式添加的规则进行保存。

    简单地说,iptables-save是把当前内存中的iptables规则写入至 /etc/sysconfig/iptables 文件而已。

    正确方法是:

    先重启iptables

    # 不同操作系统有不同
    service iptables restart
    # 或
    systemctl restart iptables

    再执行保存

    iptables-save

    或从不执行iptables-save,只修改配置文件,重启iptables

  • 相关阅读:
    wcf技术博客
    MFC程序崩溃的友好处理
    DESCryptoServiceProvider 类
    AttributeUsage AttributeTargets
    Word 2007第n级编号不自动按照父级标题自动编号 的解决办法
    suo的作用
    "在唯一密钥属性“name”设置为“Application”时,无法添加类型为“add”的重复集合项"
    PMP考试中的成本管理英文缩写及其含义
    删除右键新建菜单中的多余项
    使用命令行启动服务
  • 原文地址:https://www.cnblogs.com/koboshi/p/4039263.html
Copyright © 2011-2022 走看看