shell for循环案例:自动批量添加iptables应用端口规则

shell for循环案例:自动批量添加iptables应用端口规则

#####################################################

##如有转载,请务必保留本文链接及版权信息

##欢迎广大运维同仁一起交流linux/unix网站运维技术!

##QQ:335623998

##E-mail:335623998@qq.com

#####################################################

文档信息:

文档版本:Version 1.0

修改记录: 2013-04-17

系统环境:CentOS 6.3 64bit

格式约定:

灰色底黑色加粗:为输入的系统命令部分

灰色底:输入的系统命令返回的信息或者配置文件文本信息

绿色底:技巧或需要注意的注释信息

粉色底:需特别注意的地方

蓝色字体:内容注释

前言

系统环境

CentOS release 6.3 (Final)

命令优化历程

历程1:一条将TCP服务端口加入iptables命令如下:

for i in `netstat -anltp|awk ‘{print $5}’|awk -F : ‘{print $2}’ |sort -n|uniq|egrep -v ‘\*|^$’`; do sed -i "4a`echo"-A INPUT -p tcp -m tcp –dport $i -j ACCEPT"`" /etc/sysconfig/iptables; done;sed -i ‘4a#tcp port’ /etc/sysconfig/iptables;/etc/init.d/iptables restart

历程2:为了取端口更精准进行优化后的命令:

for i in `netstat -anlt|awk'{print $4}’|sed -e ‘1,2d’|awk -F : ‘{print $NF}’|sort -n|uniq`; do sed -i "5a`echo"-A INPUT -p tcp -m tcp –dport $i -j ACCEPT"`"/etc/sysconfig/iptables; done && /etc/init.d/iptables restart && iptables -vnL && sed -i ‘5a#tcp port’ /etc/sysconfig/iptables

此条命令先查询到监听端口、生成iptables规则、使用sed附加规则到第5行以后并加注释,再重启服务及查询规则。

这个我觉得还不够适应于生产应用,为什么呢,我的环境是线上应用且已经有一些iptables规则,如果往iptables配置文件直接插入是需要重启服务生效这会对应用有些影响。

历程3:

进一步优化后的命令,推荐:

for port in `netstat -anlt|awk'{print $4}’|sed -e ‘1,2d’|awk -F : ‘{print $NF}’|sort -n|uniq`; do iptables -I INPUT -p tcp -m tcp –dport $port -j ACCEPT ; done&& /etc/init.d/iptables save&& iptables -vnL &&sed -i ‘5a#tcp port rule’ /etc/sysconfig/iptables

本条shell命令的功能:

1、查询目前提供服务的TCP端口,并进行数字排序、去除重复端口

2、根据查询到的服务端口使用命令插入iptables允许规则

3、使用sed增加注释插入指定行

4、保存iptables配置

详细讲解这条命令:

1、查询到的端口内容格式

# netstat -anltp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:6182 0.0.0.0:* LISTEN 17892/mtasvr

tcp 0 0 0.0.0.0:6150 0.0.0.0:* LISTEN 17879/session

tcp 0 0 0.0.0.0:6151 0.0.0.0:* LISTEN 17879/session

tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 1847/snmpd

…………

业精于勤,荒于嬉;行成于思,毁于随。

shell for循环案例:自动批量添加iptables应用端口规则

相关文章:

你感兴趣的文章:

标签云: