- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux防火墙iptables入门教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、关于iptables 。
iptables是一个基于命令行的防火墙工具,它使用规则链来允许/阻止网络流量。当一条网络连接试图在你的系统中建立时,iptables会查找其对应的匹配规则。如果找不到,iptables将对其采取默认操作。 几乎所有的linux发行版都预装了iptables。在ubuntu/debian中更新/安装iptables的命令为:
现有的一些图形界面软件也可以替代iptables,如firestarter。但iptables用起来并不难。配置iptables的规则时要特别小心,特别是在你远程登陆服务器的时候。因为这时的一个错误有可能让你和服务器永久失去连接,而你必须要到服务器面前才能解决它。 2、iptables规则链的类型 。
。
iptables的规则链分为三种:输入、转发和输出。 1.输入——这条链用来过滤目的地址是本机的连接。例如,如果一个用户试图使用ssh登陆到你的pc/服务器,iptables会首先匹配其ip地址和端口到iptables的输入链规则.
2.转发——这条链用来过滤目的地址和源地址都不是本机的连接。例如,路由器收到的绝大数数据均需要转发给其它主机。如果你的系统没有开启类似于路由器的功能,如nating,你就不需要使用这条链。 有一个安全且可靠的方法可以检测你的系统是否需要转发链:
上图是对一台已经运行了几个星期的服务器的截图。这台服务器没有对输入和输出做任何限制。从中可以看到,输入链和输出链已经分别处理了11gb和17gb的数据,而转发链则没有处理任何数据。这是因为此服务器没有开启类似于路由器的转发功能。 3.输出——这条链用来过滤源地址是本机的连接。例如,当你尝试ping howtogeek.com时,iptables会检查输出链中与ping和howtogeek.com相关的规则,然后决定允许还是拒绝你的连接请求。 注意:当ping一台外部主机时,看上去好像只是输出链在起作用。但是请记住,外部主机返回的数据要经过输入链的过滤。当配置iptables规则时,请牢记许多协议都需要双向通信,所以你需要同时配置输入链和输出链。人们在配置ssh的时候通常会忘记在输入链和输出链都配置它。 3、链的默认行为 。
。
在配置特定的规则之前,也许你想配置这些链的默认行为。换句话说,当iptables无法匹配现存的规则时,你想让它作出何种行为。 你可以运行如下的命令来显示当前iptables对无法匹配的连接的默认动作:
。
正如上面所显示的,我们可以使用grep来使输出的结果变得更加简洁。在上面的截图中,所有的链默认情况下均接受所有的连接。 通常情况下,你会希望你的系统默认情况下接收所有的网络数据。这种设定也是iptables的默认配置。接收网络连接的配置命令是:
。
。
你也可以在使用默认配置的情况下,添加一些命令来过滤特定的ip地址或端口号。我们稍后在本文介绍这些命令。 如果你想默认情况下拒绝所有的网络连接,然后在其基础上添加允许的ip地址或端口号,你可以将默认配置中的accept变成drop,如下图所示。这对于一些含有敏感数据的服务器来说是极其有用的。通常这些服务器只允许特定的ip地址访问它们.
。
。
。
4、对特定连接的配置 下面来看看如何对特定的ip地址或端口作出设定。本文主要介绍三种最基本和常见的设定。 accept – 接收所有的数据。 drop – 丢弃数据。应用场景:当你不想让数据的来源地址意识到你的系统的存在(最好的处理方法)。 reject – 不允许建立连接,但是返回一个错误回应。应用场景:当你不想让某个ip地址访问你的系统,但又想让它们知道你的防火墙阻止了其访问。 为了直观的区分上述三种情况,我们使用一台pc来ping一台配置了iptables的linux电脑: 允许访问 。
丢弃访问 。
拒绝访问 。
5、允许或阻止特定的连接 。
在配置完基本的规则链之后,你就可以配置iptables来允许或者阻止特定的ip地址或者端口。 注意:在这些例子中,我们使用iptables -a将额外的规则添加到现存的链中。iptables在执行匹配的时候,会从列表的顶端开始搜索。你可以使用iptables -i [chain] [number]将新的规则插入到列表的指定位置.
来自同一ip地址的连接 下面这个例子展示了如何阻止来自ip地址为10.10.10.10的所有连接.
来自一组ip地址的连接 下面这个例子展示了如何阻止来自子网10.10.10.0/24内的任意ip地址的连接。你可以使用子网掩码或者标准的/符号来标示一个子网:
或 。
特定端口的连接 这个例子展示了如何阻止来自10.10.10.10的ssh连接.
你可以将“ssh”替换成其它任何协议或者端口号。上述命令中的-p tcp告诉iptables连接使用的是何种协议。 下面这个例子展示了如何阻止来自任意ip地址的ssh连接.
6、连接状态 。
。
我们之前提到过,许多协议均需要双向通信。例如,如果你打算允许ssh连接,你必须同时配置输入和输出链。但是,如果你只想允许来自外部的ssh请求,那该怎么做? 下面这个例子展示了如何允许源ip地址为10.10.10.10同时阻止目的地址为10.10.10.10的ssh连接:
7、保存更改 上述方法对iptables规则作出的改变是临时的。如果你想永久保存这些更改,你需要运行额外的命令(不同linux发行版下的保存命令也不相同): ubuntu
red hat / centos
或者 。
。
。
8、其它命令 。
。
列出iptables的当前配置:
使用-v选项将显示数据包和字节信息;使用-n选项将以数字形式列出信息,即不将ip地址解析为域名。 换句话讲,主机名,协议和网络都以数字的形式列出。 清除当前所有的配置规则:
最后此篇关于Linux防火墙iptables入门教程的文章就讲到这里了,如果你想了解更多关于Linux防火墙iptables入门教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
Hive —— 入门 Hive介绍 Apache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一
HBase —— 入门 HBase介绍 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”
零:前端目前形势 前端的发展史 HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 -> 给后端(PHP、Python、Go、Java) ->
在本教程中,您将了解在计算机上运行 JavaScript 的不同方法。 JavaScript 是一种流行的编程语言,具有广泛的应用程序。 JavaScript 以前主要用于使网页具有交
我曾经是一个对编程一窍不通的小白,但因为对互联网世界的好奇心和求知欲的驱使,我踏入了编程的殿堂。在学习的过程中,我发现了一门神奇的编程语言——Python。Python有着简洁、易读的语法,让初学者能
嗨,亲爱的读者们! 今天我要给大家分享一些关于Python爬虫的小案例。你是否曾为了获取特定网页上的数据而烦恼过?或者是否好奇如何从网页中提取信息以供自己使用?那么,这篇文章将会给你一些启示和灵感。
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我想创建一个像https://apprtc.appspot.com/?r=04188292这样的应用程序。我对 webrtc 了解一点,但无法掌握 google app-engine。如何为 java
我刚刚开始使用 Python 并编写了一个简单的周边程序。但是,每当我在终端中键入 python perimeter.py 时,都会收到以下错误,我不知道如何解决。 >>> python perime
Redis有5个基本数据结构,string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了
创建发布web项目 具体步骤: 1.在开发工具中创建一个dynamic web project helloword 2.在webContent中创建index.html文件 3.发布web应用到
如果你在 Ubuntu 上使用终端的时间很长,你可能会希望调整终端的字体和大小以获取一种良好的体验。 更改字体是一种最简单但最直观的 Linux 的终端自定义 的方法。让我
1. 前言 ADODB 是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的
我对 neo4j 完全陌生,我很抱歉提出这样一个基本问题。我已经安装了neo4j,我正在使用shell“localhost:7474/webadmin/#/console/” 我正在寻找一个很好的例子
我正在阅读 ios 4 的核心音频,目的是构建一个小测试应用程序。 在这一点上,我对所有 api 的研究感到非常困惑。理想情况下,我想知道如何从两个 mp3 中提取一些样本到数组中。 然后在回调循环中
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是无关紧要的,因
我下载了 GNUStep并安装了它,但是我不确定在哪里可以找到 IDE。有谁知道什么程序可以用作 GNUStep IDE/从哪里获取它们?否则,有没有人知道有关如何创建和编译基本 GNUStep 程序
我正在尝试开始使用 Apache Solr,但有些事情我不清楚。通读tutorial ,我已经设置了一个正在运行的 Solr 实例。我感到困惑的是 Solr 的所有配置(架构等)都是 XML 格式的。
请问有没有关于如何开始使用 BruTile 的文档? 我目前正在使用 SharpMap,我需要预缓存切片以加快进程 最佳答案 我今天正在研究这个:)Mapsui项目site严重依赖 SharpMap
尽我所能,我无法让 CEDET 做任何事情。 Emacs 24.3。我下载了最新的 CEDET 快照。我从他的底部(不是这样)Gentle Introduction 中获取了 Alex Ott 的设置
我是一名优秀的程序员,十分优秀!