在OpenSUSE中如何搭建防火墙
时间:2019-04-29 03:18:25 来源:igfitidea点击:
OpenSUSE Linux提供了一个动态的、可定制的防火墙,通过设置规则来阻止或者放行网络连接。这我们将学习如何在OpenSUSE设置防火墙,并使用firewall-cmd进行防火墙规则的管理。
如何安装FirewallD
sudo zypper ref sudo zypper update sudo zypper install firewalld
开启防火墙服务
开启防火墙服务并允许其在系统启动时自启动
sudo systemctl start firewalld sudo systemctl enable firewalld
查看防火墙服务和进程状态
sudo systemctl status firewalld
关闭防火墙
sudo systemctl disable firewalld sudo systemctl stop firewalld
重启防火墙
sudo systemctl restart firewalld
查看防火墙状态
sudo firewall-cmd --state sudo systemctl status firewalld
如何添加/删除防火墙规则
## 查看public zone的规则 sudo firewall-cmd --list-all --zone=public ## 删除服务 sudo firewall-cmd --remove-service=dhcpv6-client --permanent --zone=public ## 永久添加服务 sudo firewall-cmd --add-service=httpd --permanent --zone=public ## 临时添加服务(重启后丢失) sudo firewall-cmd --zone=public --add-service=https ## 为tomcat打开防火墙的tcp 8080端口 sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent ## 关闭81端口 sudo firewall-cmd --zone=public --remove-port=81/tcp --permanent ## 重新加载,使规则生效 sudo firewall-cmd --reload ## 查看开放的服务和端口 sudo firewall-cmd --list-services sudo firewall-cmd --zone=public --list-ports
防火墙配置说明
firewalld简化了网络流量管理的概念。其中包括两个概念 zone 和 service
zones
zone翻译过来就是区域地带的意思。
使用zone来划分来自不同地方的流量。
Firewalld中的区域是预定义的规则集。
zone的区域分类
- public – 这个是常见的。不相信网络上的任何其他计算机和服务器。您只允许所需的端口和服务。对于公网服务器,应始终使用public zone。
- block - 拒绝所有网络连接进入。只允许从系统内部发起的网络连接。
- drop - 删除所有输入的网络连接,只允许输出的网络连接。
- external - 路由器类型的连接。使NAT能正常工作。
- internal - 在内部网络上,当信任局域网上的其他服务器或计算机时使用。
- trusted - 接受所有网络连接。不建议将此区域用于连接到WAN的服务器。
- home - 对于局域网的家庭电脑有用,这时是相信其他电脑的。只允许选择的TCP/IP端口。
- work - 在你的工作场所使用,只信任你的同事和其他服务器。
zone保存在/usr/lib/firewalld/zones/
目录下
cat /usr/lib/firewalld/zones/public.xml
查看所有的zone
firewall-cmd --get-zones grep -i DefaultZone /etc/firewalld/firewalld.conf
查看默认的zone区域
firewall-cmd --get-default-zone
查看激活的zone
firewall-cmd --get-active-zones
service
另一个概念是服务。服务即对应一组端口,协议,和服务名。比如
web服务 端口80,协议TCP
如何查看当前区域中允许哪些服务
sudo firewall-cmd --list-services sudo firewall-cmd --list-services --zone=public sudo firewall-cmd --list-services --zone=home
如何查看与公共区域关联的防火墙规则
sudo firewall-cmd --list-all sudo firewall-cmd --list-all --zone=public
怎么查看防火墙支持哪些服务?
防火墙的配置文件在 /usr/lib/firewalld/services
sudo firewall-cmd --get-services sudo firewall-cmd --get-services | grep ssh cat /usr/lib/firewalld/services/ssh.xml