LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: zoes

iptable做的代理,但不能用MSN的语音

[复制链接]
发表于 2004-4-14 12:35:10 | 显示全部楼层
我没试过语音,不过视频可以,squid + iptables透明代理
发表于 2004-4-15 20:35:48 | 显示全部楼层
最初由 hgkrt 发表
我没这么做,也可以MSN的语音了。。。视频也行。。

MSN6.0以上好像解决了upnp的问题。。


你是怎么解决的呢?说下经验!
 楼主| 发表于 2004-4-17 16:13:00 | 显示全部楼层
顶上去
发表于 2004-4-18 03:17:36 | 显示全部楼层
这是我的iptable...

没作啥,就可以msn了...


  1. #!/bin/sh
  2. #
  3. # firewall        starting firewall
  4. #
  5. # chkconfig: 2345 98 01
  6. # description: setting firewall
  7. ##########################################################################
  8. # 设定参数
  9. ##########################################################################
  10. INNER_NET=192.168.1.0/24                # LAN 局域网 自由设定
  11. FWALL_IP=192.168.1.1                        # 防火墙的IP 你的机器的真实IP
  12. INNER_PORT=eth1                                # 局域网端IP
  13. OUTER_PORT=ppp0                                # Wan端IP
  14. IPTABLES="/sbin/iptables"                # iptables 命令
  15. MODPROBE="/sbin/modprobe"                # modprobe 命令
  16. ##########################################################################
  17. # 模块的加载和设定为内核工作
  18. ##########################################################################
  19. $MODPROBE ip_tables
  20. $MODPROBE iptable_filter
  21. $MODPROBE ip_conntrack
  22. $MODPROBE iptable_nat
  23. $MODPROBE ip_nat_ftp
  24. $MODPROBE ip_conntrack_ftp
  25. $MODPROBE ipt_state
  26. $MODPROBE ipt_MASQUERADE
  27. $MODPROBE ipt_LOG
  28. $MODPROBE ipt_REJECT
  29. $MODPROBE ipt_limit
  30. # 允许IP masquerade(变换)
  31. echo 1 > /proc/sys/net/ipv4/ip_forward
  32. # 忽视ping的broadcast
  33. echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  34. # 检查源IP
  35. for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done
  36. # 记录不可能的(虚假)IP
  37. for f in /proc/sys/net/ipv4/conf/*/log_martians; do echo "1" > $f; done
  38. # 忽视ICMP redirect message
  39. for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do echo 1 > $f; done
  40. ##########################################################################
  41. # 初始化规则
  42. ##########################################################################
  43. $IPTABLES -P INPUT DROP                # 清空INPUT原始定义
  44. $IPTABLES -P OUTPUT DROP        # 清空OUPUT原始定义
  45. $IPTABLES -P FORWARD DROP        # 清空FORWARD原始定义
  46. $IPTABLES -F                        # flash chain
  47. $IPTABLES -F -t nat
  48. $IPTABLES -X                        # 删除用户定义的Chain
  49. ##########################################################################
  50. # 用户定义的chain
  51. ##########################################################################
  52. #
  53. # 记录并丢弃非法的包
  54. #
  55. $IPTABLES -N DROPPACKET                # DROPPACKT chain的生成
  56. $IPTABLES -A DROPPACKET -j LOG --log-prefix "INVALID_PACKET: " \
  57.         --log-level=3 -m limit --limit 1/s --limit-burst 10
  58. $IPTABLES -A DROPPACKET -j DROP
  59. #
  60. # 检查SYNFlood攻击的chain
  61. #
  62. $IPTABLES -N SYNFLOOD                # SYNFLOOD chain的生成
  63. # 没有超过限定值的话返回
  64. $IPTABLES -A SYNFLOOD -m limit --limit 10/s --limit-burst 20 -j RETURN
  65. # 超过限定值,就视为SYNFLOOD攻击,记录并丢弃
  66. $IPTABLES -A SYNFLOOD -m limit --limit 1/s --limit-burst 10 -j LOG \
  67.         --log-level=1 --log-prefix "SYNFLOOD: "
  68. $IPTABLES -A SYNFLOOD -j DROP
  69. #
  70. # 记录非法的Flag TCP,并丢弃
  71. #
  72. $IPTABLES -N DROPFLAGS                # DROPFLAGS chain的生成
  73. $IPTABLES -A DROPFLAGS -j LOG --log-prefix "INVALID_FLAGS: " \
  74.         --log-level=3 -m limit --limit 1/s --limit-burst 10
  75. $IPTABLES -A DROPFLAGS -j DROP
  76. #
  77. # 检查TCP Flag的非法组合
  78. #
  79. $IPTABLES -N CHKFLAGS
  80. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ACK,FIN FIN -j DROPFLAGS
  81. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ACK,PSH PSH -j DROPFLAGS
  82. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ACK,URG URG -j DROPFLAGS
  83. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags FIN,RST FIN,RST -j DROPFLAGS
  84. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROPFLAGS
  85. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags SYN,RST SYN,RST -j DROPFLAGS
  86. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ALL ALL -j DROPFLAGS
  87. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ALL NONE -j DROPFLAGS
  88. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ALL FIN,PSH,URG -j DROPFLAGS
  89. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROPFLAGS
  90. $IPTABLES -A CHKFLAGS -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROPFLAGS
  91. #
  92. # 拒绝 Microsoft 网络相关的FORWARD
  93. #
  94. $IPTABLES -N CHKMSNET
  95. $IPTABLES -A CHKMSNET -p tcp --dport 42 -j DROP                # wins dup
  96. $IPTABLES -A CHKMSNET -p tcp --dport 135 -j DROP        # MS-RPC
  97. $IPTABLES -A CHKMSNET -p udp --dport 135 -j DROP        # MS-RPC
  98. $IPTABLES -A CHKMSNET -p udp --dport 137:138 -j DROP        # MS browse
  99. $IPTABLES -A CHKMSNET -p udp --dport 137:138 -j DROP        # MS browse
  100. $IPTABLES -A CHKMSNET -p tcp --dport 139 -j DROP        # SMB
  101. $IPTABLES -A CHKMSNET -p tcp --dport 445 -j DROP        # DHSMB

  102. ##########################################################################
  103. # INPUT Chain
  104. ##########################################################################
  105. # Localhost的话,全部许可
  106. $IPTABLES -A INPUT -i lo -j ACCEPT
  107. # 检查包的正确性
  108. $IPTABLES -A INPUT -m state --state INVALID -j DROPPACKET
  109. # 检查包是否是SYN攻击
  110. $IPTABLES -A INPUT -p tcp --syn -j SYNFLOOD
  111. # TCP FLAG的检查
  112. $IPTABLES -A INPUT -p tcp -j CHKFLAGS
  113. # 许可LAN内的连接
  114. $IPTABLES -A INPUT -i $INNER_PORT -s $INNER_NET -j ACCEPT
  115. # 许可已经建立的连接
  116. $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  117. # 检查是否是IP伪装
  118. $IPTABLES -A INPUT -i $OUTER_PORT -s $INNER_NET -j DROP
  119. #
  120. # 许可的服务(对外部公开的服务,在下面记述)
  121. #
  122. $IPTABLES -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT        # SSH
  123. $IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT        # HTTP
  124. $IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT        # HTTPS
  125. $IPTABLES -A INPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT        # DOMAIN(DNS)
  126. $IPTABLES -A INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT        # DOMAIN(DNS)
  127. # 拒绝AUTH请求
  128. $IPTABLES -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
  129. # icmp (IN)
  130. $IPTABLES -A INPUT -p icmp --icmp-type echo-request -s $INNER_NET -j ACCEPT
  131. $IPTABLES -A INPUT -p icmp --icmp-type echo-reply -s $INNER_NET -j ACCEPT
  132. $IPTABLES -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
  133. $IPTABLES -A INPUT -p icmp --icmp-type source-quench -j ACCEPT
  134. $IPTABLES -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
  135. $IPTABLES -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
  136. # 除了上面以外所有的包,都记录下来,并通过Default Policy丢弃
  137. $IPTABLES -A INPUT -j LOG --log-prefix "UNDEFIND_INPUT: " \
  138.         --log-level=3 -m limit --limit 1/s --limit-burst 10

  139. ##########################################################################
  140. # OUTPUT Chain
  141. ##########################################################################
  142. # 许可由localhost出来的包
  143. $IPTABLES -A OUTPUT -o lo -j ACCEPT
  144. # TCP FLAG的检查
  145. $IPTABLES -A OUTPUT -p tcp -j CHKFLAGS
  146. # 许可从服务器到Lan的连接
  147. $IPTABLES -A OUTPUT -o $INNER_PORT -s $FWALL_IP -j ACCEPT
  148. # 检查Microsoft网络
  149. $IPTABLES -A OUTPUT -j CHKMSNET
  150. # 许可已经连接的包
  151. $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  152. # 许可由服务器到互联网的新加连接
  153. $IPTABLES -A OUTPUT -m state --state NEW -j ACCEPT
  154. # icmp(OUT)
  155. $IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
  156. $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
  157. $IPTABLES -A OUTPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
  158. $IPTABLES -A OUTPUT -p icmp --icmp-type fragmentation-needed -j ACCEPT
  159. $IPTABLES -A OUTPUT -p icmp --icmp-type source-quench -j ACCEPT
  160. $IPTABLES -A OUTPUT -p icmp --icmp-type parameter-problem -j ACCEPT
  161. # 除了上面以外所有的包,都记录下来,并通过Default Policy丢弃
  162. $IPTABLES -A OUTPUT -j LOG --log-prefix "UNDEFIND_ICMP: " --log-level=3 \
  163.         -m limit --limit 1/s --limit-burst 10

  164. ##########################################################################
  165. # IP变换
  166. ##########################################################################
  167. # 检查Microsoft网络
  168. $IPTABLES -A FORWARD -j CHKMSNET
  169. # 许可Lan内机器的IP变换
  170. $IPTABLES -t nat -A POSTROUTING -o $OUTER_PORT -s $INNER_NET -j MASQUERADE
  171. # 从外部到Lan的连接,许可已经连接的FROWARD
  172. $IPTABLES -A FORWARD -i $OUTER_PORT -o $INNER_PORT -d $INNER_NET -m state \
  173.         --state ESTABLISHED,RELATED -j ACCEPT
  174. # 许可LAN到外部的连接
  175. $IPTABLES -A FORWARD -i $INNER_PORT -o $OUTER_PORT -s $INNER_NET -m state \
  176.         --state NEW,ESTABLISHED,RELATED -j ACCEPT
  177. exit 0
复制代码
发表于 2004-4-18 12:36:19 | 显示全部楼层
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MQUERADE

我的一句就可以,可以msn语音,有其他问题 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表