• iptables 基础知识


    [root@tp ~]#iptables -L -n 查看防火墙规则

    [root@tp ~]# iptables -D INPUT 1  根据命令iptables -L -n --line-number命令查询到unm号码指定删除规则

    [root@tp ~]# iptables -F 清除预设表filter中的所有规则链的规则

    [root@tp ~]# iptables -X 清除预设表filter中使用者自定链中的规则

    设置链的默认策略。一般有两种方法。

    1、首先允许所有的包,然后再禁止有危险的包通过放火墙。


    [root@tp ~]#iptables -P INPUT ACCEPT
    [root@tp ~]#iptables -P OUTPUT ACCEPT
    [root@tp ~]#iptables -P FORWARD ACCEPT

    INPUT链和OUTPU链的默认规则是ACCEPT,所以我们就写需要ACCETP(通过)的链

    禁用远程SSH登陆
    [root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
    [root@tp ~]# iptables -A OUTPUT -p tcp --dport 22 -j DROP

    禁用icmp包(ping命令)
    [root@tp ~]# iptables -A OUTPUT -p icmp -j DROP
    [root@tp ~]# iptables -A INPUT -p icmp -j DROP

    2、首先禁止所有的包,然后根据需要的服务允许特定的包通过防火墙。


    [root@tp ~]#iptables -P INPUT DROP
    [root@tp ~]#iptables -P OUTPUT DROP
    [root@tp ~]#iptables -P FORWARD DROP

    INPUT链和OUTPU链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链

    开通远程SSH登陆
    [root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    [root@tp ~]# iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

    开通icmp包通过(ping命令)
    [root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT 
    [root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT

    /etc/rc.d/init.d/iptables save 或者 service iptables save #保存配置
    /etc/rc.d/init.d/iptables restart 或者 service iptables restart #重启服务



    允许192.168.1.100允许SSH连接192.168.1.200,前提是默认INPUT是DROP
    [root@tp ~]# iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

    限制192.168.1.100访问192.168.1.200的SSH,前提是默认INPUT是ACCEPT

    [root@tp ~]# iptables -I INPUT -s 192.168.1.100 -J DROP

    1.链管理命令(这都是立即生效的)


    -P :设置默认策略的(设定默认门是关着的还是开着的)
    默认策略一般只有两种
    iptables -P INPUT (DROP|ACCEPT) 默认是关的/默认是开的
    比如:
    iptables -P INPUT DROP 这就把默认规则给拒绝了。并且没有定义哪个动作,所以关于外界连接的所有规则包括Xshell连接之类的,远程连接都被拒绝了。
    -F: FLASH,清空规则链的(注意每个链的管理权限)
    iptables -t nat -F PREROUTING
    iptables -t nat -F 清空nat表的所有链
    -N:NEW 支持用户新建一个链
    iptables -N inbound_tcp_web 表示附在tcp表上用于检查web的。
    -X: 用于删除用户自定义的空链
    使用方法跟-N相同,但是在删除之前必须要将里面的链给清空昂了
    -E:用来Rename chain主要是用来给用户自定义的链重命名
    -E oldname newname
    -Z:清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)
    iptables -Z :清空


    2.规则管理命令


    -A:追加,在当前链的最后新增一个规则
    -I num : 插入,把当前规则插入为第几条。
    -I 3 :插入为第三条
    -R num:Replays替换/修改第几条规则
    格式:iptables -R 3 …………
    -D num:删除,明确指定删除第几条规则


    3.查看管理命令 “-L”


    附加子命令
    -n:以数字的方式显示ip,它会将ip直接显示出来,如果不加-n,则会将ip反向解析成主机名。
    -v:显示详细信息
    -vv
    -vvv :越多越详细
    -x:在计数器上显示精确值,不做单位换算
    --line-numbers : 显示规则的行号
    -t nat:显示所有的关卡的信息

    4.通用匹配:源地址目标地址的匹配


    -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP
    IP | IP/MASK | 0.0.0.0/0.0.0.0
    而且地址可以取反,加一个“!”表示除了哪个IP之外
    -d:表示匹配目标地址
    -p:用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)
    -i eth0:从这块网卡流入的数据
    流入一般用在INPUT和PREROUTING上
    -o eth0:从这块网卡流出的数据
    流出一般在OUTPUT和POSTROUTING上


    5.扩展匹配


    2.1隐含扩展:对协议的扩展
    -p tcp :TCP协议的扩展。一般有三种扩展
    --dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口,比如
    --dport 21 或者 --dport 21-23 (此时表示21,22,23)
    --sport:指定源端口
    --tcp-fiags:TCP的标志位(SYN,ACK,FIN,PSH,RST,URG)
    对于它,一般要跟两个参数:
    1.检查的标志位
    2.必须为1的标志位
    --tcpflags syn,ack,fin,rst syn = --syn
    表示检查这4个位,这4个位中syn必须为1,其他的必须为0。所以这个意思就是用于检测三次握手的第一次包的。对于这种专门匹配第一包的SYN为1的包,还有一种简写方式,叫做--syn
    -p udp:UDP协议的扩展
    --dport
    --sport
    -p icmp:icmp数据报文的扩展
    --icmp-type:
    echo-request(请求回显),一般用8 来表示
    所以 --icmp-type 8 匹配请求回显数据包
    echo-reply (响应的数据包)一般用0来表示
    2.2显式扩展(-m)
    扩展各种模块
    -m multiport:表示启用多端口扩展
    之后我们就可以启用比如 --dports 21,23,80

    6、详解-j ACTION

    常用的ACTION:
    DROP:悄悄丢弃
    一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
    REJECT:明示拒绝
    ACCEPT:接受
    custom_chain:转向一个自定义的链
    DNAT
    SNAT
    MASQUERADE:源地址伪装
    REDIRECT:重定向:主要用于实现端口重定向
    MARK:打防火墙标记的
    RETURN:返回
    在自定义链执行完毕后使用返回,来返回原规则链。

    理论来源:http://blog.chinaunix.net/uid-26495963-id-3279216.html  (感谢!)

  • 相关阅读:
    PZISP自动下载软件运行时出现“应用程序无法启动,因为应用程序的并行配置不正确”
    分析Memcached客户端如何把缓存数据分布到多个服务器上
    WebApi参数传递总结
    [NHibernate]一对多关系(级联删除,级联添加)
    提高SQL查询效率
    jquery validate 详解
    Winform子窗体刷新父窗体
    Windows如何修改MySQL用户root密码
    MySQL 5.6 for Windows 解压缩版配置安装
    获取地图文档(*.mxd)中比例尺问题
  • 原文地址:https://www.cnblogs.com/zoulongbin/p/5737497.html
Copyright © 2020-2023  润新知