<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>System Firewall (系统防火墙) &#8211; Eternal Center</title>
	<atom:link href="https://eternalcenter-sep-2022.github.io/category/system/system-network-system-security-system-log/system-security/system-firewall/feed/" rel="self" type="application/rss+xml" />
	<link>https://eternalcenter-sep-2022.github.io/</link>
	<description></description>
	<lastBuildDate>Mon, 15 Aug 2022 03:38:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>[内容] nftables 防火墙策略文件的常用规则</title>
		<link>https://eternalcenter-sep-2022.github.io/common-rules-for-nftables-firewall-policy-file/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 15 Aug 2022 03:31:10 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=27551</guid>

					<description><![CDATA[注意： 在给 nftables 防火墙的策略文件添加规则前，要先使用 nftables 防火墙的策略文件： 正文： 案例一：允许某个 IP 地址访问某个端口 或者： （补充：这里以允许 IP 地址 192.168.0.1 访问 22 端口为例） 案例二：允许某个 IP 地址访问多个端口 （补充：这里以允许 IP 地址 192.168.0.1 访问 22 端口、80 端口、443 端口和 3066 端口为例） 案例三：允许多个 IP 地址访问多个端口 （补充：这里以允许 IP 地址 192.168.0.1、192.168.0.2 和 192.168.0.3 访问 22 端口、80 端口、443 端口和 3066 端口为例） 案例四：拒绝所有 IP 地址访问多个端口 （补充：这里以拒绝所有 IP 地址的 22 &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/common-rules-for-nftables-firewall-policy-file/" class="more-link">Continue reading<span class="screen-reader-text"> "[内容] nftables 防火墙策略文件的常用规则"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h2>注意：</h2>



<p>在给 nftables 防火墙的策略文件添加规则前，要先使用 nftables 防火墙的策略文件：</p>



<div class="wp-container-1 is-content-justification-center wp-block-buttons">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://eternalcenter-sep-2022.github.io/nfttables-permanent/" style="border-radius:0px">nftables 防火墙的使用 <br>（永久版）</a></div>
</div>



<h2>正文：</h2>



<h3>案例一：允许某个 IP 地址访问某个端口</h3>



<pre class="wp-block-code"><code>ip saddr 192.168.0.1 tcp dport ssh accept</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code>ip saddr 192.168.0.1 tcp dport 22 accept</code></pre>



<p>（补充：这里以允许 IP 地址 192.168.0.1 访问 22 端口为例）</p>



<h3>案例二：允许某个 IP 地址访问多个端口</h3>



<pre class="wp-block-code"><code>ip saddr 192.168.0.1 tcp dport {22,80,443,3306} accept comment "accept local port"</code></pre>



<p>（补充：这里以允许 IP 地址 192.168.0.1 访问 22 端口、80 端口、443 端口和 3066 端口为例）</p>



<h3>案例三：允许多个 IP 地址访问多个端口</h3>



<pre class="wp-block-code"><code>ip saddr {192.168.0.1,192.168.0.2,192.168.0.3} tcp dport {22,80,443,3306} accept comment "accept local port"</code></pre>



<p>（补充：这里以允许 IP 地址 192.168.0.1、192.168.0.2 和 192.168.0.3 访问 22 端口、80 端口、443 端口和 3066 端口为例）</p>



<h3>案例四：拒绝所有 IP 地址访问多个端口</h3>



<pre class="wp-block-code"><code>tcp dport {22,80,443,3306} drop comment "drop remote port"</code></pre>



<p>（补充：这里以拒绝所有 IP 地址的 22 端口、80 端口、443 端口和 3306 端口为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Linux 防范黑客入侵的思路</title>
		<link>https://eternalcenter-sep-2022.github.io/thoughts-on-preventing-hacker-intrusion-in-linux/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Thu, 28 Jul 2022 08:33:56 +0000</pubDate>
				<category><![CDATA[Articles (文章)]]></category>
		<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Creations (创作)]]></category>
		<category><![CDATA[Information Technology (IT) Articles (信息技术类文章)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System and System Software's Update and Patch (系统和系统软件的更新和补丁)]]></category>
		<category><![CDATA[System File Security (系统文件安全)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Log (系统日志)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Privilege Security (系统权限安全)]]></category>
		<category><![CDATA[System Process Security (系统进程安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<category><![CDATA[System Security Log (系统安全日志)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=27358</guid>

					<description><![CDATA[黑客发现阶段 黑客在入侵前往往会先对整个网络进行扫描，尝试发现我们的系统。在这个阶段我们可以尝试的防范措施有： 1) 关闭 ICMP 协议，让黑客无法通过 ping 发现我们的系统2) 关闭所有不需要的端口3) 通过防火墙只让允许访问的 IP 地址访问对应的端口4) 让防火墙使用 drop 操作丢掉所有没有被允许的访问请求 黑客列举阶段和黑客立足阶段 黑客在发现了我们的系统之后。会根据我们系统和软件的版本，列举不同的破解方法并进行取舍，并最终会选择一种或多种方法进行尝试。在这两个阶段我们可以尝试的防范措施有： 1) 不使用盗版的系统和软件2) 不使用有漏洞的系统和软件3) 尽量将所有的系统和软件升级到最新的版本4) 删除所有非必须的软件5) 在用户尝试登录系统时，取消显示系统的版本6) 删除或禁用所有不需要的用户7) 让所有的用户都使用复杂的密码8) 定期检查和修改所有用户的密码9) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥10) 限制错误密码尝试的次数，以防止暴力破解11) 定期检查系统防火墙策略12) 定期检查系统开启的所有端口13) 定期检查系统开启的所有进程14) 定期查看 /var/log/message 中的尝试登录失败的日志记录 黑客保持持久性阶段 黑客在成功进入系统以后，会尝试为自己下次进入系统准备方法，以让入侵保持持久性。在这个阶段我们可以尝试的防范措施有： 1) 定期检查系统中的所有用户的名称和数量2) 定期检查系统中所有拥有 root 权限的名称和数量3) 定期检查和修改所有用户的密码4) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥5) 定期检查系统防火墙策略6) 定期检查系统开启的所有端口7) 定期检查系统开启的所有进程8) 缩小重要文件的权限9) 定期检查所有用户的登录日志10) 通过 auditd 服务监控所有重要配置文件，并定期检查监控日志 &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/thoughts-on-preventing-hacker-intrusion-in-linux/" class="more-link">Continue reading<span class="screen-reader-text"> "Linux 防范黑客入侵的思路"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h3>黑客发现阶段</h3>



<p>黑客在入侵前往往会先对整个网络进行扫描，尝试发现我们的系统。在这个阶段我们可以尝试的防范措施有：</p>



<p>1) 关闭 ICMP 协议，让黑客无法通过 ping 发现我们的系统<br>2) 关闭所有不需要的端口<br>3) 通过防火墙只让允许访问的 IP 地址访问对应的端口<br>4) 让防火墙使用 drop 操作丢掉所有没有被允许的访问请求</p>



<h3>黑客列举阶段和黑客立足阶段</h3>



<p>黑客在发现了我们的系统之后。会根据我们系统和软件的版本，列举不同的破解方法并进行取舍，并最终会选择一种或多种方法进行尝试。在这两个阶段我们可以尝试的防范措施有：</p>



<p>1) 不使用盗版的系统和软件<br>2) 不使用有漏洞的系统和软件<br>3) 尽量将所有的系统和软件升级到最新的版本<br>4) 删除所有非必须的软件<br>5) 在用户尝试登录系统时，取消显示系统的版本<br>6) 删除或禁用所有不需要的用户<br>7) 让所有的用户都使用复杂的密码<br>8) 定期检查和修改所有用户的密码<br>9) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥<br>10) 限制错误密码尝试的次数，以防止暴力破解<br>11) 定期检查系统防火墙策略<br>12) 定期检查系统开启的所有端口<br>13) 定期检查系统开启的所有进程<br>14) 定期查看 /var/log/message 中的尝试登录失败的日志记录</p>



<h3>黑客保持持久性阶段</h3>



<p>黑客在成功进入系统以后，会尝试为自己下次进入系统准备方法，以让入侵保持持久性。在这个阶段我们可以尝试的防范措施有：</p>



<p>1) 定期检查系统中的所有用户的名称和数量<br>2) 定期检查系统中所有拥有 root 权限的名称和数量<br>3) 定期检查和修改所有用户的密码<br>4) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥<br>5) 定期检查系统防火墙策略<br>6) 定期检查系统开启的所有端口<br>7) 定期检查系统开启的所有进程<br>8) 缩小重要文件的权限<br>9) 定期检查所有用户的登录日志<br>10) 通过 auditd 服务监控所有重要配置文件，并定期检查监控日志</p>



<h3>黑客掩盖痕迹阶段</h3>



<p>黑客让入侵保持持久性后，会尝试掩盖自己的痕迹。在这个阶段我们可以尝试的防范措施有：</p>



<p>1) 定期检查系统中的所有用户的名称和数量<br>2) 定期检查系统中所有拥有 root 权限的名称和数量<br>3) 定期检查和修改所有用户的密码<br>4) 定期检查和修改所有用户 ~/.ssh/ 目录中的密钥<br>5) 定期检查系统防火墙策略<br>6) 定期检查系统开启的所有端口<br>7) 定期检查系统开启的所有进程<br>8) 缩小重要文件的权限<br>9) 定期检查所有用户的登录日志，注意日志的时间是否连贯<br>10) 通过 auditd 服务监控所有重要配置文件，并定期检查监控日志，注意日志的时间是否连贯</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[排错] 解决 Linux 执行 iptables 命令时报错 “iptables: No chain/target/match by that name.”</title>
		<link>https://eternalcenter-sep-2022.github.io/debug-iptables-no-chain-target-match-by-that-name/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Thu, 09 Jun 2022 12:24:34 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Computer & System Hardware & System Installation & System Upgradation (系统电脑 & 系统硬件 & 系统安装 & 系统升级)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<category><![CDATA[System Upgradation (系统升级)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=23749</guid>

					<description><![CDATA[分析 系统运行的 kernel 内核已经被删除，此 kernel 内核相关的文件集都已经被删除，包括 ko 文件。安装新版本的 kernel 内核，并重启选择新版本的 kernel 内核，就能修复相关 kernel 内核文件集。 解决方法 步骤一：更新 kernel 内核 如果是 Rocky Linux &#38; RHEL： 如果是 openSUSE &#38; SLE： 步骤二：重启系统]]></description>
										<content:encoded><![CDATA[
<h2>分析</h2>



<p>系统运行的 kernel 内核已经被删除，此 kernel 内核相关的文件集都已经被删除，包括 ko 文件。安装新版本的 kernel 内核，并重启选择新版本的 kernel 内核，就能修复相关 kernel 内核文件集。</p>



<h2>解决方法</h2>



<h3>步骤一：更新 kernel 内核</h3>



<p>如果是 Rocky Linux &amp; RHEL：</p>



<pre class="wp-block-code"><code># yum update kernel*</code></pre>



<p>如果是 openSUSE &amp; SLE：</p>



<pre class="wp-block-code"><code># zypper update kernel*</code></pre>



<h3>步骤二：重启系统</h3>



<pre class="wp-block-code"><code># reboot</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] iptables 防火墙规则持久化 （让防火墙规则开机自启）</title>
		<link>https://eternalcenter-sep-2022.github.io/iptables-rule-permanent/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 25 Apr 2022 07:28:11 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=23270</guid>

					<description><![CDATA[内容一：Rocky Linux &#38; RHEL iptables 防火墙规则持久化 内容二：Rocky Linux &#38; RHEL 和 openSUSE &#38; SUSE iptables 防火墙规则持久化 2.1 导出现在 iptables 防火墙的规则 （补充：这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例） 2.2 创建用于加载 iptables 防火墙规则的 systemctl 管理文件 创建以下内容： （补充：这里以创建 systemctl 管理文件 /etc/systemd/system/iptables_save.service 将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例） 2.3 加载刚刚创建的 systemctl 管理文件 2.4 给刚刚创建的 systemctl 管理文件添加执行权限 （补充：这里以给 systemctl 管理文件 /etc/systemd/system/iptables_save.service 添加执行权限为例） 2.5 &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/iptables-rule-permanent/" class="more-link">Continue reading<span class="screen-reader-text"> "[内容] iptables 防火墙规则持久化 （让防火墙规则开机自启）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h3>内容一：Rocky Linux &amp; RHEL iptables 防火墙规则持久化</h3>



<pre class="wp-block-code"><code># service iptables save</code></pre>



<h3>内容二：Rocky Linux &amp; RHEL 和 openSUSE &amp; SUSE iptables 防火墙规则持久化</h3>



<h4>2.1 导出现在 iptables 防火墙的规则</h4>



<pre class="wp-block-code"><code># iptables-save &gt; /root/iptables_save</code></pre>



<p>（补充：这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例）</p>



<h4>2.2 创建用于加载 iptables 防火墙规则的 systemctl 管理文件</h4>



<pre class="wp-block-code"><code># vim /etc/systemd/system/iptables_save.service</code></pre>



<p>创建以下内容：</p>



<pre class="wp-block-code"><code>&#91;Unit]
Description=iptables_save
After=default.target

&#91;Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore &lt; /root/iptables_save

&#91;Install]
WantedBy=default.target</code></pre>



<p>（补充：这里以创建 systemctl 管理文件 /etc/systemd/system/iptables_save.service 将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例）</p>



<h4>2.3 加载刚刚创建的 systemctl 管理文件</h4>



<pre class="wp-block-code"><code># systemctl daemon-reload</code></pre>



<h4>2.4 给刚刚创建的 systemctl 管理文件添加执行权限</h4>



<pre class="wp-block-code"><code># chmod u+x /etc/systemd/system/iptables_save.service</code></pre>



<p>（补充：这里以给 systemctl 管理文件 /etc/systemd/system/iptables_save.service 添加执行权限为例）</p>



<h4>2.5 让防火墙规则开机自启</h4>



<pre class="wp-block-code"><code># systemctl enable iptables_save.service</code></pre>



<p>（补充：这里以开机自启 iptables_save.service 服务为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[内容] iptables 防火墙规则的导出和导入</title>
		<link>https://eternalcenter-sep-2022.github.io/iptables-rule-export-import/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Mon, 25 Apr 2022 07:20:19 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=23267</guid>

					<description><![CDATA[内容一：导出 iptables 防火墙规则 （补充：这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例） 内容二：导入 iptables 防火墙规则 （补充：这里以将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例）]]></description>
										<content:encoded><![CDATA[
<h3>内容一：导出 iptables 防火墙规则</h3>



<pre class="wp-block-code"><code># iptables-save &gt; /root/iptables_save</code></pre>



<p>（补充：这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例）</p>



<h3>内容二：导入 iptables 防火墙规则</h3>



<pre class="wp-block-code"><code># iptables-restore &lt; /root/iptables_save</code></pre>



<p>（补充：这里以将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] nftables 防火墙的使用 （永久版）</title>
		<link>https://eternalcenter-sep-2022.github.io/nfttables-permanent/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 03 Aug 2021 06:28:03 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=17232</guid>

					<description><![CDATA[注意： 只有 CentOS 8 &#38; RHEL 8 才可以使用 nftables 防火墙 正文： 步骤一：从 firewalld 防火墙切换至 nftables 防火墙 1.1 安装 nftables 防火墙 1.2 清空 iptables 防火墙的策略表 1.2.1 清空 ipv4 iptables 防火墙的策略表 1.2.2 清空 IPv6 iptables 防火墙的策略表 1.3 停止使用 firewalld 防火墙 1.3.1 取消 firewalld 防火墙开机自启 1.3.2 停止 firewalld 防火墙 1.4 启用 nftables 防火墙 1.4.1 开机自启 nftables 防火墙 1.4.2 &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/nfttables-permanent/" class="more-link">Continue reading<span class="screen-reader-text"> "[步骤] nftables 防火墙的使用 （永久版）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h1>注意：</h1>



<p>只有 CentOS 8 &amp; RHEL 8 才可以使用 nftables 防火墙</p>



<h1>正文：</h1>



<h3>步骤一：从 firewalld 防火墙切换至 nftables 防火墙</h3>



<h4>1.1 安装 nftables 防火墙</h4>



<pre class="wp-block-code"><code># dnf install nftables</code></pre>



<h4>1.2 清空 iptables 防火墙的策略表</h4>



<h5>1.2.1 清空 ipv4 iptables 防火墙的策略表</h5>



<pre class="wp-block-code"><code># iptables -F</code></pre>



<h5>1.2.2 清空 IPv6 iptables 防火墙的策略表</h5>



<pre class="wp-block-code"><code># ip6tables -F</code></pre>



<h4>1.3 停止使用 firewalld 防火墙</h4>



<h5>1.3.1 取消 firewalld 防火墙开机自启</h5>



<pre class="wp-block-code"><code># systemctl disable firewalld.service</code></pre>



<h5>1.3.2 停止 firewalld 防火墙</h5>



<pre class="wp-block-code"><code># systemctl stop firewalld.service</code></pre>



<h4>1.4 启用 nftables 防火墙</h4>



<h5>1.4.1 开机自启 nftables 防火墙</h5>



<pre class="wp-block-code"><code># systemctl enable nftables</code></pre>



<h5>1.4.2 启动 nftables 防火墙</h5>



<pre class="wp-block-code"><code># systemctl start nftables</code></pre>



<h3>步骤二：创建永久的 nftales 防火墙的策略表并条件永久的 nftables 防火墙策略</h3>



<h4>2.1 在 nftables 防火墙的配置文件中添加 nftables 防火墙策略文件</h4>



<pre class="wp-block-code"><code># vi /etc/sysconfig/nftables.conf</code></pre>



<p>添加以下内容：</p>



<pre class="wp-block-code"><code>......
include "/etc/nftables/nftables.rules"</code></pre>



<h4>2.2 在 nftables 防火墙策略文件中添加 nftables 防火墙策略</h4>



<pre class="wp-block-code"><code># vi /etc/nftables/nftables.rules
flush ruleset
table inet siemens_FW {
    chain siemens_FW_input {
      type filter hook input priority 0; policy accept;
      iif "lo" accept
      ip saddr 127.0.0.0/8 counter packets 0 bytes 0 drop
      ip6 saddr ::1 counter packets 0 bytes 0 drop
      ip saddr 192.168.1.1 tcp dport ssh accept                  
      tcp dport ssh drop
    }
    chain siemens_FW_forward {
      type filter hook forward priority 0; policy accept;
    } 
    chain siemens_FW_output {
      type filter hook output priority 0; policy accept;
    }
}</code></pre>



<p>（<br>补充：<br>（1）这里以基本的本地巡回路由策略并禁止除 192.168.1.1 的 IP 地址访问本地的 22 端口为例<br>（2）这里的 /etc/nftables/nftables.rules 是在 2.1 中添加的<br>）</p>



<h4>2.3 让添加的 nftables 防火墙策略生效</h4>



<pre class="wp-block-code"><code># systemctl start nftables</code></pre>



<h2>补充：</h2>



<div class="wp-container-2 is-content-justification-center wp-block-buttons">
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://eternalcenter-sep-2022.github.io/common-rules-for-nftables-firewall-policy-file/" style="border-radius:0px">nftables 防火墙策略文件的常用规则</a></div>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] nftables 防火墙的使用 （临时版）</title>
		<link>https://eternalcenter-sep-2022.github.io/nfttables-temporary/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 03 Aug 2021 06:19:08 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=17229</guid>

					<description><![CDATA[注意： 只有 CentOS 8 &#38; RHEL 8 才可以使用 nftables 防火墙 正文： 步骤一：从 firewalld 防火墙切换至 nftables 防火墙 1.1 安装 nftables 防火墙 1.2 清空 iptables 防火墙的策略表 1.2.1 清空 ipv4 iptables 防火墙的策略表 1.2.2 清空 IPv6 iptables 防火墙的策略表 1.3 停止使用 firewalld 防火墙 1.3.1 取消 firewalld 防火墙开机自启 1.3.2 停止 firewalld 防火墙 1.4 启用 nftables 防火墙 1.4.1 开机自启 nftables 防火墙 1.4.2 &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/nfttables-temporary/" class="more-link">Continue reading<span class="screen-reader-text"> "[步骤] nftables 防火墙的使用 （临时版）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h1>注意：</h1>



<p>只有 CentOS 8 &amp; RHEL 8 才可以使用 nftables 防火墙</p>



<h1>正文：</h1>



<h3>步骤一：从 firewalld 防火墙切换至 nftables 防火墙</h3>



<h4>1.1 安装 nftables 防火墙</h4>



<pre class="wp-block-code"><code># dnf install nftables</code></pre>



<h4>1.2 清空 iptables 防火墙的策略表</h4>



<h5>1.2.1 清空 ipv4 iptables 防火墙的策略表</h5>



<pre class="wp-block-code"><code># iptables -F</code></pre>



<h5>1.2.2 清空 IPv6 iptables 防火墙的策略表</h5>



<pre class="wp-block-code"><code># ip6tables -F</code></pre>



<h4>1.3 停止使用 firewalld 防火墙</h4>



<h5>1.3.1 取消 firewalld 防火墙开机自启</h5>



<pre class="wp-block-code"><code># systemctl disable firewalld.service</code></pre>



<h5>1.3.2 停止 firewalld 防火墙</h5>



<pre class="wp-block-code"><code># systemctl stop firewalld.service</code></pre>



<h4>1.4 启用 nftables 防火墙</h4>



<h5>1.4.1 开机自启 nftables 防火墙</h5>



<pre class="wp-block-code"><code># systemctl enable nftables</code></pre>



<h5>1.4.2 启动 nftables 防火墙</h5>



<pre class="wp-block-code"><code># systemctl start nftables</code></pre>



<h3>步骤二：创建 nftables 防火墙的策略表</h3>



<h4>2.1 创建 nftables 防火墙的策略表</h4>



<pre class="wp-block-code"><code># nft create table inet &lt;table&gt;</code></pre>



<h4>2.2 创建 nftables 防火墙的策略表的 input 链</h4>



<pre class="wp-block-code"><code># nft create chain inet &lt;table&gt; input { type filter hook input priority 0 \; }</code></pre>



<h4>2.3 创建 nftables 防火墙的策略表的 forward 链</h4>



<pre class="wp-block-code"><code># nft create chain inet &lt;table&gt; forward { type filter hook forward priority 0 \; }</code></pre>



<h4>2.4 创建 nftables 防火墙的策略表的 output 链</h4>



<pre class="wp-block-code"><code># nft create chain inet &lt;table&gt; output { type filter hook output priority 0 \; }</code></pre>



<h3>步骤三：添加临时基本的本地巡回路由策略</h3>



<pre class="wp-block-code"><code># nft add rule inet filter input iif lo accept
# nft add rule inet filter input ip saddr 127.0.0.0/8 counter drop
# nft add rule inet filter input ip6 saddr ::1 counter drop</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 nftables （设置防火墙） （转载）</title>
		<link>https://eternalcenter-sep-2022.github.io/nft/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Thu, 12 Nov 2020 12:54:41 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=11668</guid>

					<description><![CDATA[注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来 CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>nftables脚本例子：过滤和NAT

#! /bin/bash
 
#清空当前规则集：
nft flush ruleset
#查询当前规则集：
nft list ruleset
#添加一个表：
nft add table inet filter
 
#添加input、forward和output三个基本链。input和forward的默认策略是drop。output的默认策略是accept。
nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }
nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }
nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
 
#添加两个与TCP和UDP关联的常规链：
nft add chain inet filter TCP
nft add chain inet filter UDP
#related和established的流量会accept：
nft add rule inet filter input ct state related,established accept
#loopback接口的流量会accept：
nft add rule inet filter input iif lo accept
#无效的流量会drop：
nft add rule inet filter input ct state invalid drop
#新的echo请求（ping）会accept：
nft add rule inet filter input ip protocol icmp icmp type echo-request ct state new accept
#新的UDP流量跳转到UDP链：
nft add rule inet filter input ip protocol udp ct state new jump UDP
#新的TCP流量跳转到TCP链：
nft add rule inet filter input ip protocol tcp tcp flags \&amp; \(fin\|syn\|rst\|ack\) == syn ct state new jump TCP
 
#未由其他规则处理的所有通信会reject：
nft add rule inet filter input ip protocol udp reject
nft add rule inet filter input ip protocol tcp reject with tcp reset
nft add rule inet filter input counter reject with icmp type prot-unreachable
 
#web服务器的连接端口80:
nft add rule inet filter TCP tcp dport 80 accept
#打开web服务器HTTPS连接端口443：
nft add rule inet filter TCP tcp dport 443 accept
#允许SSH连接端口22:
nft add rule inet filter TCP tcp dport 22 accept
 
 
 
#NAT
#删除规则表 dnat1
#nft delete table ip dnat1 
 
#增加规则表 dnat1
nft add table ip dnat1 
 
#在表dnat1中增加一条链 prerouting &#91;SNAT]
nft add chain dnat1 prerouting { type nat hook prerouting priority 0 \;}
 
#在表dnat1中增加一条链 postrouting &#91;DNAT]
nft add chain dnat1 postrouting { type nat hook postrouting priority 100 \; }
 
#
nft add rule dnat1 prerouting ip daddr 192.168.1.1 tcp dport 80 counter dnat 172.16.1.2:80
nft add fule dnat1 postrouting ip daddr 172.16.1.2 tcp dport 80 counter snat to 172.16.1.1 
#
nft add rule dnat1 prerouting ip saddr 172.16.1.2 tcp sport 80 counter dnat 192.168.1.2
nft add rule dnat1 postrouting ip saddr 172.16.1.2 tcp sport 80 counter snat to 192.168.1.1

————————————————
版权声明：本文为CSDN博主「linranguo」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/wangcg123/article/details/108739367</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img width="1010" height="190" src="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/11/版权申明证明-nftables-.png" alt="" class="wp-image-11708" srcset="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/11/版权申明证明-nftables-.png 1010w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/11/版权申明证明-nftables--300x56.png 300w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/11/版权申明证明-nftables--768x144.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /></figure></div>


<p>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</p>



<pre class="wp-block-code"><code>站主补充：

补充目录：
站主补充一：开启 nft 防火墙的方法
1.1 清空 iptables 防火墙
1.1.1 清空 iptables 防火墙
1.1.2 清空 ip6tables 防火墙
1.2 关闭 firewalld 防火墙
1.2.1 取消 firewalld 防火墙的开机自启
1.2.2 关闭 firewalld 防火墙
1.3 启动 nfttables 防火墙
1.3.1 将 nfttables 防火墙设置为开机自启
1.3.2 启动 nftables 防火墙
1.3.3 情况 nfttables 防火墙

站主补充二：添加 nft 防火墙规则
2.1 创建 nft 防火墙的表、链和测试规则
2.2 在 nft 防火墙开头添加一条规则
2.3 在 nft 防火墙结尾追加一条规则
2.4 在 nft 防火墙中间增加规则
2.4.1 使用 index 索引作为位置参考添加规则
2.4.1.1 在 nft 防火前中间插入一条规则
2.4.1.2 在 nft 防火墙中间追加一条规则
2.4.1.3 查看刚刚创建的 nft 表、链和规则
2.4.2 使用 handle 句柄作为位置参考添加规则
2.4.2.1 查看 handle 句柄
2.4.2.2 在 nft 防火前中间插入一条规则
2.4.2.3 在 nft 防火墙中间追加一条规则
2.4.2.4 查看刚刚创建的 nft 表、链和规则
2.4.2.5 在添加规则的同时显示 handle 值

站主补充三：在 nft 防火墙中间删除规则
3.1 查看 handle 句柄
3.2 删除规则
3.3 查看删除后的表和链

站主补充四：列出 nft 规则
4.1 列出某张表里的所有规则
4.2 列出某张表里某个链里的所有规则

站主补充五：一次性给 nft 防火墙设置多 IP 地址或多端口
5.1 直接一次性给 nft 防火墙设置多个 IP 地址或多端口
5.1.1 直接一次性给 nft 防火墙设置多个 IP 地址
5.1.2 直接一次性给 nft 防火墙设置多个端口
5.1.3 直接一次性给某个 IP 地址添加某个端口为例
5.1.4 查看添加后的表和链
5.2 将多个 IP 地址或多端口放到一个组里再设置
5.2.1 nft 创建组
5.2.1.1 nft 创建组的格式
5.2.1.1.1 nft 创建不支持 IP 地址区间组的格式
5.2.1.1.2 nft 创建支持 IP 地址区间组的格式
5.2.1.2 nft 创建组的数据类型
5.2.2 将多个 IP 地址或多端口放到一个组里再设置（不支持 IP 区间）
5.2.2.1 创建一个组
5.2.2.1.1 创建一个组
5.2.2.1.2 查看刚刚创建的组
5.2.2.2 设置组的默认属性
5.2.2.3 给组里添加元素
5.2.2.4 查看刚刚创建的组
5.2.3 将多个 IP 地址或多端口放到一个组里再设置（支持 IP 区间）
5.2.3.1 创建一个组
5.2.3.2 给组里添加元素
5.2.3.3 查看刚刚创建的组
5.2.4 将多个 IP 地址或多端口放到一个组里再设置（同时使用多个数据类型）
5.2.4.1 创建一个组
5.2.4.2 查看刚刚创建的组
5.2.4.3 给组里添加元素
5.2.4.4 将同时使用多个数据类型的组引用到链中

站主补充六：nft 字典
6.1 nft 无名字典
6.1.1 创建表
6.1.2 创建要使用链
6.1.3 创建和 TCP 协议相关的链
6.1.4 创建和 UDP 协议相关的链
6.1.5 给要使用的链设置字典
6.1.6 查看字典
6.2 nft 有名字典
6.2.1 创建表
6.2.2 创建要使用链
6.2.3 创建字典
6.2.4 给字典添加元素
6.2.5 将字典引用到链中

站主补充七：备份和恢复 nft 规则
7.1 备份 nft 规则
7.2 恢复 nft 规则

站主补充八：nftiptables 的使用案例
8.1 前期准备工作
8.1.1 查看已有的 nftiptables 策略
8.1.2 清除所有 nftiptables 策略
8.2 nftiptables 的使用案例
8.2.1 创建 nftiptables 表的案例
8.2.2 创建 nftiptables 链的案例
8.2.2.1 案例一：创建 input 链
8.2.2.2 案例二：创建 output 链
8.2.2.3 案例三：创建 forward 链
8.2.2.4 案例四：创建 TCP 链
8.2.2.5 案例五：创建 UPD 链
8.2.3 nftiptables 规则的案例
8.2.3.1 案例一：允许正在连接的连接连入
8.2.3.2 案例二：允许本地可以连入
8.2.3.3 案例三：丢掉无效的流量
8.2.3.4 案例四：允许被 ping
8.2.3.5 案例五：允许新的 UDP 流量跳到 UDP 链
8.2.3.6 案例六：允许新的 TCP 流量跳到 TCP 链
8.2.3.7 案例七：没有其它规则处理的 UDP 流量都会被拒绝
8.2.3.8 案例八：没有其它规则处理的 TCP 流量都会被拒绝
8.2.3.9 案例九：没有其它规则处理的 ICMP 流量都会被拒绝
8.2.3.10 案例十：对所有访问者开放某一个端口
8.2.3.11 案例十一：拒绝某一个 IP 地址访问某一个端口
8.2.3.12 案例十二：某一个端口除了某一个 IP 地址以外的所有禁止访问
8.2.3.13 案例十三：将朝向某一个 IP 地址的某一个端口指向另一个 IP 地址的某一个端口
8.2.3.14 案例十四：将朝向某一个 IP 地址的流量指向另一个 IP 地址
8.2.4 nftiptables 备份和恢复的案例
8.2.4.1 备份 nft 规则
8.2.4.2 恢复 nft 规则

具体的补充：
站主补充一：开启 nft 防火墙的方法
1.1 清空 iptables 防火墙
1.1.1 清空 iptables 防火墙
# iptables -F

1.1.2 清空 ip6tables 防火墙
# ip6tables -F

1.2 关闭 firewalld 防火墙
1.2.1 取消 firewalld 防火墙的开机自启
# systemctl disable firewalld

1.2.2 关闭 firewalld 防火墙
# systemctl stop firewalld

1.3 启动 nfttables 防火墙
1.3.1 将 nfttables 防火墙设置为开机自启
# systemctl enable nftables

1.3.2 启动 nftables 防火墙
# systemctl start nftables

1.3.3 情况 nfttables 防火墙
# nft flush ruleset

站主补充二：添加 nft 防火墙规则
2.1 创建 nft 防火墙的表、链和测试规则
# nft flush ruleset
# nft add table inet filter
# nft add chain inet filter input { type filter hook forward priority 0 \; policy accept \; }
# nft add rule inet filter input tcp dport 1000 accept
# nft add rule inet filter input tcp dport 1001 accept
# nft add rule inet filter input tcp dport 1002 accept

（
补充：
（1）添加 filter 表
（2）添加默认允许所有连接都进入的 input 链
（3）添加允许 TCP 1000 端口、TCP 1001 端口 和 TCP 1002 的规则
）

2.2 在 nft 防火墙开头添加一条规则
# nft insert rule inet filter input tcp dport 999 accept

（补充：这里以在 filter 表 input 链的开头添加允许 TCP 999 端口进入为例）

2.3 在 nft 防火墙结尾追加一条规则
# nft add rule inet filter input tcp dport 1003 accept

（补充：这里以在 filter 表 input 链的结尾添加允许 TCP 1003 端口进入为例）

2.4 在 nft 防火墙中间增加规则
2.4.1 使用 index 索引作为位置参考添加规则
2.4.1.1 在 nft 防火前中间插入一条规则
# nft insert rule inet filter input index 0 tcp dport 997 accept

（补充：这里以在 filter 表 input 链的第一个位置插入允许 TCP 1003 端口进入为例）

2.4.1.2 在 nft 防火墙中间追加一条规则
# nft add rule inet filter input index 0 tcp dport 998 accept

（补充：这里以在 filter 表 input 链的第一个位置追加允许 TCP 998 端口进入为例）

2.4.1.3 查看刚刚创建的 nft 表、链和规则
# nft list ruleset
table inet filter {
	chain input {
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept
		tcp dport 999 accept
		tcp dport 998 accept
		tcp dport 1000 accept
		tcp dport 1001 accept
		tcp dport 1002 accept
		tcp dport 1003 accept
	}
}

2.4.2 使用 handle 句柄作为位置参考添加规则
2.4.2.1 查看 handle 句柄
# nft --handle list ruleset
table inet filter { # handle 5
	chain input { # handle 1
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept # handle 8
		tcp dport 999 accept # handle 6
		tcp dport 998 accept # handle 7
		tcp dport 1000 accept # handle 2
		tcp dport 1001 accept # handle 3
		tcp dport 1002 accept # handle 4
		tcp dport 1003 accept # handle 5
	}
}

（补充：这里是接着前面的步骤在继续）

2.4.2.2 在 nft 防火前中间插入一条规则
# nft insert rule inet filter input handle 7 tcp dport 101 accept

（补充：这里以在 filter 表 input 链的 handle 7 位置插入允许 TCP 101 端口进入为例）

2.4.2.3 在 nft 防火墙中间追加一条规则
# nft add rule inet filter input handle 3 tcp dport 101 accept

（补充：这里以在 filter 表 input 链的 handle 3 位置追加允许 TCP 101 端口进入为例）

2.4.2.4 查看刚刚创建的 nft 表、链和规则
# nft --handle list ruleset
table inet filter { # handle 5
	chain input { # handle 1
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept # handle 8
		tcp dport 999 accept # handle 6
		tcp dport 101 accept # handle 9
		tcp dport 998 accept # handle 7
		tcp dport 1000 accept # handle 2
		tcp dport 1001 accept # handle 3
		tcp dport 101 accept # handle 10
		tcp dport 1002 accept # handle 4
		tcp dport 1003 accept # handle 5
	}
}

（补充：这里是接着前面的步骤在继续）

2.4.2.5 在添加规则的同时显示 handle 值
# nft --echo --handle add rule inet filter input tcp dport 10000 accept
add rule inet filter input tcp dport 10000 accept # handle 11

（补充：这里以在 filter 表 input 链的结尾添加允许 TCP 10000 端口进入并显示 handle 编号为例）

站主补充三：在 nft 防火墙中间删除规则
3.1 查看 handle 句柄
# nft --handle list ruleset
table inet filter { # handle 5
	chain input { # handle 1
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept # handle 8
		tcp dport 999 accept # handle 6
		tcp dport 101 accept # handle 9
		tcp dport 998 accept # handle 7
		tcp dport 1000 accept # handle 2
		tcp dport 1001 accept # handle 3
		tcp dport 101 accept # handle 10
		tcp dport 1002 accept # handle 4
		tcp dport 1003 accept # handle 5
		tcp dport 10000 accept # handle 11
	}
}

（补充：这里是接着前面的步骤在继续）

3.2 删除规则
# nft delete rule inet filter input handle 2

（补充：这里以在 filter 表 input 链中删除编号为 handle 2 的规则为例）

3.3 查看删除后的表和链
# nft --handle list ruleset
table inet filter { # handle 5
	chain input { # handle 1
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept # handle 8
		tcp dport 999 accept # handle 6
		tcp dport 101 accept # handle 9
		tcp dport 998 accept # handle 7
		tcp dport 1001 accept # handle 3
		tcp dport 101 accept # handle 10
		tcp dport 1002 accept # handle 4
		tcp dport 1003 accept # handle 5
		tcp dport 10000 accept # handle 11
	}
}

（补充：这里是接着前面的步骤在继续）

站主补充四：列出 nft 规则
4.1 列出某张表里的所有规则
# nft list table inet filter

4.2 列出某张表里某个链里的所有规则
# nft list chain inet filter input
table inet filter {
	chain input {
		type filter hook forward priority filter; policy accept;
		tcp dport 997 accept
		tcp dport 999 accept
		tcp dport 101 accept
		tcp dport 998 accept
		tcp dport 1001 accept
		tcp dport 101 accept
		tcp dport 1002 accept
		tcp dport 1003 accept
		tcp dport 10000 accept
	}
}

（补充：这里是接着前面的步骤在继续）

站主补充五：一次性给 nft 防火墙设置多 IP 地址或多端口
5.1 直接一次性给 nft 防火墙设置多个 IP 地址或多端口
5.1.1 直接一次性给 nft 防火墙设置多个 IP 地址
# nft add rule inet filter input ip saddr { 172.16.0.1, 172.16.0.2, 172.16.0.3 } accept

（补充：这里以在 filter 表 input 链的开头添加允许 172.16.0.1、172.16.0.2、172.16.0.3 IP 地址进入为例）

5.1.2 直接一次性给 nft 防火墙设置多个端口
# nft add rule inet filter input tcp dport { http, nfs, ssh } accept

（补充：这里以在 filter 表 input 链的开头添加允许 http、nfs、ssh 端口进入为例）

5.1.3 直接一次性给某个 IP 地址添加某个端口为例
# nft add rule inet filter input ip saddr . meta l4proto . tcp dport { 172.16.1.200 . tcp . 443 } accept

（补充：这里以在 filter 表 input 链的开头添加允许 172.16.1.200 IP 地址 TCP 443 端口进入为例）

5.1.4 查看添加后的表和链
# nft list ruleset

5.2 将多个 IP 地址或多端口放到一个组里再设置
5.2.1 nft 创建组
5.2.1.1 nft 创建组的格式
5.2.1.1.1 nft 创建不支持 IP 地址区间组的格式
# nft add set inet &lt;表名&gt; &lt;组名&gt; { type &lt;数据类型&gt; \;}

5.2.1.1.2 nft 创建支持 IP 地址区间组的格式
# nft add set inet &lt;表名&gt; &lt;组名&gt; { type &lt;数据类型&gt; \; flags interval \; }

5.2.1.2 nft 创建组的数据类型
ipv4_addr ipv4 地址
ipv4_addr ipv6 地址
ether_addr：网卡的 MAC 地址
inet_proto：网络协议
inet_service：网络服务
mark：标记

5.2.2 将多个 IP 地址或多端口放到一个组里再设置（不支持 IP 区间）
5.2.2.1 创建一个组
5.2.2.1.1 创建一个组
# nft add set inet filter one { type ipv4_addr \; }

（补充：这里以在 filter 表中创建使用 ipv4_addr 数据类型名为 one 的组为例）

5.2.2.1.2 查看刚刚创建的组
# nft list sets
table inet filter {
	set one {
		type ipv4_addr
	}
}

5.2.2.2 设置组的默认属性
# nft insert rule inet filter input ip saddr @one drop

（补充：这里以将 one 组设置为黑名单的性质为例）

# nft list chain inet filter input
table inet filter {
	chain input {
		type filter hook forward priority filter; policy accept;
		ip saddr @one drop
		tcp dport 997 accept
		tcp dport 999 accept
		tcp dport 101 accept
		tcp dport 998 accept
		tcp dport 1001 accept
		tcp dport 101 accept
		tcp dport 1002 accept
		tcp dport 1003 accept
		tcp dport 10000 accept
		ip saddr { 172.16.0.1, 172.16.0.2, 172.16.0.3 } accept
		tcp dport { 22, 80, 2049 } accept
	}
}

5.2.2.3 给组里添加元素
# nft add element inet filter one { 172.16.0.10, 172.16.0.11, 172.16.0.12}

（补充：这里以在 filter 表 one 组里添加 172.16.0.10, 172.16.0.11, 172.16.0.12 IP 地址元素为例）

5.2.2.4 查看刚刚创建的组
# nft list set inet filter one
table inet filter {
	set one {
		type ipv4_addr
		elements = { 172.16.0.10, 172.16.0.11,
			     172.16.0.12 }
	}
}

5.2.3 将多个 IP 地址或多端口放到一个组里再设置（支持 IP 区间）
5.2.3.1 创建一个组
# nft add set inet filter two { type ipv4_addr \; flags interval \; }

（补充：这里以在 filter 表中创建使用 ipv4_addr 数据类型名为 two 的组同时使用 flags interval 标签为例）

5.2.3.2 给组里添加元素
# nft add element inet filter two { 172.16.1.0/24 }

或者：

# nft add element inet filter two { 172.16.1.0-172.16.1.255 }

（补充：这里以在 filter 表 one 组里添加 172.16.1.0/24 IP 地址段元素为例）

5.2.3.3 查看刚刚创建的组
# nft list set inet filter two
table inet filter {
	set two {
		type ipv4_addr
		flags interval
		elements = { 172.16.1.0/24 }
	}
}

5.2.4 将多个 IP 地址或多端口放到一个组里再设置（同时使用多个数据类型）
5.2.4.1 创建一个组
# nft add set inet filter three { type ipv4_addr . inet_proto . inet_service \; }

（补充：这里以在 filter 表中创建使用 ipv4_addr、inet_proto、inet_service 数据类型名为 three 的组为例）

5.2.4.2 查看刚刚创建的组
# nft list set inet filter three
table inet filter {
	set three {
		type ipv4_addr . inet_proto . inet_service
	}
}

5.2.4.3 给组里添加元素
# nft add element inet filter three { 172.16.0.200 . tcp . ssh }
# nft add element inet filter three { 172.16.0.201 . tcp . ssh }

（补充：这里以在 filter 表 three 组里添加 172.16.1.0.200、172.16.0.201 IP 地址 tcp ssh 端口元素为例）

5.2.4.4 将同时使用多个数据类型的组引用到链中
# nft add rule inet filter input ip saddr . meta l4proto . tcp dport @three

（补充：这里以在 filter 表 input 链中引入 three 组为例）

站主补充六：nft 字典
6.1 nft 无名字典
6.1.1 创建表
# nft add table inet filter

（补充：这里以创建名为 filter 的表为例）

6.1.2 创建要使用链
# nft add chain inet filter input

（补充：这里以创建名为 input 的链为例）

6.1.3 创建和 TCP 协议相关的链
# nft add chain inet filter tcp_chain

（补充：这里以创建名为 tcp_chain 的链为例）

6.1.4 创建和 UDP 协议相关的链
# nft add chain inet filter udp_chain

（补充：这里以创建名为 udp_chain 的链为例）

6.1.5 给要使用的链设置字典
# nft add rule inet filter input meta l4proto vmap { tcp : jump tcp_chain, udp : jump udp_chain }

（补充：这里以在 filter 表 input 链里设置将 tcp_chain 链作为 TCP 协议将 udp_chain 链作为 UDP 协议的字典为例）

6.1.6 查看字典
# nft list chain inet filter input
table inet filter {
	chain input {
		meta l4proto vmap { tcp : jump tcp_chain, udp : jump udp_chain }
	}
}

6.2 nft 有名字典
6.2.1 创建表
# nft add table inet filter

（补充：这里以创建名为 filter 的表为例）

6.2.2 创建要使用链
# nft add chain inet filter input

（补充：这里以创建名为 input 的链为例）

6.2.3 创建字典
# nft add map inet filter new { type inet_proto : verdict \; }

（补充：这里以在 filter 表里创建名为 new 字典为例）

6.2.4 给字典添加元素
# nft add element inet filter new { 172.16.3.10 : drop, 172.16.3.15 :accept }

（补充：这里以在 new 字典中添加拒绝 172.16.3.10 IP 地址和接收 172.16.3.15 IP 地址的规则为例）

6.2.5 将字典引用到链中
# nft add rule inet filter input ip saddr vmap @new

（补充：这里以在 filter 表 input 链中引用 new 字典为例）

站主补充七：备份和恢复 nft 规则
7.1 备份 nft 规则
# nft list ruleset &gt; /root/nftables

（补充：这里以将 ruleset 规则备份到 /root/nfttables 文件为例）

7.2 恢复 nft 规则
# nft -f /root/nftables

（补充：这里以恢复 /root/nftables 文件里的 nft 规则为例）

站主补充八：nftiptables 的使用案例
8.1 前期准备工作
8.1.1 查看已有的 nftiptables 策略
# nft list ruleset

8.1.2 清除所有 nftiptables 策略
# nft flush ruleset

8.2 nftiptables 的使用案例
8.2.1 创建 nftiptables 表的案例
# nft add table inet filter

（补充：这里以创建 filter 表为例）

8.2.2 创建 nftiptables 链的案例
8.2.2.1 案例一：创建 input 链
# nft add chain inet filter input { type filter hook input priority 0 \; policy drop \; }

（补充：这里以在 filter 表中创建默认拒绝所有数据的 input 链为例）

8.2.2.2 案例二：创建 output 链
# nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }

（补充：这里以在 filter 表中创建默认允许所有数据的 output 链为例）

8.2.2.3 案例三：创建 forward 链
# nft add chain inet filter forward { type filter hook forward priority 0 \; policy drop \; }

（补充：这里以在 filter 表中创建默认允许所有数据的 forward 链为例）

8.2.2.4 案例四：创建 TCP 链
# nft add chain inet filter TCP

（补充：这里以在 filter 表中创建 TCP 链为例）

8.2.2.5 案例五：创建 UPD 链
# nft add chain inet filter UDP

（补充：这里以在 filter 表中创建 UDP 链为例）

8.2.3 nftiptables 规则的案例
8.2.3.1 案例一：允许正在连接的连接连入
# nft add rule inet filter input ct state related,established accept

8.2.3.2 案例二：允许本地可以连入
# nft add rule inet filter input iif lo accept

8.2.3.3 案例三：丢掉无效的流量
# nft add rule inet filter input ct state invalid drop

8.2.3.4 案例四：允许被 ping
# nft add rule inet filter input ip protocol icmp icmp type echo-request ct state new accept

8.2.3.5 案例五：允许新的 UDP 流量跳到 UDP 链
# nft add rule inet filter input ip protocol udp ct state new jump UDP

8.2.3.6 案例六：允许新的 TCP 流量跳到 TCP 链
# nft add rule inet filter input ip protocol tcp tcp flags \&amp; \(fin\|syn\|rst\|ack\) == syn ct state new jump TCP

8.2.3.7 案例七：没有其它规则处理的 UDP 流量都会被拒绝
# nft add rule inet filter input ip protocol udp reject

8.2.3.8 案例八：没有其它规则处理的 TCP 流量都会被拒绝
# nft add rule inet filter input ip protocol tcp reject with tcp reset

8.2.3.9 案例九：没有其它规则处理的 ICMP 流量都会被拒绝
# nft add rule inet filter input counter reject with icmp type prot-unreachable

8.2.3.10 案例十：对所有访问者开放某一个端口
# nft add rule inet filter TCP tcp dport 80 accept

（补充：这里以对所有访问者开放 80 端口为例）

8.2.3.11 案例十一：拒绝某一个 IP 地址访问某一个端口
# nft add rule inet filter input ip saddr 172.16.0.6 tcp dport 22 drop

（补充：这里以拒绝 172.16.0.6 的 TCP 22 端口为例）

8.2.3.12 案例十二：某一个端口除了某一个 IP 地址以外的所有禁止访问
# nft add rule inet filter input ip saddr 172.16.0.1 tcp dport 22 accept
# nft add rule inet filter input tcp dport 22 drop

（补充：这里以拒绝除 172.16.0.1 以外的所有 IP 地址访问 TCP 22 端口为例）

8.2.3.13 案例十三：将朝向某一个 IP 地址的某一个端口指向另一个 IP 地址的某一个端口
# nft add rule filter input ip daddr 172.16.1.1 tcp dport 80 counter dnat 172.16.1.2:80

（补充：这里以将访问 172.16.1.1 的 80 端口指向 172.16.1.2 的 80 端口为例）

8.2.3.14 案例十四：将朝向某一个 IP 地址的流量指向另一个 IP 地址
# nft add rule filter input ip saddr 172.16.1.2 tcp sport 80 counter dnat 192.168.1.2

（补充：这里以将访问 172.16.1.2 的所有流量指向 172.16.1.2 为例）

8.2.4 nftiptables 备份和恢复的案例
8.2.4.1 备份 nft 规则
# nft list ruleset &gt; /root/nftables

（补充：这里以将 ruleset 规则备份到 /root/nfttables 文件为例）

8.2.4.2 恢复 nft 规则
# nft -f /root/nftables
（补充：这里以恢复 /root/nftables 文件里的 nft 规则为例）</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 iptables （设置防火墙日志）</title>
		<link>https://eternalcenter-sep-2022.github.io/iptables-log/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Tue, 28 Jul 2020 07:01:45 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Log (系统日志)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<category><![CDATA[System Security Log (系统安全日志)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=10349</guid>

					<description><![CDATA[内容一：iptables 防火墙开启日志的案例 1.1 案例一：让日志记录未匹配任何规则的 TCP 数据包，之后再将其丢弃的方法 在所有规则后面添加以下两条规则： （补充：这里以记录进来的数据并将 IPTABLES TCP IN: 作为前缀保存日志为例） 1.2 案例二：让日志记录未匹配任何规则的 UDP 数据包，之后再将其丢弃的方法 在所有规则后面添加以下两条规则： （补充：这里以记录进来的数据并将 IPTABLES TCP OUT: 作为前缀保存日志为例） 1.3 案例三：让日志记录未匹配任何规则的 ICMP 数据包，之后再将其丢弃的方法 在所有规则后面添加以下两条规则： （补充：这里以记录进来的数据并将 IPTABLES TCP ICMP: 作为前缀保存日志为例） 内容二：显示 iptables 防火墙日志的方法]]></description>
										<content:encoded><![CDATA[
<h3 id="内容一-iptables-防火墙开启日志的案例1-1-案例一-让日志记录未匹配任何规则的-tcp-数据包-之后再将其丢弃的方法">内容一：iptables 防火墙开启日志的案例</h3>



<h4 id="内容一-iptables-防火墙开启日志的案例1-1-案例一-让日志记录未匹配任何规则的-tcp-数据包-之后再将其丢弃的方法">1.1 案例一：让日志记录未匹配任何规则的 TCP 数据包，之后再将其丢弃的方法</h4>



<p>在所有规则后面添加以下两条规则：</p>



<pre class="wp-block-code"><code>......
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP IN: " 
# iptables -A INPUT -i -p tcp -j DROP</code></pre>



<p>（补充：这里以记录进来的数据并将 IPTABLES TCP IN: 作为前缀保存日志为例）</p>



<h4 id="1-2-案例二-让日志记录未匹配任何规则的-udp-数据包-之后再将其丢弃的方法">1.2 案例二：让日志记录未匹配任何规则的 UDP 数据包，之后再将其丢弃的方法</h4>



<p>在所有规则后面添加以下两条规则：</p>



<pre class="wp-block-code"><code>...... 
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP OUT: " 
# iptables -A INPUT -i -p tcp -j DROP</code></pre>



<p>（补充：这里以记录进来的数据并将 IPTABLES TCP OUT: 作为前缀保存日志为例）</p>



<h4 id="1-3-案例三-让日志记录未匹配任何规则的-icmp-数据包-之后再将其丢弃的方法">1.3 案例三：让日志记录未匹配任何规则的 ICMP 数据包，之后再将其丢弃的方法</h4>



<p>在所有规则后面添加以下两条规则：</p>



<pre class="wp-block-code"><code>...... 
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP ICMP: " 
# iptables -A INPUT -i -p tcp -j DROP</code></pre>



<p>（补充：这里以记录进来的数据并将 IPTABLES TCP ICMP: 作为前缀保存日志为例）</p>



<h3 id="内容二-查看-iptables-防火墙日志的方法">内容二：显示 iptables 防火墙日志的方法</h3>



<pre class="wp-block-code"><code># cat /log/var/message</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[工具] Shell 只对某个 IP 地址开放 TCP 22 端口 （iptables 版）</title>
		<link>https://eternalcenter-sep-2022.github.io/shell-iptables-22-port-add/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 15 Jul 2020 02:29:00 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[Language (语言)]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[Shell Deployment (部署)]]></category>
		<category><![CDATA[Shell Network (网络)]]></category>
		<category><![CDATA[Shell Tools (工具)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=9996</guid>

					<description><![CDATA[介绍 基本信息 名称：只对某个 IP 地址开放 TCP 22 端口作用：只对某个 IP 地址开放 TCP 22 端口 使用方法 1. 给此脚本添加执行权限2. 执行此脚本 脚本分割线里的变量 ipaddress=192.168.1.1 #要开放 TCP 22 端口的 IP 地址 脚本]]></description>
										<content:encoded><![CDATA[
<h2>介绍</h2>



<h3>基本信息</h3>



<p>名称：只对某个 IP 地址开放 TCP 22 端口<br>作用：只对某个 IP 地址开放 TCP 22 端口</p>



<h3>使用方法</h3>



<p>1. 给此脚本添加执行权限<br>2. 执行此脚本</p>



<h3>脚本分割线里的变量</h3>



<p>ipaddress=192.168.1.1 #要开放 TCP 22 端口的 IP 地址</p>



<h2>脚本</h2>



<pre class="wp-block-code"><code>#!/bin/bash

####################### Separator ########################
ipaddress=192.168.1.1
####################### Separator ########################

systemctl stop firewalld
systemctl disable firewalld

yum -y install iptables-services
zypper -n install iptables

systemctl enable iptables
systemctl start iptables

sysctl -w net.ipv4.ip_forward=1
iptables -t filter -F
iptables -t nat -F

iptables -P OUTPUT ACCEPT
#iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

iptables -t filter -A INPUT -j ACCEPT -s $ipaddress -p tcp --destination-port 22
iptables -t filter -A INPUT -j DROP -p tcp --destination-port 22

service iptables save
systemctl restart iptables</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] CentOS Linux &#038; RHEL 网页图形化管理工具 cockpit</title>
		<link>https://eternalcenter-sep-2022.github.io/cockpit/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 06 Jun 2020 09:07:39 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System General Log (系统普通日志)]]></category>
		<category><![CDATA[System Log (系统日志)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Operation (系统操作)]]></category>
		<category><![CDATA[System Operation & System Setting & System Software (系统操作 & 系统设置 & 系统软件)]]></category>
		<category><![CDATA[System Performance (系统性能)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Process (系统进程)]]></category>
		<category><![CDATA[System Process & System Performance (系统进程 & 系统性能)]]></category>
		<category><![CDATA[System Process Security (系统进程安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<category><![CDATA[System Security Log (系统安全日志)]]></category>
		<category><![CDATA[System Setting (系统设置)]]></category>
		<category><![CDATA[System Software (系统软件)]]></category>
		<category><![CDATA[System Statistic Log (系统统计日志)]]></category>
		<category><![CDATA[System User (系统用户)]]></category>
		<category><![CDATA[System User & System Privilege (系统用户 & 系统权限)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=9718</guid>

					<description><![CDATA[步骤一：系统环境要求 服务器系统配置好可用的软件源 步骤二：安装 cockpit （补充：cockpit 是管理单台主机的程序，cockpit-dashaboard 是管理多台主机的程序） 步骤三：启动 cockpit 步骤四：登录 cockpit 使用浏览器登录：https://&/#60;server IP address&#62;:9090]]></description>
										<content:encoded><![CDATA[
<h3>步骤一：系统环境要求</h3>



<p>服务器系统配置好可用的软件源</p>



<h3>步骤二：安装 cockpit</h3>



<pre class="wp-block-code"><code># yum -y install cockpit cockpit-dashaboard</code></pre>



<p>（补充：cockpit 是管理单台主机的程序，cockpit-dashaboard 是管理多台主机的程序）</p>



<h3>步骤三：启动 cockpit</h3>



<pre class="wp-block-code"><code># systemctl enable --now cockpit.socket</code></pre>



<h3>步骤四：登录 cockpit</h3>



<p>使用浏览器登录：https://&lt;server/ IP address&gt;:9090</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 端口扫描工具 nmap 的使用 （转载）</title>
		<link>https://eternalcenter-sep-2022.github.io/nmap/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 08 Jan 2020 03:01:18 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=8014</guid>

					<description><![CDATA[注意： 在使用 nmap 命令之前要先安装 nmap 软件包 注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来]]></description>
										<content:encoded><![CDATA[
<h2>注意：</h2>



<p>在使用 nmap 命令之前要先安装 nmap 软件包 </p>



<pre class="wp-block-code"><code>Nmap

简介

Nmap (“Network Mapper(网络映射器)”) 是一款开放源代码的 网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络，当然用它扫描单个 主机也没有问题。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机，那些 主机提供什么服务(应用程序名和版本)，那些服务运行在什么操作系统(包括版本信息)， 它们使用什么类型的报文过滤器/防火墙，以及一堆其它功能。虽然Nmap通常用于安全审核， 许多系统管理员和网络管理员也用它来做一些日常的工作，比如查看整个网络的信息， 管理服务升级计划，以及监视主机和服务的运行。

用法

sT 	 TCP connect()扫描，这种方式会在目标主机的日志中记录大批连接请求和错误信息。
-sS 	 半开扫描，很少有系统能把它记入系统日志。不过，需要Root权限。
-sF  -sN 	 秘密FIN数据包扫描、Xmas Tree、Null扫描模式
-sP 	 ping扫描，Nmap在扫描端口时，默认都会使用ping扫描，只有主机存活，Nmap才会继续扫描。
-sU 	 UDP扫描，但UDP扫描是不可靠的
-sA 	 这项高级的扫描方法通常用来穿过防火墙的规则集
-sV 	 探测端口服务版本
-Pn 	 扫描之前不需要用ping命令，有些防火墙禁止ping命令。可以使用此选项进行扫描
-v 	 显示扫描过程，推荐使用
-h 	 帮助选项，是最清楚的帮助文档
-p 	 指定端口，如“1-65535、1433、135、22、80”等
-O 	 启用远程操作系统检测，存在误报
-A 	 全面系统检测、启用脚本检测、扫描等
-oN/-oX/-oG 	 将报告写入文件，分别是正常、XML、grepable 三种格式
-T4 	 针对TCP端口禁止动态扫描延迟超过10ms
-iL 	 读取主机列表，例如，“-iL C:\ip.txt”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16

端口扫描
nmap默认发送一个ARP的PING数据包，来探测目标主机1-1000范围内所开放的所有端口

nmap ip

    1

在这里插入图片描述

nmap简单扫描，并对结果返回详细的描述输出

nmap -vv IP

    1

在这里插入图片描述

使用 -sT来实现tcp全连接扫描，与目标端口进行三次握手，尝试建立连接。如果建立连接成功，则说明端口开放，但是扫描速度慢。

 nmap -sT ip

    1

在这里插入图片描述

nmap 操作系统类型的探测

nmap -O IP

    1

在这里插入图片描述

nmap万能开关

nmap -A IP

    1


root@kali:~# nmap -A 192.168.124.3
Starting Nmap 7.70 ( https://nmap.org/ ) at 2018-09-27 04:27 EDT
Nmap scan report for 192.168.124.3
Host is up (0.044s latency).
Not shown: 998 filtered ports
PORT    STATE SERVICE      VERSION
139/tcp open  netbios-ssn  Microsoft Windows netbios-ssn
445/tcp open  microsoft-ds Windows 10 Home China 10586 microsoft-ds (workgroup: WORKGROUP)
MAC Address: F0:03:8C:09:C6:C9 (AzureWave Technology)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Microsoft Windows 10 1511 - 1607 (95%), Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7 (93%), Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008 (93%), Microsoft Windows Phone 7.5 or 8.0 (92%), Microsoft Windows 10 1607 (92%), Microsoft Windows 10 1511 (92%), Microsoft Windows Server 2008 R2 or Windows 8.1 (92%), Microsoft Windows Server 2016 (92%), Microsoft Windows 7 Professional or Windows 8 (92%), Microsoft Windows Embedded Standard 7 (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: Host: DESKTOP-ME19QK1; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: mean: -2h39m59s, deviation: 4h37m07s, median: 0s
|_nbstat: NetBIOS name: DESKTOP-ME19QK1, NetBIOS user: &lt;unknown&gt;, NetBIOS MAC: f0:03:8c:09:c6:c9 (AzureWave Technology)
| smb-os-discovery: 
|   OS: Windows 10 Home China 10586 (Windows 10 Home China 6.3)
|   OS CPE: cpe:/o:microsoft:windows_10::-
|   Computer name: DESKTOP-ME19QK1
|   NetBIOS computer name: DESKTOP-ME19QK1\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2018-09-27T16:27:43+08:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2018-09-27 04:27:43
|_  start_date: 2018-09-24 08:00:45

TRACEROUTE
HOP RTT      ADDRESS
1   44.42 ms 192.168.124.3

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 79.39 seconds

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43

SYN扫描（-sS），也被称为 “半开连接”或者 “SYN stealth”。nmap发送syn包后等待回应，如果接受SYS/ACK包说明端口开放，如果收到RST包，说明端口关闭，如果没有回应或者回应icmp不可达错误信息，则说明端口被过滤。

nmap -sS IP

    1

NULL扫描

nmap -sN IP

    1

探测服务版本

nmap -sV IP
————————————————
版权声明：本文为CSDN博主「孤君」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/Wu000999/article/details/82859621</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" width="1014" height="238" src="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/03/版权生命证明-nmap.png" alt="" class="wp-image-8576" srcset="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/03/版权生命证明-nmap.png 1014w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/03/版权生命证明-nmap-300x70.png 300w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2020/03/版权生命证明-nmap-768x180.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><figcaption>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</figcaption></figure></div>



<pre class="wp-block-code"><code>站主补充：
案例一：扫描某一台服务器的所有 UDP 端口
# nmap -sU 192.168.1.1 -Pn

（补充：这里以扫描 192.168.1.1 为例，这里的 -Pn 是指不测试 icmp 而直接测试端口）

案例二：扫描某一台服务器的所有 TCP 端口
# nmap -sT 192.168.1.1 -Pn

（补充：这里以扫描 192.168.1.1 为例，这里的 -Pn 是指不测试 icmp 而直接测试端口）

案例三：扫描某一台服务器某一个 UDP 端口
# nmap -sU 192.168.1.1 -p 161 -Pn

（补充：这里以扫描 192.168.1.1 为例，这里的 -Pn 是指不测试 icmp 而直接测试端口）

案例四：扫描某一台服务器某一个 TCP 端口
# nmap -sU 192.168.1.1 -t 443 -Pn

（补充：这里以扫描 192.168.1.1 为例，这里的 -Pn 是指不测试 icmp 而直接测试端口）

案例五：扫描某一台服务器多个 TCP 端口
# nmap -sU 192.168.1.1 -t 1-65535 -Pn

（补充：这里以扫描 192.168.1.1 为例，这里的 -Pn 是指不测试 icmp 而直接测试端口）

案例六：扫描多个 IP 地址
6.1 一次性扫描多个 IP 地址
# nmap 192.168.1.1 192.168.1.2 192.168.1.3

或者：

# nmap 192.168.1.1,2,3

或者：

# nmap 192.168.1.1-3

（补充：这里以扫描 192.168.1.1、192.168.1.2、192.168.1.3 为例）

6.2 扫描某一个网段

# nmap 192.168.1.0/24

(补充：这里以扫描 192.168.1.0 网段为例)

6.3 扫描某一个文件里记录的 IP 地址
# cat ip_list.txt
192.168.1.1
192.168.1.2
# nmap -iL ip_list.txt 

（补充：这里以扫描 ip_list.txt 文本里 192.168.1.1 和 192.168.1.2 IP 地址为例）

案例七：扫描时排除 IP 地址
7.1 扫描时排除某一个 IP 地址
# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3

（补充：这里以扫描 192.168.1.1 到 192.168.1.5 但排除 192.168.1.3 为例）

7.1 扫描时排除多个 IP 地址
# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3,192.168.1.4

或者：

# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3,4

或者：

# nmap 192.168.1.1-192.168.1.5 --exclude 192.168.1.3-4

（补充：这里以扫描 192.168.1.1 到 192.168.1.5 但排除 192.168.1.3 和 192.168.1.4 为例）

6.3 扫描时排除某一个文件里记录的 IP 地址
# cat ip_list.txt
192.168.1.3
192.168.1.4
# nmap 192.168.1.1-192.168.1.5 --excludefile ip_list.txt 

（补充：这里以扫描 192.168.1.1 到 192.168.1.5，但是排除 ip_list.txt 文本里 192.168.1.1 和 192.168.1.2 IP 地址为例）</code></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 firewall-cmd （设置防火墙）</title>
		<link>https://eternalcenter-sep-2022.github.io/firewall-cmd/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 16:37:51 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=7959</guid>

					<description><![CDATA[内容一：防火墙信息查询 1.1 防火墙运行状态查询 1.2 显示防火墙紧急模式是否开启 （是否拒绝所有网络） 1.3 防火墙默认信息查询 1.3.1 显示防火墙的所有区域 1.3.2 显示防火墙支持的所有服务 1.3.3 显示防火墙支持的所有 icmp 协议 1.4 显示防火墙当前所在的区域 1.5 显示防火墙的策略 1.5.1 显示防火墙当前所在区域的策略 1.5.1.1 显示防火墙当前所在区域的所有策略 1.5.1.2 显示防火墙当前所在区域的复杂 （rich） 策略 1.5.2 显示所有区域的所有策略 （补充：firewall-cmd 防火墙默认区域有：1) block 拒绝被访问，并回应一个拒绝的信息2) work 只允许部分端口被访问，例如 22 端口3) home 只允许部分端口被访问，例如 22 端口4) public 只允许部分端口被访问，例如 22 端口5) dmz 只允许部分端口被访问，例如 22 端口6) trusted 全部开放7) drop 禁止被访问，不回应一个拒绝的信息8) internal &#8230; <p class="link-more"><a href="https://eternalcenter-sep-2022.github.io/firewall-cmd/" class="more-link">Continue reading<span class="screen-reader-text"> "[命令] Linux 命令 firewall-cmd （设置防火墙）"</span></a></p>]]></description>
										<content:encoded><![CDATA[
<h3 id="内容一-防火墙信息查询1-1-防火墙运行状态查询">内容一：防火墙信息查询</h3>



<h4 id="内容一-防火墙信息查询1-1-防火墙运行状态查询">1.1 防火墙运行状态查询</h4>



<pre class="wp-block-code"><code># firewall-cmd –state</code></pre>



<h4 id="1-2-显示防火墙紧急模式是否开启-是否拒绝所有网络">1.2 显示防火墙紧急模式是否开启 （是否拒绝所有网络）</h4>



<pre class="wp-block-code"><code># firewall-cmd –query-panic</code></pre>



<h4 id="1-3-防火墙默认信息查询1-3-1-显示防火墙的所有区域">1.3 防火墙默认信息查询</h4>



<h5 id="1-3-防火墙默认信息查询1-3-1-显示防火墙的所有区域">1.3.1 显示防火墙的所有区域</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-zones</code></pre>



<h5 id="1-3-2-显示防火墙支持的所有服务">1.3.2 显示防火墙支持的所有服务</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-services</code></pre>



<h5 id="1-3-3-显示防火墙支持的所有-icmp-协议">1.3.3 显示防火墙支持的所有 icmp 协议</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-icmptypes</code></pre>



<h4 id="1-4-显示防火墙当前所在的区域">1.4 显示防火墙当前所在的区域</h4>



<pre class="wp-block-code"><code># firewall-cmd --get-default-zone</code></pre>



<h4>1.5 显示防火墙的策略</h4>



<h5>1.5.1 显示防火墙当前所在区域的策略</h5>



<h5>1.5.1.1 显示防火墙当前所在区域的所有策略</h5>



<pre class="wp-block-code"><code># firewall-cmd --list-all</code></pre>



<h5>1.5.1.2 显示防火墙当前所在区域的复杂 （rich） 策略</h5>



<pre class="wp-block-code"><code># firewall-cmd --list-rich-rules</code></pre>



<h5 id="1-5-2-显示所有区域的所有策略">1.5.2 显示所有区域的所有策略</h5>



<pre class="wp-block-code"><code># firewall-cmd --list-all-zones</code></pre>



<p>（<br>补充：firewall-cmd 防火墙默认区域有：<br>1) block 拒绝被访问，并回应一个拒绝的信息<br>2) work 只允许部分端口被访问，例如 22 端口<br>3) home 只允许部分端口被访问，例如 22 端口<br>4) public 只允许部分端口被访问，例如 22 端口<br>5) dmz 只允许部分端口被访问，例如 22 端口<br>6) trusted 全部开放<br>7) drop 禁止被访问，不回应一个拒绝的信息<br>8) internal 只允许部分端口被访问，例如 22 端口<br>9) external 只允许部分端口被访问，例如 22 端口<br>）</p>



<h5>1.5.3 显示某个区域的策略</h5>



<h5>1.5.3.1 显示某个区域的所有策略</h5>



<h5>1.5.3.1.1 显示某个区域的所有策略的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=&lt;zone&gt; --list-all</code></pre>



<h5 id="1-5-3-2-显示某一个区域的策略的案例">1.5.3.1.2 显示某个区域的所有策略的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=public --list-all</code></pre>



<p>（补充：这里以显示 public 区域的策略为例）</p>



<h5>1.5.3.2 显示某个区域的复杂 （rich） 策略</h5>



<h5>1.5.3.2.1 显示某个区域的复杂 （rich） 策略的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=&lt;zone&gt; --list-rich-rules</code></pre>



<h5>1.5.3.2.2 显示某个区域的复杂 （rich） 策略的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=public --list-rich-rules</code></pre>



<p>（补充：这里以显示 public 区域的复杂 （rich） 策略为例）</p>



<h5 id="1-5-4-显示某一个区域某一个服务的策略1-5-4-1-显示某一个区域某一个服务的策略的格式">1.5.4 显示某个区域某个服务的策略</h5>



<h5 id="1-5-4-显示某一个区域某一个服务的策略1-5-4-1-显示某一个区域某一个服务的策略的格式">1.5.4.1 显示某个区域某个服务的策略的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=&lt;zone&gt; --query-service=&lt;service&gt;</code></pre>



<h5 id="1-5-4-2-显示某一个区域某一个服务的策略的案例">1.5.4.2 显示某个区域某个服务的策略的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=public --query-service=https</code></pre>



<p>（补充：这里以显示 public 区域的 https 服务的策略为例）</p>



<h4 id="1-6-显示网卡所在的区域1-6-1-显示哪些区域被放入了网卡">1.6 显示网卡所在的区域</h4>



<h5 id="1-6-显示网卡所在的区域1-6-1-显示哪些区域被放入了网卡">1.6.1 显示哪些区域被放入了网卡</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-active-zones</code></pre>



<p>（注意：只有放入了网卡的区域才会处于激活状态）</p>



<h5 id="1-6-2-显示某一个网卡所属的区域1-6-2-1-显示某一个网卡所属的区域的格式">1.6.2 显示某网卡所属的区域</h5>



<h5 id="1-6-2-显示某一个网卡所属的区域1-6-2-1-显示某一个网卡所属的区域的格式">1.6.2.1 显示某网卡所属的区域的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd –get-zone-of-interface=&lt;network card&gt;</code></pre>



<h5 id="1-6-2-2-显示某一个网卡所属的区域的案例">1.6.2.2 显示某网卡所属的区域的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-zone-of-interface=eth0</code></pre>



<p>（补充：这里以显示 eth0 网卡属于哪一个区域为例）</p>



<h3 id="内容二-区域的网卡管理2-1-显示网卡所在的区域2-1-1-显示哪些区域被放入了网卡">内容二： 区域的网卡管理</h3>



<h4 id="内容二-区域的网卡管理2-1-显示网卡所在的区域2-1-1-显示哪些区域被放入了网卡">2.1 显示网卡所在的区域</h4>



<h5 id="内容二-区域的网卡管理2-1-显示网卡所在的区域2-1-1-显示哪些区域被放入了网卡">2.1.1 显示哪些区域被放入了网卡</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-active-zones</code></pre>



<p>（注意：只有放入了网卡的区域才会处于激活状态）</p>



<h5 id="2-1-2-显示某一个网卡所属的区域2-1-2-1-显示某一个网卡所属的区域的格式">2.1.2 显示某网卡所属的区域</h5>



<h5 id="2-1-2-显示某一个网卡所属的区域2-1-2-1-显示某一个网卡所属的区域的格式">2.1.2.1 显示某网卡所属的区域的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd –get-zone-of-interface=&lt;network card&gt;</code></pre>



<h5 id="2-1-2-2-显示某一个网卡所属的区域的案例">2.1.2.2 显示某网卡所属的区域的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --get-zone-of-interface=eth0</code></pre>



<p>（补充：这里以显示 eth0 网卡属于哪个区域为例）</p>



<h4 id="2-2-将某一个网卡放入某一个区域2-2-1-将某一个网卡放入某一个区域的格式">2.2 将某网卡放入某个区域</h4>



<h5 id="2-2-将某一个网卡放入某一个区域2-2-1-将某一个网卡放入某一个区域的格式">2.2.1 将某网卡放入某个区域的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=&lt;zone&gt; --add-interface=&lt;network card&gt;</code></pre>



<h5 id="2-2-2-将某一个网卡放入某一个区域的案例">2.2.2 将某网卡放入某区域的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=public --add-interface=eth0</code></pre>



<p>（补充：这里以往 public 区域里加入 eth0 网卡为例）</p>



<h4 id="2-3-将某一个网卡从某一个区域删除2-3-1-将某一个网卡从某一个区域删除的格式">2.3 将某网卡从某区域删除</h4>



<h5 id="2-3-将某一个网卡从某一个区域删除2-3-1-将某一个网卡从某一个区域删除的格式">2.3.1 将某网卡从某区域删除的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=&lt;zone&gt; --remove-interface=&lt;network card&gt;</code></pre>



<h5 id="2-3-2-将某一个网卡从某一个区域删除的案例">2.3.2 将某网卡从某区域删除的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --zone=public --remove-interface=eth0</code></pre>



<p>（补充：这里以从 public 区域删除 eth0 网卡为例）</p>



<h3 id="内容三-防火墙区域设置3-1-显示防火墙目前所在的区域">内容三：防火墙区域设置</h3>



<h4 id="内容三-防火墙区域设置3-1-显示防火墙目前所在的区域">3.1 显示防火墙目前所在的区域</h4>



<pre class="wp-block-code"><code># firewall-cmd --get-default</code></pre>



<h4 id="3-2-指定防火墙的区域3-2-1-指定防火墙的区域的格式">3.2 指定防火墙的区域</h4>



<h5 id="3-2-指定防火墙的区域3-2-1-指定防火墙的区域的格式">3.2.1 指定防火墙的区域的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --set-default=&lt;zone&gt;</code></pre>



<h5 id="3-2-2-指定防火墙的区域的案例">3.2.2 指定防火墙的区域的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --set-default=public</code></pre>



<p>（补充：这里以将默认区域设置为 public 为例）</p>



<h3 id="内容四-防火墙暂时策略设置-防火墙重启后失效">内容四：防火墙暂时策略设置 （防火墙重启后失效）</h3>



<p>（注意：防火墙的规则没有现后之分，但是拒绝规则永远高于允许规则）</p>



<h4 id="4-1-开放策略相关4-1-1-暂时开放端口4-1-1-1-暂时在防火墙当前所在区域里开放某一个端口4-1-1-1-1-暂时在防火墙当前所在区域里开放某一个端口的格式">4.1 开放策略相关</h4>



<h5 id="4-1-开放策略相关4-1-1-暂时开放端口4-1-1-1-暂时在防火墙当前所在区域里开放某一个端口4-1-1-1-1-暂时在防火墙当前所在区域里开放某一个端口的格式">4.1.1 暂时开放端口</h5>



<h5 id="4-1-开放策略相关4-1-1-暂时开放端口4-1-1-1-暂时在防火墙当前所在区域里开放某一个端口4-1-1-1-1-暂时在防火墙当前所在区域里开放某一个端口的格式">4.1.1.1 暂时在防火墙当前所在区域里开放某端口</h5>



<h5 id="4-1-开放策略相关4-1-1-暂时开放端口4-1-1-1-暂时在防火墙当前所在区域里开放某一个端口4-1-1-1-1-暂时在防火墙当前所在区域里开放某一个端口的格式">4.1.1.1.1 暂时在防火墙当前所在区域里开放某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-port=&lt;port&gt;/tcp</code></pre>



<h5 id="4-1-1-1-2-暂时在防火墙当前所在区域里开放某一个端口的案例">4.1.1.1.2 暂时在防火墙当前所在区域里开放某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp</code></pre>



<p>（补充：这里以暂时添加 80/TCP 端口为例）</p>



<h5 id="4-1-1-2-暂时在防火墙当前所在区域里开放某一个服务的所有端口4-1-1-2-1-暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式">4.1.1.2 暂时在防火墙当前所在区域里开放某服务的所有端口</h5>



<h5 id="4-1-1-2-暂时在防火墙当前所在区域里开放某一个服务的所有端口4-1-1-2-1-暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式">4.1.1.2.1 暂时在防火墙当前所在区域里开放某服务的所有端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-service=&lt;service&gt;</code></pre>



<h5 id="4-1-1-2-2-暂时在防火墙当前所在区域里开放某一个服务的所有端口号的案例">4.1.1.2.2 暂时在防火墙当前所在区域里开放某服务的所有端口号的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-service=http</code></pre>



<p>（补充：这里以暂时添加 http 服务为例）</p>



<h5 id="4-1-1-3-暂时在防火墙当前所在区域里对某个网段开放某一个端口4-1-1-3-1-暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式">4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某端口</h5>



<h5 id="4-1-1-3-暂时在防火墙当前所在区域里对某个网段开放某一个端口4-1-1-3-1-暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式">4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" accept"</code></pre>



<h5 id="4-1-1-3-2-暂时在防火墙当前所在区域里对某个网段开放某一个端口的案例">4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"</code></pre>



<p>（补充：这里以暂时对 192.168.1.0/24 开放 80/tcp 端口为例）</p>



<h5 id="4-1-1-4-暂时在防火墙当前所在区域里对某一个-ip-地址开放多个端口4-1-1-4-1-暂时在防火墙当前所在区域里对某一个-ip-地址开放多个端口的格式">4.1.1.4 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口</h5>



<h5 id="4-1-1-4-暂时在防火墙当前所在区域里对某一个-ip-地址开放多个端口4-1-1-4-1-暂时在防火墙当前所在区域里对某一个-ip-地址开放多个端口的格式">4.1.1.4.1 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<h5 id="4-1-1-4-2-暂时在防火墙当前所在区域里对某一个-ip-地址开放多个端口的案例">4.1.1.4.2 暂时在防火墙当前所在区域里对某 IP 地址开放多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（补充：这里以暂时对 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例）</p>



<h5 id="4-1-1-5-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口4-1-1-5-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口的格式">4.1.1.5 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口</h5>



<h5 id="4-1-1-5-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口4-1-1-5-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口的格式">4.1.1.5.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<h5 id="4-1-1-5-2-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口的案例">4.1.1.5.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（补充：这里以暂时对非 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例）</p>



<h5 id="4-1-2-暂时关闭已开放的端口4-1-2-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口4-1-2-1-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式">4.1.2 暂时关闭已开放的端口</h5>



<h5 id="4-1-2-暂时关闭已开放的端口4-1-2-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口4-1-2-1-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式">4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某端口</h5>



<h5 id="4-1-2-暂时关闭已开放的端口4-1-2-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口4-1-2-1-1-暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式">4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-port=&lt;port&gt;/tcp</code></pre>



<h5 id="4-1-2-1-2-暂时在防火墙当前所在区域里关闭已开放的某一个端口的案例">4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-port=80/tcp</code></pre>



<p>（补充：这里以暂时关闭 80/TCP 端口为例）</p>



<h5 id="4-1-2-2-暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口4-1-2-2-1-暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式">4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口</h5>



<h5 id="4-1-2-2-暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口4-1-2-2-1-暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式">4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-service=&lt;service&gt;</code></pre>



<h5 id="4-1-2-2-2-暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的案例">4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某服务的所有端口号的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-service=http</code></pre>



<p>（补充：这里以暂时关闭 HTTP 服务为例）</p>



<h5 id="4-1-2-3-暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口4-1-2-3-1-暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式">4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某端口</h5>



<h5 id="4-1-2-3-暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口4-1-2-3-1-暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式">4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="ipv4" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" accept"</code></pre>



<h5 id="4-1-2-3-2-暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口的案例">4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"</code></pre>



<p>（补充：这里以暂时对 192.168.1.0/24 关闭 80/tcp 端口为例）</p>



<h5 id="4-1-2-4-暂时在防火墙当前所在区域里关闭已开放的对某一个-ip-地址开放的多个端口4-1-2-4-1-暂时在防火墙当前所在区域里关闭已开放的对某一个-ip-地址开放的多个端口的格式">4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口</h5>



<h5 id="4-1-2-4-暂时在防火墙当前所在区域里关闭已开放的对某一个-ip-地址开放的多个端口4-1-2-4-1-暂时在防火墙当前所在区域里关闭已开放的对某一个-ip-地址开放的多个端口的格式">4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="ipv4" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<h5 id="4-1-2-4-2-暂时在防火墙当前所在区域里关闭已开放的对某一个-ip-地址开放的多个端口的案例">4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某 IP 地址开放的多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（补充：这里以暂时对 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例）</p>



<h5 id="4-1-2-5-暂时在防火墙当前所在区域里关闭对除了某一个-ip-地址外的-ip-地址开放多个端口4-1-2-5-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口的格式">4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某 IP 地址外的 IP 地址开放多个端口</h5>



<h5 id="4-1-2-5-暂时在防火墙当前所在区域里关闭对除了某一个-ip-地址外的-ip-地址开放多个端口4-1-2-5-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址开放多个端口的格式">4.1.2.5.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址开放多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<h5 id="4-1-2-5-2-暂时在防火墙当前所在区域里关闭对除了某一个-ip-地址外的-ip-地址开放多个端口的案例">4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某 IP 地址外的 IP 地址开放多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（补充：这里以暂时对非 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例）</p>



<h4 id="4-2-拒绝策略相关4-2-1-暂时拒绝端口4-2-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口4-2-1-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2 拒绝策略相关</h4>



<h5 id="4-2-拒绝策略相关4-2-1-暂时拒绝端口4-2-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口4-2-1-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2.1 暂时拒绝端口</h5>



<h5 id="4-2-拒绝策略相关4-2-1-暂时拒绝端口4-2-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口4-2-1-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某端口</h5>



<h5 id="4-2-拒绝策略相关4-2-1-暂时拒绝端口4-2-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口4-2-1-1-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-1-1-2-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例">4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"</code></pre>



<p>（<br>补充：<br>1) 这里以在 public 区域拒绝 192.168.1.0/24 访问 80/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h5 id="4-2-1-2-暂时在防火墙当前所在区域里对某一个-ip-地址拒绝多个端口4-2-1-2-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2.1.2 暂时在防火墙当前所在区域里对某 IP 地址拒绝多个端口</h5>



<h5 id="4-2-1-2-暂时在防火墙当前所在区域里对某一个-ip-地址拒绝多个端口4-2-1-2-1-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式">4.2.1.2.1 暂时在防火墙当前所在区域里对某网段拒绝某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-1-2-2-暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例">4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"</code></pre>



<p>（<br>补充：<br>1) 这里以在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h5 id="4-2-1-2-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址拒绝多个端口4-2-1-2-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址拒绝多个端口的格式">4.2.1.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口</h5>



<h5 id="4-2-1-2-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址拒绝多个端口4-2-1-2-1-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址拒绝多个端口的格式">4.2.1.2.1 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-1-2-2-暂时在防火墙当前所在区域里对除了某一个-ip-地址外的-ip-地址拒绝多个端口的案例">4.2.1.2.2 暂时在防火墙当前所在区域里对除了某 IP 地址外的 IP 地址拒绝多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（<br>补充：<br>1) 这里以拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h5 id="4-2-2-暂时撤销已拒绝端口4-2-2-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口4-2-2-1-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式">4.2.2 暂时撤销已拒绝端口</h5>



<h5 id="4-2-2-暂时撤销已拒绝端口4-2-2-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口4-2-2-1-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式">4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口</h5>



<h5 id="4-2-2-暂时撤销已拒绝端口4-2-2-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口4-2-2-1-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式">4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;network segment&gt;/&lt;subnet mask&gt;" port protocol="&lt;port protocol&gt;" port="&lt;port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-2-1-2-暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口的案例">4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"</code></pre>



<p>（<br>补充：<br>1) 这里以取消在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h5 id="4-2-2-2-暂时在防火墙当前所在区域里撤销已设置的对某一个-ip-地址拒绝多个端口4-2-2-2-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式">4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某 IP 地址拒绝多个端口</h5>



<h5 id="4-2-2-2-暂时在防火墙当前所在区域里撤销已设置的对某一个-ip-地址拒绝多个端口4-2-2-2-1-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式">4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-2-1-2-暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的案例">4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"</code></pre>



<p>（<br>补充：<br>1) 这里以取消拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h5 id="4-2-3-2-暂时在防火墙当前所在区域里撤销已设置的对除了某一个-ip-地址外的-ip-地址拒绝多个端口4-2-3-2-1-暂时在防火墙当前所在区域里撤销已设置的对除了某一个-ip-地址外的-ip-地址拒绝多个端口的格式">4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口</h5>



<h5 id="4-2-3-2-暂时在防火墙当前所在区域里撤销已设置的对除了某一个-ip-地址外的-ip-地址拒绝多个端口4-2-3-2-1-暂时在防火墙当前所在区域里撤销已设置的对除了某一个-ip-地址外的-ip-地址拒绝多个端口的格式">4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" accept"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="&lt;network protocol&gt;" source NOT address="&lt;IP address&gt;" port protocol="&lt;port protocol&gt;" port="&lt;starting port&gt;-&lt;end port&gt;" reject"</code></pre>



<p>（补充：这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应）</p>



<h5 id="4-2-2-3-2-暂时在防火墙当前所在区域里撤销已设置的对除了某一个-ip-地址外的-ip-地址拒绝多个端口的案例">4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某 IP 地址外的 IP 地址拒绝多个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>或者：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"</code></pre>



<p>（<br>补充：<br>1) 这里以取消拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例<br>2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应，而 drop 收到数据包后会给发送方发送一个拒绝的回应<br>）</p>



<h4 id="4-3-转发策略相关4-3-1-开启防火墙转发策略">4.3 转发策略相关</h4>



<h5 id="4-3-转发策略相关4-3-1-开启防火墙转发策略">4.3.1 开启防火墙转发策略</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-masquerade --permanent</code></pre>



<p>（注意：只有开启了防火墙转发策略之后防火墙才能转发端口）</p>



<h5 id="4-3-2-暂时在防火墙当前所在区域里开启一个端口跳转到另一个-ip-地址的另一个端口4-3-2-1-暂时在防火墙当前所在区域里开启一个端口跳转到另一个-ip-地址的另一个端口的格式">4.3.2 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口</h5>



<h5 id="4-3-2-暂时在防火墙当前所在区域里开启一个端口跳转到另一个-ip-地址的另一个端口4-3-2-1-暂时在防火墙当前所在区域里开启一个端口跳转到另一个-ip-地址的另一个端口的格式">4.3.2.1 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-forward-port=port=&lt;port&gt;:proto=&lt;port protocol&gt;:toport=&lt;port&gt;:toaddr=&lt;IP address&gt;</code></pre>



<h5 id="4-3-2-2-暂时在防火墙当前所在区域里开启一个端口跳转到另一个-ip-地址的另一个端口的案例">4.3.2.2 暂时在防火墙当前所在区域里开启某个端口跳转到另 1 个 IP 地址的另 1 个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1</code></pre>



<p>（补充：这里以将本地的 80 端口转向 192.168.1.1 的 8080 端口为例）</p>



<h5 id="4-3-3-暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个-ip-地址的另一个端口4-3-3-1-暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个-ip-地址的另一个端口的格式">4.3.3 暂时在防火墙当前所在区域里关闭已开放的某端口跳转到另 1个 IP 地址的另 1 个端口</h5>



<h5 id="4-3-3-暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个-ip-地址的另一个端口4-3-3-1-暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个-ip-地址的另一个端口的格式">4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的某个端口跳转到另 1 个 IP 地址的另 1 个端口的格式</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-forward-port=port=&lt;port&gt;:proto=&lt;port protocol&gt;:toport=&lt;port&gt;:toaddr=&lt;IP address&gt;</code></pre>



<h5 id="4-3-3-2-暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个-ip-地址的另一个端口的案例">4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的某个端口跳转到另 1 个 IP 地址的另 1 个端口的案例</h5>



<pre class="wp-block-code"><code># firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1</code></pre>



<p>（补充：这里以取消将本地的 80 端口转向 192.168.1.1 的 8080 端口为例）</p>



<h3>内容五：将防火墙不带优先级策略的设置方法转换成指定优先级策略的设置方法</h3>



<p>（<br>注意：<br>1) 此方法只对复杂 （rich） 策略有效<br>2) 此方法只对较新的 firewall-cmd 防火墙有效<br>）</p>



<h4>5.1 firewall-cmd 防火墙优先级介绍</h4>



<p>1) 优先级数字的范围从 -32768 到 32767<br>2) 数字越低代表优先级越高</p>



<h4>5.2 防火墙不带优先级策略的设置方法</h4>



<p>和内容一、内容二、内容三、内容四里的相关设置命令一样，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"</code></pre>



<p>（补充：这里以对 192.168.1.0/24 开放 80/tcp 端口为例）</p>



<h4>5.3 防火墙指定优先级策略的设置方法</h4>



<p>和内容一、内容二、内容三、内容四里的大部分设置命令一样，但是需要在其中添加 priority= 参数，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule="rule priority=100 family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"</code></pre>



<p>（补充：这里以对 192.168.1.0/24 开放 80/tcp 端口并将优先级设置为 100 为例）</p>



<h3>内容六：将防火墙当前所在区域策略的设置方法转换成指定区域策略的设置方法</h3>



<h4>6.1 防火墙当前所在区域策略的设置方法</h4>



<p>和内容一、内容二、内容三、内容四里的大部分设置命令一样，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp</code></pre>



<p>（补充：这里以在当前所在区域添加 80/tcp 端口为例）</p>



<h4>6.2 防火墙指定区域策略的设置方法</h4>



<p>和内容一、内容二、内容三、内容四里的大部分设置命令一样，但是需要在其中添加 –-zone= 参数，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp --zone=public</code></pre>



<p>（补充：这里以在 public 区域添加 80/tcp 端口为例）</p>



<h3 id="内容五-防火墙暂时禁止-icmp-的设置5-1-防火墙暂时禁止-icmp">内容七：防火墙暂时禁止 icmp 的设置</h3>



<h4 id="内容五-防火墙暂时禁止-icmp-的设置5-1-防火墙暂时禁止-icmp">7.1 防火墙暂时禁止 icmp</h4>



<pre class="wp-block-code"><code># firewall-cmd --add-rich-rule='rule protocol value=icmp drop'</code></pre>



<h4 id="5-2-防火墙暂时取消禁止-icmp">7.2 防火墙暂时取消禁止 icmp</h4>



<pre class="wp-block-code"><code># firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'</code></pre>



<h3 id="内容六-防火墙紧急模式的管理-拒绝所有网络-6-1-防火墙开启紧急模式-拒绝所有网络">内容八：防火墙紧急模式的管理 （拒绝所有网络）</h3>



<h4 id="内容六-防火墙紧急模式的管理-拒绝所有网络-6-1-防火墙开启紧急模式-拒绝所有网络">8.1 防火墙开启紧急模式 （拒绝所有网络）</h4>



<pre class="wp-block-code"><code># firewall-cmd –panic-on</code></pre>



<h4 id="6-2-防火墙取消紧急模式-取消拒绝所有网络">8.2 防火墙取消紧急模式 （取消拒绝所有网络）</h4>



<pre class="wp-block-code"><code># firewall-cmd –panic-off</code></pre>



<h4 id="6-3-显示防火墙紧急模式是否开启-是否拒绝所有网络">8.3 显示防火墙紧急模式是否开启 （是否拒绝所有网络）</h4>



<pre class="wp-block-code"><code># firewall-cmd –query-panic</code></pre>



<h3 id="内容七-将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法7-1-防火墙暂时策略的设置方法">内容九：将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法</h3>



<h4 id="内容七-将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法7-1-防火墙暂时策略的设置方法">9.1 防火墙暂时策略的设置方法</h4>



<p>和内容一、内容二、内容三、内容四里的大部分设置命令一样，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp</code></pre>



<p>（补充：这里以临时添加 80/tcp 端口为例）</p>



<h4 id="7-2-防火墙永久策略的设置">9.2 防火墙永久策略的设置</h4>



<p>和内容一、内容二、内容三、内容四里的大部分设置命令一样，但是需要在其中添加 &#8211;permanent 参数，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp --permanent</code></pre>



<p>（补充：这里以永久添加 80/tcp 端口为例）</p>



<p>（注意：永久策略设置后，防火墙要重新加载才会生效）</p>



<h4 id="7-3-防火墙限时策略的设置">9.3 防火墙限时策略的设置</h4>



<p>和内容一、内容二、内容三、内容四的大部分设置命令一样，但是需要在后面添加 &#8211;timeout=&lt;秒&gt; 参数，例：</p>



<pre class="wp-block-code"><code># firewall-cmd --add-port=80/tcp --timeout=3600</code></pre>



<p>（补充：这里以在 3600 秒期间添加 80/tcp 端口为例）</p>



<p>（注意：此策略会在 3600 秒后失效）</p>



<h3 id="内容八-防火墙策略的加载8-1-使用防火墙命令加载策略">内容十：防火墙策略的加载</h3>



<h4 id="内容八-防火墙策略的加载8-1-使用防火墙命令加载策略">10.1 使用防火墙命令加载策略</h4>



<pre class="wp-block-code"><code># firewall-cmd --reload</code></pre>



<p>（注意：此时暂时策略会失效，永久策略会生效）</p>



<h4 id="8-2-在系统层面上重启防火墙以加载策略">10.2 在系统层面上重启防火墙以加载策略</h4>



<pre class="wp-block-code"><code># systemctl retart firewalld</code></pre>



<p>（注意：此时暂时策略会失效，永久策略会生效）</p>



<h1 id="相关链接-与-firewall-cmd-相关的-shell-脚本">相关链接：与 firewall-cmd 相关的 shell 脚本</h1>



<p class="has-small-font-size"><a href="https://eternalcenter-sep-2022.github.io/?p=9937" target="_blank" rel="noreferrer noopener">Shell 在 firewalld 防火墙上批量对多个 IP 地址开发多个端口号</a></p>



<p class="has-small-font-size"><a rel="noreferrer noopener" href="https://eternalcenter-sep-2022.github.io/?p=9939" target="_blank">Shell 在 firewalld 防火墙上开放所有正在处于监听状态的端口号</a></p>



<p class="has-small-font-size"><a href="https://eternalcenter-sep-2022.github.io/?p=9941" target="_blank" rel="noreferrer noopener">Shell 在 firewalld 防火墙上取消所有已设置的复杂端口号策略</a></p>



<p class="has-small-font-size"><a href="https://eternalcenter-sep-2022.github.io/?p=9954" target="_blank" rel="noreferrer noopener">Shell 在 firewalld 防火墙上取消所有已开放的端口号</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[命令] Linux 命令 iptables （设置防火墙） （转载）</title>
		<link>https://eternalcenter-sep-2022.github.io/iptables/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 11 Dec 2019 14:55:31 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=7761</guid>

					<description><![CDATA[注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>一、iptables命令

    iptables命令是Linux上常用的防火墙软件，是netfilter项目的一部分。可以直接配置，也可以通过许多前端和图形界面配置。

1.1 语法

iptables(选项)(参数)

    1

1.2 选项
选项 	描述
-t&lt;表&gt; 	指定要操纵的表；
-A 	向规则链中添加条目；
-D 	从规则链中删除条目；
-i 	向规则链中插入条目；
-R 	替换规则链中的条目；
-L 	显示规则链中已有的条目；
-F 	清楚规则链中已有的条目；
-Z 	清空规则链中的数据包计算器和字节计数器；
-N 	创建新的用户自定义规则链；
-P 	定义规则链中的默认目标；
-h 	显示帮助信息；
-p 	指定要匹配的数据包协议类型；
-s 	指定要匹配的数据包源ip地址；
-j&lt;目标&gt; 	指定要跳转的目标；
-i&lt;网络接口&gt; 	指定数据包进入本机的网络接口；
-o&lt;网络接口&gt; 	指定数据包要离开本机所使用的网络接口。

1.3 iptables命令选项输入顺序

    iptables -t 表名 &lt;-A/I/D/R&gt; 规则链名 &#91;规则号] &lt;-i/o 网卡名&gt; -p 协议名 &lt;-s 源IP/源子网&gt; --sport 源端口 &lt;-d 目标IP/目标子网&gt; --dport 目标端口 -j 动作

1.3.1 表名包括：

    raw：高级功能，如：网址过滤。
    mangle：数据包修改（QOS），用于实现服务质量。
    net：地址转换，用于网关路由器。
    filter：包过滤，用于防火墙规则。

1.3.2 规则链名包括

    INPUT链：处理输入数据包。
    OUTPUT链：处理输出数据包。
    PORWARD链：处理转发数据包。
    PREROUTING链：用于目标地址转换（DNAT）。
    POSTOUTING链：用于源地址转换（SNAT

1.3.3 动作包括

    accept：接收数据包。
    DROP：丢弃数据包。
    REDIRECT：重定向、映射、透明代理。
    SNAT：源地址转换。
    DNAT：目标地址转换。
    MASQUERADE：IP伪装（NAT），用于ADSL。
    LOG：日志记录。

二、示列

# 清除已有iptables规则
iptables -F
iptables -X
iptables -Z

# 开放指定的端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

# 屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

# 显示已添加的iptables规则
iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0  

# 删除已添加的iptables规则
iptables -L -n --line-numbers # 将所有iptables以序号标记显示
iptables -D INPUT 8 #比如要删除INPUT里序号为8的规则
————————————————
版权声明：本文为CSDN博主「书香水墨」的原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/qq_27870421/article/details/93166786</code></pre>



<p>注明：所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来</p>



<figure class="wp-block-image size-large"><img loading="lazy" width="1011" height="222" src="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2019/12/版权申明证明-Linux-防火墙设置命令-iptables-的使用案例.png" alt="" class="wp-image-7762" srcset="https://eternalcenter-sep-2022.github.io/wp-content/uploads/2019/12/版权申明证明-Linux-防火墙设置命令-iptables-的使用案例.png 1011w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2019/12/版权申明证明-Linux-防火墙设置命令-iptables-的使用案例-300x66.png 300w, https://eternalcenter-sep-2022.github.io/wp-content/uploads/2019/12/版权申明证明-Linux-防火墙设置命令-iptables-的使用案例-768x169.png 768w" sizes="(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px" /><figcaption>CC 4.0 BY-SA 版权协议网址：https://creativecommons.org/licenses/by-sa/4.0/deed.z</figcaption></figure>



<pre class="wp-block-code"><code>站主补充：
站主补充一：iptables 保证现有连接不会被禁止的防火墙规则
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

站主补充二：iptables 保证本地环路不会被禁止的防火墙规则
# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT

站主补充三：iptables 清空某一张表的规则
3.1 iptables 清空 filter 表的规则
# iptables -t filter -F

3.2 iptables 清空 nat 表的规则
# iptables -t nat -F

站主补充四：iptables 设置某一个链的默认规则
4.1 将某一个默认规则设置成允许
4.1.1 iptables 将 OUTPUT 链的默认规则设置为允许
# iptables -P OUTPUT ACCEPT

（补充：这里以将 OUTPUT 链设置为允许为例）

4.1.2 iptables 将 INPUT 链的默认规则设置为允许
# iptables -P INPUT ACCEPT

（补充：这里以将 INPUT 链设置为允许为例）

4.1.3 iptables 将 FORWAED 链的默认规则设置为允许
# iptables -P FORWARD ACCEPT

（补充：这里以将 FORWARD 链设置为允许为例）

4.2 将某一个默认规则设置成丢掉
4.2.1 iptables 将 OUTPUT 链的默认规则设置为丢掉
# iptables -P OUTPUT DROP

（补充：这里以将 OUTPUT 链设置为丢掉为例）

4.2.2 iptables 将 INPUT 链的默认规则设置为丢掉
# iptables -P INPUT DROP

（补充：这里以将 INPUT 链设置为丢掉为例）

4.2.3 iptables 将 FORWAED 链的默认规则设置为丢掉
# iptables -P FORWARD DROP

（补充：这里以将 FORWAED 链设置为丢掉为例）

站主补充五：iptables 一次性添加多个不连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30,80,3306 -j DROP

（补充：这里以将 INPUT 链里添加丢掉 22 到 30、80、3306 端口为例）

站住补充六：iptables 一次性添加多个连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30 -j DROP

（补充：这里以将 INPUT 链里添加丢掉 22 到 30 端口为例）

站住补充七：iptables 一次性添加多个连续和不连续端口的策略
# iptables -I INPUT -p TCP -m multiport --dport 22:30,80,3301:3306 -j DROP

（补充：这里以将 INPUT 链里添加丢掉 22 到 30、80、3301 到 3306 端口为例）

站主补充八：iptables 一次性给多个 IP 地址添加多个端口的策略
# iptables -I INPUT -s 192.168.1.1,192.168.1.5,192.168.1.100-110 -p TCP -m multiport --dport 22:30,80,3306 -j ACCEPT

（补充：这里以将 INPUT 链里添加允许 192.168.1.1、192.168.1.5、192.168.1.100 到 192.168.1.110 的 22 到 30、80、3301 到 3306 端口为例）

站主补充九：iptables 删除一条规则
9.1 显示所有规则的编号
# iptables --list --line-numbers

9.2 删除某一条规则
# iptables -D INPUT 3

（补充：这里以删除编号为 3 个规则为例）

站主补充十：iptables icmp 也就是 ping 的管理
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 8 #允许 icmp 进去
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 0 #允许 icmp 响应出去

站主补充十一：iptables 的规则保存
# iptables-save

或者：

# service iptables save

（注意：此方法只在 CentOS 7 &amp; RHEL 7 有用）

站主补充十二：iptables 显示所有规则
12.1 iptables 显示所有规则
# iptables -nL

12.2 iptables 显示所有规则以及其中的详细信息
# iptables -nvl

（补充：比起 iptables -nL 命令，iptables -nvl 命令可以显示协议里的更详细内容，比如对 iptables 对 lo 网卡进行的规则）

12.3 iptables 显示所有规则并显示编号
# iptables --list --line-numbers

12.4 iptables 显示某一张表里的所有规则
# iptables -L -v -t filter -n --line-numbers</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] Linux 防火墙的设置 （通过设置 iptables 的配置文件实现）</title>
		<link>https://eternalcenter-sep-2022.github.io/iptables-file/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Sun, 21 Jul 2019 13:28:14 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=4878</guid>

					<description><![CDATA[步骤一：修改 iptables 的配置文件 添加以下内容： （补充：需要添加的规则可以这样一行行地添加进去） （注意：建议配置 iptables 之前先关闭 firewalld 防火墙） 步骤二：重启 iptables 步骤三：显示生效的 iptables 策略]]></description>
										<content:encoded><![CDATA[
<h3 id="步骤一-修改-iptables-的配置文件">步骤一：修改 iptables 的配置文件</h3>



<pre class="wp-block-code"><code># vim /etc/sysconfig/iptables</code></pre>



<p>添加以下内容：</p>



<pre class="wp-block-code"><code>......
-A INPUT -s 154.223.167.236 -j ACCEPT
......</code></pre>



<p>（补充：需要添加的规则可以这样一行行地添加进去）</p>



<p>（注意：建议配置 iptables 之前先关闭 firewalld 防火墙）</p>



<h3 id="步骤二-重启-iptables">步骤二：重启 iptables</h3>



<pre class="wp-block-code"><code># service iptables restart</code></pre>



<h3 id="步骤三-显示生效的-iptables-策略">步骤三：显示生效的 iptables 策略</h3>



<pre class="wp-block-code"><code># service iptables -nL</code></pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[步骤] 远程登录的实现 （通过设置 sshd 的配置文件和 SuSEfirewall2 防火墙实现） （openSUSE &#038; SLE  版）</title>
		<link>https://eternalcenter-sep-2022.github.io/ssh-debug-opensuse-sle/</link>
		
		<dc:creator><![CDATA[Mingyu Zhu]]></dc:creator>
		<pubDate>Wed, 08 May 2019 10:46:05 +0000</pubDate>
				<category><![CDATA[Chinese (中文)]]></category>
		<category><![CDATA[System (系统)]]></category>
		<category><![CDATA[System Firewall (系统防火墙)]]></category>
		<category><![CDATA[System Login Security (系统登录安全)]]></category>
		<category><![CDATA[System Network (系统网络)]]></category>
		<category><![CDATA[System Network & System Security & System Log (系统网络 & 系统安全 & 系统日志)]]></category>
		<category><![CDATA[System Port Security (系统端口安全)]]></category>
		<category><![CDATA[System Security (系统安全)]]></category>
		<guid isPermaLink="false">https://eternalcenter-sep-2022.github.io/?p=4708</guid>

					<description><![CDATA[步骤一：检查 ssh 是否安装 步骤二：确保 ssh 能够被登录 2.1 修改配置文件 将部分内容修改如下： 2.2 启动 ssh 服务 2.3 将 ssh 服务设置为开机自启 步骤三：让防火墙开放 22 端口 3.1 编辑防火墙的配置文件 将部分内容修改如下： （补充：这里可以写入多个服务名称，只需以空格隔开就行） 或者： （补充：这里可以写入多个服务端口，只需以空格隔开就行） 3.2 重新启动防火墙]]></description>
										<content:encoded><![CDATA[
<h3 id="步骤一-查看-ssh-是否安装">步骤一：检查 ssh 是否安装</h3>



<pre class="wp-block-code"><code># rpm -qa | grep ssh</code></pre>



<h3 id="步骤二-确保-ssh-能够被登录-2-1-修改配置文件">步骤二：确保 ssh 能够被登录</h3>



<h4 id="步骤二-确保-ssh-能够被登录-2-1-修改配置文件">2.1 修改配置文件</h4>



<pre class="wp-block-code"><code># vim /etc/ssh/sshd_config </code></pre>



<p>将部分内容修改如下：</p>



<pre class="wp-block-code"><code>......
PasswordAuthentication yes
......
PermitRootLogin yes
......</code></pre>



<h4 id="2-2-启动-ssh-服务">2.2 启动 ssh 服务</h4>



<pre class="wp-block-code"><code># service sshd restart</code></pre>



<h4 id="2-3-将-ssh-服务设置为开机自启">2.3 将 ssh 服务设置为开机自启</h4>



<pre class="wp-block-code"><code># systemctl enable sshd</code></pre>



<h3 id="步骤三-让防火墙开放-22-端口-3-1-编辑防火墙的配置文件">步骤三：让防火墙开放 22 端口</h3>



<h4 id="步骤三-让防火墙开放-22-端口-3-1-编辑防火墙的配置文件">3.1 编辑防火墙的配置文件</h4>



<pre class="wp-block-code"><code># vim /etc/sysconfig/SuSEfirewall2</code></pre>



<p>将部分内容修改如下：</p>



<pre class="wp-block-code"><code>......
FW_SERVICES_EXT_TCP = "ssh" 
......</code></pre>



<p>（补充：这里可以写入多个服务名称，只需以空格隔开就行）</p>



<p>或者：</p>



<pre class="wp-block-code"><code>......
FW_SERVICES_EXT_TCP = "22" 
......</code></pre>



<p>（补充：这里可以写入多个服务端口，只需以空格隔开就行）</p>



<h4 id="3-2-重新启动防火墙">3.2 重新启动防火墙</h4>



<pre class="wp-block-code"><code># rcSuSEfirewall2 restart</code></pre>



<p></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
