一个简单的iptable的应用

最近负责网站的华3的防火墙总是出问题,具体的表现就是外网通过防火墙访问网站不通,但是在内网,直接访问有时正常的,初步定在防火墙的NAT的链接数的限制问题,估计一时半会搞不好,我就直接把网站放在公网了,顺便用iptable写了一个简单的包过滤的规则,如下:

#!/bin/bash
SYSCTL="/sbin/sysctl -w"
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/ip_forward
else
$SYSCTL net.ipv4.ip_forward="1"
fi

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
else
$SYSCTL net.ipv4.tcp_syncookies="1"
fi

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
else
$SYSCTL net.ipv4.conf.all.rp_filter="1"
fi

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
else
$SYSCTL net.ipv4.icmp_echo_ignore_broadcasts="1"
fi

if [ "$SYSCTL" = "" ]
then
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
else
$SYSCTL net.ipv4.conf.all.accept_source_route="0"
fi

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
else
$SYSCTL net.ipv4.conf.all.secure_redirects="1"
fi

if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
else
$SYSCTL net.ipv4.conf.all.log_martians="1"
fi


#IP
echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo "1" > /proc/sys/net/ipv4/conf/eth0/log_martians
# ddos
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/tcp_synack_retries
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_backlog

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F

iptables -A INPUT -p tcp -d 192.168.1.100 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.100 --sport 22 -j ACCEPT
iptables -A INPUT -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.100 --sport 80 -j ACCEPT
iptables -A INPUT -p tcp -d WAN_IP --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -s WAN_IP --sport 80 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 1521 -j ACCEPT
iptables -A INPUT -p tcp --sport 1521 -j ACCEPT
#DNS
#iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -A INPUT -p udp --sport 53 -j ACCEPT
# LO loop interface
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -d 192.168.1.100 -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -d 0.0.0.0/0 -j ACCEPT
#FTP enable

iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

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

iptables -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT

#ip route add 10.1.0.0/16 via 10.1.2.1 dev eth0

iptables -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 30/m --limit-burst 2 -j ACCEPT


iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP


iptables -A INPUT -p tcp --dport 1024:65000 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65000 -j ACCEPT

iptables -L -n --line-number -v -x

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


目前看来还比较问题,btw,要是blog能支持代码就好了 :)

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8432937/viewspace-1028825/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8432937/viewspace-1028825/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值