CentOS 6.x下防火墙设置

日期:2015年06月03日 作者: 分类:运维 浏览:3352

1351425420-0

iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。

下面是一段在CentOS 6.x下iptables的初始化设置脚本:

#!/bin/bash

# 打开有状态检测的端口,如22
function open_state_port() {
    PORT=$1
    PROTOCOL=$2
    iptables -A INPUT -p $PROTOCOL --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p $PROTOCOL --sport $PORT -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -p $PROTOCOL --dport $PORT -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A INPUT -p $PROTOCOL --sport $PORT -m state --state ESTABLISHED -j ACCEPT
}

# 打开普通的端口
function open_normal_port() {
    PORT=$1
    PROTOCOL=$2
    iptables -A INPUT -p $PROTOCOL --dport $PORT -j ACCEPT
    iptables -A OUTPUT -p $PROTOCOL --sport $PORT -j ACCEPT
    iptables -A OUTPUT -p $PROTOCOL --dport $PORT -j ACCEPT
    iptables -A INPUT -p $PROTOCOL --sport $PORT -j ACCEPT
}

# 1. 清除所有规则
iptables -F
iptables -X

# 2. 允许本地回环地址通过防火墙
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT

# 3. 允许ping打开
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

# 4. SSH访问控制打开
open_state_port 22 tcp
open_state_port 80 tcp

# 5. 配置默认策略为DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# 6. DNS解析开放
open_normal_port 53 udp

# 7. MySQL端口开放
open_normal_port 3306 tcp

# 8. 防DoS攻击
iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

最后记得保存iptables规则并重新载入iptables规则,使防火墙生效

service iptables save
service iptables reload

 

标签:,

除非注明,戊辰人博客文章均为原创,转载请以链接形式标明本文地址

本文地址:https://wanglu.info/2015/06/709.html