• arm,iptables: No chain/target/match by that name.


    最近由于项目需要,需要打开防火墙功能.

    公司有

    arm linux 3.0
    x86 linux 3.2
    x86 linux 2.4

    的三个嵌入式.都需要打开防火墙功能.

    执行“whereis iptables”命令,如果结果不为空,则说明防火墙软件已安装

    # whereis iptables
    iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
    root@wheezy-armel:~ 9:26:57

    输入iptables -L 命令查看配置 

    # iptables -L
    Chain INPUT (policy ACCEPT)
    target prot opt source destination
    
    Chain FORWARD (policy ACCEPT)
    target prot opt source destination
    
    Chain OUTPUT (policy ACCEPT)
    target prot opt source destination 
    root@wheezy-armel:~ 9:27:32 
    #

    此处为空表示 没有配置防火墙.

    此处可参考:

    #知识:
    # http://blog.chinaunix.net/uid-9950859-id-98279.html
    # http://blog.slogra.com/post-232.html
    # http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html
    # http://blog.chinaunix.net/uid-26495963-id-3279216.html

    保存本文件,然后把本规则加载,使之生效,注意,iptables不需要重启,加载一次规则就成了
    sudo iptables-restore < /etc/iptables.test.rules
    然后再查看最新的配置,应该所有的设置都生效了.
    sudo iptables -L

    第四步:保存生效的配置,让系统重启的时候自动加载有效配置
    iptables提供了保存当前运行的规则功能
    iptables-save > /etc/iptables.up.rules

    结果执行时报错.

    # iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
    iptables: No chain/target/match by that name.

    网上搜索是缺少内核模块

    root@wheezy-armel:~  9:30:27 
    # lsmod |grep iptables
    root@wheezy-armel:~  9:31:04 
    # 

    是没有输出的.

    root@wheezy-armel:~  9:31:04 
    # iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    iptables: No chain/target/match by that name.

    后面发现是 有了-m state    RELATED,ESTABLISHED  之类的就报错.

    就是对tcp 的连接状态:

      NEW
            ESTABLISHED
            RELATED
            INVALID
    貌似都不能处理 .
     iptables -t filter -A INPUT -s 172.16.0.0/16 -p udp --dport 53 -j DROP
         当然你如果想拒绝的更彻底:
         iptables -t filter -R INPUT 1 -s 172.16.0.0/16 -p udp --dport 53 -j REJECT

    如果用DROP可以成功,用REJECT会报错.

    最后改成了:

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

    简单说就是只能用低级功能,不能用高级功能.

    最后修改后的命令文件是

    # Generated by iptables-save v1.4.14 on Tue May  6 14:54:02 2014
    
    #知识:
    # http://blog.chinaunix.net/uid-9950859-id-98279.html
    # http://blog.slogra.com/post-232.html
    # http://www.cnblogs.com/bangerlee/archive/2013/02/27/2935422.html
    # http://blog.chinaunix.net/uid-26495963-id-3279216.html
    
    #1.PREROUTING (路由前)
    #2.INPUT (数据包流入口)
    ##3.FORWARD (转发管卡)
    #4.OUTPUT(数据包出口)
    #5.POSTROUTING(路由后)
    
    *filter
    :INPUT ACCEPT [1:40]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    
    #允许本地回环接口(即运行本机访问本机)
    #-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
    #允许本地回环接口(即运行本机访问本机)
    -A INPUT -i lo -j ACCEPT
    
    #允许所有本机向外的访问
    -A OUTPUT -j ACCEPT
    
    # arm linux 3.0不可用...
    #-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
    #-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    
    # Allows xxxx port 允许访问 xxxx的端口
    #xxx或xxx可能有多个端口,请在这儿添加.
    #这儿是tcp
    -A INPUT -p tcp -m tcp --dport 1234 -j ACCEPT
    
    #这儿是udp
    #-A INPUT -p udp -m udp --dport 1234 -j ACCEPT
    
    
    # Allows Mysql port 允许访问 mysql 的端口
    #-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
    -A INPUT -p tcp --dport 3306 -j ACCEPT
    
    # Allows SSH port 
    #***如果不允许这个,你就先去一边哭会吧.
    #***如果不允许这个,你就先去一边哭会吧.
    -A INPUT -p tcp --dport 22 -j ACCEPT
    #-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
    
    # 允许 ping 这个和禁用ping ,2选1.
    -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
    #禁用ping
    #-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
    
    #记录日志功能,arm linux 3.0不可用...
    #-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7
    # arm linux 3.0不可用...
    #-A INPUT -j REJECT --reject-with icmp-port-unreachable
    # arm linux 3.0不可用...
    #-A FORWARD -j REJECT --reject-with icmp-port-unreachable
    
    #拒绝 未定义规则.(注意:如果22端口未加入允许规则,SSH链接会直接断开。)  REJECT
    -A INPUT -j DROP 
    -A FORWARD -j DROP 
    
    COMMIT
    # Completed on Tue May  6 14:54:02 2014
    # Generated by iptables-save v1.4.14 on Tue May  6 14:54:09 2014
  • 相关阅读:
    [转]VC++中操作XML(MFC、SDK)
    VC解析XML--使用CMarkup类解析XML
    C++基础--完善Socket C/S ,实现客户端,服务器端断开重连
    socket编程的select模型
    libevent源码分析
    socket异步编程--libevent的使用
    Win32编程点滴3
    Win32编程点滴5
    thrift之TTransport层的堵塞的套接字I/O传输类TSocket
    Thrift之代码生成器Compiler原理及源码详细解析1
  • 原文地址:https://www.cnblogs.com/bleachli/p/5525957.html
Copyright © 2020-2023  润新知