当前位置:首页>Linux>Linux防火墙

Linux防火墙

  • 2026-09-03 21:47:36
Linux防火墙

防火墙基础

防火墙依靠:IP地址、端口号、net地址、包中数据

防火墙没有过滤病毒的功能(渔网打鱼,网孔只确定打什么大小的鱼,但是不保证打上来的鱼是否有病)。

基础

内核机制:netfilter

系统服务:5、6的时候使用的是iptable,7的时候使用firewalld

管理工具:firewall-cmd

RedHat7里面预设很多保护区:用到什么只需要移到里面就行

public区:一般只允许特别的程序,拒绝其他所有(ssh)

bolck区:阻塞所有的访问。

drop区:丢弃所有的访问。

trusted区:允许所有访问。

操作

永久配置(Permanent):

运行时(RUntime):

firewall-cmd --permanent

运行时直接改就行,永久的需要添加一个--permanent选项

区域是默认的,需要改动加上--zone=[目标区域]选项

查看规则

//查询防火墙支持哪些区域#> firewall-cmd --get-zones//查看默认区#> firewall-cmd --get-default-zone public//查看当前区的默认#> firewall-cmd --list-allpublic (active)  target: default  icmp-block-inversion: no  interfaces: ens33  sources:   services: ssh dhcpv6-client  ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules:   //查看指定的区域  #> firewall-cmd --list-all --zone=dropdrop  target: DROP  icmp-block-inversion: no  interfaces:   sources:   services:   ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules: 

设置区域

//设置默认区#> firewall-cmd --set-default-zone=trusted success#> firewall-cmd --get-default-zone trusted#> firewall-cmd --list-all  //这是就不是public了trusted (active)  target: ACCEPT  icmp-block-inversion: no  interfaces: ens33  sources:   services:   ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules: 

添加规则

firewall-cmd --add-service=[服务名]//设置默认#> firewall-cmd --add-service=httpsuccess#> firewall-cmd --list-alltrusted (active)  target: ACCEPT  icmp-block-inversion: no  interfaces: ens33  sources:   services: http  ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules://永久生效 #> firewall-cmd --permanent --add-service=http //设置指定区域  #> firewall-cmd --add-service=ssh --zone=dropsuccess#> firewall-cmd --list-all --zone=dropdrop  target: DROP  icmp-block-inversion: no  interfaces:   sources:   services: ssh  ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules: 

  删除规则

//设置指定区域 #> firewall-cmd --remove-service=ssh --zone=drop success#> firewall-cmd --list-all --zone=dropdrop  target: DROP  icmp-block-inversion: no  interfaces:   sources:   services:   ports:   protocols:   masquerade: no  forward-ports:   source-ports:   icmp-blocks:   rich rules: 

重载规则

#> firewall-cmd --reloadsucess

添加端口

#> firewall-cmd --add-port=[端口]

端口转发

#> firewall-cmd --add-forward-port=[原端口]:[协议]:[目标端口]#> firewall-cmd --add-forward-port=port=5423:proto=tcp:toport=80  //将端口5423转发到80

1关闭防火墙

1)先检查防火墙状态
$> systemctl status firewalld(如图有actice (running)表示防火墙打开)

2)关闭
#> systemctl disable firewalld(执行开机禁用防火墙自启命令)  
#> systemctl stop firewalld(临时关闭防火墙)

3)最后在检查一下
$> systemctl status firewalld(如图“防火墙关闭状态”有inactice (dead)表示防火墙打开)

最后备注一下

1)临时打开防火墙 

#> systemctl start firewalld

2)防火墙开机启动 

#> systemctl enable firewalld

图形界面——firewall-config

#> firewall-config 

eg1:在系统system1配置端口转发,要求如下:

1.在172.25.0.0/24网络中的客户机,访问system1的本地端口5423将北转发到80

2.此设置永久有效

#> systemctl restart firewalld#> systemctl enable firewalld#> firewall-cmd --set-default-zone=trusted#> firewall-cmd --permanent --add-source=172.34.0.0/24 --zone=block#> firewall-cmd --permanent --zone=trusted --add-forward-port=5423:proto=tcp:toport=80#> firewall-cmd --reload

本文是我根据在自学过程中的经验总结出来的,如果有建议和看法,可以在文末留言,谢谢。

最新文章

随机文章