防火墙基础
防火墙依靠: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

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