您的位置:首页 > 运维架构 > Shell

centos 防火墙 iptables 用shell代码来添加

2016-03-24 11:05 621 查看


centos 防火墙 iptables 用shell代码来添加

|
浏览:501
|
更新:2014-04-22 15:45

百度经验:jingyan.baidu.com

很多时候,添加iptable 防火墙规则的时候,大家都喜欢一条一条的命令打,确实很方便。

不过,我喜欢用shell scripts 来添加,原因是,不容易出错,还可以一直保存着,方便修改等等。

百度经验:jingyan.baidu.com

工具/原料

centos 6.5 系统

iptable

vi 编辑

百度经验:jingyan.baidu.com

方法/步骤

1

#vim bin/firewall.sh

新建一个firewall.sh的用来写shell scripts的文件。

2

往firewall.sh里面输入以下内容,根据自己的服务器端口需要,添加,或者修改一些端口,或者规则。

#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH

# 1. 清除规则

iptables -F

iptables -X

iptables -Z

# 2. 设定政策

iptables -P   INPUT DROP

iptables -P  OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

# 3~5. 制订各项规则

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#SSH的端口,不然远程不了

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#做了FTP服务器,开启21端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 10000:20000 -j ACCEPT

#WEB服务器,开启80端口.

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#邮件服务器,开启25,110端口

#iptables -A INPUT -p tcp --dport 110 -j ACCEPT

#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

#做了DNS服务器,开启53端口

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

#允许loopback!(不然会导致DNS无法正常关闭等问题)

iptables -A INPUT -i lo -p all -j ACCEPT

iptables -A OUTPUT -o lo -p all -j ACCEPT

#允许icmp包通过,也就是允许ping

iptables -A OUTPUT -p icmp -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT

#减少不安全的端口连接

iptables -A OUTPUT -p tcp --sport 31337 -j DROP

iptables -A OUTPUT -p tcp --dport 31337 -j DROP

#samb

iptables -A INPUT -p tcp --dport 137 -j ACCEPT

iptables -A INPUT -p tcp --dport 138 -j ACCEPT

iptables -A INPUT -p tcp --dport 139 -j ACCEPT

iptables -A INPUT -p tcp --dport 445 -j ACCEPT

#iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT

# 6. 写入防火墙规则配置文件

/etc/init.d/iptables save

最后保存退出

3

#chmod 700 /bin/firewall.sh

改一下权限,避免文件被人恶意修改

# sh bin/firewall.sh

来执行命令后,

# service iptables restart

重启iptables 防火墙,也可以把# service iptables restart加到firewall.sh里面的最后地方。这样只要实行# sh bin/firewall.sh就可以了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息