CentOS 防火墙配置



##iptables规则 1. 规则从上向下匹配,如果匹配成功一条规则,则不向下进行匹配(重要) 2. 没有匹配的规则时,执行默认动作 3. 规则存储在内存中,不会自动存储到磁盘,因此重启之后规则就失效了,所以需要使用初始化脚本来保存规则 4. 如果远程管理服务器,比如使用SSH,那么配置规则之前首先添加允许SSH的规则,不然iptables会把你自己阻止在外

##iptable链与处理方式 ###iptable链 * INPUT链 进站数据包的规则 * OUTPUT链 出站数据包的规则 ###处理方式 * ACCEPT 数据包允许通过其到达目的地 * DROP 数据包被拒绝不返回任何信息

查看防火墙

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   

清空防火墙

iptables -F ##实例: ###禁止192.168.1.100通过SSH的22端口了解服务器 iptables -A INPUT -s 192.168.1.100 -p TCP--dport 22 -j DROP |参数|(参数区分大小写)| |:–:|:–:| |-A|追加规则链到底部| |-I|插入规则链到头部| |-s|来源IP| |-d|目的地址(即服务器的IP)| |-D|删除规则| |-p|通信协议(TCP,UDP)| |–dport|目的端口(SSH服务默认使用22)| |–sprot|来源端口| |-j|操作方式(ACCEPT,DROP)| |-i|数据包进入的网卡| |-o|流出数据包的网卡| |-L|查看防火墙规则| |–line-number|带行号显示| |-P|默认规则| |-n|以数字形式显示

默认数据包为允许

iptables -P INPUT ACCEPT

不接收来自192.168.1.100的数据包

iptables -I INPUT -s 192.168.1.100 -j DROP

将来自192.168.100的SSH服务放行

iptables -I INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

允许连接localhost的数据包

iptables -I INPUT -i lo -J ACCEPT

禁止192.168.1.100的ping操作

iptables -A INPUT -s 192.168.1.106 -p icmp -j DROP > 注:–sport –dport必须配合参数-p使用 ##数据包状态

NEW

##附:WEB服务器防火墙规则脚本

IPT="/sbin/iptables"
#删除所有规则
$IPT -F
#默认规则为全部禁⽌
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
#设置当连接状态为RELATED和ESTABLISHED时,允许数据进⼊服务器
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#设置外部客户端连接服务器端⼝80,22,21
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
#允许外部ping服务器
$IPT -A INPUT -p icmp -j ACCEPT
#允许内部数据循回
$IPT -A INPUT -i lo -j ACCEPT
#设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允许访问外部dns服务器
$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
#允许内部数据循回
$IPT -A OUTPUT -o lo -j ACCEPT
#访问外部服务器80, 22, 21端⼝
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT
$IPT -A OUTPUT -p tcp -m tcp --dport 20 -j ACCEPT
#允许ping操作的数据输出
$IPT -A OUTPUT -p icmp -j ACCEPT
#保存重起iptables服务⽣效
service iptables save
service iptables restart
comments powered by Disqus