当前位置: 首页 > news >正文

Linux进阶——防火墙

一、防火墙的简介

之前的实验中,默认会将防火墙关闭,这使得我们的服务如(nginx的web服务,dns的域名解析服务能被客户机所访问),因为在端口前面的墙被我们给干掉了。如果打开防火墙,未开放的端口无法对外进行相关的服务,外面的客户机也就无法得到服务。

防火墙:位于内部网和外部网之间的一个屏障,他会按照系统管理员事先规定好的规则来控制数据包的进出。软件防火墙(如Netfilter)的功能为数据包过滤机制。

Netfilter机制可以进行的分析工作有:

拒绝让Internet的数据包进入主机的某些端口。

拒绝让某些IP来源的数据包进入。

拒绝让带有特殊标记(flag)进入主机,最常见的就是带有SYN的主动连接的标志。

分析硬件地址(MAC)来决定是否连接。

但是防火墙并能保证网络一定安全。

防火墙不能阻止病毒或木马程序,防火墙对于内部LAN的攻击无能为力。

二、iptables

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项之后立刻执行匹配的结果(放行,阻止,默认是阻止),所以假设第一条指令为允许所有的用户访问80端口,那么第二条的不允许192.168.68.130主机访问这天规则就是无效的。

iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可与组成规则链,而规则链依据数据包的处理位置的不同可以分为:

在进行路由选择前处理数据包,用于目标地址转换(PREROUTING);

处理流入数据包(INPUT);

处理流出数据包(OUTPUT);

处理转发数据包(FORWARD);

在进行路由选择后处理数据包(POSTROUTING);

yum        install        iptables        -y       

yum install iptables-nft-services       #下载防火墙软件iptables

systemctl        stop        firewalld        #停用防火墙软件firewalld

systemctl        start        iptables        #启用防火墙软件iptables

iptables        -L        --line-numbers        #列出所有的指令

iptables        -D        INPUT        2        #删除INPUT的第二条指令

客户机无法访问服务端

iptables        -I        INPUT         -p        icmp        -j        ACCEPT        #写入指令

客户机可以访问服务端

#只给192.168.68.99提供http服务

iptables   -I   INPUT   -p   tcp   -s   192.168.68.99   --dport   80   -j   ACCEPT         #写入指令

三、firewalld

常用参数:

--list-all        #显示当前区域的显卡配置参数、资源、端口以及服务等信息;

--add-service=<服务名>        #设置默认区允许该服务

--add-port=<端口号/协议>        #设置默认区域允许该端口的流量

--remove-service=<服务名>        #设置默认区不在允许该服务

--permanent        #永久添加,重启服务器依旧有效

--reload        #重载服务,与永久添加配套使用,当永久添加之后需要进行重载,然后才能找到

firewall-cmd        --list-all        #列出所有防火墙信息

firewall-cmd        --add-service=http        #添加http服务

客户端即可访问!

firewall-cmd        --add-service=http        --permanent

firewall-cmd        --reload        #永久添加http服务

firewall-cmd --add-port=10000/tcp        #开放10000端口

firewall-cmd --remove-port=2000/tcp        #关闭2000端口

#只允许192.168.68.99访问http服务:

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.68.99" service name="http" accept' --permanent        #创建富命令,使得192.168.68.99得到http服务

#禁止IP:192.168.68.99进行ssh访问,应写为IP/32

firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.68.99/32" service name="ssh" reject' --permanent        #禁止192.168.68.99用户访问ssh服务

★firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.68.0/24" forward-port="5423" protocol="tcp" to-port="80"' --permanent        #网段为192.168.68.0/24的主机当用5423访问服务器时,服务器会将该服务转移到80端口

★firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.68.0/24" forward-port port="5423 " protocol="tcp" to-port="80" to-addr="192.168.68.100"'        #防火墙会将网段为192.168.68.0/24的客户端主机访问5423端口时,将数据转发到192.168.68.100:80端口,本机的192.168.68.100:80是nginx的web页面内容

补充:

firewall-cmd --remove-rich-rule='所要删除的指令'        #删除富指令

firewall-cmd --remove-rich-rule='rule family="ipv4" source address="192.168.68.0/24" forward-port="5423" protocol="tcp" to-port="80"' --permanent        #删除指令

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.68.0/24" destination address="192.168.68.100" forward-port port="5423"  protocol="tcp" to-port="80"'        #网段为192.168.68.100的主机当用5423访问服务器时,服务器会将该服务转移到80端口(作用不大)

四、补充知识:虚拟机初始状态设置

vim        /etc/chrony.conf        #修改时间服务器的配置添加如下信息

systemctl        enable        --now        chronyd        #设置开机自启

检查网络源:ll        /etc/yum.repos.d

vim        /etc/selinux/config        #关闭selinux服务

systemctl         disable        --now        firewalld        #关闭防火墙

reboot        #重启,再测试

date        #查看时间是否正确

getenforce        #查看selinux状态

systemctl        status        firewalld        #查看防火墙状态

相关文章:

  • 【鸿蒙开发】第三十章 应用稳定性-检测、分析、优化、运维汇总
  • 数据结构——二叉树(2025.2.12)
  • 用大模型学大模型04-模型与网络
  • 负载测试和压力测试的原理分别是什么
  • 代码实践——准备阶段
  • Linux 系统上以 root 用户身份运行 ./mysql.server start 命令,但仍然收到 “Permission denied” 错误
  • Spring Cloud微服务
  • 【CS61A 2024秋】Python入门课,全过程记录P7(Week13 Macros至完结)【完结撒花!】
  • 新一代高性能无线传输模块M-GATEWAY3
  • 玩转观察者模式
  • 【Linux】进程间关系与守护进程
  • MySQL 记录
  • c# textbox 设置不获取光标
  • 微信小程序 - 组件和样式
  • Django简介
  • 避雷,Ubuntu通过ollama本地化部署deepseek,open-webui前端显示
  • 链表(典型算法思想)—— OJ例题算法解析思路
  • android启动整体流程
  • Java面试——Tomcat
  • DeepSeek各版本说明与优缺点分析
  • 沃尔玛上财季净利下滑12%:关税带来成本压力,新财季价格涨幅将高于去年
  • 陕西三原高新区违法占用土地,被自然资源局罚款10万元
  • 讲座预告|以危机为视角解读全球治理
  • 南方降水频繁暴雨连连,北方高温再起或现40°C酷热天气
  • 诠释微末处的丰盈:“上海制造佳品汇”首届海外专场即将亮相日本大阪
  • 联合国第二届运动会闭幕,刘国梁受邀成为“联合国运动会大使”