阿弥嘛嘛洪 發表於 2019-9-11 10:34:00

CentOS 6.x 配置iptables

<h1>CentOS 6.x 配置iptables</h1>
<p>来源&nbsp;https://www.cnblogs.com/chillax1314/p/7976067.html</p>
<p>&nbsp;</p>
<p>iptables -P INPUT DROP---设置INPUT链默认规则为丢弃所有流量<br>iptbales有四表五链,raw,mangle,nat,filter(默认)表;五链:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING</p>
<p><img src="https://img2018.cnblogs.com/blog/825468/201909/825468-20190911103340970-1142102155.png"></p>
<p>&nbsp;</p>
<p>系统默认的iptables规则</p>
<div class="cnblogs_code">
<pre>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/825468/201909/825468-20190911101841955-2079037034.png"></p>
<p>&nbsp;</p>
<p>&nbsp;系统默认的ip6tables规则</p>
<div class="cnblogs_code">
<pre>ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -p ipv6-icmp -j ACCEPT
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -A INPUT -m state --state NEW -m udp -p udp --dport 546 -d fe80::/64 -j ACCEPT
ip6tables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
ip6tables -A INPUT -j REJECT --reject-with icmp6-adm-prohibited
ip6tables -A FORWARD -j REJECT --reject-with icmp6-adm-prohibited</pre>
</div>
<p><img src="https://img2018.cnblogs.com/blog/825468/201909/825468-20190911101854859-1278240224.png"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>vim iptables.sh 拷贝一下内容,具体按实际生产需求修改,此脚本默认丢弃INPUT流量,放行OUTPUT链流量,丢弃FORWARD流量;</p>
<p>#!/bin/bash</p>
<p>#清空iptables 规则<br>iptables -F<br>iptables -X<br>iptables -t nat -F<br>iptables -t nat -X</p>
<p>#允许本机访问本机<br>iptables -A INPUT -i lo -j ACCEPT</p>
<p>#添加黑名单方法</p>
<p>#iptables -I INPUT -s 192.168.0.1 -j DROP #屏蔽单个IP的命令</p>
<p>#iptables -I INPUT -s 192.168.1.0/24 -j DROP #封IP段即从192.168.1.0到192.168.1.254的命令</p>
<p>#允许172.16.20.0 192.168.2.0/24 ssh访问进来<br>iptables -A INPUT -s 172.16.20.0/24 -p tcp --dport 22 -j ACCEPT<br>iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport 22 -j ACCEPT</p>
<p>#允许https通行<br>iptables -A INPUT -p tcp --dport 443 -j ACCEPT</p>
<p>#允许http访问服务器,已经存在的链接不断开<br>iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT</p>
<p>#允许已经建立的链接继续通行<br>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT</p>
<p>#允许ping</p>
<p>#iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT</p>
<p>#设置INPUT链默认丢弃<br>iptables -P INPUT DROP</p>
<p>#设置OUTPUT链默认允许<br>iptables -P OUTPUT ACCEPT</p>
<p>#设置默认丢弃FORWARD链<br>iptables -P FORWARD DROP</p>
<p>#防止各种攻击<br>iptables&nbsp;-A&nbsp;FORWARD&nbsp;-p&nbsp;icmp&nbsp;-icmp-type&nbsp;echo-request&nbsp;-m&nbsp;limit&nbsp;-limit&nbsp;1/s&nbsp;-j&nbsp;ACCEPT<br>iptables&nbsp;-A&nbsp;FORWARD&nbsp;-p&nbsp;tcp&nbsp;--tcp-flags&nbsp;SYN,ACK,FIN,RST&nbsp;RST&nbsp;-m&nbsp;limit&nbsp;--limit&nbsp;1/s&nbsp;-j&nbsp;ACCEPT<br><br>iptables&nbsp;-A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;-m&nbsp;state&nbsp;--state&nbsp;ESTABLISHED,RELATED&nbsp;-j&nbsp;ACCEPT<br>iptables&nbsp;-A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;--syn&nbsp;-m&nbsp;limit&nbsp;--limit&nbsp;12/s&nbsp;--limit-burst&nbsp;24&nbsp;-j&nbsp;ACCEPT<br><br>iptables&nbsp;-A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;80&nbsp;-m&nbsp;recent&nbsp;--name&nbsp;BAD_HTTP_ACCESS&nbsp;--update&nbsp;--seconds&nbsp;60&nbsp;--hitcount&nbsp;20&nbsp;-j&nbsp;REJECT&nbsp;<br>iptables&nbsp;-A&nbsp;INPUT&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;80&nbsp;-m&nbsp;recent&nbsp;--name&nbsp;BAD_HTTP_ACCESS&nbsp;--set&nbsp;-j&nbsp;ACCEPT</p>
<p>#允许本机访问192.168.7.2的ftp服务器</p>
<p>iptables -A INPUT -s 192.168.7.2 -p tcp -m multiport --dports 20,21 -m state --state NEW -j ACCEPT<br>iptables -A INPUT -s 192.168.7.2 -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT<br>iptables -A INPUT -s 192.168.7.2 -p tcp -m tcp --dport 30001:31000 -j ACCEPT</p>
<p>#保存iptables<br>service iptables save 或者用iptables-save &gt; /etc/sysconfig/iptables<br>chkconfig iptables on ——添加开机启动<br>service iptables restart——重启iptables服务,其实不需要重启立即生效</p>
<p><br>注意:如果在生产上ssh端口不是默认的22,会导致执行了此脚本后无法连接服务器,为了防止此类事情发生,可以定期执行一个脚本取消iptables运行<br>crontab -e<br><em>/10&nbsp;</em>* /etc/init.d/iptables stop——每十分钟执行停止iptables服务</p>
<p>&nbsp;</p>
<p>查看iptables记录信息</p>
<p><img src="http://i2.51cto.com/images/blog/201712/03/720da829a93a08c7e6a9d6fb2076c2b3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk="></p>
<p>&nbsp;</p>
<p>日志信息查看<br>more /proc/net/nf_conntrack</p>
<p>&nbsp;</p>
<p>=============== End</p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/lsgxeva/p/11504827.html
頁: [1]
查看完整版本: CentOS 6.x 配置iptables