Linux网关管理

网络就是一条条信息高速公路,每台计算机,都是这个网络上的节点。这条网络上,还有很多路由器,网络桥接器,等各种杂七杂八的连接器。

现在我们单单聚焦到网络到Linux服务器的这个阶段。

在这里插入图片描述
对网络数据包的接收,是在底层进行的,也就是操作系统内核进行操作的。

还记得计网里学到的socket,端口,ip地址什么的么?

linux服务器,它也可以充当路由器的功能,做数据转发,内容修改什么的,如果再跟应用发生“化学反应”,那就可以做更多的事情。

如上图所示,有这么5个阶段

内容
Prerouting数据进入内核空间前
Input数据过了pre那关之后,选择进入用户空间
Forward数据过了pre那关之后,选择离开
Postrouting数据离开linux前
Output用户应用发送数据出去

这五个阶段,相当于人类可以进行掌控的点,可以进行设置。

比如,我们可以修改包的目的地,修改包的源地址。

工作中遇到的,比如反向代理、负载均衡,也都是基于这种架构原理。

iptables是linux上的一个可以控制这几个阶段的工具,通俗点讲,也可以称之为防火墙设置器。

因为防火墙这东西,你开不开启,那代码都一直在那里等待着你。

不设置,充其量就是全都允许。

哪个阶段修改包的目的地

prerounting阶段。

因为需要在进路由表选择之前就将目的地进行修改。

哪个阶段修改包的源地址

postrouting阶段。

这样linux才知道,这个信息是外部发送过来的,而不是自发送的。

linux开启包转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

linux关闭包转发功能

echo 0 > /proc/sys/net/ipv4/ip_forward

安装iptables

yum -y install iptables-service

查看iptables的状态

systemctl status iptables

开启iptables服务

systemctl start iptables

关闭iptables服务

systemctl stop iptables

设置进入用户空间时的规则——input

iptables -A INPUT -s x.x.x.x/子网掩码位数 -j DROP

这是设置来自x.x.x.x/子网掩码位数ip的包不能进入用户空间

iptables -A INPUT -s x.x.x.x/子网掩码位数 -j ACCEPT

这是设置接受来自x.x.x.x/子网掩码位数ip的包进入用户空间

查看当前生效的规则

iptables -L

设置修改来自某ip的包的目标地址

iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 端口号 -j DNAT --to x.x.x.x:端口号 

即做转发

iptables修改源地址转发

iptables -t nat -A POSTROUTING -s x.x.x.x/子网掩码 -p tcp -j SNAT --to-source x.x.x.x

将x.x.x.x/子网掩码 的包,改成了来自x.x.x.x的包

但是只修改一侧的话,就会出现只发包无法收到包的情况

设置回路

iptables -t nat -A PREOUTING -d 来的ip -p tcp --dport 来的端口 -j DNAT --to-destination 去的ip:端口

iptables -t nat -A POSTROUTING -d 去的ip -j SNAT --to-source 来的ip

DROP与REJECT的区别

drop会直接丢弃包,不会给发送这返回任何东西,比较适合用来防范真正的危险。

reject比较适合用来测试、调试。

删除iptable的规则配置

iptables -L -n --line-numbers
iptables -D 所属的chain 对应的行号

查看iptable配置路径

service iptables save

一般情况下,我们会把Ip的input的关闭,只开放对应的入端,然后output也关闭,设置对应的出端。

但是发出去的包从目标返回来怎么办?难道一个个都设置入端吗,这个不现实。

所以会有包状态这种东西。

表示这个包是从自身请求得到的。

状态分别有,new,related,established

我们需要设置,关联的状态包可以通过入端

iptables -A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

相应的,有跟踪状态,就有不跟踪状态的设置

iptables -t raw -A PREROUTING -d 入ip -j NOTRACK

讲了这么多链的阶段,状态,其实他们外层还套了一层表的逻辑

表名用处
raw跳过追踪,跳过转发
mangle修改标记位,可以达到从应用层区分路由选择
nat转发
filter过滤

表里面再是链逻辑,状态逻辑。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rgbhi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值