快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

Linux服务器详细安全配置(2)


# 在input规则中状态为:STATE RELATED 的包都接受  
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
# 启用系统ip转发功能  
echo 1 > /proc/sys/net/ipv4/ip_forward  
< --end-- >  
7.1.3 iptables实例2:  
注:这个实例中,只需要设置tcp、udp端口和服务器网络段ip范围即可,其他已经默认设置好。  
#!/bin/sh  
# make:yongzhang  
# time:2004-06-18  
# e-mail: [email protected]  
PATH=/sbin:/bin:/usr/sbin:/usr/bin  
##tcp allow ports  
TPORTS="80 22"  
##udp allow ports  
UPORTS="53"  
##internal server_ip range  
SERVER_IP="172.18.10.0/24"  
##disable forwarding  
echo 0 > /proc/sys/net/ipv4/ip_forward  
##reset default policies  
iptables -P INPUT ACCEPT  
iptables -P FORWARD ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -t nat -P PREROUTING ACCEPT  
iptables -t nat -P POSTROUTING ACCEPT  
iptables -t nat -P OUTPUT ACCEPT  
##del all iptables rules  
iptables -F INPUT  
iptables -F FORWARD  
iptables -F OUTPUT  
##clean all non-default chains  
iptables -X  
iptables -t nat -X  
##iptables default rules  
iptables -P INPUT DROP  
iptables -P FORWARD DROP  
iptables -P OUTPUT ACCEPT  
##allow ping packets  
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT  
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT  
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT  
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT  
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT  
#iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -m limit --limit 5/s -j ACCEPT  
iptables -A FORWARD -p ICMP -j ACCEPT  
##enable forwarding  
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT  
##STATE RELATED for router  
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  
##accept internal packets on the internal i/f  
iptables -A INPUT -s $SERVER_IP -p tcp -j ACCEPT  
##open ports on router for server/services  
##TCP PORTS  
for ATP in $TPORTS  
do  
iptables -A INPUT ! -s $SERVER_IP -d $SERVER_IP -p tcp --destination-port $ATP -j ACCEPT  
iptables -A FORWARD -p tcp --destination-port $ATP -j ACCEPT  
done  
##UDP PORTS  
for AUP in $UPORTS  
do  
iptables -A INPUT -p udp --destination-port $AUP -j ACCEPT  
iptables -A FORWARD -p udp --destination-port $AUP -j ACCEPT  
done  
##bad_packets chain  
##drop INVALID packets immediately  
iptables -A INPUT -p ALL -m state --state INVALID -j DROP  
##limit SYN flood  
#iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT  
#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT  
##deny all ICMP packets,eth0 is external net_eth  
#iptables -A INPUT -i eth0 -s 0.0.0.0/0 -p ICMP -j DROP  
##allow loopback  
iptables -A INPUT -i lo -p all -j ACCEPT  
iptables -A OUTPUT -o lo -p all -j ACCEPT  
##enable forwarding  
echo 1 > /proc/sys/net/ipv4/ip_forward  
< --end-- >  
7.2 ipchains类型防火墙:  
7.2.1 ipchains概念:  
Ipchains 被用来安装、维护、检查Linux内核的防火墙规则。规则可以分成四类:IP input链、IP output链、IP forward链、user defined 链。  
一个防火墙规则指定包的格式和目标。当一个包进来时, 核心使用input链来决定它的命运。 如果它通过了, 那么核心将决定包下一步该发往何处(这一步叫路由)。假如它是送往另一台机器的, 核心就运用forward链。如果不匹配,进入目标值所指定的下一条链,那有可能是一条user defined链,或者是一个特定值: ACCEPT,DENY,REJECT,MASQ,REDIRECT,RETURN。  
ACCEPT意味着允许包通过,DENY 扔掉包就象没有受到过一样,REJECT也把包扔掉,但(假如它不是 ICMP 包)产生一个 ICMP 回复来告诉发包者,目的地址无法到达(请注意DENY和REJECT对于ICMP包是一样的)。  
  MASQ 告诉核心伪装此包,它只对forward 链和user defined链起作用,想让它起作用, 编译核心时必需让 IP Masquerading 起作用。  
  REDIRECT只对input链和user defined链起作用。它告诉核心把无论应送到何处的包改送到一个本地端口. 只有 TCP 和 UDP 协议可以使用此指定. 任意用 ’-j REDIRECT’ 指定一个端口(名字或编号)可以使送往此的包被重定向到某个特殊的端口, 即使它被标记为送到其它端口。想让它起作用,编译内核时,必须让CONFIG_IP_TRANSPARENT_PROXY起作用。  
  最后的一个目标指定是 RETURN, 它跳过它下面的所有规则, 直到链的末尾。  
  任何其它的目标指定表示一个用户自定义的链。包将在那个链中通过. 假如那个链没有决定此包的命运, 那么在那个链中的传输就完成了,包将通过当前链的下一个规则。  
7.2.2 ipchains实例:  
##清除input规则的规则,并改变input默认的规则链策略为REJECT  
-F input  
-P input REJECT  
##以下是允许input规则链的tcp端口为:80 81 22 123  
-A input -s 0/0 -d 0/0 80 -p tcp -y -j ACCEPT  
-A input -s 0/0 -d 0/0 81 -p tcp -y -j ACCEPT  
-A input -s 0/0 -d 0/0 22 -p tcp -y -j ACCEPT  
-A input -s 0/0 -d 0/0 123 -p udp -j ACCEPT  
##设置除了以上允许的input规则链以为,拒绝0-1023、2049、6000-6009、7100的tcp和upd端口,  
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT  
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT  
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT  
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT  
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT  
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT  
##允许系本身统网卡上发生的所有包通过  
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT  
-A input -s 0/0 -d 0/0 -i eth0 -j ACCEPT  
-A input -s 0/0 -d 0/0 -i eth1 -j ACCEPT  
##清除output规则的规则,并改变output默认的规则链策略为ACCEPT  
-F output  
-P output ACCEPT  
##清除forward规则的规则,并改变forward默认的规则链策略为DENY,设置了forward规则链允许对10.10.11.0/24网段的包可以转发并且做伪装处理。  
-F forward  
-P forward DENY  
-A forward -s 10.10.11.0/24 -j MASQ  
< --end-- > 
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论