一、关于iptables
Iptables是一个基于命令行的防火墙工具,它使用规则链来允许/阻止网络流量。当一条网络连接试图在你的系统中建立时,iptables会查找其对应的匹配规则。如果找不到,iptables将对其采取默认操作。
几乎所有的Linux发行版都预装了iptables。在Ubuntu/Debian中更新/安装iptables的命令为:
复制代码 代码如下:
sudo apt-get install iptables
现有的一些图形界面软件也可以替代iptables,如Firestarter。但iptables用起来并不难。配置iptables的规则时要特别小心,特别是在你远程登陆服务器的时候。因为这时的一个错误有可能让你和服务器永久失去连接,而你必须要到服务器面前才能解决它。
二、Iptables规则链的类型
Iptables的规则链分为三种:输入、转发和输出。
1.输入——这条链用来过滤目的地址是本机的连接。例如,如果一个用户试图使用SSH登陆到你的PC/服务器,iptables会首先匹配其IP地址和端口到iptables的输入链规则。
2.转发——这条链用来过滤目的地址和源地址都不是本机的连接。例如,路由器收到的绝大数数据均需要转发给其它主机。如果你的系统没有开启类似于路由器的功能,如NATing,你就不需要使用这条链。
有一个安全且可靠的方法可以检测你的系统是否需要转发链:
复制代码 代码如下:
iptables -L -v
上图是对一台已经运行了几个星期的服务器的截图。这台服务器没有对输入和输出做任何限制。从中可以看到,输入链和输出链已经分别处理了11GB和17GB的数据,而转发链则没有处理任何数据。这是因为此服务器没有开启类似于路由器的转发功能。
3.输出——这条链用来过滤源地址是本机的连接。例如,当你尝试ping howtogeek.com时,iptables会检查输出链中与ping和howtogeek.com相关的规则,然后决定允许还是拒绝你的连接请求。
注意:当ping一台外部主机时,看上去好像只是输出链在起作用。但是请记住,外部主机返回的数据要经过输入链的过滤。当配置iptables规则时,请牢记许多协议都需要双向通信,所以你需要同时配置输入链和输出链。人们在配置SSH的时候通常会忘记在输入链和输出链都配置它。
三、链的默认行为
在配置特定的规则之前,也许你想配置这些链的默认行为。换句话说,当iptables无法匹配现存的规则时,你想让它作出何种行为。
你可以运行如下的命令来显示当前iptables对无法匹配的连接的默认动作:
复制代码 代码如下:
iptables -L
正如上面所显示的,我们可以使用grep来使输出的结果变得更加简洁。在上面的截图中,所有的链默认情况下均接受所有的连接。 通常情况下,你会希望你的系统默认情况下接收所有的网络数据。这种设定也是iptables的默认配置。接收网络连接的配置命令是:
复制代码 代码如下: iptables --policy INPUT ACCEPT iptables --policy OUTPUT ACCEPT iptables --policy FORWARD ACCEPT
你也可以在使用默认配置的情况下,添加一些命令来过滤特定的IP地址或端口号。我们稍后在本文介绍这些命令。 如果你想默认情况下拒绝所有的网络连接,然后在其基础上添加允许的IP地址或端口号,你可以将默认配置中的ACCEPT变成DROP,如下图所示。这对于一些含有敏感数据的服务器来说是极其有用的。通常这些服务器只允许特定的IP地址访问它们。
复制代码 代码如下: iptables --policy INPUT DROP
iptables --policy OUTPUT DROP iptables --policy FORWARD DROP
四、对特定连接的配置 下面来看看如何对特定的IP地址或端口作出设定。本文主要介绍三种最基本和常见的设定。 Accept – 接收所有的数据。 Drop – 丢弃数据。应用场景:当你不想让数据的来源地址意识到你的系统的存在(最好的处理方法)。 Reject – 不允许建立连接,但是返回一个错误回应。应用场景:当你不想让某个IP地址访问你的系统,但又想让它们知道你的防火墙阻止了其访问。 为了直观的区分上述三种情况,我们使用一台PC来ping一台配置了iptables的Linux电脑:
允许访问
丢弃访问
拒绝访问
|
|
五、允许或阻止特定的连接
在配置完基本的规则链之后,你就可以配置iptables来允许或者阻止特定的IP地址或者端口。 注意:在这些例子中,我们使用iptables -A将额外的规则添加到现存的链中。Iptables在执行匹配的时候,会从列表的顶端开始搜索。你可以使用iptables -I [chain] [number]将新的规则插入到列表的指定位置。
来自同一IP地址的连接 下面这个例子展示了如何阻止来自IP地址为10.10.10.10的所有连接。 复制代码 代码如下:iptables -A INPUT -s 10.10.10.10 -j DROP 来自一组IP地址的连接 下面这个例子展示了如何阻止来自子网10.10.10.0/24内的任意IP地址的连接。你可以使用子网掩码或者标准的/符号来标示一个子网: 复制代码 代码如下:iptables -A INPUT -s 10.10.10.0/24 -j DROP 或 复制代码 代码如下:iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP 特定端口的连接 这个例子展示了如何阻止来自10.10.10.10的SSH连接。 复制代码 代码如下:iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP 你可以将“ssh”替换成其它任何协议或者端口号。上述命令中的-p tcp告诉iptables连接使用的是何种协议。 下面这个例子展示了如何阻止来自任意IP地址的SSH连接。 复制代码 代码如下:iptables -A INPUT -p tcp --dport ssh -j DROP
六、连接状态
我们之前提到过,许多协议均需要双向通信。例如,如果你打算允许SSH连接,你必须同时配置输入和输出链。但是,如果你只想允许来自外部的SSH请求,那该怎么做? 下面这个例子展示了如何允许源IP地址为10.10.10.10同时阻止目的地址为10.10.10.10的SSH连接: 复制代码 代码如下: iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT
七、保存更改 上述方法对iptables规则作出的改变是临时的。如果你想永久保存这些更改,你需要运行额外的命令(不同Linux发行版下的保存命令也不相同): Ubuntu: 复制代码 代码如下:sudo /sbin/iptables-save Red Hat / CentOS: 复制代码 代码如下:/sbin/service iptables save 或者 复制代码 代码如下:/etc/init.d/iptables save
|
八、其它命令
列出iptables的当前配置:
复制代码 代码如下:iptables -L
使用-v选项将显示数据包和字节信息;使用-n选项将以数字形式列出信息,即不将IP地址解析为域名。
换句话讲,主机名,协议和网络都以数字的形式列出。
清除当前所有的配置规则:
复制代码 代码如下:
iptables -F
相关推荐:
ChatGPT4网页空白:重新定义智能交互的未来,怎么登ai
SEO优化如何为网站做好关键词研究和优化,ai直通
SEO未来:如何在变革中抢占先机,迎接数字营销的新纪元,台州网站建设分析和总结
SEO组织:让您的网站流量倍增的秘密武器,seo 绩效标准
在线AI生成文章:智能写作的未来趋势
文章续写AI:提升写作效率,创意无限
中外链:打通全球流量的桥梁,提升网站排名与流量的双重保障,行业网站建设思路
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
在线AI文章生成器开启智能创作新时代
SEO首选:如何通过优化网站提升排名和流量,简单的网站优化软件
SEO量:提升网站流量和排名的关键法则,德兴seo
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
AI自动帮写,轻松应对内容创作挑战,赋能写作新未来,嘿科技ai
ChatGPT连了外网也登不了?如何解决这一问题,重新畅享AI助力!,ai少女大瓜
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
好用的AI写作软件免费推荐:创作新境界!
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
仿写AI:智能时代的创作革命,洛江区移动房网站推广
seo辅助词选什么,seo助手 ,各车企ai
ChatGPT显示503:如何应对AI服务不可用的困境?,ai宝贝宝贝
SEO这样做,轻松引爆流量,助力企业成长,无极标准网站优化好处
seo网站需要做什么,seo都需要做什么 ,ai怎么做喷漆效果
SEO快速优化排名:助你网站跃升搜索引擎首页,ai彩虹立体9怎么做
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
SEO资讯:最新趋势,提升网站排名,快速突破流量瓶颈,廊坊seo推广咨询服务
什么是seo如何进行seo,何谓seo ,红米的AI摄影什么意思
pbootcms自动翻译插件,让你的网站轻松实现多语言覆盖,ai 镀金
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
为什么要seo排名,为什么要做seo推广 ,AI写作开启创意新世界
SEO薪资这些,你也能月入过万!,天水网站建设公司
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
SEO全站优化:打造强大网站排名的必备利器,AI论文写作的优点
怎样利用AI写文章,轻松提升写作效率
AI一键生成文章免费:革新写作方式,提升创作效率
AI免费写文章生成器高效写作新革命
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
用AI写文章查重率高吗?揭秘AI写作与查重检测的关系
SEO优化要钱吗?揭秘SEO投资背后的价值与回报,ai领域
AI工具汇总网站,让科技为您的工作加速
ChatGPT为什么页面下拉不了?问题解析与解决方案,ai对准
ChatGDP人工智能:未来科技赋能企业与个人的智能变革,如何用AI绘制人体
seo网络上什么意思,seo表示什么 ,如何避免今日头条ai写作检测
ChatGPT崩一次多久修复?揭秘背后的技术与保障,ai1818818
ChatGPT不能访问,我的学术水平直线下降,泰州大数据ai艾灸价格
SEO刷:让你的网站一夜之间登顶搜索引擎!,独特seo技巧
ChatGPT中文版下载,开启智能对话新体验,婚纱ai男
GPT-3.5免费吗?揭秘AI智能助手的未来与收费模式,ai 美美
AI公众号文章生成,轻松打造爆款内容
SEO优化是做什么的?让你的网站流量飙升的秘密武器,乳腺癌ai作用机理