




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在Linux中设置防火墙,以 CentOS为例,打开iptables 的配置文件:1. vi /etc/sysconfig/iptables2.通过 /etc/init.d/iptables status命令查询是否有打开 80 端口,如果没有可通过两种方式处理:1. 修改 vi /etc/sysconfig/iptables命令添加使防火墙开放 80 端口1. -A RH-Firewall-1-INPUT -m state -state NEW -m tcp -p tcp-dport 80 -j ACCEPT2.2. 关闭 /开启/重启防火墙1. /etc/init.d/iptables s
2、top2.2. #start 开启4.3. #restart 重启6.3. 永久性关闭防火墙1. chkconfig -level 35 iptables off2.2. /etc/init.d/iptables stop4.3. iptables -P INPUT DROP6.4. 打开主动模式 21 端口1. iptables -A INPUT -p tcp -dport 21 -j ACCEPT2.5. 打开被动模式 4915265534 之间的端口1. iptables -A INPUT -p tcp -dport 49152:65534 -j ACCEPT2.2. iptables
3、-A INPUT -i lo -j ACCEPT4.3. iptables -A INPUT -m state -state ESTABLISHED -j ACCEPT6.注意: 一定要给自己留好后路,留VNC 个管理端口和 SSh的管理端口需要注意的是,你必须根据自己服务器的情况来修改这个文件。 全部修改完之后重启 iptables:service iptables restart你可以验证一下是否规则都已经生效:iptables -Lcentos IPTables 配置方法如下 :一、需要的命令:查看配置情况 iptables -L -n记得保存 /etc/init.d/iptables
4、save添加 in put 记录 iptables -A INPUT -p tcp- dport 22 -j ACCEPT添加 output 记录 iptables -A OUTPUT -p tcp - sport 22 -j ACCEPT 一些软件的默认端口:ftp 用到端口是 20 21ssh 端口是 22http 端口是 80telnet 端口是 23rsync 端口是 873svn 端口 3690pop3 端口 110smtp 端口 25dns 端口 53mysql 端口 3306 nfs 端口 111 大概常用的就这些,其他的可查看具体软件 1、查看本机关于 IPTABLES 的设置
5、情况 roottp # iptables -L -n 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 Chain RH-Firewall-1-INPUT (0 references) target prot opt source destination ACCEP
6、T all /0 /0 ACCEPT icmp /0 /0 icmp type 255 ACCEPT esp /0 /0 ACCEPT ah /0 /0ACCEPT udp /0 51 udp dpt:5353ACCEPT udp /0 /0 udp dpt:631ACCEPT all /0 /0 state RELATED,ESTABLISHEDACCEPT tcp /0 0.0.
7、0.0/0 state NEW tcp dpt:22ACCEPT tcp /0 /0 state NEW tcp dpt:80ACCEPT tcp /0 /0 state NEW tcp dpt:25REJECT all /0 /0 reject-with icmp-host-prohibited 可以看出我在安装 linux 时, 选择了有防火墙 ,并且开放了 22,80,25 端口 .如果你在安装 linux 时没有选择启动防火墙 , 是这样的roottp # iptables -L -nChain INP
8、UT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination 什么规则都没有 .2、清除原有规则 ., 那就清除现在不管你在安装 linux 时是否启动了防火墙 , 如果你想配置属于自己的防火墙 filter 的所有规则 .roottp # iptables -F清除预设表 filter 中的所有规则链的
9、规则roottp # iptables -X清除预设表 filter 中使用者自定链中的规则我们在来看一下roottp # iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination什么都没有了吧 , 和我们在安装 linux 时没有启动防火墙是一样的 .(
10、 提前说一句 , 这些配置 就像用命令配置 IP 一样, 重起就会失去作用 ), 怎么保存 .roottp # /etc/rc.d/init.d/iptables save这样就可以写到 /etc/sysconfig/iptables 文件里了 . 写入后记得把防火墙重起一下 , 才能 起作用 .roottp # service iptables restart现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧。3、设定预设规则roottp # iptables -p INPUT DROProottp # iptables -p OUTPUT ACCEPTroottp # i
11、ptables -p FORWARD DROP上面的意思是,当超出了 IPTABLES里filter 表里的两个链规则 (INPUT,FORWARD时,不在这 两个规则里的数据包怎么处理呢,那就是DROP放弃).应该说这样配置是很安全的我们要 控制流入数据包而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢 , 那就是通过 .可以看出INPUT,FORWAR两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过 .这样设置还是挺合理的,当然你也可以三个链都 DROP但这样做我认为是没有必要的 ,而且 要写的规则就会
12、增加但如果你只想要有限的几个规则是 ,如只做 WEB服务器.还是推荐三个 链都是 DROP.注:如果你是远程SSH登陆的话,当你输入第一个命令回车的时候就应该掉了因为你没有设置任何规则 .怎么办 , 去本机操作呗 !4、添加规则 .首先添加INPUT链,INPUT链的默认规则是 DROP所以我们就写需要 ACCETP通过)的链为了能采用远程 SSH登陆,我们要开启22端口 .roottp # iptables -A INPUT -p tcp-dport 22 -j ACCEPTroottp # iptables -A OUTPUT -p tcp- sport 22 -j ACCEPT (注:这
13、个规则,如果你把OUTPUT设置成DROP勺就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下 , 是不是好了 .其他的端口也一样,如果开启了 web服务器OUTPUT设置成DRO啲话,同样也要添加一条链:roottp # iptables -A OUTPUT -p tcp- sport 80 -j ACCEPT ,其他同理.)如果做了 WEB服务器,开启80端口 .roottp # iptables -A INPUT -p tcp- dport 80 -j ACCEPT如果做了邮件服务器 , 开启 25,110 端口 .roottp # iptables -A INP
14、UT -ptcp-dport 110 -j ACCEPTroottp # iptables -A INPUT -ptcp-dport 25 -j ACCEPT如果做了 FTP服务器,开启21端口roottp # iptables -A INPUT -ptcp-dport 21 -j ACCEPTroottp # iptables -A INPUT -ptcp-dport 20 -j ACCEPT如果做了 DNS服务器,开启53端口roottp # iptables -A INPUT -p tcp- dport 53 -j ACCEPT如果你还做了其他的服务器 ,需要开启哪个端口 ,照写就行了
15、.上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP允许 icmp 包通过 , 也就是允许 ping,roottp # iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成 DROP的话)roottp # iptables -A INPUT -p icmp -j ACCEPT (INPUT设置成 DROP的话)允许loopback!(不然会导致DNS无法正常关闭等问题)IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是 INPUT DROP)IPTABLES -A OUTPUT -o lo -p a
16、ll -j ACCEPT(如果是 OUTPUT DROP)下面写OUTPUT链OUTPUT链默认规则是 ACCEPT所以我们就写需要 DROP放弃 )的链.、减少不安全的端口连接roottp # iptables -A OUTPUT -p tcp-sport 31337 -j DROProottp # iptables -A OUTPUT -p tcp- dport 31337 -j DROP有些些特洛伊木马会扫描端口 31337 到 31340( 即黑客语言中的 elite 端口)上的服务。既 然合法服务都不使用这些非标准端口来通信 , 阻塞这些端口能够有效地减少你的网络上可能 被感染的机器
17、和它们的远程主服务器进行独立通信的机会还有其他端口也一样 ,像:31335 、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS) 端口也应被禁止 , 我在这写的也不全 , 有兴趣的朋友应该去查一下相关资料 .当然出入更安全的考虑你也可以包OUTPUT!设置成DROP那你添加的规则就多一些,就像上边添加允许SSH登陆一样照着写就行了 .下面写一下更加细致的规则 , 就是限制到某台机器如:我们只允许 的机器进行SSH连接roottp # iptables -A INPUT -s -p tcp- dp
18、ort 22 -j ACCEPT如果要允许 , 或限制一段 IP 地址可用 /24 表示 -255 端的所有 IP.24 表示子网掩码数 . 但要记得把 /etc/sysconfig/iptables里的这一行删了 .-A INPUT -p tcp -m tcp - dport 22 -j ACCEPT因为它表示所有地址都可以登陆或采用命令方式 :roottp # iptables -D INPUT -p tcp- dport 22 -j ACCEPT然后保存 ,我再说一边 ,反是采用命令的方式 ,只在当时生效 ,如果想要重起后也起作用 ,那就 要保
19、存 . 写入到 /etc/sysconfig/iptables 文件里 .roottp # /etc/rc.d/init.d/iptables save这样写 ! 表示除了 的 ip 地址其他的规则连接也一样这么设置 .在下面就是FORWAR链,FORWAR链的默认规则是 DROP所以我们就写需要 ACCETP通过)的 链, 对正在转发链的监控 .开启转发功能,(在做NAT时,FORWAR默认规则是DROP时,必须做)roottp # iptables -A FORWARD -i ethO -o ethl -m state- stateRELATE
20、D,ESTABLISHED -j ACCEPTroottp # iptables -A FORWARD -i eth1 -o ehO -j ACCEPT丢弃坏的TCP包roottp #iptables -A FORWARD -p TCP !- syn -m state - state NEW -j DROP处理IP碎片数量,防止攻击,允许每秒100个roottp #iptables -A FORWARD -f -m limit- limit 100/s- limit-burst 100 -jACCEPT设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.roottp #iptables
21、 -A FORWARD -p icmp -m limit- limit 1/s- limit-burst 10 -jACCEPT我在前面只所以允许ICMP包通过,就是因为我在这里有限制。三、配置一个NAT表放火墙1、查看本机关于NAT的设置情况roottp rc.d# iptables -t nat -LChain PREROUTING (policy ACCEPT)target prot opt source destinationChain POSTROUTING (policy ACCEPT)target prot opt source destinationSNAT all 192.1
22、68.0.0/24 anywhere to:35Chain OUTPUT (policy ACCEPT)target prot opt source destination我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的如果你想清除 , 命令是roottp # iptables -F -t natroottp # iptables -X -t natroottp # iptables -Z -t nat2、添加规则添
23、加基本的NAT地址转换,(关于如何配置 NAT可以看我的另一篇文章),添加规则,我们只添加DROP链.因为默认链全是 ACCEPT.防止外网用内网 IP 欺骗roottp sysconfig# iptables -t nat -A PREROUTING -i eth0 -s /8 -j DROProottpsysconfig#iptables-t nat -A PREROUTING-i eth0 -s /12-jDROProottpsysconfig#iptables-t nat -A PREROUTING-i eth0 -s /16-
24、jDROP如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者 IP,(个人认为没有太大必要 )例:禁止与 53 的所有连接roottp # iptables -t nat -A PREROUTING -d 53 -j DROP 禁用 FTP(21) 端口roottp # iptables -t nat -A PREROUTING -p tcp- dport 21 -j DROP这样写范围太大了 , 我们可以更精确的定义 .roottp # iptables -t nat -A PREROUTING -p tcp- dport
25、 21 -d 53 -jDROP这样只禁用53 地址的FTP连接,其他连接还可以.如web(80端口)连接.按照我写的,你只要找到QQ,MS等其他软件的IP地址,和端口,以及基于什么协议,只要照着 写就行了 .最后:drop 非法连接roottp # iptables -A INPUT -m statestate INVALID -j DROProottp # iptables -A OUTPUT -m statestate INVALID -j DROProottp # iptables-A FORWARD -m statestate INVA
26、LID -j DROP允许所有已经建立的和相关的连接roottp # iptables-A INPUT -m state-state ESTABLISHED,RELATED -j ACCEPTroottp # iptables-A OUTPUT -m state-state ESTABLISHED,RELATED -j ACCEPTroottp # /etc/rc.d/init.d/iptables save这样就可以写到 /etc/sysconfig/iptables文件里了 . 写入后记得把防火墙重起一下 , 才能起作用 .roottp # service iptables restart
27、别忘了保存, 不行就写一部保存一次。 你可以一边保存, 一边做实验, 看看是否达到你的要 求,Iptables 简介对于那些不知道或不清楚 iptables 的人来说,这个 Linux 工具可以控制网络数据包,允许 你借助于一套规则来对网络相关的事项执行精细控制,此工具本身已经出道有一段时间了。在你用 iptables 命令开始创建规则之前,你还需要知道如果服务器重启的话,你创建的规 则会丢失。由于这个原因,多数服务器管理员将其所用的 iptables 命令运用于一个服务器 每次重启时运行的命令过程。对于某些 Linux 版本,你还可以像下面这样来运行一个命令:service( 服务 ) ip
28、tables save( 保存 )这就保证可以保存你的配置,并且在启动时自动加载。开始工作要使用 iptables ,你应当将规则运用于进入或发出的网络数据包,或者通过你的服务器转 发的数据包。要查看目前运用于服务器的数据包,键入命令:iptables -L iptables 基础构建可正常发挥功能的防火墙规则依赖于你对服务器是如何运行的一些知识。对于一个安全的服务器而言, 最好先建立一个可以禁止所有进入通信的规则。 一旦你这样做 了,那么你可以建立一些明晰的规则,使其只允许如 80 号端口等例外端口的请求。这样做 比你设法过滤想阻止的内容更加容易理解, 也更容易配置, 因为那样的话你可能会遗
29、漏一些 重要或者危险的东西,例如一个开放的可被用于攻击你的服务器的端口。此外,将 iptables 与一个硬件防火墙结合使用也是很有益的,因为这会提供多层安全,并 会减少你在配置中遗漏某些东西的可能性。记住,你可以用命令 man iptables 得到所有的语法信息。使用防火墙规则下面让我们看三个示例性的规则及其核心部分。 不过,需要注意, 我们文章中的一些较长的 命令有自动换行,因此你要确保键入了一个完整的命令,而不是仅仅一行命令。iptables -P INPUT DROP这个命令很容易, 并且很安全。 它对 iptables 工具进行了初始化, 然后对所有进入 (input) 的数据包设
30、置了一个策略 (Policy(-P) 。这个策略就是丢弃所有的数据包。 非常安全。 注意, 你只能将策略用于 iptables 的内建命令。iptables -A INPUT -i lo -j ACCEPT这条规则比较实用,因为它允许发生在你的本地接口上的网络通信。注意添加的 (-A) 选项, 因为这不是内建于策略中的一部分。这条新的规则被添加到所有进入的将要到达本地接口 (interface:-i) 的数据包上。这条规则要准许所有这些数据包 (-j ACCEPT) 。通常情况下, 如果你碰到配置和安装应用程序方面的问题, 这将开始于你准许本地主机的连接性, 如下所 示:iptables -A
31、 INPUT -i eth0 -p tcp -dport 80 -j ACCEPT这个命令还将一条规则添加 (-A) 到所有通过以太网接口 (-i eth0) 进入 (INPUT) 的数据包中。不过它只应用于使用 TCP协议(-p tcp)的数据包。此规则特别针对进入指定的80号端口(-dport 80)的数据包,而且设置为允许这些数据包通过 (-j ACCEPT) 。本文是我自己的一些学习 iptables 的心得,给大家拿出来来晒晒!filter # 用于过滤nat # 做 NAT input =>filter # 目的 ip 是本机的数据包forward =>filter #
32、穿过本机的数据包prerouting =>nat #修改目的地址 (DNAT)postrouting =>nat # 修改源地址 (SNAT)匹配到以后的命iptables -t 要操作的表 操作命令 要操作的链 规则号码 匹配条件 -j 令iptables -I INPUT -j DROP #-t 默认为 filteriptables -I INPUT 3 -j DROP # 链接里插入一条规则 ( 插入第三条 )iptables -D INPUT 3 # 按号码匹配删除iptables -D INPUT -s -j DROP # 按内容匹配删除iptab
33、les -R INPUT 3 -j ACCEPT # 将原来 3 的规则改为 -j ACCEPTiptables -P INPUT DROP # 设置默认规则iptables -F INPUT # 清空filter 表INPUT链中的所有规则iptables -t nat -F PREROUTINGiptables -t nat vxnL PREROUTING-# v: 显示详细信息-# x: 在 v 的基础上,禁止自动单位换算-# n: 只显示 IP 地址和端口号码,不显示域名和服务名称=匹配条件-i -i eth0 # 流入接口 (是否从网口 eth0 进来)-o # 流出接口-s -s
34、/24 # 来源地址-d # 目的地址-p -p icmp -icmp-type #协议类型-sport -sport 1000:3000 #来源的端口-dport -dport 1000: :3000 #目的的端口 1000:(1000 端口以上 ) :3000(3000 端口以下 )-s -d -p tcp -dport 80 iptables -A INPUT -j ACCEPT # 允许所有访问本机 IP 的数据包通过iptables -A FORWARD -s -j DROP # 阻止来源地址为 192.168.8
35、0.39 的数据包 通过本机-j DNAT #目的地址转换,DNAT支持转换为单IP,也支持转换到IP址池iptables -t nat -A PREROUTING-i ppp0 -p tcp -dport 80 -j DNAT-to :80#把从 ppp0 进来的要访问 tcp/80 的数据包的地址改为 -j SNAT # 源地址转换iptables -t nat -A POSTROUTING -s /24 -j SNAT -to #将内网 /24 的源地址改为 ,用于 na
36、t 表iptables -t nat -A POSTROUTING -s /24 -j SNAT -to -0#修改成为一个地址池-j MASQUERADE #动态源地址转换iptables -t nat -A POSTROUTING -s /24 -j MASQUERADE#将源地址为 /24 的数据包进行地址伪装=附加模块state # 按包状态匹配mac #按来源 mac 匹配limit # 按包速率匹配multiport # 多端口匹配-state-m state #new,related,e
37、stablished,invalidiptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT#包状态RELATED(衍生态),ESTABLISHED(连接态),NEW(有别于tcp的syn),INVALID(不被识 别的 )iptables -A FORWARD -m mac -mac-source XX:XX:XX:XX:XX:XX -j DROP#阻断来自某MAC地址的数据包通过本机iptables -A FORWARD -d -m limit -limit 50/s -j ACCEPT#用一定速
38、率去匹配数据包iptables -A INPUT -p tcp -m multiport -dports 21,22,25,80,110 -j ACCEPT#一次匹配多个端口=实= 例分析单服务器的防护 :iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p tcp -m multiport -dport 22,80 -j ACCEPTiptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -P INPUT DROP制作网关 :echo "1&
39、quot; > /proc/sys/net/ipv4/ip_forward #启用路由转发iptables -t nat -A POSTROUTING -s /24 -o ppp0 -j MASQUERADE限制内网用户 :filter->forwardiptables -A FORWARD -s -j DROPiptables -A FORWARD -m mac -mac-source 11:22:33:44:55:66 -j DROPiptables -A FORWARD -d -j DROP内网做对外服务器 :iptables -
40、t nat -A PREROUTING -i ppp0 -p tcp -dport 80 -j DNAT -to iptables -t nat -A PREROUTING-i ppp0 -p tcp -dport 81 -j DNAT-to :80=连= 接追踪模块主动模式 (ACTIVE)使用连接追踪模块 (打开 tcp/20, 防火墙打开高范围端口 , 配置 ftp, 减小被动模式端口范围 ) modprobe ip_nat_ftpiptables -A INPUT -p tcp -dport 21 -j ACCEPTiptables -A INPUT -m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025下半年社会服务行业理性消费与结构复苏并行关注情绪消费
- 中医药现代化进程中的国际市场拓展:2025年全球中医药产业链研究报告
- 医疗器械售后服务市场服务质量评价体系构建与服务质量提升报告
- 工业互联网平台网络隔离技术在医疗设备制造中的应用报告
- 2025年中医药现代化进程在埃塞俄比亚市场拓展策略研究报告
- 2025年医药企业研发外包(CRO)模式下的研发项目管理与团队协作报告
- 数字艺术市场交易平台在艺术品交易中的物流配送与仓储管理报告
- 施工项目浴室管理制度
- 中医药实验设备管理制度
- 乡镇幼儿园学籍管理制度
- 管道工厂化预制推广应用课件
- 5-1贯入法砌筑砂浆砂浆抗压强度检测方案
- 锚杆加固施工方案(通用版)
- 地源热泵埋管冬夏季换热平衡计算
- 甲骨文专‖教学课件
- 规章制度和操作规程的管理制度范本
- 形式发票格式2 INVOICE
- 清华大学美术学院陶瓷艺术设计系研究生导师及研究课题
- 理论力学运动学题库
- 计算机控制实验报告初稿(共31页)
- 2012年内蒙古鄂尔多斯市中考物理试卷【含答案可编辑】
评论
0/150
提交评论