linux之火墙

##############火墙是内核上的一个插件
firewalld和iptables是管理火墙(iptables)的工具

iptables默认有三张

filter表(内容三个):经过内核(访问本机的)input和output
forward在filter表里:两块网卡的ip用一根线连接起来这根线叫做forward

nat表(四个内容):专做地址转发(不访问本机的)

路由之后的地址转发是postrouting
路由之前的是prerouting

限制postrouting和preouting是fiter里面的forword,可以限制是否通过内核

mangle(转做附加说明,前两张表不够用,有五个内容)

input output(in和ou分为两种类型) forward postrouting prerouting

被称为三表五链

###############firewalld

firewalld企业7之前里面没有

在client内网卡设定为172.25.254.219

将不同网卡添加在不同域中server中添加两块网卡eth0(172.25.254.114) eth1(1.1.1.114)
开启httpd
firewall-cmd --list-all看所有的接口信息

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

写下共享文件,开启httpd
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这时你去访问访问不到(有火墙)
在这里插入图片描述

在这里插入图片描述

此时eth0是public
firewall-cmd --remove-interface=eth0 --zone=public
先移除
在添加
firewalld-cmd --add-interface=eth0 --zone=trusted 将eth0接口改为trust这样别人访问eth0时就可以被信任(原本的eth0状态为public 不允许被人访问httpd )

在这里插入图片描述
在client中firefox访问172.25.254.119 可以访问到
在这里插入图片描述

####firewalld配置文件

如果一个网关的默认为trusted那末关闭服务,这个服务对这个网关来说还是开启

firewall-cmd --permanent --remove-service=ssh

firewall-cmd --complete-reload(正在连接的服务也会被停止)
kill -9 shhd

客户端 ssh root@172.25.254.119
#ssh: connect to host 172.25.254.119 port 22: No route to host
连接不上
如果还能连接上 就是你访问的ip网关是trusted

服务端:

vim /etc//firewalld/zones
里面有

firewalld.conf
你现在修改的命令会被写成文件

firewalld.conf.old 以前修改的命令写成文件

在这里插入图片描述

在这里插入图片描述
cd /lib/firewalld/services/
vim ssh.xml
将端口改为23
firewall-cmd --complete-reload(刷新)

在这里插入图片描述

在这里插入图片描述

客户端 ssh root@172.25.254.119
#ssh: connect to host 172.25.254.119 port 22: No route to host

在这里插入图片描述

在这里插入图片描述

######端口增加特定的防火墙规则
##22端口只允许219

服务端设置
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.114-p tcp
添加规定 f表 input链 来源 遵守协议

–dport 22 -j ACCEPT(REJECT)
目的端口 加动作

firewall-cmd --permanent --remove-service=ssh
关掉ssh
firewall-cmd --complete-reload

在这里插入图片描述

firewall-cmd --direct --get-all-rules 可以看到命令
#ipv4 filter INPUT 1 -s172.25.254.114-p tcp --dport 22 -j ACCEPT
在这里插入图片描述

客户端172.25.254.114
ssh可以
客户端172.25.254.63
ssh
#ssh: connect to host 172.25.254.119 port 22: No route to host

服务端删除命令
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s172.25.254.219 -p tcp --dport 22 -j ACCEPT

firewall-cmd --direct --get-all-rules

服务端设定firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.219 -p tcp --dport 22 -j ACCEPT
(除了219 其他都在范围内,经过内核访问) 219走服务访问,
若没有服务则:ssh: connect to host 172.25.254.119 port 22: No route to host
在这里插入图片描述

在这里插入图片描述

现在服务端的ip 1.1.1.114

#地址伪装(server 有两个ip 172.25.254.114 1.1.1.114 client一个ip 1.1.1.214)

在这里插入图片描述
在server中
firewall-cmd --add-masquerade

在这里插入图片描述
firewall-cmd --list-all
在这里插入图片描述

发现masquerade 为yes
在client中修改网络设置
vim /etc/syconfig/network-scripts/ifcfg-eth0
写 GATEWAY=1.1.1.214

在这里插入图片描述
ping 172.25.254.63
可以pingtong

在这里插入图片描述

在这里插入图片描述
端口转发

服务端设定
此时
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.214

访问(服务端(172.25.254.119))火墙转到1.1.1.214
firewall-cmd --list-all

#forward-ports: port=22:proto=tcp:toport=22:toaddr=1.1.1.214

客户端访问ssh root@172.25.254.114发现连的是1.1.1.114

iptables管理火墙
首先关闭火墙 锁火墙
systemctl stop firewalld.service

systemctl mask firewalld.service

iptables -t filter -nL 列出filter表的 内容

在这里插入图片描述

在这里插入图片描述
iptables -t filter -A INPUT -s 172.25.254.219 -j REJECT
表 添加 input链上 219 被拒绝
iptables -t filter -nL
###target prot opt source destination
###REJECT all – 172.25.254.219 0.0.0.0/0 reject-with icmp-p

iptables -D INPUT 1
删除input 链的第1个

iptables -R INPUT 1 -s 172.25.254.219 -j REJECT
将 input链 第二条 更新 为 219 被拒绝

在这里插入图片描述

iptables的端口伪装和地址转发

####端口转发(从里面出去)
sysctl -a | grep ip_forward

1想向3借钱 不认识3 ,先向2借,2在去向3借
服务端(有两块ip 172.25.254.119 1.1.1.119)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.219
设置 连我就转到1.1.1.219

在这里插入图片描述

在这里插入图片描述
用真机(172.25.254.63) ssh root@172.25.254.214(双网卡有两个ip,iptable)
会转到1.1.1.219
注:1.1.1.219里要设置网关 GATEWAY=1.1.1.114

在这里插入图片描述

####地址伪装路由后

(从为外面要进来)
3找2还钱,2没有钱,2带3找1(172.25.254.19)

(3的真正目的是连接1)
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.19
iptables -t nat -nL
已经加上

在3(1.1.1.219)要ssh root@172.25.254.19
注意要设置网关(2)GATEWAY=1.1.1.119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值