linux防火墙配置
<h3>linux防火墙配置</h3>
<p><code>CentOS 配置防火墙操作实例(启、停、开、闭端口):</code>
<code>注意,防火墙严格注意先后顺序,具体以iptables配置文件为准。</code></p>
<ul>
<li><strong>注:防火墙的基本操作命令:</strong></li>
</ul>
<pre><code class="language-bash">#查询防火墙状态:
service iptables status
#保存防火墙配置
service iptables save
#停止防火墙:
service iptables stop
#启动防火墙:
service iptables start
#重启防火墙:
service iptables restart
#永久关闭防火墙:
chkconfig iptables off
#永久关闭后启用:
chkconfig iptables on</code></pre>
<hr />
<p><code>防火墙端口配置</code></p>
<ul>
<li><strong>开放指定端口</strong></li>
</ul>
<pre><code class="language-bash">#开放端口
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
service iptables save
#编辑配置文件
vim /etc/sysconfig/iptables
#增加如下行
-A INPUT -s 172.16.110.0/24 -p tcp -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j DROP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
注意点:新开放的端口一定要在端口22后面</code></pre>
<ul>
<li><strong>允许指定IP段访问指定端口</strong></li>
</ul>
<pre><code class="language-bash">#下面三行的意思:
#先关闭所有的80端口
#开启ip段192.168.1.0/24端的80口
#开启ip段211.123.16.123/24端ip段的80口
iptables -I INPUT -p tcp --dport 8080 -j DROP
iptables -I INPUT -s 172.16.110.0/24 -p tcp --dport 8080 -j ACCEPT
iptables -I INPUT -s 211.123.16.123/24 -p tcp --dport 80 -j ACCEPT
#开放一个IP的一些端口,其它都封闭
iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
#多个端口
iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
#iptables 限制ip访问
#通过iptables限制9889端口的访问(只允许192.168.1.201、192.168.1.202、192.168.1.203),其他ip都禁止访问
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.201 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.202 -p tcp --dport 9889 -j ACCEPT
iptables -I INPUT -s 192.168.1.203 -p tcp --dport 9889 -j ACCEPT
#配置后务必使用如下命令保存iptables,否则重启iptables服务后会消失
service iptables save
注意命令的顺序不能反了。</code></pre>
<h4>更多详细解析</h4>
<p><a href="https://www.xiebruce.top/1071.html">https://www.xiebruce.top/1071.html</a></p>
<pre><code>#firewall-cmd常用命令
#关闭防火墙
systemctl stop firewalld
#关闭防火墙开机启动
systemctl disable firewalld
firewall-cmd --version #查看firewalld版本
firewall-cmd --help #查看firewall-cmd用法
man firewall-cmd
firewall-cmd --state #查看firewalld的状态
systemctl status firewalld #查看firewalld的状态,详细
firewall-cmd --reload #重新载入防火墙配置,当前连接不中断
firewall-cmd --complete-reload #重新载入防火墙配置,当前连接中断
firewall-cmd --get-services #列出所有预设服务
firewall-cmd --list-services #列出当前服务
firewall-cmd --permanent --zone=public --add-service=smtp #启用服务
firewall-cmd --permanent --zone=public --remove-service=smtp #禁用服务
firewall-cmd --zone=public --list-ports
firewall-cmd --permanent --zone=public --add-port=8080/tcp #启用端口
firewall-cmd --permanent --zone=public --remove-port=8080/tcp #禁用端口
firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=12345 #同服务器端口转发 80端口转发到12345端口
firewall-cmd --zone=public --add-masquerade #不同服务器端口转发,要先开启 masquerade
firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1 #不同服务器端口转发,转发到192.168.1.1的8080端口
firewall-cmd --get-zones #查看所有可用区域
firewall-cmd --get-active-zones #查看当前活动的区域,并附带一个目前分配给它们的接口列表
firewall-cmd --list-all-zones #列出所有区域的所有配置
firewall-cmd --zone=work --list-all #列出指定域的所有配置
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --set-default-zone=public #设定默认区域</code></pre>