linux网络基础4 - Go语言中文社区

linux网络基础4


静态路由

使用虚拟机实现如下拓扑图:
在这里插入图片描述
需要注意的是:172.16.1.0网段的网络模式是lan区段模式。
环境搭建完成检查以及测试:
在这里插入图片描述
配置静态路由的方法:
route add -net 目的网络 gw 下一跳地址
配置静态路由:

# route1对应的虚拟机配置:
route add -net 172.16.1.0/24 gw 10.0.0.12
route -n
# route3对应的配置:
route add -net 10.0.0.0/24 gw 172.16.1.12
# 这里的静态路由规则就配置完成了,然后我们会发现网络还是不能互通,这时候,我们还需要在route2对应的虚拟机把内核参数net.ipv4.ip_forward改为1,这个内核默认是0,表示会丢掉所有不是发送给自己的数据包,配置命令如下:
sysctl net.ipv4.ip_forward=1

上面的配置是临时生效的,如果想要永久生效,那么我们就需要在/etc/sysconfig/network-scripts目录下创建响应的网卡路由配置文件,把我们的静态路由信息写到里面去。
示例如下:
在这里插入图片描述
然后重启网卡测试,我们就发现静态路由仍然存在。说明配置成功,静态路由的优先级最低。

数据包发送流程

在数据包发送过程中,我们的ip地址从头到尾不会改变,但是MAC地址会随着设备的不通发生改变。

iptables

iptable:是一个客户端代理,用户通过iptables这个代理,把用户的安全设定执行到对应的安全框架中,这个安全框架才是真正的防火墙,他的名字叫做netfilter。netfilter是linux操作系统的内核中的一个数据包处理模块,它具有如下功能:

  1. nat
  2. 数据包内容修改
  3. 包过滤型防火墙的功能。

规则

规则其实就是网络管理员预定义的条件,一般定义为如果数据包头满足怎样的条件就会去怎样处理这个数据包。

四表五链。

四表:
filter表 可以过滤数据包。
nat表 可以实现动态地址转换。
mangle表 用于修改数据包的服务类型、TTL、并且可以配置路由实现QOS。TTL表示的是最大生存周期,如果TTL=0的话数据包会被丢弃。
raw表 决定数据包是否被状态跟踪机制处理。
当四张表中的执行规则执行处于同一条链时,执行的优先级是:
raw–>mangle–>nat–>filter
五链:
prerouting 允许配置raw、mangle、nat表中的规则。
input 允许配置mangle、filter、(nat表centos7中可以,6中不可以)表中的规则。
forward 允许配置mangle、filter表中的规则。
output 允许配置所有表中的规则。
postrouting 允许配置mangle、nat表中的规则。

数据包通过防火墙的流程如下:
在这里插入图片描述

iptables的使用

		-L:查看iptables规则,默认查看的是fileter表
		-P:修改iptables的某个链的默认规则
		-t:修改要操作的表
		-I:表示插入一条规则(位于第一条)
		-A:追加一条规则
		-D:删除规则
		-j:针对目标做出的动作
		-F:清空规则
		-P:表示修改某一个链的默认规则
		-n:表示不解析协议
		--source:源ip
		--protocol:协议
		--dectination:目的ip
		--dport:端口

对目标做出的动作有:
ACCEPT:允许数据包通过。
DROP:直接丢弃数据包,不给任何回应信息,到了超时时间才会有反应。
REJECT:拒绝数据包通过,客户端刚请求就会收到拒绝的信息。
SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题,静态nat。
MASQUERADE:是SNAT的一种特殊形式,适用于动态nat。
DNAT:目标地址转换。
REDIRECT:在本机做端口映射。
LOG:在/var/log/messages文件中记录日志信息,然后把数据包传递给下一条规则。
规则写法:
iptables -I 链名 --source 源ip --destination 目的ip -j 动作

在配置规则时:
需要注意规则的写入顺序,因为只要前面有一条规则生效,后面的规则就不再生效。

防火墙模式

黑名单模式(默认):
默认规则允许所有
使用黑名单模式去实现所有人都可以访问80端口,但是只允许指定的ip10.0.0.1可以访问22端口的实现方式是:

iptables -A INPUT --source 10.0.0.1 --protocol tcp -dport 22 -j ACCEPT
# 允许10.0.0.1访问22端口
iptables -A INPUT --protocol tcp --dport 22 -j DROP
# 拒绝所有人访问22端口

白名单模式:
默认规则拒绝所有。
使用黑名单模式去实现所有人都可以访问80端口,但是只允许指定的ip10.0.0.1可以访问22端口的实现方式是:

iptables -I INPUT --protocol tcp --dport 80 ACCEPT
# 设置所有人都可以访问80端口
iptables -I INPUT --source 10.0.0.1 --protocol tcp -dport 22 -j ACCEPT
# 设置只有10.0.0.1可以访问22端口
iptables -P INPUT DROP
# 修改INPUT链为白名单模式(拒绝所有)
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zwj1834787/article/details/105261603
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢