Loading... <h2 id="前言" style="color: inherit;font-family: inherit;line-height: 1.1;margin: 1.2em 0px 0.6em;font-size: 2.15em">使用iptables作为网络防火墙构建安全的网络环境</h2> <ul class=" list-paddingleft-2"> <li> <p>使用iptables作为网络防火墙构建安全的网络环境</p> </li> <ul class=" list-paddingleft-2"> <li> <p>前言</p> </li> <li> <p>网络防火墙的优势</p> </li> <li> <p>实验拓扑图</p> </li> <li> <p>实验环境</p> </li> <li> <p>实验步骤</p> </li> <ul class=" list-paddingleft-2"> <li> <p>防火墙未设置前对所有服务器的测试</p> </li> <li> <p>针对不同服务器进行”非法”访问</p> </li> <li> <p>定义网络防火墙规则</p> </li> <li> <p>再次针对不同服务器进行”非法”访问</p> </li> <li> <p>测试服务器是否可访问</p> </li> </ul> <li> <p>总结</p> </li> </ul> <p></p> </ul> <h2 id="前言" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">前言</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px">一般情况下</span><code><span style="font-size: 16px">iptables</span></code><span style="font-size: 16px">只作为主机防火墙使用,但是在特殊情况下也可以使用</span><code><span style="font-size: 16px">iptables</span></code><span style="font-size: 16px">对整个网络进行流量控制和网络安全防护等功能,在本文中,我们使用</span><code><span style="font-size: 16px">iptables</span></code><span style="font-size: 16px">对三台服务器的安全进行安全防护</span></p> </blockquote> <h2 id="网络防火墙的优势" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">网络防火墙的优势</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px">网络防火墙相比于主机防火墙而言,范围更大,不用对网络内的各主机各自设置防火墙规则就可以保证其安全性,但是必须在网络的进出口才能对出入数据包进行限制</span></p> </blockquote> <h2 id="实验拓扑图" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">实验拓扑图</h2> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161129-16.png" title="1459434698222953.png" alt="下载.png" /></p> <h2 id="实验环境" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">实验环境</h2> <table> <thead style="line-height: 1.6"> <tr style="line-height: 1.6" class="firstRow"> <th>主机</th> <th>IP地址</th> <th>功用</th> </tr> </thead> <tbody style="line-height: 1.6"> <tr style="line-height: 1.6"> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">fire.anyisalin.com</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">192.168.2.2,192.168.1.112</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">控制整个网段的数据报文的流入流出及过滤</td> </tr> <tr style="line-height: 1.6"> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">ns.anyisalin.com</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">192.168.2.3</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">提供DNS服务</td> </tr> <tr style="line-height: 1.6"> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">ftp.anyisalin.com</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">192.168.2.5</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">提供FTP服务</td> </tr> <tr style="line-height: 1.6"> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">www.anyisalin.com</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">192.168.2.4</td> <td style="padding: 0.5em;line-height: 1.6;vertical-align: top">提供web服务</td> </tr> </tbody> </table> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><span style="font-size: 16px">除了</span><code><span style="font-size: 16px">fire</span></code><span style="font-size: 16px">主机,其他主机皆关闭</span><code><span style="font-size: 16px">SElinux</span></code><span style="font-size: 16px">和</span><code><span style="font-size: 16px">iptables</span></code></p> <h2 id="实验步骤" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">实验步骤</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><code><span style="font-size: 16px">FTP</span></code><span style="font-size: 16px">,</span><code><span style="font-size: 16px">WEB</span></code><span style="font-size: 16px">,</span><code><span style="font-size: 16px">DNS</span></code><span style="font-size: 16px">服务器安装配置这里就不写了,有兴趣的看我以前的博客</span><span style="font-size: 16px">AnyISalIn的文章</span></p> </blockquote> <h3 id="防火墙未设置前对所有服务器的测试" style="font-family: inherit;line-height: 1.6;color: inherit;margin: 1.2em 0px 0.6em;font-size: 1.7em">防火墙未设置前对所有服务器的测试</h3> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><span style="font-size: 16px"><strong style="line-height: 1.6"><code>以下操作在192.168.1.103进行</code></strong></span></p> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px"><strong style="line-height: 1.6"><code>dns</code>服务能够正常使用</strong> </span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161129-4.png" title="1459434787718115.png" alt="blob.png" /></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px"><strong style="line-height: 1.6"><code>ftp</code>服务能够正常使用</strong> </span><br /><img src="//cto.wang/usr/uploads/2016/07/20160703161130-24.png" title="1459434796915145.png" alt="blob.png" /></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px"><strong style="line-height: 1.6"><code>web</code>服务能够正常使用</strong> </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161130-80.png" title="1459434810594533.png" alt="blob.png" /></p> </blockquote> <h3 id="针对不同服务器进行非法访问" style="font-family: inherit;line-height: 1.6;color: inherit;margin: 1.2em 0px 0.6em;font-size: 1.7em">针对不同服务器进行”非法”访问</h3> <blockquote><p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><span style="font-size: 16px">我们对</span><code><span style="font-size: 16px">dns,web.ftp</span></code><span style="font-size: 16px">服务器分别进行</span><code><span style="font-size: 16px">ping</span></code><span style="font-size: 16px">,</span><code><span style="font-size: 16px">ssh</span></code><span style="font-size: 16px">等操作 </span></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161130-62.png" title="1459434847247823.png" alt="blob.png" /></p> <p style="margin-top: 0px;margin-bottom: 1.1em;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161130-73.png" title="1459434852625530.png" alt="blob.png" /></p> </blockquote> <h3 id="定义网络防火墙规则" style="font-family: inherit;line-height: 1.6;color: inherit;margin: 1.2em 0px 0.6em;font-size: 1.7em">定义网络防火墙规则</h3> <p style="margin-top: 0px;margin-bottom: 1.1em;line-height: 1.6"><code><span style="font-size: 16px">大家应该够知道,服务器开放的端口越多就越危险,所以我们在网络防火墙对其进行规则定义</span></code></p> <pre class="prettyprint hljs-dark"><code class="language-bash hljs">[root@fire ~]<span class="hljs-comment"># iptables -P FORWARD DROP #设置FORWARD链默认策略为DROP</span><br />[root@fire ~]<span class="hljs-comment"># modprobe nf_conntrack_ftp #装载追踪FTP被动连接模块</span><br />[root@fire ~]<span class="hljs-comment"># iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT</span><br />[root@fire ~]<span class="hljs-comment"># iptables -A FORWARD -d 192.168.2.0/24 -p tcp -m multiport --dports 21,80 -m state --state NEW -j ACCEPT</span><br />[root@fire ~]<span class="hljs-comment"># iptables -A FORWARD -d 192.168.2.3 -p udp --dport 53 -m state --state NEW -j ACCEPT</span><br /></code></pre> <p></p> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 14px">解释一下上面几条规则的作用 <br /><strong style="line-height: 1.6">第一条</strong>规则将</span><code><span style="font-size: 14px">FORWARD</span></code><span style="font-size: 14px">链的默认策略设置为</span><code><span style="font-size: 14px">DROP</span></code><span style="font-size: 14px">,那么默认所有的数据包将不能通过</span><code><span style="font-size: 14px">FORWARD</span></code><span style="font-size: 14px">的转发 <br /><strong style="line-height: 1.6">第二条</strong>规则状态</span><code><span style="font-size: 14px">nf_conntrack_ftp</span></code><span style="font-size: 14px">模块,使得</span><code><span style="font-size: 14px">iptables</span></code><span style="font-size: 14px">能够追踪</span><code><span style="font-size: 14px">FTP</span></code><span style="font-size: 14px">链接的状态,使数据连接得以建立 <br /><strong style="line-height: 1.6">第三条</strong>意思是状态使</span><code><span style="font-size: 14px">ESTABLISHED</span></code><span style="font-size: 14px">和</span><code><span style="font-size: 14px">RELATED</span></code><span style="font-size: 14px">允许通过,指的是已建立链接或者追踪链接建立能够通过 <br /><strong style="line-height: 1.6">第四条</strong>意思是允许访问目标地址为</span><code><span style="font-size: 14px">192.168.2.0</span></code><span style="font-size: 14px">网段,端口为</span><code><span style="font-size: 14px">21/TCP</span></code><span style="font-size: 14px">和</span><code><span style="font-size: 14px">80/TCP</span></code><span style="font-size: 14px">状态为</span><code><span style="font-size: 14px">NEW能</span></code><span style="font-size: 14px">够通过,指的是新的链接能通过 <br /><strong style="line-height: 1.6">第五条</strong>是为</span><code><span style="font-size: 14px">DNS</span></code><span style="font-size: 14px">查询而添加的规则,指的是允许访问目标地址为192.168.2.3</span><code><span style="font-size: 14px">的地址且目标端口为</span></code><span style="font-size: 14px">53/UDP</span><code><span style="font-size: 14px">的</span></code><span style="font-size: 14px">NEW`状态能够通过,同指新的链接能够通</span></p> </blockquote> <h3 id="再次针对不同服务器进行非法访问" style="font-family: inherit;line-height: 1.6;color: inherit;margin: 1.2em 0px 0.6em;font-size: 1.7em">再次针对不同服务器进行”非法”访问</h3> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><code><span style="font-size: 16px">大家看!现在已经不能对服务器进行非法访问了</span></code> </p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161130-7.png" title="1459434860159795.png" alt="blob.png" /></p> </blockquote> <h3 id="测试服务器是否可访问" style="font-family: inherit;line-height: 1.6;color: inherit;margin: 1.2em 0px 0.6em;font-size: 1.7em">测试服务器是否可访问</h3> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><code><span style="font-size: 16px">ftp</span></code><span style="font-size: 16px">服务能正常访问 </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161131-34.png" title="1459434866225994.png" alt="blob.png" /> <br /><code><span style="font-size: 16px"><br /></span></code></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><code><span style="font-size: 16px">web</span></code><span style="font-size: 16px">服务能正常访问</span> <br /><img src="//cto.wang/usr/uploads/2016/07/20160703161131-71-1.png" title="1459434881660180.png" alt="blob.png" /> <br /><code><br /></code></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><code><span style="font-size: 16px">dns</span></code><span style="font-size: 16px">服务能正常访问 </span></p> <p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><img src="//cto.wang/usr/uploads/2016/07/20160703161131-55-1.png" title="1459434888801560.png" alt="blob.png" /></p> </blockquote> <h2 id="总结" style="font-family: inherit;line-height: 1.1;color: inherit;margin: 1.2em 0px 0.6em;font-size: 2.15em">总结</h2> <blockquote><p style="margin-top: 0px;margin-bottom: 0px;font-size: 1em;line-height: 1.6"><span style="font-size: 16px">本文只做了一些简单的限制,不过足以限制用户只能访问”该访问”的服务,这当然不能运用于生产环境中,毕竟设计简陋,大家笑笑就好 <br />作者:AnyISalIn <br />感谢:MageEdu</span></p> </blockquote> <p></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信