Linux学习------系统状态
- 云机平台:搬瓦工
- 操作系统:CentOS 7.3
- 操作时间:20190124
防火墙FireWalld
安装:yum install firewalld
基本控制(后缀.service可以不加,即这里firewalld和firewalld.service效果相等):
# systemctl restart firewalld //重启 firewalld.service
# systemctl start firewalld //启动 firewalld.service
# systemctl stop firewalld //关闭 firewalld.service
# systemctl enable firewalld //开机启动 firewalld.service
# systemctl disable firewalld //开机禁用 firewalld.service
# systemctl status firewalld //显示 firewalld.service 状态
查看default zone和active zone ( 我们还没有做任何配置,default zone和active zone都应该是public )
# firewall-cmd --get-default-zone
# firewall-cmd --get-active-zones
端口开放与关闭(端口控制):
# firewall-cmd --zone=public --add-port=80/tcp --permanent //添加(--permanent永久生效,没有此参数重启后失效)
# firewall-cmd --reload //重新载入
# firewall-cmd --zone= public --query-port=80/tcp //查看
# firewall-cmd --zone= public --remove-port=80/tcp --permanent //删除
端口开放与关闭(服务控制):
# firewall-cmd --list-services //查看当前开了哪些端(其实一个服务对应一个端口,每个服务对应/usr/lib/firewalld/services下面一个xml文件)
# firewall-cmd --get-services //查看还有哪些服务可以打开
# firewall-cmd --add-service=http //添加一个服务到firewalld ,http换成想要开放的service,系统下次启动就失效
# firewall-cmd --permanent --add-service=http //添加一个服务到firewalld ,http换成想要开放的service,加上 --permanent 永久开放service
# firewall-cmd --permanent --remove-service=http //永久移除某个service,http换成想要移除的service
如果要添加的端口并没有服务对应,就要新建一个服务。
在/usr/lib/firewalld/services,随便拷贝一个xml文件到一个新名字,比如ssh.xml拷贝到sshmyservice.xml,并编辑sshmyservice.xml
# cd /usr/lib/firewalld/services
# cp ssh.xml sshmyservice.xml
# vi sshmyservice.xml
修改short和description改为想要名字和表述(随意改,只为给人类看,机器无影响)
修改 protocol和port (重要),修改完后保存
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>sshmyservice</short>
<description>Transmission</description>
<port protocol="tcp" port="1111"/>
</service>
在网页工具直接连接服务器(搬瓦工自己占了22口子默认开启ssh,我们连接的端口是其他,所以开了防火墙putty会连不上,傻眼半天的本菜鸟血泪教训),启动或重启firewalld服务(防止找不到新建的service),并把新建的service添加到firewalld
# systemctl start firewalld.service
# systemctl restart firewalld.service
# firewall-cmd --permanent --add-service=sshmyservice
其他控制:
# firewall-cmd --version //查看版本
# firewall-cmd --help //查看帮助
# firewall-cmd --state //显示状态
# firewall-cmd --reload //更新防火墙规则(重新载入
# firewall-cmd --zone=public --list-ports //查看所有打开的端口 )
# firewall-cmd --get-active-zones //查看区域信息
# firewall-cmd --get-zone-of-interface=eth0 //查看指定接口所属区域
# firewall-cmd --panic-on //拒绝所有包
# firewall-cmd --panic-off //取消拒绝状态
# firewall-cmd --query-panic //查看是否拒绝
理解Firewalld的结构 :http://www.excelib.com/article/287/show
网友评论