centos7中firewall防火墙命令详解
<p>为了架设ss在vultr上买了一个日本的vps 用的是centos7的系统 防火墙是 firewall 捣鼓了两天 在这里总结一下。</p>
<p>
如果小伙伴也准备在vultr上买vps 在注册是 可以使用这个优惠连接http://www.vultr.com/?ref=6972993-3b 会的到 20$ 的优惠 也就可以免费使用4个月</p>
<p>
如果你的系统上没有安装使用命令安装</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_265174">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#yum install firewalld //安装firewalld 防火墙</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
开启服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_657035">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># systemctl start firewalld.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
关闭防火墙</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_336740">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># systemctl stop firewalld.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
开机自动启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_159628">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># systemctl enable firewalld.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
关闭开机制动启动</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_940480">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># systemctl disable firewalld.service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看状态</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_109612">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#systemctl status firewalld</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
得到到的结果如果是</p>
<p>
● firewalld.service - firewalld - dynamic firewall daemon<br>
loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)<br>
active: active (running) since mon 2016-09-05 02:34:07 utc; 15min ago<br>
main pid: 3447 (firewalld)<br>
cgroup: /system.slice/firewalld.service<br>
└─3447 /usr/bin/python -es /usr/sbin/firewalld --nofork --nopid</p>
<p>
sep 05 02:34:07 vultr.guest systemd: starting firewalld - dynamic firewall daemon...<br>
sep 05 02:34:07 vultr.guest systemd: started firewalld - dynamic firewall daemon.</p>
<p>
这样的说明没有问题</p>
<p>
设置 firwall</p>
<p>
使用firewall-cmd 命令</p>
<p>
查看状态</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_631017">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --state //running 表示运行</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
获取活动的区域</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_441133">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --get-active-zones</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
这条命令将用以下格式输出每个区域所含接口:</p>
<p>
<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..</p>
<p>
获取所有支持的服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_859674">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --get-service</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
每个服务以空格分隔 例如:</p>
<p>
rh-satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-http</p>
<p>
获取永久选项所支持的服务 就是重启后也支出的</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_878795">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --get-service --permanent //在 0.3.0 之前的 firewalld版本中, panic 选项是 –enable-panic 与 –disable-panic</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
开启应急模式阻断所有网络连接</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_333159">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --panic-on //在 0.3.0 之前的 firewalld版本中, panic 选项是 –enable-panic 与 –disable-panic</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
关闭应急模式 </p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_703872">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --panic-off</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看应急模式的状态</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_270015">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --query-panic</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
在不改变状态的条件下重新加载防火墙:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_512175">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --reload</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
防火墙预定义的服务配置文件是xml文件 目录在 /usr/lib/firewalld/services/<img style="max-width:100%!important;height:auto!important;"title="centos7中firewall防火墙命令详解" alt="centos7中firewall防火墙命令详解" src="https://zhuji.jb51.net/uploads/img/202305/8878f5a53bca9f0c61cb2c5e94e19fa6.jpg"></p>
<p>
在 /etc/firewalld/services/ 这个目录中也有配置文件 但是/etc/firewalld/services/目录 优先于 /usr/lib/firewalld/services/ 目录</p>
<p>
修改配置文件后 使用命令重新加载</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_590435">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --reload</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启用某个服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_44377">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments"># firewall-cmd --zone=public --add-service=https //临时</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments"># firewall-cmd --permanent --zone=public --add-service=https //永久</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
开启某个端口</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_979569">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp //永久</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments">#firewall-cmd --zone=public --add-port=8080-8081/tcp //临时</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
使用命令加载设置</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_410206">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --reload</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
查看开启的端口和服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_334105">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --permanent --zone=public --list-services //服务空格隔开 例如 dhcpv6-client https ss </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments">#firewall-cmd --permanent --zone=public --list-ports //端口空格隔开 例如 8080-8081/tcp 8388/tcp 80/tcp</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
在每次修改 端口和服务后 /etc/firewalld/zones/public.xml 文件就会被修改 所以也可以在文件中之间修改 然后重新加载<img style="max-width:100%!important;height:auto!important;"title="centos7中firewall防火墙命令详解" alt="centos7中firewall防火墙命令详解" src="https://zhuji.jb51.net/uploads/img/202305/15075ccd089e590f37e469a82f2e7314.jpg"></p>
<p>
设置某个ip 访问某个服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_503857">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
ip 192.168.0.4/24 访问 http</p>
<p>
设置后 public.xml 就会出现变化<img style="max-width:100%!important;height:auto!important;"title="centos7中firewall防火墙命令详解" alt="centos7中firewall防火墙命令详解" src="https://zhuji.jb51.net/uploads/img/202305/cd7bfdcf24cc8374c6b7812b68d7beaa.jpg"><br>
删除上面设置的规则</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_860390">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
启动服务</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_199343">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash comments">#systemctl start firewalld.service //开启服务</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash comments">#systemctl enable firewalld.service //开机制动启动</code>
</div>
<div class="line number3 index2 alt2">
</div>
<div class="line number4 index3 alt1">
<code class="bash comments">#systemctl stop firewalld.service //关闭服务</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash comments">#systemctl disable firewalld.service //禁止开机启动</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
</div>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。</p>
<p>
原文链接:http://www.cnblogs.com/phpshen/p/5842118.html</p>
頁:
[1]