防火墙用于监控往来流量,并根据用户定义的规则来过滤数据包以保证安全。iptables是Linux下设置防火墙规则的常用工具,它可以让你设置、维护以及查看防火墙的规则表。你可以定义多个表,每个表可以包含多个链。每个链都是一系列规则,而每个规则定义了如何处理匹配的数据包。对于匹配的数据包要为其指定“目标”。目标可以是另一条链,也可以是如下特殊值(动作)之一:

  • ACCEPT:意味着数据包允许通过。
  • DROP:意味着数据包不允许通过。
  • RETURN:意味着跳过当前链并且回到调用链的下一条规则。

下面我们来探究一下iptables中的过滤表。过滤表有3条链:

  • INPUT:用来控制传入的数据包,你可以针对某个端口、协议或源ip地址来中断或允许连接。
  • FORWARD :用来过滤传入此地但将要被转发至别处的数据包。
  • OUTPUT:用来过滤传出的数据包。

实践出真知,下面来简单感受一下iptables的使用。

1. 查看当前iptables状态

通过这个命令可以查看当前iptables配置状态。-L选项用来列出所有规则,-v选项用来显示详细信息。输出示例如下图所示。可以看到3条链都被设置为默认的ACCEPT策略。当前每条链还没有规则。接下来我们会修改INPUT链来过滤进入的流量。

2. 定义规则

定义规则意味着把它追加到列表(链)的末尾。iptables命令完整的选项格式长得像这样。我们不必所有的选项。

这里 -A表示追加。interface是想要在其上过滤的网络接口。protocol是你想过滤的数据包所用的网络协议,你也可以指定端口号。

首先,启用本机内部的流量通信。这样应用和数据库之间的所有通信都能正常进行。

输出示例:

然后,我们启用HTTP、SSH和SSL端口连接。

想要HTTP(80端口),HTTPS(443端口),SSH(22端口)连接正常工作,输入以下命令来实现。我们用-p选项指定协议,-dport(destination port)选项指定相应的端口。

现在,这些指定端口上的TCP连接都能被接受。

接下来,基于源地址过滤数据包。

如果你想基于ip源地址或者地址范围来接受或拒绝数据包,那么你可以通过-s选项来指定。比如,接受来自192.168.1.3的数据。

你可以丢弃来自这一地址的数据包,只要将ACCEPT改为DROP:

如果对于来自某一地址范围的数据包你都想丢弃,则需要使用iprange模块,并通过--src-range指定地址范围。

最后,丢弃所有其他流量通信。这是十分重要的步骤,因为这样可以阻止其他端口的未授权访问。以下命令丢弃了除上述端口外其他所有的流入数据。

定义完以上规则后,再来看一看iptables中INPUT状态:

3. 删除规则

如果你想移除所有规则,可以使用flush命令:

如果你想删除指定规则,可以使用-D选项。在这之前,列出所有规则,使用下面的命令可以显示规则对应的行号:

输出如下图:

最后通过行号删除对应的规则:

4. 设置的持久化

目前为止我们对防火墙设置的规则都还只是保存在内存中。这意味这一旦重启变动都会消失。在Debian/Ubuntu系统中,可以使用一下命令保持设置:

该命令将当前规则保存到系统配置文件,它会在重启时重设规则表。每次设置规则后都应该运行这个命令。

Linux防火墙设置——iptables的更多相关文章

  1. Linux防火墙(iptables/firewalld)

    Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...

  2. Linux防火墙简介 – iptables配置策略

    Linux防火墙简介 – iptables配置策略 Netfilter/iptables简介 要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilte ...

  3. linux防火墙之iptables

    linux防火墙之iptables 1.1.1 关于iptables简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 ...

  4. Linux防火墙配置(iptables, firewalld)

    netfilter和底层实现 iptables firealld Linux中的防火墙 RHEL中有几种防火墙共存: iptables firewalld ip6tables ebtables 这些软 ...

  5. Linux防火墙:iptables禁IP与解封IP常用命令

    在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...

  6. Linux防火墙设置

    对于Internet上的系统,不管是什么情况都要明确一点:网络是不安全的.因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的. Linux提供了一个非常优秀的防火墙工具-netfil ...

  7. SUSE Linux 防火墙设置

    1.vim /etc/sysconfig/SuSEfirewall2        #编辑防火墙设置 FW_SERVICES_EXT_TCP="22 5901"       #开启 ...

  8. Linux 防火墙设置,禁止某个ip访问

    service  iptables  status        查看防火墙状态 service  iptables  start           开启防火墙 service  iptables  ...

  9. linux防火墙相关 iptables

    1. root用户查看防火墙状态(非root用户无权限查看) 查看防火墙状态: service iptables status 2.开启和关闭防火墙 //开启防火墙: service iptables ...

随机推荐

  1. 第十二章 存储之 Secret

    1.Secret 存在意义 Secret 解决了密码.token.密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec中.Secret 可以以 Volume 或者环境变量的 ...

  2. plsql exception

    EXCEPTION aligns with BEGIN ... END blocks. There is no BEGIN inside your loop, so there should be n ...

  3. Sublime Text 3 - there are no packages available for installation 解决方法

    解决方法: 1. 下载一个channel_v3.json ,  提取码: n2vc 2. 进入以下路径的设置界面 3. 添加代码 , 文件路径以各自下载保存路径为准 ( 重启sublime, 搞定 ! ...

  4. ORACLE 11G新特性之一(增加带default的字段)

    在11g之前,增加带default值的字段,实现原理如下: alter table t1 add c1 varchar2(20) default 'XX' not null; 假设t1表有4千万行数据 ...

  5. vue-cli创建的项目中引入第三方库报错'caller', 'calle', and 'arguments' properties may not be...

    本文链接:https://blog.csdn.net/Sophie_U/article/details/76223978 问题: 在vue的main.js中引入mui.min.js时,报错. 如上,单 ...

  6. Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议

    Nacos是阿里巴巴开源的服务发现与配置管理项目,本次发布的1.1.4版本,主要带来的是与Istio的对接功能,使用的是Istio最新的MCP协议.本文将介绍包括这个功能在内的新版本发布的功能. 升级 ...

  7. php strrev()函数 语法

    php strrev()函数 语法 strrev()怎么用? php strrev()函数用于反转字符串,语法是strrev(string),返回已反转的字符串.大理石构件来图加工 作用:反转字符串 ...

  8. 为什么不能在shell脚本中执行source /etc/profile或者source ~/.bashrc问题?

    执行脚本时,其中的命令是在一个子shell中执行的.子shell继承了父shell的环境变量,但无法修改他们,或者说所做的修改仅对子shell有效.

  9. 函数————count

    count和count_if函数是计数函数,先来看一下count函数:count函数的功能是:统计容器中等于value元素的个数. count(first,last,value); first是容器的 ...

  10. [MySQL] 怎样使用Mysqlcheck来检查和修复, 优化表

    mysqlcheck 是 MySQL 自带的一个工具,作用就是保养 表,其实就是检查,分析,修复和优化了.下面来介绍 mysqlcheck 工具的简单使用,官方文档在这里 原文网址:http://bl ...