Day66-企业级防火墙iptables精讲2

news2024/11/16 13:26:38

Day66-企业级防火墙iptables精讲2

  • 1. iptables项目案例2:局域网共享上网:
  • 2. iptables项目案例3:外网IP的端口映射到内网IP的端口
  • 3. 老男孩教育iptables项目案例4:IP一对一映射(DMZ)
  • 4. 老男孩教育iptables项目案例5:映射多个外网IP上网(1200人)
  • 5. 老男孩教育iptables项目案例6:企业级Linux系统路由器的配置
  • 6. Linux抓包命令tcpdump是一个抓包工具,用于抓取互联网上传输的数据包

链接: http://www.netfilter.org/projects/iptables/index.html

1. iptables项目案例2:局域网共享上网:

做网关环境准备:
1、只保留内网卡172.16.1.51 db01

ifdown eth0
route add default gw 172.16.1.8

# 测试上网:
ping www.baidu.com
ping 203.81.19.1
结果应该都不通。

2、网关服务器 172.16.1.8 web02

eth0:10.0.0.8
eth1:172.16.1.8
gw: 10.0.0.254

测试:ping www.baidu.com 结果通。

3、网关172.16.1.8开启内核路由转发:
内核文件/etc/sysctl.conf里开启转发功能。
在服务器网关B 172.16.1.8机器上开启路由转发功能。
编辑/etc/sysctl.conf修改内容为net.ipv4.ip_forward = 1,然后执行sysctl -p使修改生效。

[root@oldboy ~]# sysctl -p
net.ipv4.ip_forward = 1

4、调整iptables FORWARD默认规则为许可

iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P PREROUTING ACCEPT

iptables -nL -t nat
iptables -nL -t filter

5、生产案例:共享上网iptables命令 路由器的NAT命令

iptables -t nat -A POSTROUTING -o eth0 -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.8

在这里插入图片描述
局域网共享上网的两种iptables方法:
方法1:适合于有固定外网地址的:

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.8
(1)-s 172.16.1.0/24               ##办公室或IDC内网网段。
(2)-o eth0                        ##为网关的外网卡接口。
(3)-j SNAT --to-source 10.0.0.8   ###是网关外网卡IP地址。

方法2:适合变化外网地址(拨号上网):

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE    ##伪装。

买带宽的时候:

  1. 来根上连线,接到我们自己的外网交换机上,就可以配置外网地址。
    上网网关:共享上网。
  2. 光猫—拨号(用户名密码)路由器(Linux)—网关
  3. 见iptables项目案例6:企业级Linux系统路由器的配置

一台 linux 服务器 IP 为:192.168.0.8 ,只希望开放 TCP 80 端口,请写出 iptables 的设置命令

iptables -P INPUT DROP
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

2. iptables项目案例3:外网IP的端口映射到内网IP的端口

需求:将网关的IP和9000端口映射到内网服务器的22端口
端口映射 10.0.0.8:9000 -->172.16.1.51:22
源:10.0.0.1:520
目:10.0.0.8:22
源:10.0.0.1:520
目:172.16.1.51:22
实现命令:

iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.51:22

(1)-d 10.0.0.8目标地址。
(2)-j DNAT 目的地址改写。

3. 老男孩教育iptables项目案例4:IP一对一映射(DMZ)

辅助IP:

ip addr add 10.0.0.81/24 dev eth0 label eth0:0   #<==辅助IP

iptables  -t nat -I PREROUTING -d 10.0.0.81 -j DNAT --to-destination 172.16.1.51
iptables  -t nat -I POSTROUTING -s 172.16.1.51 -o eth0 -j SNAT --to-source 10.0.0.81

适合内网的机器访问NAT外网的IP

iptables  -t nat -I POSTROUTING -s 172.16.1.0/255.255.240.0 -d 10.0.0.81 -j DNAT --to-destination 172.16.1.51

检查:

ping 10.0.0.81 -t
tcpdump -i eth0 -p icmp(两台机器上分别监测)
telnet 10.0.0.81 873(51上提前配好)

4. 老男孩教育iptables项目案例5:映射多个外网IP上网(1200人)

方法1:

10.0.1.0/24   gw:10.0.1.1
10.0.2.0/24   gw:10.0.2.1
10.0.3.0/24   gw:10.0.3.1
10.0.4.0/24   gw:10.0.4.1
10.0.5.0/24   gw:10.0.5.1

三层交换机或路由器,基于端口划分VLAN。

iptables -t nat -A POSTROUTING -s 10.0.1.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16

出口IP:124.42.60.11-124.42.60.16

方法2:

iptables -t nat -A POSTROUTING -s 10.0.1.0/22 -o eth0 -j SNAT --to-source 124.42.60.11
iptables -t nat -A POSTROUTING -s 10.0.2.0/22 -o eth0 -j SNAT --to-source 124.42.60.12

扩大子网主机个数,会加重广播风暴问题。

课外阅读:
(1)生产环境大于254台机器网段划分及路由解决方案详解01
链接: http://v.youku.com/v_show/id_XNTAyMjAwMzI0.html
(2) linux route命令深入浅出与实战案例精讲
链接: http://oldboy.blog.51cto.com/2561410/1119453
链接: http://oldboy.blog.51cto.com/2561410/974194
必看3遍以上。

负载均衡器开启iptables,报错误了。。。
老男孩教育iptables项目案例4:iptables故障案例及内核参数优化
有关iptables的内核优化
调整内核参数文件/etc/sysctl.conf
以下是我的生产环境的某个服务器的配置:
#dmesg里面显示 ip_conntrack: table full, dropping packet.的错误提示,什么原因?如何解决?

iptables优化

net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

----------------------------------------

cat /proc/sys/net/nf_conntrack_max
ls /proc/sys/net/netfilter/

[root@web01 ~]# cat /proc/1/net/nf_conntrack
ipv4     2 tcp      6 125 ESTABLISHED src=10.0.0.1 dst=10.0.0.8 sport=1851 dport=9000 src=172.16.1.52 dst=10.0.0.1 sport=22 dport=1851 [ASSURED] mark=0 secmark=0 use=2
ipv4     2 udp      17 135 src=10.0.0.8 dst=223.5.5.5 sport=56910 dport=53 src=223.5.5.5 dst=10.0.0.8 sport=53 dport=56910 [ASSURED] mark=0 secmark=0 use=2
ipv4     2 tcp      6 35 SYN_SENT src=172.16.1.8 dst=172.16.1.61 sport=50659 dport=10051 [UNREPLIED] src=172.16.1.61 dst=172.16.1.8 sport=10051 dport=50659 mark=0 secmark=0 use=2
ipv4     2 tcp      6 179 ESTABLISHED src=10.0.0.1 dst=10.0.0.8 sport=1275 dport=22 src=10.0.0.8 dst=10.0.0.1 sport=22 dport=1275 [ASSURED] mark=0 secmark=0 use=2
ipv4     2 udp      17 137 src=10.0.0.8 dst=51.15.41.135 sport=123 dport=123 src=51.15.41.135 dst=10.0.0.8 sport=123 dport=123 [ASSURED] mark=0 secmark=0 use=2
ipv4     2 tcp      6 98 SYN_SENT src=172.16.1.8 dst=172.16.1.61 sport=50661 dport=10051 [UNREPLIED] src=172.16.1.61 dst=172.16.1.8 sport=10051 dport=50661 mark=0 secmark=0 use=2
ipv4     2 udp      17 137 src=10.0.0.8 dst=202.118.176.2 sport=123 dport=123 src=202.118.176.2 dst=10.0.0.8 sport=123 dport=123 [ASSURED] mark=0 secmark=0 use=2

重点:
0、老男孩教育iptables项目案例1:主机防火墙
1、老男孩教育iptables项目案例2:局域网共享上网*****
2、老男孩教育iptables项目案例3:外网IP的端口映射到内网IP的端口*****
3、老男孩教育iptables项目案例4:IP一对一映射
4、老男孩教育iptables项目案例5:iptables生产故障及对应内核优化
5、老男孩教育iptables项目案例6:企业级Linux系统路由器的配置

5. 老男孩教育iptables项目案例6:企业级Linux系统路由器的配置

路由连接地址为10.1.34.81/24
默认路由:10.1.34.1
分配的公网ip地址:110.233.24.96/27 255.255.255.224
在这里插入图片描述

要求:购买企业级路由器:
用zebra(quagga)替代企业级路由器:
Linux上配置zebra(quagga)路由:

client(config)#int eth0
client(config-if)#ip add 10.1.34.81 255.255.255.0
client(config-if)#int eth1
client(config-if)#ip add 110.233.24.96 255.255.255.224
client(config)#ip route 0.0.0.0 0.0.0.0 10.1.34.1
client(config)#ip route 110.233.24.96/27 eth1

6. Linux抓包命令tcpdump是一个抓包工具,用于抓取互联网上传输的数据包

tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息

常用选项

-i       #监听哪一个网卡  -i eth0
-n  	 #不把ip解析成主机名  
-nn 	 #不把端口解析成应用层协议
-c  	 #指定抓包的数量
-v 		 #输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。 
-vv 	 #输出详细的报文信息。

#实例
1、默认启动

tcpdump -vv		#普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。

2、过滤主机

tcpdump -i eth1 host 192.168.1.1		#抓取所有经过eth1,目的或源地址是192.168.1.1的网络数据
tcpdump -i eth1 src host 192.168.1.1	#指定源地址,192.168.1.1
tcpdump -i eth1 dst host 192.168.1.1	#指定目的地址,192.168.1.1

3、过滤端口

tcpdump -i eth1 port 80			#抓取所有经过eth1,目的或源端口是80的网络数据
tcpdump -i eth1 src port 80		#指定源端口
tcpdump -i eth1 dst port 80		#指定目的端口

4、协议过滤

tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp
tcpdump -i eth1 -p icmp

#抓tcp某端口的数据包
tcpdump -i eth0 tcp port 21 -nn

5、常用表达式
非 : ! or “not” (去掉双引号)
且 : && or “and”
或 : || or “or”

#抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'

#抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据
tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'

#抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据
tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1568178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jdbc连SQL server,显示1433端口连接失败解决方法

Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“connect timed out。请验证连接属性。确保 SQL Server 的实例正在主机上运行&#xff0c;且在此端口接受 TCP/IP 连接…

在project模式下自定义Implementation Strategies

Implementation Settings定义了默认选项&#xff0c;当要定义新的implementation runs时会使用这些选项&#xff0c;选项的值可以在Vivado IDE中进行配置。 图1展示了“Settings”对话框中的“implementation runs”对话框。要从Vivado IDE打开此对话框&#xff0c;请从主菜单中…

文件管理--fscanf,fread,fwrite和fprintf

fprintf函数&#xff1a;对于fprintf函数&#xff0c;它和printf一样&#xff0c;但是它的表达式为&#xff1a;int fprintf ( FILE * stream, const char * format, ... );和printf的很相似&#xff0c;但有不一样。它是格式化输出函数&#xff0c;代码为&#xff1a; #includ…

2024年清明节安装matlab 2024a

下载安装离线支持包SupportSoftwareDownloader_R2024a_win64&#xff0c;地址https://ww2.mathworks.cn/support/install/support-software-downloader.html&#xff0c;运行软件&#xff08;自解压运行&#xff09;&#xff0c;登录账号&#xff08;需要提前在官网注册&#x…

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器&#xff0c;源代码开放、性能优秀、支持CGI通用网关接口技术&#xff0c;特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互&#xff0c;达到通用网络对嵌入式设备进行监控&#xff0c;并将反馈信…

MPLS-基础、LSR、LSP、标签、体系结构

MPLS技术 MPLS基础 MPLS&#xff1a;转发数据时&#xff0c;只在网络边缘分析IP报文头&#xff0c;不在每一跳都分析&#xff0c;节约了转发时间。 MPLS&#xff1a;Multiprotocol Label Switching&#xff0c;多协议标签交换骨干网技术。主要应用&#xff1a;VPN、流量工程…

基于wordcloud、matplotlib等对某东评论数据情感分析-Python数据分析项目

基于wordcloud、matplotlib等对某东评论数据情感分析 文章目录 基于wordcloud、matplotlib等对某东评论数据情感分析1 数据导入及预处理1.1 数据导入1.2 数据描述1.3 数据预处理 2 情感分析2.1 情感分析2.2 情感分直方图2.3 词云图2.4 关键词提取 3 积极评论与消极评论3.1 积极…

【番外篇1】统计学+spss-t检验

目录 t检验 独立样本 t 检验 p值 spss如何分析独立样本t检验 配对样本t检验 单样本t检验 t检验 当我们想要比较两组数据&#xff08;比如两组学生的成绩&#xff09;是否真的有显著差异时&#xff0c;就可以使用 t 检验。 t 检验告诉我们&#xff0c;这种差异是不是真的…

深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN

这里写目录标题 01HDFS02Yarn03Hive04HBase1&#xff0e;特点2&#xff0e;存储 05Spark及Spark Streaming关于作者&#xff1a;推荐理由&#xff1a;作者直播推荐&#xff1a; 一篇讲明白 Hadoop 生态的三大部件 进入大数据阶段就意味着进入NoSQL阶段&#xff0c;更多的是面向…

@Order和@DependsOn的区别

这里写自定义目录标题 一、区别二、demo演示1、Order2、DependsOn 一、区别 Order&#xff1a;改变Bean注入的顺序DependsOn&#xff1a;改变Bean创建的顺序 二、demo演示 1、Order 类 A B 都实现了接口 I &#xff0c;且 A B都由Spring容器创建并且管理 public class A im…

.NET CORE 分布式事务(四) CAP实现最终一致性

目录 引言&#xff1a; 1.0 最终一致性介绍 2.0 CAP 2.0 架构预览 3.0 .NET CORE 结合CAP实现最终一致性分布式事务 3.1 准备工作(数据库&#xff0c;本文使用的是MySql) 3.1.1 数据模型 3.1.2 DbContext 3.1.3 数据库最终生成 3.2 Nuget引入 3.3 appsettings.json …

FressRTOS_day4:2024/4/4

1.总结二进制信号量和计数型信号量的区别&#xff0c;以及他们的使用场景。 二进制信号量的数值只有0和1。&#xff08;用于共享资源的访问&#xff09;&#xff1b;而计数型信号量的值一般是大于或者等于2&#xff08;用于生产者和消费者模型&#xff09; 2.使用计数型信号量…

安装Schedule库的方法最终解答!_Python第三方库

安装Python第三方库Schedule 我的环境&#xff1a;Window10&#xff0c;Python3.7&#xff0c;Anaconda3&#xff0c;Pycharm2023.1.3 Schedule库 Schedule 是一个轻量级、功能强大而灵活的任务调度工具库&#xff0c;用于在指定的时间间隔内执行任务。为用户提供了简单易用的…

树(Tree) - 概念与基础

树的基本概念 树(Tree)是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用于各种算法和程序中。树是由节点(node)组成的层次结构&#xff0c;其中每个节点都有一个父节点&#xff0c;除了根节点外&#xff0c;每个节点都有零个或多个子节点。树的一个关键特点是没有…

Java云联his系统,支持电子病历四级,医院信息管理系统源码

SaaS模式Java语言开发的云HIS系统源码&#xff0c;支持电子病历四级&#xff0c;系统充分考虑了模板化、配置化、智能化、扩展化等设计方法&#xff0c;覆盖了基层医疗机构的主要工作流程&#xff0c;能够与监管系统有序对接&#xff0c;并能满足未来系统扩展的需要。 云HIS系统…

matlab使用教程(33)—求解时滞微分方程(1)

1.时滞微分方程(DDE)的分类 时滞微分方程 (DDE) 是当前时间的解与过去时间的解相关的常微分方程。该时滞可以固定不变、与时间相关、与状态相关或与导数相关。要开始积分&#xff0c;通常必须提供历史解&#xff0c;以便求解器可以获取初始积分点之前的时间的解。 1.1常时滞 D…

二维动画制作软件 Animate 2024 for mac激活版

Animate 2024 for Mac是一款功能强大的二维动画制作软件&#xff0c;专为Mac用户打造。它提供了丰富的动画编辑功能&#xff0c;使用户能够轻松创建出生动逼真的动画作品。无论是短片、广告还是游戏等应用领域&#xff0c;Animate 2024都能发挥出出色的表现。 软件下载&#xf…

ArcGIS Pro导出布局时去除在线地图水印

目录 一、背景 二、解决方法 一、背景 在ArcGIS Pro中经常会用到软件自带的在线地图&#xff0c;但是在导出布局时&#xff0c;图片右下方会自带地图的水印 二、解决方法 解决方法&#xff1a;添加动态文本--服务图层制作者名单&#xff0c;然后在布局中选定位置添加 在状…

基于 Docker 的 python grpc quickstart

工作之后一直使用的 RPC 框架是 Apache 的 thrift&#xff0c;现在发现 grpc 更流行&#xff0c;所以也要学习一下&#xff0c;先来简单的跑一下 demo。在本地安装运行也很方便&#xff0c;不过因为有了 docker&#xff0c;所以在 docker 里面安装运行隔离性更好&#xff0c;顺…

多线程--深入探究多线程的重点,难点以及常考点线程安全问题

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…