iptables入门教程--设置静态防火墙

Firewalld与iptables防火墙的区别 Firewalld与iptables防火墙简述: Linux的防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,也因此获得广泛的应用。 相同点: firewalld 和 iptables 防火墙都属于典型的包过滤防火墙或称之为网络层防火墙, firewalld 和 iptables 都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能, 阅读详情

作者:liweioop
原文地址:http://www.linuxsir.org/bbs/showthread.php?t=184634


iptables--静态防火墙实例教程 follow me


介绍:
这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理。在这篇教程之后,你将能理解到防火墙内在过滤机制,同时也能自己动手创建符合自己要求的防火墙。

版权所有,转载请注明来自www.linuxsir.org 并写明作者


1、iptables介绍

iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络──哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。接下来,我将告诉你如何设置自己的规则,从现在就开始吧。

 

2、初始化工作

在shell提示符 # 下打入

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

以上每一个命令都有它确切的含义。一般设置你的iptables之前,首先要清除所有以前设置的规则,我们就把它叫做初始化好了。虽然很多情况下它什么也不做,但是保险起见,不妨小心一点吧!

或者直接/etc/init.d/iptables stop关闭防火墙。

如果你用的是redhat 或fedora,那么你有更简单的办法

service iptables stop

 

3、开始设置规则:

接下下开始设置你的规则了

iptables -P INPUT DROP

这一条命令将会为你构建一个非常"安全"的防火墙,我很难想象有哪个hacker能攻破这样的机器,因为它将所有从网络进入你机器的数据丢弃(drop) 了。这当然是安全过头了,此时你的机器将相当于没有网络。如果你ping localhost,你就会发现屏幕一直停在那里,因为ping收不到任何回应。


4 、添加规则

接着上文继续输入命令:

iptables -A INPUT -i ! ppp0 -j ACCEPT

这条规则的意思是:接受所有的,来源不是网络接口ppp0的数据。

我们假设你有两个网络接口,eth0连接局域网,loop是回环网(localhost)。ppp0是一般的adsl上网的internet网络接口,如果你不是这种上网方式,那则有可能是eth1。在此我假设你是adsl上网,你的internet接口是ppp0

此时你即允许了局域网的访问,你也可以访问localhost

此时再输入命令 ping localhost,结果还会和刚才一样吗?

到此我们还不能访问www,也不能mail,接着看吧。

 

5、我想访问www

iptables -A INPUT -i ppp0 -p tcp -sport 80 -j ACCEPT

允许来自网络接口ppp0(internet接口),并且来源端口是80的数据进入你的计算机。
80端口正是www服务所使用的端口。

好了,现在可以看网页了。但是,你能看到吗?


如果你在浏览器的地址中输入www.baidu.com,能看到网页吗?

你得到的结果一定是:找不到主机www.baidu.com

但是,如果你再输入220.181.27.5,你仍然能够访问baidu的网页。

为什么?如果你了解dns的话就一定知道原因了。

因为如果你打入www.baidu.com,你的电脑无法取得www.baidu.com这个名称所能应的ip地址220.181.27.5。如果你确实记得这个ip,那么你仍然能够访问www,你当然可以只用ip来访问www,如果你想挑战你的记忆的话^ _ ^,当然,我们要打开DNS。


6、打开dns端口

打开你的dns端口,输入如下命令:

iptables -A INPUT -i ppp0 -p udp -sport 53 -j ACCEPT

这条命令的含义是,接受所有来自网络接口ppp0,upd协议的53端口的数据。53也就是著名的dns端口。

此时测试一下,你能通过主机名称访问www吗?你能通过ip访问www吗?

当然,都可以!

 

7、查看防火墙

 此时可以查看你的防火墙了

iptables -L

 如果你只想访问www,那么就可以到此为止,你将只能访问www了。 不过先别急,将上面讲的内容总结一下,写成一个脚本。

 

#!/bin/bash

# This is a script

# Edit by liwei

# establish static firewall

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -P INPUT DROP

iptables -A INPUT -i ! ppp0 -j ACCEPT

iptables -A INPUT -i ppp0 -p tcp --sport 80 -j ACCEPT

iptables -A INPUT -i ppp0 -p udp --sport 53 -j ACCEPT

 

8、复杂吗?到此iptables可以按你的要求进行包过滤了。你可以再设定一些端口,允许你的机器访问这些端口。这样有可能,你不能访问QQ,也可能不能打网络游戏,是好是坏,还是要看你自己而定了。顺便说一下,QQ这个东西还真是不好控制,用户与服务器连接使用的好像是8888端口,而QQ上好友互发消息使用的又是udp的4444端口(具体是不是4444还不太清楚)。而且QQ还可以使用www的80端口进行登录并发消息,看来学无止境,你真的想把这个家伙控制住还不容易呢?还是进入我们的正题吧。

如果你的机器是服务器,怎么办?


9、如果不巧你的机器是服务器,并且要提供www服务。显然,以上的脚本就不能符合我们的要求了。但只要你撑握了规则,稍作修改同样也能很好的工作。在最后面加上一句

iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT

这一句也就是将自己机器上的80端口对外开放了,这样internet上的其他人就能访问你的www了。当然,你的www服务器得工作才行。如果你的机器同时是smtp和pop3服务器,同样的再加上两条语句,将--dport后面的80改成25和110就行了。如果你还有一个ftp服务器,呵呵,如果你要打开100个端口呢......

我们的工作好像是重复性的打入类似的语句,你可能自己也想到了,我可以用一个循环语句来完成,对,此处可以有效的利用shell脚本的功能,也让你体验到了shell脚本语言的威力。看下文:


10、用脚本简化你的工作,阅读下面的脚本

#!/bin/bash

# This is a script

# Edit by liwei

# establish a static firewall

 

# define const here

Open_ports="80 25 110 10" # 自己机器对外开放的端口

Allow_ports="53 80 20 21" # internet的数据可以进入自己机器的端口

 

#init

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -P INPUT DROP #we can use another method to instead it

iptables -A INPUT -i ! ppp0 -j ACCEPT

 

# define ruler so that some data can come in.

for Port in "$Allow_ports" ; do

iptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT

iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT

done

for Port in "$Open_ports" ; do

iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT

iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT

done

 

这个脚本有三个部分(最前面的一段是注释,不算在这三部分中)

第一部分是定义一些端口:访问你的机器"Open_ports"端口的数据,允许进入;来源是"Allow_ports"端口的数据,也能够进入。

第二部分是iptables的初始化,第三部分是对定义的端口具体的操作。

如果以后我们的要求发生了一些变化,比如,你给自己的机器加上了一个ftp服务器,那么只要在第一部分"Open_ports"的定义中,将ftp对应的20与21端口加上去就行了。呵呵,到此你也一定体会到了脚本功能的强大的伸缩性,但脚本的能力还远不止这些呢!

 

11、使你的防火墙更加完善

看上面的脚本init部分的倒数第二句

iptables -P INPUT DROP

这是给防火墙设置默认规则。当进入我们计算机的数据,不匹配我们的任何一个条件时,那么就由默认规则来处理这个数据----drop掉,不给发送方任何应答。

也就是说,如果你从internet另外的一台计算机上ping你的主机的话,ping会一直停在那里,没有回应。

如果黑客用namp工具对你的电脑进行端口扫描,那么它会提示黑客,你的计算机处于防火墙的保护之中。我可不想让黑客对我的计算机了解太多,怎么办,如果我们把drop改成其他的动作,或许能够骗过这位刚出道的黑客呢。

怎么改呢?将刚才的那一句( iptables -P INPUT DROP )去掉,在脚本的最后面加上

iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset

iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable

这样就好多了,黑客虽然能扫描出我们所开放的端口,但是他却很难知道,我们的机器处在防火墙的保护之中。如果你只运行了ftp并且仅仅对局域网内部访问, 他很难知道你是否运行了ftp。在此我们给不应该进入我们机器的数据,一个欺骗性的回答,而不是丢弃(drop)后就不再理会。这一个功能,在我们设计有状态的防火墙中(我这里讲的是静态的防火墙)特别有用。

你可以亲自操作一下,看一看修改前后用namp扫描得到的结果会有什么不同?

 

12、这个教程我想到此就结束了,其中有很多东西在这里没有提到,如ip伪装,端口转发,对数据包的记录功能。还有一个很重要的东西就是: iptables处理数据包的流程.在这里我想告诉你,你设置的过滤规则的顺序很重要,在此不宜详细介绍,因为这样一来,这个教程就会拘泥于细节。

iptables是复杂的,我在linuxsir上看过很多教程,它们往往多而全,反而让人望而生畏,希望我的这个教程,能够指导你入门。加油!

最后,我把完整的脚本写出来如下,你只要修改常量定义部分,就能表现出较大的伸缩性^_^

#!/bin/bash

# This is a script

# Edit by liwei

# establish a static firewall

 

# define const here

Open_ports="80 25 110 10" # 自己机器对外开放的端口

Allow_ports="53 80 20 21" # internet的数据可以进入自己机器的端口

 

#init

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

# The follow is comment , for make it better
# iptables -P INPUT DROP

iptables -A INPUT -i ! ppp0 -j ACCEPT

 

# define ruler so that some data can come in.

for Port in "$Allow_ports" ; do
ptables -A INPUT -i ppp0 -p tcp -sport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -sport $Port -j ACCEPT
done

for Port in "$Open_ports" ; do
iptables -A INPUT -i ppp0 -p tcp -dport $Port -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -dport $Port -j ACCEPT
done

# This is the last ruler , it can make you firewall better
iptables -A INPUT -i ppp0 -p tcp -j REJECT --reject-with tcp-reset
iptables -A INPUT -i ppp0 -p udp -j REJECT --reject-with icmp-port-unreachable

 

阻抗匹配详解 在深入理解阻抗匹配概念之前,我们可以先来一起看一个现象,首先使用一个信号发生器输出一个脉宽为 50ns 的单脉冲信号,同时将信号接入示波器,此时在示波器的波形视图上可以看到这个仅有一个脉冲的信号,如下图。如果我们将信号接入示波器的同时将电缆延长数米到外部,并且延长后电缆末端保持悬空不接入任何东西,引出一段未接入任何东西的开路电缆,按照常识应该没有任何影响,然而实测是在原有脉冲旁边多出了一个类似脉冲,如下图。 阅读详情

相关推荐

全球半导体设备氧化钇熔射服务行业规模预测:预计未来六年CAGR为7.8%

本文将对“半导体设备氧化钇熔射服务”行业进行深度分析,探讨市场趋势的演变、核心竞争者的战略布局、供应链结构的内外特点、研发创新的最新进展、法规政策环境的适应性调整以及投资机会与风险评估。这一稳健的增长趋势表明半导体设备氧化钇熔射服务在电子行业中的重要性逐渐增强。由于全球对于高效、高精度和可靠的电子解决方案的需求增加,对能够提供这些功能的半导体设备氧化钇熔射服务的需求日益增长。由于半导体设备氧化钇熔射服务主要为就地服务型,其“配送”主要依赖于专业团队和技术设备的及时调配,强调服务的时效性和高质量。

CC1239777的博客 571

iptables入门教程--设置静态防火墙(z)来自www.linuxsir.org 作者liweioop

iptables入门教程--设置静态防火墙发布时间:2005年5月30日 10时36分介绍:这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理。在这篇教程之后,你将能理解到防火墙内在过滤机制,同时也能自己动手创建符合自己要求的防火墙。版权所有,转载请注明来自www.linuxsir.org 并写明作者liweioop1、iptabl

bon_jovi的专栏 2143

ThinkBook 16p 2024 BIOS降压定频实战:从解锁CFG Lock到AC Loadline调优

高性能笔记本在满载时频繁撞上温度墙,通常源于固件层默认电压冗余过大,而系统级降压工具又受限于CFG Lock锁定。要根治问题,需要从BIOS固件层面理解电压管理机制——AC/DC Loadline参数控制着CPU在不同负载下的电压请求,通过修改这些负载线值可以安全降低电压,解锁CFG Lock后还能让XTU、ThrottleStop等软件调参工具恢复可用。这种BIOS级调优在工程实践中广泛用于改善散热、稳定频率、压降风扇噪音,尤其适用于联想ThinkBook 16p 2024与拯救者Y9000P等采用HX平

weixin_32496547的博客 388

【网络安全】linux安全之iptables防火墙技术

一、iptables防火墙工作原理 规则表: 具有某一类相似用途的防火墙规则 规则表是规则链的集合 默认的4个规则表 raw表:确定是否对该数据包进行状态跟踪(用的不多) mangle表:为数据包设置标记(用的不多) nat表:......

没枕头我咋睡觉 899

FC游戏金手指代码大全:亲测可用指南与内存修改原理

在计算机和游戏开发领域,内存修改是一项基础而强大的技术,它通过直接读写程序运行时内存中的数据,改变软件的行为和状态。其核心原理在于理解进程的内存地址空间布局,定位存储关键游戏变量(如生命值、金币数)的特定地址,并注入或锁定目标数值。这项技术的工程价值在于,它不仅能用于游戏辅助,更是软件逆向工程、漏洞分析和调试的重要实践手段。在怀旧游戏和模拟器场景中,内存修改以“金手指”或“作弊码”的形式广泛应用,帮助玩家自定义游戏体验。本文将聚焦FC(红白机)游戏,深入解析Game Genie码和Raw码两种主流金手指格式

weixin_30780649的博客 797

Codesys电子凸轮功能块MC_CamIn的masteroffset和slaveoffset参数的使用

问题1:在Codesys使用作轴电子凸轮时,MC_CamTableSelect的参数设置为MasterAbsolute=1,SlaveAbsolute=1,此设置为绝得模式, 此时主从轴当前位置都不为零时,此时Masteroffset=0、slaveOffset=0,凸轮启时出现突变,实轴无法启动。问题分析:在觉得模式下,主轴位置和从轴为是对应凸轮表的相位的,Masteroffset=0、slaveOffset=0,启动点时在主轴位置=0,从轴位置=0的点启动,此时主轴当前位置不为零则主从轴位置发生突变,

weixin_43587371的博客 1801

iptables中-j选项与-g选项的区别

手册 # man iptables ... -j, --jump target This specifies the target of the rule; i.e., what to do if the packet matches it. The target can be a user- defined

雜貨鋪 9203

Python读取三菱PLC数据

3、支持自定义的数据读写操作。直接调用Read方法,可以读取到原生的byte数组,然后进行组合数据。1、每次的数据交互您都可以判断是否成功,如果您不判断,如果网络断开或是异常,会影响程序的执行。Qna3E协议的ascii类 MelsecMcAsciiNet。A兼容1E协议的二进制类 MelsecA1ENet。Qna3E协议的二进制类 MelsecMcNet。2、读写操作支持单个数和数组。

weixin_46744807的博客 1998

linux配置防火墙详细步骤(iptables命令使用方法)

通过本教程操作,请确认您能使用linux本机。如果您使用的是ssh远程,而又不能直接操作本机,那么建议您慎重,慎重,再慎重!通 过iptables我们可以为我们的Linux服务器配置有动态的防火墙,能够指定并记住为发送或接收信息包所建立的连接的状态,是一套用来设置、维护和 检查Linux内核的IP包过滤规则的命令包。iptables定义规则的方式比较复杂,本文对Linu...

weixin_30699741的博客 197

海康H304NAS 刷机飞牛

本文旨在分享如何将闲置的海康威视H304 NAS刷入飞牛NAS系统,并利用iStoreOS作为安装媒介。之前因为使用极空间NAS,这台H304闲置已久。最近尝试了飞牛NAS,在虚拟机上安装后挂载极空间的电影资源,体验不错,于是决定重新折腾这台H304。我个人喜欢尝试新系统,之前经常更新H304的固件,但设备总在使用一两年后出现故障,需要联系技术清理日志才能恢复。最后一次设备“变砖”后,连技术人员也联系不上了,自己尝试修复未果,设备就此闲置两三年。

u012985257的博客 2748

C#实战:如何从零构建一个轻量级软PLC梯形图编辑器(附完整源码)

本文详细介绍了如何使用C#从零开始构建一个轻量级软PLC梯形图编辑器。内容涵盖项目架构设计、GDI+图形渲染、编辑交互实现以及核心的扫描执行引擎开发,并提供了定时器、计数器等高级功能的实现思路与完整源码,为开发者深入工业自动化领域提供了实战指南。

4k5l6j7h8的博客 258

Linux下iptables防火墙配置

1. NEW:主机连接目标主机,在目标主机上看到的第一个想要连接的包 2. ESTABLISHED:主机已与目标主机进行通信,判断标准只要目标主机回应了第一个包,就进 入该状态

asdfg___xiaobai的博客 8793

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

SAP-ABAP:BAPI_INSPOPER_RECORDRESULTS 记录检验操作结果更新检验批状态详细解析

baidu_35680696的博客 970

linux中iptables入门教程--设置静态防火墙

1、iptables介绍 iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络──哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。接下

深度Java 2018

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[转载]iptables入门教程--设置静态防火墙

[转载]iptables入门教程--设置静态防火墙iptables -I RH-Firewall-1-INPUT 20 -p TCP -s 211.161.250.232/32 -m state --state NEW --dport 3306 -j ACCEPTiptables -I RH-Firewall-1-INPUT 20 -p TCP -s 211.161.192.0/24 -m s

风过无声 1339

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Iptables入门教程--设置静态防火墙

1、iptables介绍iptables是复杂的,它集成到linux内核中。用户通过iptables,可以对进出你的计算机的数据 包进行过滤。通过iptables命令设置你的规则,来把守你的计算机网络──哪些数据允许通过,哪些不能通过,哪些通过的数据进行记录(log)。接下 来,我将告诉你如何设置自己的规则,从现在就开始吧。2、初始化工作在shell提示符 # 下打入ip...

weixin_34194087的博客 107

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

iptables入门教程--设置静态防火墙( step by step)

iptables--静态防火墙实例教程 follow me 介绍: 这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理。在这篇教程之后,你将能理解到防火墙内在过滤机制,同时也能自己动手创建符合自己要求的防火墙。 版权所有,转载请注明来自www.linuxsir.org 并写明作者 1、ip

iastro的专栏 1204

iptables入门教程--设置静态防火墙(修正版)

在水一方 645

iptables入门教程--设置静态防火墙(step by step)

作者:liweioop 原文地址:http://www.linuxsir.org/bbs/showthread.php?t=184634 iptables--静态防火墙实例教程 follow me 介绍: 这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理。在这篇教程之后,你将能理解到防火墙内在过滤机制,同时也能自己

leo_wanta的专栏 558

转载:iptables入门教程--设置静态防火墙( step by step)

from http://www.linuxsir.org/bbs/lastpostinthread184634.html iptables--静态防火墙实例教程 follow me 介绍: 这篇文章是本人原创,向读者展示了如何一步一步建立静态防火墙来保护您的计算机,同时在每一步中,我力图向读者讲述清楚原理。在这篇教程之后,你将能理解到防火墙内在过滤机制,同时也能自己...

weixin_30299709的博客 106

linux中的防火墙的基本设置---firewlld、iptables

1 防火墙介绍: 1.1 防火墙的分类 (一)、包过滤防火墙 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control lable,ACL)。通过检查数据流中每个数据包的源地址和目的地址,所用的端口号和协议状态等因素,或他们的组合来确定是否允许该数据包通过。 包过滤防火墙的优点是它对用户来说是透明的...

ly2020_的博客 2万+

iptables 防火墙

支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具 支持IPv4、IPv6防火墙设置以及以太网桥 支持服务或应用程序直接添加防火墙规则接口 拥有两种配置模式 运行时配置 永久配置。

weixin_57752598的博客 1734
上一篇: ubuntu命令配置IP
下一篇: ubuntu 下无线网卡的使用方法
mal327
博客等级 码龄17年 155粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值