当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 刚写的 iptables 规则
帖子发表于 : 2008-03-09 22:39 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
http://paste.ubuntu.org.cn/5369

大家帮忙看看有什么可改进

代码:
#!/bin/bash -e
export PATH=/bin:/usr/bin:/sbin:/usr/sbin

if [ $UID != 0 ]
then
        echo please run me as root. 1>&2
        exit 1
fi


################################################################################

chain_clean() {
        echo Cleaning iptables chains...
        for table in filter nat mangle
        do
                iptables -t $table -F
                iptables -t $table -X
        done
}

chain_show() {
        echo Listing chains...
        for table in filter nat mangle
        do
                echo ==================== Table : $table ====================
                iptables -t $table -L -v -n --line-numbers
                echo
        done
}

chain_init() {
        # filter
        iptables -P INPUT DROP
        iptables -P FORWARD DROP
        iptables -P OUTPUT DROP
        iptables -N IReject
        setup_IReject
        # nat
        iptables -t nat -P PREROUTING ACCEPT
        iptables -t nat -P POSTROUTING ACCEPT
        iptables -t nat -P OUTPUT ACCEPT
        # mangle
        iptables -t mangle -P PREROUTING ACCEPT
        iptables -t mangle -P INPUT ACCEPT
        iptables -t mangle -P FORWARD ACCEPT
        iptables -t mangle -P OUTPUT ACCEPT
        iptables -t mangle -P POSTROUTING ACCEPT
}

setup_IReject () {
        # 迷惑敌人
        # iptables -A IReject -j LOG -s ! 192.168.6.0/24 --log-prefix "FIREWALL:IReject "
        iptables -A IReject -j LOG --log-level 4 --log-prefix "FIREWALL:IReject "
        iptables -A IReject -p tcp -j REJECT --reject-with tcp-reset
        iptables -A IReject -p udp -j REJECT --reject-with icmp-port-unreachable
        iptables -A IReject -p icmp -j REJECT --reject-with icmp-port-unreachable
        iptables -A IReject -j DROP
}

################################################################################

ban_pub() {
        # 这里屏蔽永远也用不到的机器
        for i in "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16"
        do
                iptables -A INPUT -s "$i" -j IReject
                iptables -A OUTPUT -d "$i" -j DROP
        done
}

allow_gate() {
        # 需要ping网关测试网络
        route -n | tail -n +3 |\
        while read line
        do
                gateway=`echo $line | awk '{print $2}'`
                eth=`echo $line | awk '{print $8}'`
                if [ ${gateway##*.} -ne 0 ] # 有效的网关
                then
                        i=`ip addr | grep "^.: $eth: " -A2 | awk 'BEGIN { FS = "[ /]+" } /inet/{print $3}'`
                        iptables -A OUTPUT -o $eth -s $i       -d $gateway -j ACCEPT
                        iptables -A INPUT  -i $eth -s $gateway -d $i -m state --state ESTABLISHED,RELATED -j ACCEPT
                fi
        done
}

getmyip() {
        ip addr | grep "^.: $1: " -A2 | awk 'BEGIN { FS = "[ /]+" } /inet/{print $3}'
}

allow() {
        #lo
        iptables -A OUTPUT -o lo -s localhost -d localhost -j ACCEPT
        iptables -A INPUT  -i lo -s localhost -d localhost -j ACCEPT

        #eth0
        iptables -A OUTPUT -o eth0 -s `getmyip eth0` -j ACCEPT
        iptables -A INPUT  -i eth0 -d `getmyip eth0` -m state --state ESTABLISHED,RELATED -j ACCEPT

}

################################################################################

main() {
        chain_clean
        chain_init

        allow_gate
        ban_pub

        allow

        # 剩下的 INPUT 统统拒绝..
        iptables -A INPUT -j IReject

        iptables -A OUTPUT -j LOG --log-level 4 --log-prefix "FIREWALL:OUTPUT "
        chain_show
}
main


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


最后由 BigSnake.NET 编辑于 2008-03-11 20:18,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-03-09 23:31 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
先占个座,有时间慢慢研究一下


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-03-11 20:15 
头像

注册: 2007-05-06 8:19
帖子: 7433
送出感谢: 0 次
接收感谢: 4
想知道流速控制是怎样描述的


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-03-11 20:16 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
冲浪板 写道:
想知道流速控制是怎样描述的

没有流速控制


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-03-11 20:33 

注册: 2007-11-27 22:20
帖子: 444
送出感谢: 0 次
接收感谢: 0 次
好像看不大懂。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-03-11 21:34 
头像

注册: 2007-05-06 2:46
帖子: 15634
送出感谢: 0 次
接收感谢: 2
看看有什么可学习学习


折腾了一下,好不容易才通过端口检测,

请问如何隐蔽IP地址

:lol:


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-03-25 3:20 
头像

注册: 2006-09-10 22:36
帖子: 10663
地址: 北京
送出感谢: 1
接收感谢: 16
顶起来看~~~


_________________
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译