Linux IPTABLS

    技术2022-05-20  36

    Firewall 组件,工作在网络边缘(主机边缘),对进出本网络的数据包基于一定的规则进行检查,并在匹配到某规则时由规则定义的处理机制进行处理的

     七层:代理防火墙 三层:包过滤防火墙

     ralated  状态检测 edstablish 已建立连接

     数据包进入主机时先送入内核

     通过系统调用将规则送入内核

     防火墙基于tcp/ip协议栈检查

     hook function

     Netfilter 过滤 功能框架  INPUT  OUTPUT  FORWARD NAT  PREROUTING  POSTROUTING  OUTPUT mangle  INPUT  OUTPUT  FORWARD  PREROUTING  POSTROUTING RAW  PREROUTING  OUTPUT

     PREROUTING 路由前 INPUT 到本机内部 OUTPUT 主机到外部的 FORWARD 转发 POSTROUTING 路由后

    iptables [-t table] command CHAIN链 [NUM] match cretiaria匹配条件 -j TARGET

     -t table  filter  nat  mangle  raw

     command:  CHAIN:   -N 新建一条规则链    iptables -N attach-input       -X 删除一条用户自定义的链,只能删除空链   -F 清空链中规则,   -Z 清空计数器 每个规则有两个计数器,一个记录本条规则匹配到的数据包的个数 一个用来记录本条规则匹配到的数据包大小之和   -P 定义默认处理策略   -E

      RULE:   -A 追加   -I 插入     -I CHAIN num   -R 替换    -R CHAIN NUM   -D 删除    -D CHAIN NUM

      List:   -L 列出链中所有规则    -n 以数字显示地址    -v -vv -vvv 显示详细信息    -x 显示原有信息不要换算    --line-numbers 显示规则中行号

     Match Creteria:  基本匹配   -s,--src,--source 匹配源地址   -d,--dst,--destination 匹配目标地址   -i   指定数据包的流入接口(逻辑接口)   -o   指定数据包的流出接口(逻辑接口)   -p,protocol,[tcp|udp|icmp] 协议匹配   扩展匹配

       隐含扩展    -p tcp     --sport     --dport     --tcp-flags SYN,ACK,FIN,RST SYN ->检查SYN,ACK,FIN,RST标志,其中SYN位必须为1,ACK,FIN,RST为0,其他无所谓(SYN,ACK,FIN,PSN,URG,RST,ALL,NONE) tcp的标志位     --syn    -p udp     --sport      --dport    -p icmp     --icmp-type echo-request,8 echo-reply,0   显式扩展    -m     iptables -I INPUT 1 -d 192.168.0.97 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT     iptables -I OUTPUT 1 -s 192.168.0.97 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT     NEW新的连接,ESTABLISHED,RELATED,INVALID无法识别状态   /etc/sysconfig/iptables-config

        -m myltiport 最多15个     --sports 22,80,443     --dports     --ports

        -m connlimit     --connlimit-above 最多并发连接 (限制迅雷)      ! --connlimit-above 5

        -m string     iptables -A INPUT -d 192.168.0.97 -p tcp --dport 80 -m string --string text -j DROP    -m time  结束时间不能小于起始时间     --timestart HH:MM     --timestop HH:MM -j TARGET  ACCEPT  DROP  REJECT  SNAT   DNAT  MASQUERADE 地址伪装  REDIRECT 端口重定向  LOG

    ssh,tcp,22,s:192.168.0.0,目标此目标机器地址

    iptables -t filter -A INPUT -s 192.168.0.0/24 -d 192.168.0.97 -p tcp --dport 22 -j ACCEPTiptables -t filter -A OUTPPUT -s 192.168.0.97 -d 192.168.0.0/24 -p tcp --sport 22 -j ACCEPTiptables -t filter -I INPUT -s 127.0.0.1 -d 127.0.0.0/8 -j ACCEPTiptables -t filter -I OUTPUT -s 127.0.0.1 -d 127.0.0.0/8 -j ACCEPTiptables -t filter -P INPUT DROP 设置默认策略iptables -t filter -P OUTPUT DROPiptables -t filter -A OUTPUT -s 192.168.0.97 -d 0.0.0.0 -p icmp --icmp-type 0 -j ACCEPTiptables -t filter -A INPUT -s 0.0.0.0 -d 192.168.0.97 -p icmp --icmp-type 8 -j ACCEPT

    -s '!' 192.168.0.0/24

    iptables -L -n -viptables -L -n --line-numbers

    PING 回应0 请求8策略: 通,堵

    service iptables save iptables保存

    /porc/sys/net/ipv4_ipforward  1打开  0关闭route add default gw 192.168.158.129route add -net 192.168.158.0/24 gw 192.168.0.25route del -net 192.168.158.0/24

     

    layer7-filter

    netfilter,iptables

    gcc GNU C Compliermakeglibc

    ./configure --prefix=/usr/local/NAMEmake(头文件,库文件) 头文件  include <math.h>  /usr/include  /usr/local/include  ln -sv /uar/local/NAME/include /usr/include/NAME/make install

    二进制,/usr/local/NAME/bin,/usr/local/NAME/sbin,/usr/local/NAME/libexec库文件,/usr/local/NAME/lib配置文件,/usr/local/NAME/etc帮助文件,/usr/local/NAME/share

    # /usr/local/NAME/bin/AAA

    # PATH=$PATH:/usr/local/NAME/bin/:/usr/local/NAME/sbin/  设置默认环境变量

    系统默认寻找库文件的路径:/lib,/usr/lib,/usr/local/lib/etc/id.so.conf/etc/id.so.conf.d/*.conf

    # idconfig -v 

    帮助文件 man可以看到的手册

    man的配置文件 --> /etc/man.config   MANPATH  man命令的寻找路径

    /etc/init.d/iptables save

    service iptables save

    /etc/sysconfig/iptables/etc/sysconfig/iptables

    iptables-save > /etc/sysconfig/iptables/iptables.2011012401 保存iptables

    iptables-restore < /etc/sysconfig/iptables/iptables.2011012401  调用iptables


    最新回复(0)