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

公司有

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

arm,iptables: No chain/target/match by that name.的更多相关文章

  1. centos6.8 docker0: iptables: No chain/target/match by that name

    现象:之前docker gitlab运行的一直好好的,突然有一天访问不了,但容器却还运行着.于是我把gitlab容器重启,发现启动不了了,报错:docker0: iptables: No chain/ ...

  2. [转]启动container的时候出现iptables: No chain/target/match by that name

    本文转自:https://blog.csdn.net/u013948858/article/details/83115388 问题: Error response from daemon: drive ...

  3. 启动docker容器 防火墙问题报错 ! -i docker0' failed: iptables: No chain/target/match by that name.

    COMMAND_FAILED: '/sbin/iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 8111 -j DNAT --to-destination ...

  4. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8001 -j DNAT --to-destination 172.17.0.5:8080 ! -i docker0: iptables: No chain/target/match by that name.

    在docker容器上部署项目后,启动docker容器,出现 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dpor ...

  5. 【Docker】iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8480 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name

    启动容器的时候,出现如下错误: Error response / --dport -j DNAT --to-destination ! -i docker0: iptables: No chain/t ...

  6. docker运行报错docker0: iptables: No chain/target/match by that name.

    转自:https://blog.csdn.net/wohaqiyi/article/details/84450562 docker运行报错docker0: iptables: No chain/tar ...

  7. iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3306 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name

    今天使用docker运行mysql时报错, 执行命令: docker run --restart=always --name mysql5.7 -p 3306:3306 -v /data/mysql/ ...

  8. centos7 解决docker0: iptables: No chain/target/match by that name

    解决步骤: 1.查看iptables状态,查看是否正常docker需要依赖该服务 service iptables status 注:我都服务就发现iptables服务的有问题 2.查看iptable ...

  9. docker 端口映射iptables: No chain/target/match by that name错误解决方法

    pkill docker iptables -t nat -F ifconfig docker0 down brctl delbr docker0 service docker restart

随机推荐

  1. Python目录

  2. Firefox Portable Developer 52.0.0.6176-6178

    FirefoxPortableDeveloper-52.0.0.6176.7z 47.9 MB FirefoxPortableDeveloper-52.0.0.6178.7z 55.8 MB

  3. C# 操作excel单元格居中

    C# 操作excel //导出Excel        private void ExportExcel(string fileName, System.Data.DataTable myDGV, s ...

  4. SQL SERVER中如何在声明游标的语句中,用变量做表名

    -- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @StrSql='DECLARE Ba_Cursor CURSOR FOR (SELECT a.PhoneId ...

  5. rdlc报表相关

    错误提示:1.尚未指定报表定义的来源 注意ReportPath与ReportEmbeddedResource的区别,前者获取或设置本地报表的本地文件系统路径,设置此属性将导致后者属性值被忽略:后者将获 ...

  6. 51nod1174(RMQ)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1174 题意:中文题诶- 思路:RMQ模板题 关于RMQ: h ...

  7. hadoop2.6.4 搭建单机模式

    注(要先安装jdk,最好jdk版本>=1.7) 安装jdk  http://www.cnblogs.com/zhangXingSheng/p/6228432.html     给普通用户添加su ...

  8. Android Studio 关联源码问题

    Android Studio 点击某个类查看源码有时候会出现如下情况  这种情况并不是每个项目都会出现这种情况,那是因为项目的编译版本不同,有的关联了Sources中的源码,而有的没有. 下面说一下具 ...

  9. 【Java EE 学习 56】【酒店会员管理系统技术点总结】

    一.树状菜单加载 这是js的一个典型应用,使用zTree插件能够完成该项任务http://www.ztree.me/v3/main.php 我是用的版本:zTree2.5 使用方法: <%@ p ...

  10. MIT 6.828 JOS学习笔记16. Lab 2.2

    Part 3 Kernel Address Space JOS把32位线性地址虚拟空间划分成两个部分.其中用户环境(进程运行环境)通常占据低地址的那部分,叫用户地址空间.而操作系统内核总是占据高地址的 ...