linux防火墙之牛刀小试

本文涉及的产品
公网NAT网关,每月750个小时 15CU
云防火墙,500元 1000GB
简介:

上一篇文章“iptables之语法初步”有说到iptables的基本命令,配合实际的操作指令应该可以实现基本的iptables操作。那么如果要实现将规则应用于实际的生产环境中,还需要了解以下的内容。

截图26

匹配注意:

  ? Ip地址或者主机名(主机名必须可以解析) 
? 端口号码或者是服务名字22 or ssh( 对应到/etc/service ) 
? 排除可以用“!”


1
iptables –A INPUT –s ! 192.168.1.254 –j REJECT

  ? 一段端口可以用“:” 比如‘0:1024’ 
? 子网掩码可以使用vlsn或者cidr的方式 
cidr: 10.0.1.0/24 vlsn :10.0.1.0/255.255.255.0

一:按网络接口匹配

-i <匹配数据进入的网络接口>

例如:

-i eth0  匹配是否从网络接口 eth0 进来
-i ppp0  匹配是否从网络接口 ppp0 进来

-o 匹配数据流出的网络接口

例如:

-o eth0 
-o ppp0

二:按来源目的地址匹配

-s <匹配来源地址>

  可以是 IP、NET、DOMAIN,也可空(任何地址)

例如:

   -s 192.168.0.1  匹配来自 192.168.0.1 的数据包

   -s 192.168.1.0/24    匹配来自 192.168.1.0/24 网络的数据包

   -s 192.168.0.0/16    匹配来自 192.168.0.0/16 网络的数据包

-d <匹配目的地址>

可以是 IP、NET、DOMAIN,也可以空

例如:

   -d 202.106.0.20    匹配去往 202.106.0.20 的数据包

   -d 202.106.0.0/16    匹配去往 202.106.0.0/16 网络的数据包

   -d www.abc.com     匹配去往域名 www.abc.com 的数据包

三:按协议类型匹配

-p <匹配协议类型>

  可以是 TCP、UDP、ICMP 等,也可为空

例如:

  -p tcp
-p udp
-p icmp --icmp-type 类型
ping: type 8 pong: type 0

四:按来源目的端口匹配

--sport <匹配源端口>

  可以是个别端口,可以是端口范围

例如:

   --sport 1000       匹配源端口是 1000 的数据包

   --sport 1000:3000    匹配源端口是 1000-3000 的数据包(含1000、3000)

   --sport :3000    匹配源端口是 3000 以下的数据包(含 3000)

   --sport 1000:    匹配源端口是 1000 以上的数据包(含 1000)

--dport <匹配目的端口>

可以是个别端口,可以是端口范围

例如:

   --dport 80         匹配源端口是 80 的数据包

   --dport 6000:8000    匹配源端口是 6000-8000 的数据包(含6000、8000)

   --dport :3000    匹配源端口是 3000 以下的数据包(含 3000)

   --dport 1000:    匹配源端口是 1000 以上的数据包(含 1000)

例1、端口匹配

-p udp --dport 53

  匹配网络中目的地址是 53 的 UDP 协议数据包

例2、地址匹配

-s 10.1.0.0/24 -d 172.17.0.0/16

  匹配来自 10.1.0.0/24 去往 172.17.0.0/16 的所有数据包

例3、端口和地址联合匹配

-s 192.168.0.1 -d www.abc.com -p tcp --dport 80

  匹配来自 192.168.0.1,去往 www.abc.com 的 80 端口的 TCP 协议数据包。

注意:

1、--sport、--dport 必须联合 -p 使用,必须指明协议类型是什么

  2、条件写的越多,匹配越细致,匹配范围越小

截图27

一:-j ACCEPT

  通过,允许数据包通过本链而不拦截它, 类似 Cisco 中 ACL 里面的 permit 。

例如:


1
iptables -A INPUT -j ACCEPT

  允许所有访问本机 IP 的数据包通过

二:-j DROP

  丢弃,阻止数据包通过本链而丢弃它,类似 Cisco 中 ACL 里的 deny。

例如:


1
iptables -A FORWARD -s 192.168.80.39 -j DROP

  阻止来源地址为 192.168.80.39 的数据包通过本机

三:-j SNAT

  -j SNAT --to IP[-IP][:端口-端口](nat 表的 POSTROUTING 链)

  源地址转换,SNAT 支持转换为单 IP,也支持转换到 IP 地址池(一组连续的 IP 地址)

例如:


1
iptables -t nat -A POSTROUTING -s 192.168.0.0 /24  -j SNAT --to 1.1.1.1

  将内网 192.168.0.0/24 的原地址修改为 1.1.1.1,用于 NAT。


1
iptables -t nat -A POSTROUTING -s 192.168.0.0 /24  -j SNAT --to 1.1.1.1-1.1.1.10

  同上,只不过修改成一个地址池里的 IP。

四:-j DNAT

  -j DNAT --to IP[-IP][:端口-端口](nat 表的 PREROUTING 链)

  目的地址转换,DNAT 支持转换为单 IP,也支持转换到 IP 地址池(一组连续的 IP 地址)。

例如:


1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.1

  把从 ppp0 进来的要访问 TCP/80 的数据包目的地址改为 192.168.0.1


1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.0.2:80


1
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.1-192.168.0.10

五:-j MASQUERADE

  -j MASQUERADE 动态源地址转换(动态 IP 的情况下使用)

例如:


1
iptables -t nat -A POSTROUTING -s 192.168.0.0 /24  -j MASQUERADE

  将源地址是 192.168.0.0/24 的数据包进行地址伪装

ipRoute_页面_1

ipRoute_页面_2

ipRoute_页面_3

ipRoute_页面_4

ipRoute_页面_5

牛刀小试

如下图所示的网络环境,结合前面所了解的iptables语法,(http://waringid.blog.51cto.com/65148/402648http://waringid.blog.51cto.com/65148/403931)完成以下问题。答案在下篇文章中公布。

ex

一、

  假设在防火墙主机执行“iptables -A INPUT -p icmp -j DROP”指令,请问192.168.2.15及192.168.0.20哪一台主机可以ping到防火墙主机?

二、

  假设在防火墙主机上执行“iptables -A INPUT -i eth0 -p icmp -d 192.168.0.2 -j DROP”命令,请问192.168.2.15及192.168.0.20哪一台主机可以ping到防火墙主机的192.168.0/2这个IP?

三、

  假设在防火墙主机有WEB Server正在执行中,且我们在防火墙主机上执行“iptables -A INPUT -i eth1 --dport 80 -s 192.168.0.0/24 -j REJECT”指令,请问在上图中哪些主机可以访问到该WEB Server?

四、

  假设192.168.2.5主机为WEB Server,且我们在防火墙主机上执行“iptables -A INPUT -i eth1 -p tcp -d 192.168.2.5 --dport 80 -j REJECT”指令,请问192.168.0.20及192.168.2.15哪一台主机可以方问到该WEB Server?

五、

  假设192.168.2.5及192.168.0.10主机都为WEB Server,且我们在防火墙主机上执行“iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport -j REJECT”命令,请问:192.168.0.20可以该问到哪一台WEB Server?192.168.2.15可以该问到哪一台WEB Server?










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1712518,如需转载请自行联系原作者
目录
相关文章
|
安全 Linux 应用服务中间件
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
407 73
|
10月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
291 1
|
11月前
|
存储 运维 Linux
Linux防火墙firewall的使用
CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效。它通过区域管理网络流量,每个区域可以设置不同的防火墙规则。默认区域为 public,可以通过命令行工具 firewall-cmd 进行管理和配置。firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。
193 0
|
Linux 网络安全
linux关闭方防火墙的命令
linux关闭方防火墙的命令
228 2
|
Linux 网络安全
在Linux中,如何设置防火墙规则?
在Linux中,如何设置防火墙规则?
|
安全 Linux 测试技术
在Linux中,如何配置防火墙和安全规则?
在Linux中,如何配置防火墙和安全规则?
|
27天前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
103 16
|
19天前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
3月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
668 13