• 学习使用windows下类似iptables的防火墙软件


    项目地址:
    http://wipfw.sourceforge.net
    一、下载地址:
    http://sourceforge.net/projects/wipfw/files/
    安装:
    解压软件包后执行install.cmd文件,就安装完成。

    二、相关参数:
    The following options are available:
    -a     查看规则,并统计经过的数据包。
    -d     显示动态规则,除了静态规则。
    -e     和-d参数一样,也显示过期的规则。
    -f     一般用在清空规则的时候
    -q     在添加、清空、resetlogging、flushing,它会打印一条消息,因为所有的规则都被重置,这个消息会被传到登陆回话,回话可能会被关闭;在调整多个ipfw命令的时候非常有用。
    -t     查看所有规则,并打印最后查看时间。
    -N     在输出的时候,解析IP地址和服务的名称(建议不要用,因为解析地址和服务名称会很慢)

    额外的命令(仅用于Windows):
    enum     查看本地所有网络接口
    sysctl    编辑sysctl的值.如:ipfw sysctl debug=0

    三、规则的格式如下:
    [prob match_probability] action [log [logamount number]] proto from src to dst [interface-spec] [options]
    1、相关解释:
    rule_number
    规则数,范围1-65535,默认不指定为100;规则的排序是从小到大排,规则数越小优先级越高。另外多个规则可以指定一个number
    log 
    消息包与规则匹配日志,默认会放到%systemroot%securitylogswipfwYYYYMMDD.log下

    2、规则动作:
    action: allow、accept、pass、permit
    check-state:匹配动态规则集,如果有检查状态规则,则从第一条开始检查;如果没有检查状态规则,动态规则优先。
    count针对所有的数据包更新计数器。
    deny|drop 匹配到规则,就终止。
    3、规则主体:
    [proto from src to dst] [options]
    proto: protocol 支持协议列表%systemroot%system32driversetcprotocol
    列入常用的IP/TCP/UDP/ICMP/RDP等

    源和目的地址:
    any、单个IP或主机名,IP/netmask,IP:netmask
    ports: {port|port-port|port:mask}[,port[,...]]
    "-"表示端口范围
    ":"这个用在端口上暂时还没理解,官网是这么解释的notation specifies a port and a mask, a match is declared if the port number in the packet matches the one in the rule, limited to the bits which are set in the mask.

    4、规则的options:
    established  TCP信息包匹配具有RST或ACK bits设置
    fragment     片段 
    icmptypes    匹配ICMP packets,支持的数据包类型
        reply (0) 回复
        destination unreachable (3)目的不可达
        source quench (4) 关闭源
        redirect(5)  重定向
        echo request (8) 输出请求
        router advertisement (9)路由通告
        router solicitation (10) 路由器请求
        time-to-live exceeded (11)传出时间超时
         IP header bad (12) 坏的IP包头
        timestamp request(13) 时间戳请求
        timestamp reply (14) 时间戳应答
        information request (15) 信息请求 
        information reply (16) 信息应答
        address mask request (17) 地址掩码请求
        address mask reply (18) 地址掩码应答
        
    in | out  匹配进出请求
    ipoptions 匹配指定IP报头
    keep-state 更新规则的生命周期,一有请求就刷新规则
    limit {src-addr | src-port | dst-addr | dst-port} N
    recv | xmit | via {ifX | if* | ipno | any} 匹配收到,传中中的,检测中的包。
    setup 匹配SYN TCP请求,不匹配ACK bit;tcpflags syn,!ack
    tcpflags spec  
    tcpoptions spec 

    四、命令的使用以及案例:
    默认安装完的防火墙规则是允许所有的,如下
    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    add 100 allow all from any to any via lo*
    add 110 deny log all from any to 127.0.0.0/8 in
    add 110 deny log all from 127.0.0.0/8 to any in
    add check-state
    add pass all from me to any out keep-state
    add count ip from any to any
    ++++++++++++++++++++++++++++++++++++++++++++++++

    清掉所有的规则:
    ipfw -f flush
    ipfw delete number删除某条规则
    ipfw  -at list  常看当前规则
    ipfw -a list 查看当前规则
    ipfw list 查看当前规则
    ipfw show 查看当前规则,更详细些
    ipfw add check-state 添加动态规则集
    ipfw add 220 allow/deny tcp/udp from 192.168.0.1/24 2000-4000 to any  限制TCP/UDP和客户端
    ipfw add 101 deny tcp from 192.168.1.0/24 to  172.16.0.19 3389  限制指定客户端远程服务器

    +++++++++限制访问(不使用动态规则)+++++++++++++++++++++++++++++++++++
    ipfw add allow tcp from any to any established
    ipfw add allow tcp from net1 portlist1 to net2 portlist2 setup
    ipfw add allow tcp from net3 portlist3 to net3 portlist3 setup
    ipfw add deny tcp from any to any

    ++++为了保护一个网站从洪水袭击涉及假TCP数据包,更安全的做法是使用动态规则+++++++++++
    ipfw add check-state
    ipfw add deny tcp from any to any established
    ipfw add allow tcp from my-net to any setup keep-state


    ++++++++++++++++++++我现在的windows服务器规则++++++++++++++++++++++++++++++
    #写批处理文件,然后加到启动项里面。

    ipfw -f flush 清掉所有规则
    ipfw add check-state
    ipfw add 101 allow ip from 192.168.1.0/24  to any
    ipfw add 101 allow ip from 10.0.0.0/8 to any
    ipfw add 102 allow ip from 10.0.0.0/16 to any
    ipfw add deny tcp from any to any
    ipfw add deny udp from any to any

    花费了半个下午终于搞定了windows下的安全,有些地方是自己翻译的不是很精确,有出入的地方望指教。cecnck@gmail.com

    本文出自 “Larry学习之路” 博客,请务必保留此出处http://5iqiong.blog.51cto.com/2999926/1112657

  • 相关阅读:
    show()的几种方法
    sql的交叉连接,内连接,左外连接,右外连接,全外连接总结
    MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
    RedHat9通过Host-only配置网络连接
    解决Struts2.2.20版本的标签不支持style属性的问题
    SQL查询数据库中所有含有某一列的所有表
    简单工厂模式
    vc常用类总结(转载)
    嵌入式程序员应知道的0x10个C语言Tips
    C语言位操作
  • 原文地址:https://www.cnblogs.com/seasonzone/p/3531795.html
Copyright © 2020-2023  润新知