2008年8月25日星期一

在 windows 中为 ruby 程序增加关联

C:\>assoc .rb
.rb=rbFile

C:\>ftype rbfile
rbfile="C:\usr\ruby-1.8\bin\ruby.exe" "%1" %*

C:\>set PATHEXT
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.RB;.RBW

2008年5月20日星期二

使用 sed 清理 iptables-save 的输出

~# iptables-save | sed -e '/^#/d;s/[ \t-]*\[.*\]//'
*mangle
:PREROUTING ACCEPT
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
COMMIT
*raw
:PREROUTING ACCEPT
:OUTPUT ACCEPT
COMMIT
*filter
:INPUT DROP
:FORWARD ACCEPT
:OUTPUT ACCEPT
:syn-flood
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m multiport --dports
22,123,222,1863,443,110,80,25,3389 -j ACCEPT
-A INPUT -p tcp -m multiport --dports
20,21,22,25,53,80,110,143,443,8008,8000,995,8080,7001,7708 -j ACCEPT
-A INPUT -p tcp -m multiport --dports
1080,1863,2401,3690,465,82,4040,8075,8007,8888,8004,7709,4050 -j
ACCEPT
-A INPUT -p tcp -m multiport --dports
81,4052,8180,8280,8380,8096,8001,8002,8003,8006,8007,8009,9083 -j
ACCEPT
-A INPUT -p tcp -m multiport --dports
5080,5061,8082,8084,8089,18080,8087,8086,8083,8095,8096,8097,90 -j
ACCEPT
-A INPUT -p tcp -m multiport --dports
7002,7003,7004,7005,7006,7008,7009,4899,2000,1521,1522,3389,23389 -j
ACCEPT
-A INPUT -p tcp -m multiport --dports
6400,5222,5223,5225,5269,12234,12235,12236,13389,7080,4080,1194 -j
ACCEPT
-A INPUT -p udp -m multiport --dports 53,80,110,443 -j ACCEPT
-A INPUT -i eth0 -p udp -m multiport --dports 53 -j ACCEPT
-A INPUT -p icmp -m limit --limit 3/sec -j LOG --log-prefix "ICMP
packet IN: " --log-level 6
-A INPUT -p icmp -m limit --limit 6/min -j ACCEPT
-A INPUT -p icmp -j DROP
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A FORWARD -s 192.168.2.251 -j ACCEPT
-A FORWARD -m mac --mac-source 00:11:D8:AD:4E:F3 -j DROP
-A FORWARD -m mac --mac-source 00:16:36:06:B8:18 -j DROP
-A FORWARD -m mac --mac-source 00:0F:1F:AA:F2:BE -j DROP
-A FORWARD -p tcp -m multiport --dports 5999,7777 -j ACCEPT
-A FORWARD -p udp -m ipp2p --kazaa --gnu -j DROP
-A FORWARD -p tcp -m ipp2p --xunlei --soul --ares -j DROP
-A FORWARD -m ipp2p --kazaa --edk --bit --pp -j DROP
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
20,21,22,25,53,80,110,143,443,8008,8000,995,8080,7001,7708 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
1080,1863,2401,3690,465,82,4040,8075,8007,8888,8004,7709,4050 -j
ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
81,4052,8180,8280,8380,8096,8001,8002,8003,8006,8007,8009,9083 -j
ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
5080,5061,8082,8084,8089,18080,8087,8086,8083,8095,8096,8097,90 -j
ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
7002,7003,7004,7005,7006,7008,7009,4899,2000,1521,1522,3389,23389 -j
ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p tcp -m multiport --dports
6400,5222,5223,5225,5269,12234,12235,12236,13389,7080,4080,1194 -j
ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p udp -m multiport --dports
53,80,110,123,443 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p gre -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -p icmp -j ACCEPT
-A FORWARD -s 192.168.1.4 -j ACCEPT
-A FORWARD -s 192.168.0.0/255.255.0.0 -j DROP
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
COMMIT
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A PREROUTING -d 210.21.12.120 -j DNAT --to-destination 192.168.2.24
-A PREROUTING -d 210.21.12.121 -j DNAT --to-destination 192.168.2.204
-A PREROUTING -d 210.21.12.122 -j DNAT --to-destination 192.168.2.1
-A PREROUTING -d 210.21.12.117 -p tcp -m tcp --dport 443 -j DNAT
--to-destination 192.168.1.4:443
-A PREROUTING -d 210.21.12.117 -p tcp -m tcp --dport 80 -j DNAT
--to-destination 192.168.1.4:80
-A PREROUTING -d 210.21.12.119 -p tcp -m tcp --dport 80 -j DNAT
--to-destination 192.168.2.22:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 443 -j DNAT
--to-destination 192.168.2.8:443
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 3389 -j DNAT
--to-destination 192.168.2.219:3389
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5222 -j DNAT
--to-destination 192.168.2.28:5222
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8888 -j DNAT
--to-destination 192.168.2.28:7001
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5269 -j DNAT
--to-destination 192.168.2.28:5269
-A PREROUTING -d 210.21.12.116 -p udp -m udp --dport 5225 -j DNAT
--to-destination 192.168.2.28:5225
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8004 -j DNAT
--to-destination 192.168.2.82:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8080 -j DNAT
--to-destination 192.168.1.1:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 12234 -j DNAT
--to-destination 192.168.1.1:12234
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 12235 -j DNAT
--to-destination 192.168.1.1:12235
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 12236 -j DNAT
--to-destination 192.168.1.1:12236
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 25 -j DNAT
--to-destination 192.168.1.3:25
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 110 -j DNAT
--to-destination 192.168.1.3:110
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 143 -j DNAT
--to-destination 192.168.1.3:143
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 465 -j DNAT
--to-destination 192.168.1.3:465
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 995 -j DNAT
--to-destination 192.168.1.3:995
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 80 -j DNAT
--to-destination 192.168.1.3:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7001 -j DNAT
--to-destination 192.168.2.12:7001
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7002 -j DNAT
--to-destination 192.168.2.113:7001
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7080 -j DNAT
--to-destination 192.168.2.12:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8001 -j DNAT
--to-destination 192.168.2.99:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 17443 -j DNAT
--to-destination 192.168.2.177:443
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7005 -j DNAT
--to-destination 192.168.2.177:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7003 -j DNAT
--to-destination 192.168.2.187:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 4080 -j DNAT
--to-destination 192.168.2.187:4080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 2222 -j DNAT
--to-destination 192.168.2.82:22
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8095 -j DNAT
--to-destination 192.168.2.6:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8098 -j DNAT
--to-destination 192.168.2.3:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9080 -j DNAT
--to-destination 192.168.2.50:9080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9083 -j DNAT
--to-destination 192.168.2.222:9083
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5000 -j DNAT
--to-destination 192.168.2.222:5000
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9090 -j DNAT
--to-destination 192.168.2.222:9090
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9081 -j DNAT
--to-destination 192.168.2.50:9081
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9082 -j DNAT
--to-destination 192.168.2.93:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 3690 -j DNAT
--to-destination 192.168.2.118:3690
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5060 -j DNAT
--to-destination 192.168.2.118:5060
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5480 -j DNAT
--to-destination 192.168.2.118:5480
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5481 -j DNAT
--to-destination 192.168.2.118:5481
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 5482 -j DNAT
--to-destination 192.168.2.118:5482
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 222 -j DNAT
--to-destination 192.168.2.10:22
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8084 -j DNAT
--to-destination 192.168.2.10:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 9086 -j DNAT
--to-destination 192.168.2.70:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8097 -j DNAT
--to-destination 192.168.2.128:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 90 -j DNAT
--to-destination 192.168.2.19:90
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8009 -j DNAT
--to-destination 192.168.2.4:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8010 -j DNAT
--to-destination 192.168.2.4:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8092 -j DNAT
--to-destination 192.168.2.118:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 2000 -j DNAT
--to-destination 192.168.2.244:2000
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8002 -j DNAT
--to-destination 192.168.2.244:8002
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8003 -j DNAT
--to-destination 192.168.2.244:8003
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 21 -j DNAT
--to-destination 192.168.0.2:21
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 20 -j DNAT
--to-destination 192.168.0.2:20
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8180 -j DNAT
--to-destination 192.168.2.17:8180
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 4040 -j DNAT
--to-destination 192.168.2.17:4040
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8083 -j DNAT
--to-destination 192.168.2.17:8082
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7006 -j DNAT
--to-destination 192.168.2.113:7002
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8086 -j DNAT
--to-destination 192.168.2.35:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8087 -j DNAT
--to-destination 192.168.2.35:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8280 -j DNAT
--to-destination 192.168.2.195:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8580 -j DNAT
--to-destination 192.168.2.26:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 4050 -j DNAT
--to-destination 192.168.2.26:4050
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8380 -j DNAT
--to-destination 192.168.4.23:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 6400 -j DNAT
--to-destination 192.168.2.195:6400
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 1521 -j DNAT
--to-destination 192.168.2.195:1521
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 13389 -j DNAT
--to-destination 192.168.2.195:3389
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 18080 -j DNAT
--to-destination 192.168.2.226:18080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8089 -j DNAT
--to-destination 192.168.2.116:8082
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 23389 -j DNAT
--to-destination 192.168.2.116:3389
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7008 -j DNAT
--to-destination 192.168.2.113:7008
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8007 -j DNAT
--to-destination 192.168.6.6:80
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 8096 -j DNAT
--to-destination 192.168.2.238:8080
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 1522 -j DNAT
--to-destination 192.168.2.115:1521
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 7009 -j DNAT
--to-destination 192.168.2.33:7001
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 4899 -j DNAT
--to-destination 192.168.2.33:4899
-A PREROUTING -d 210.21.12.116 -p tcp -m tcp --dport 33389 -j DNAT
--to-destination 192.168.2.33:3389
-A PREROUTING -d 210.21.12.117 -p tcp -m tcp --dport 3389 -j DNAT
--to-destination 192.168.0.2:3389
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j SNAT --to-source
210.21.12.116
-A POSTROUTING -d 192.168.2.24 -j SNAT --to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.204 -j SNAT --to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.1 -j SNAT --to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.4 -p tcp -m tcp --dport 443 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.4 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.22 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.8 -p tcp -m tcp --dport 443 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.219 -p tcp -m tcp --dport 3389 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.28 -p tcp -m tcp --dport 5222 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.28 -p tcp -m tcp --dport 7001 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.28 -p tcp -m tcp --dport 5269 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.28 -p udp -m udp --dport 5225 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.82 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.1 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.1 -p tcp -m tcp --dport 12234 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.1 -p tcp -m tcp --dport 12235 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.1 -p tcp -m tcp --dport 12236 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 25 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 110 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 143 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 465 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 995 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.1.3 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.12 -p tcp -m tcp --dport 7001 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.113 -p tcp -m tcp --dport 7001 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.12 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.99 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.177 -p tcp -m tcp --dport 443 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.177 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.187 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.187 -p tcp -m tcp --dport 4080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.82 -p tcp -m tcp --dport 22 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.6 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.3 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.50 -p tcp -m tcp --dport 9080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.222 -p tcp -m tcp --dport 9083 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.222 -p tcp -m tcp --dport 5000 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.222 -p tcp -m tcp --dport 9090 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.50 -p tcp -m tcp --dport 9081 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.93 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 3690 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 5060 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 5480 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 5481 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 5482 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.10 -p tcp -m tcp --dport 22 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.10 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.70 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.128 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.19 -p tcp -m tcp --dport 90 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.4 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.4 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.118 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.244 -p tcp -m tcp --dport 2000 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.244 -p tcp -m tcp --dport 8002 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.244 -p tcp -m tcp --dport 8003 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.0.2 -p tcp -m tcp --dport 21 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.0.2 -p tcp -m tcp --dport 20 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.17 -p tcp -m tcp --dport 8180 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.17 -p tcp -m tcp --dport 4040 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.17 -p tcp -m tcp --dport 8082 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.113 -p tcp -m tcp --dport 7002 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.35 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.35 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.195 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.26 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.26 -p tcp -m tcp --dport 4050 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.4.23 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.195 -p tcp -m tcp --dport 6400 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.195 -p tcp -m tcp --dport 1521 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.195 -p tcp -m tcp --dport 3389 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.226 -p tcp -m tcp --dport 18080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.116 -p tcp -m tcp --dport 8082 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.116 -p tcp -m tcp --dport 3389 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.113 -p tcp -m tcp --dport 7008 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.6.6 -p tcp -m tcp --dport 80 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.238 -p tcp -m tcp --dport 8080 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.115 -p tcp -m tcp --dport 1521 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.33 -p tcp -m tcp --dport 7001 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.33 -p tcp -m tcp --dport 4899 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.2.33 -p tcp -m tcp --dport 3389 -j SNAT
--to-source 192.168.1.2
-A POSTROUTING -d 192.168.0.2 -p tcp -m tcp --dport 3389 -j SNAT
--to-source 192.168.1.2
COMMIT
dns2:~#

2008年3月11日星期二

始作俑者,其无后乎?

上世纪60——70年代我国文物被毁清单,收藏自:
http://lotus-west.blog.hexun.com/17322296_d.html

理性世界应立此存照。彼10年间:

1. 炎帝陵主殿被焚。

2. 仓颉的墓园被毁改造成"烈士陵园"。

3. 山西舜帝陵被毁。

4. 浙江绍兴会稽山大禹庙被拆毁,大禹塑像被砸烂,头颅齐颈部截断,放在平板车上游街
示众。

5. 佛祖释尊自开光八岁等身像被捣毁面目。

6.孔子的坟墓被铲平。孔七十六代孙令贻的坟墓被掘开。

7.和县乌江畔项羽的霸王庙、虞姬庙和虞姬墓被砸成一片废墟,只剩半埋在二里半外露在
地上的石狮子。

8. 霍去病的霍陵打烂,塑像也毁于一旦。

9. 颐和园佛香阁被砸, 大佛被毁。

10. 王阳明文庙和王文成公祠两组建筑包括王阳明的塑像,全部在文革被平毁无遗。

11.太原的新任市委书记砸庙宇。全市一百九十处庙宇古迹,除十几处可保留外,通通毁
掉。他一声令下,一百多处古迹在一天之内全部毁掉。山西省博物馆馆长闻讯赶到芳林寺,
只捡回一包泥塑人头。

12. 医圣张仲景的塑像被捣毁,墓亭、石碑被砸烂。

13.河南南阳诸葛亮的"诸葛草庐"(又名武侯祠)。的'千古人龙'、'汉昭烈皇帝三顾处'、
'文韬武略'三道石坊及人物塑像、祠存明成化年间塑造的十八尊琉璃罗汉全部捣毁,殿宇饰
物砸掉,珍藏的清康熙《龙岗志》、《忠武志》木刻文版焚烧。

14. 汉中勉县"古定军山"石碑,因诸葛亮是"地主份子"而被砸毁。

15. 书圣王羲之的陵墓及占地二十亩的金庭观几乎全部平毁,祗剩下右军祠前几株千年古
柏陪伴书圣失去了居所的亡魂。

16. 文成公主当年亲自主持塑造松赞干布和文成公主二人的塑像,安放觉拉寺。被捣毁。

17. 合肥"包青天"墓毁于一旦。

18. 河南汤阴县中学生将岳飞等人的塑像、铜像,秦桧等"五奸党"的铁跪像,连同历代传
下的碑刻"横扫"殆尽。

19. 杭州青年砸了岳庙,连岳飞的坟也刨了个底朝天。岳武穆被焚骨扬灰。

20. 阿拉腾甘得利草原上的成吉思汗陵园被砸了个稀烂。

21. 朱元璋巨大的皇陵石碑被拉倒;石人石马被炸药炸得缺胳膊少腿;皇城也拆得一干二净。

22. 海南岛的天涯海角,明代名臣海瑞的坟被砸掉。海瑞遗骨挖出游街示众。

23. 湖北江陵名相张居正的墓被红卫兵砸毁。张居正遭焚骨。

24. 北京城内的袁崇焕的坟被夷成了平地。

25. 黎平故里安葬的是明末名臣何腾蛟,他的祠堂中的佛像被扫了个一干二净,而且把黎
平人最引以为荣的何腾蛟的墓给挖了。

26.吴承恩的故居在江苏淮安县河下镇打铜巷。被毁为一片废墟。

27.红卫兵掘开蒲松龄的坟,墓里除了手中一管旱烟筒、头下一迭书外,只有四枚私章。他
们对蒲氏私章不屑一顾,弃之于野。蒲松龄尸体被捣毁。

28. 建于一九五九年的吴/敬梓纪念馆在文/革中被铲平。

29. 山东冠县中学红卫兵在老师带领下,砸开千古义丐武训的墓,武训遗骨抬去游街后焚
烧成灰。

30.张之洞的坟被刨开。张是个清官,墓里没一点珍宝,将张之洞夫妇尸体吊在树上月馀。

31.北京郊区的恩济庄埋有同治、光绪两朝的宫廷大总管李莲英的墓,凿开的墓穴里,只有
头骨,丢进厕所。

32. 河南安阳县明赵简王朱高燧的墓被挖毁。

33. 黑龙江黑河县有座"将军坟","因为属于'帝王将相',也遭到严重的破坏。

34. 宋代诗人林和靖(967-1028)的墓也在被毁之列。

35. 清末章太炎、徐锡麟、秋瑾,乃至"杨乃武与小白菜"冤案中的杨乃武的墓,都在"横扫
一切牛鬼蛇神"的口号声中作了牺牲。

36.一位年轻的中学老师领着一帮初中生以"让保皇派头子出来示众"为由,刨开康氏墓,康
有为遗骨拴上绳子拖着游街示众。

37. 浙江奉化县溪口镇蒋/介石旧居,蒋氏生母的墓被上海的大学生领导的宁波中学生掘
开,其遗骸和墓碑都被丢进了树林。

38. 南漳县为抗日名将张自忠建造的张公祠、张氏衣冠冢和三个纪念亭均被破坏。

39. 杨虎城将军,虽被国民党处决,仍是红卫兵眼中的"国民党反动派",墓及墓碑都砸毁。

40.新疆吐鲁番附近火焰山上的千佛洞的壁画,曾被俄、英、德等贪焚商人盗割,卖到西
方。但那运到国外的壁画毕竟被博物馆珍藏,并未毁掉。而中国人自己干的'破四旧'却重在
一个'破'字:将剩下的壁画中的人物的眼睛挖空,或干脆将壁画用黄泥水涂抹得一塌糊涂,
存心让那些壁画成为废物。

41.山西运城博物馆原是关帝庙。因运城是关羽的出生地,历代修葺保养得特别完好。门前
那对高达六米的石狮子可能是全国最大的。如今,那对狮子被砸得肢体断裂,面目全非;母
狮身上的五只幼狮都砸成了碎石块。

42.安徽霍邸县文庙,雕梁画栋、飞檐翘角,龙、虎、狮、象、鳌等粉彩浮雕皆为精美的工
艺美术品。'房饰浮雕在文化大革命中统被砸毁。'文革后省、县拨款数万修葺,'尚未完全
复原。'山东莱阳文庙,'大成殿雕梁画栋、飞檐斗拱,气势雄伟......文化大革命期间,大
成殿被拆除。'全国四大孔庙之一的吉林市文庙,'破四旧'中严重受损,荒废多年,文革后
历时五年方修复。

43.唐代高僧褒禅结芦安徽含山县花山,死后弟子改山名为褒禅山。宋王安石游览此山,作
《游褒禅山记》后,褒禅山遂名扬四海。因是'四旧',褒禅山大小二塔被炸毁。

44. 全国最大的道教圣地老子讲经台及周围近百座道馆被毁。

45.宋代大文豪欧阳修的《醉翁亭记》经另一宋代大家苏东坡手书,刻石立碑于安徽滁县琅玡
山脚当初欧阳修作文的醉翁亭,至今已近千年。前去革命的小将不仅将碑砸倒,还认真地将
碑上的苏氏字迹凿去了近一半。醉翁亭旁堂内珍藏的历代名家字画更被搜劫一空,从此无人
知其下落。

宁波地区被打成纸浆的明清版的线装古书就有八十吨。

后记:西哈努克来中国, 想去白马寺看中国最著名的古雕塑十八罗汉像, 结果已经被砸
掉。周总理急电叫山西下华岩寺把罗汉拆下来去冒充。

2008年3月7日星期五

tar over ssh

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

tar cf - ports | ssh root@192.168.2.1 "(cd /var/cvsync/OpenBSD; tar xf -)"
tar cf - www | ssh root@192.168.2.1 "(cd /var/cvsync/OpenBSD; tar xf -)"
tar cf - xenocara | ssh root@192.168.2.1 "(cd /var/cvsync/OpenBSD; tar xf -)"
tar cf - src | ssh root@192.168.2.1 "(cd /var/cvsync/OpenBSD; tar xf -)"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iQEVAwUBR9CpKQQBqiBG05f/AQKjaggAonKTBqIWPW45CAyIHxDdI26RMydzmdAf
1jlLVGo9GFM6nxFdUJ+Y04gI8adoZCSFD4OzJ15wU9t+y7W6oJORDuHNyeZG08I3
5g3x9qDpA90dJRvALMTg6kdwemrydhDpjGD18+F/GF7FlxbA9qP3l0H3U9CIYQs+
EjtvFgcdBWq1KbGyYE4cJAUe2np9rllunAZ+cmXQHyuGSIh2MEb1s2RwkZmcFLCO
OuJaxRCokBBQWGl3Quq7xSWcH2Qzt73eE0WOk4FcZK9t9xjISP8rpjdRS4EdFJB8
5vVNwyh+HaCE/fHDxBEfebf31ws1sHnBs4BZN58sgB5KyjYeCiEK9w==
=/pP+
-----END PGP SIGNATURE-----

2008年3月6日星期四

OpenBSD 4.3 的快照下载地址

wget --no-passive-ftp -v -c -t 0 -O OpenBSD-4.3-amd64-`date +%Y%m%d%H%M`.md5 \

ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/amd64/MD5
wget --no-passive-ftp -v -c -t 0 -O OpenBSD-4.3-amd64-`date +%Y%m%d%H%M`.iso \

ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/amd64/install43.iso

wget --no-passive-ftp -v -c -t 0 -O OpenBSD-4.3-i386-`date +%Y%m%d%H%M`.md5 \

ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386/MD5
wget --no-passive-ftp -v -c -t 0 -O OpenBSD-4.3-i386-`date +%Y%m%d%H%M`.iso \

ftp://ftp.openbsd.org/pub/OpenBSD/snapshots/i386/install43.iso

omegat and bitext2tmx

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

http://sourceforge.net/projects/omegat

OmegaT® is a free and open source multiplatform Computer Assisted
Translation tool with fuzzy matching, translation memory, keyword
search, glossaries, and translation leveraging into updated projects.


http://sourceforge.net/projects/bitext2tmx/

Bitext2tmx is a cross-platform Java application to align bitext (of a
corresponding original text and its translation) and generate a TMX
translation memory for use in computer-assisted translation.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)

iQEVAwUBR89Q8gQBqiBG05f/AQK7ZggA0vWnOoe643SLzu+Kl4ZNpJPVut72xWPr
Xot4X+ImylkZbK6QItoKOkeN8QHeWCRhYXEKyMxkED9A9t1itFlkEyNBl+9RjXTw
xB0YL1uJramfdxBSTwyZiglOYpr2tj/xt4xnj4phEQrtxThasWWpaG6s8NQ4KDsR
HgysDtjkBE+rsbCCLKUJYoCDsEXANclnC6moEOjyXmLTD+LwkM/wNYN4n0lyLU7/
3tBiHElD1vqFW+VNWJgx1D7+kOaGX7NuBCv6oLcJmShucEQcfu4BIpLSqLtpn6Mz
Jpd8q8HxLyZKTckMyGuTgcuDQPErXCxyWdAiW/P3YrIi/LvrqaMXJA==
=ZzKf
-----END PGP SIGNATURE-----

2008年2月21日星期四

some converter tools

some converter tools

highlight - An universal source code to formatted text converter
html2text - An advanced HTML to text converter
src2tex - A converter from source program files to TeX format files
mhonarc - Mail to HTML converter
libhtml-clean-perl: /usr/bin/htmlclean

checkbox - test plain for mutt

<table width="100%">
<tr class=tablelist_tr>
<td align="center" class=tt><input value="全选" type="button" onclick="setAll()"></td>
<td align="center" class=tt><input value="清除" type="button" onclick="clsAll()"><br></td>
</tr>
<tr class=tablelist_tr>
<td align="center" class=tt><input id="g11" type="checkbox">g11<br></td>
<td align="center" class=tt><input id="g12" type="checkbox">g12<br><br></td>
</tr>
<tr class=tablelist_tr>
<td align="center" class=tt><input id="g21" type="checkbox">g21<br></td>
<td align="center" class=tt><input id="g22" type="checkbox">g22<br><br></td>
</tr>
<tr class=tablelist_tr>
<td align="center" class=tt><input id="g31" type="checkbox">g31<br></td>
<td align="center" class=tt><input id="g32" type="checkbox">g32<br><br></td>
</tr>
<tr class=tablelist_tr>
<td align="center" class=tt><input value="全选" type="button" onclick="setAll()"></td>
<td align="center" class=tt><input value="清除" type="button" onclick="clsAll()"><br></td>
</tr>
</table>
<br>

<script>
function setAll() {
var cs = document.getElementsByTagName("input");
for(var i = 0; i < cs.length; i++) {
if(cs[i].type == "checkbox") {
cs[i].checked=true;
}
}
}
function clsAll() {
var cs = document.getElementsByTagName("input");
for(var i = 0; i < cs.length; i++) {
if(cs[i].type == "checkbox") {
cs[i].checked=false;
}
}
}
</script>

checkbox - test html for mutt


g11
g12

g21
g22

g31
g32



function setAll() { var cs = document.getElementsByTagName("input"); for(var i = 0; i < type ="=" checked="true;" cs =" document.getElementsByTagName(" i =" 0;" type ="=" checked="false;">

2008年2月19日星期二

Use wicket from maven2

Use wicket from maven2

mvn archetype:create -DarchetypeGroupId=org.apache.wicket
-DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.3.1
-DgroupId=org.g11n -DartifactId=wqs

2008年2月17日星期日

mutt 与 gpg 数字签名邮件

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (OpenBSD)

iQEcBAEBAgAGBQJHt89uAAoJEAQBqiBG05f/gjoH/jG6ZABGYnGCWXPhIYQyrQJU
pkHJlBCExxg1kYw9Ig04wfx05secy28mcSQjSEds/TTBqhh0VGC04ZGg0j8N9aBn
NWYtV+gIRDgrqtcUPyQVcTh/3lWwl+/IFVGVnsga+R8pSpnXyxgO4i/eGZXMcG5l
tU3hHp4L7G6u8I1NkB8DtQEc0SVzgWvutaxrktGKTpHhS7izmZRIUsbPdyF16Z3a
DazpAzYYMwaJk4hjNYNyeKm9T3TUfNlG/i9h6vecvQ12iBZ5n+SpOnU2yktgdoxx
3O6ESM5WFmN8Z9AZmZcQ8sWUjEyqV94fSAHYXDwcZArqwkWmWY3NEESlwg7V4d4=
=9iyr
-----END PGP SIGNATURE-----
默认的 mutt 数字签名邮件,在 gmail 中显示为附件 noname,在 live/hotmail
中显示为附件 ATT*.DAT。这个非常不直观/美观,如果能象 Enigmail 等显示为
附件 signature.asc 就好了。下面是我基于
Sertaç Ö. Yıldız <sertac.liste@gmail.com> 的补丁给出的解决方案:

http://marc.info/?l=mutt-users&m=120315252214068&w=3

$OpenBSD$
--- pgp.c.orig Wed Apr 25 04:12:16 2007
+++ pgp.c Sat Feb 16 16:15:36 2008
@@ -35,6 +35,7 @@
#include "pgp.h"
#include "mime.h"
#include "copy.h"
+#include "rfc2047.h" /* for content-description */

#include <sys/wait.h>
#include <string.h>
@@ -1104,9 +1105,13 @@ BODY *pgp_sign_message (BODY *a)
t->type = TYPEAPPLICATION;
t->subtype = safe_strdup ("pgp-signature");
t->filename = safe_strdup (sigfile);
- t->use_disp = 0;
- t->disposition = DISPINLINE;
+ t->use_disp = 1;
+ t->disposition = DISPATTACH;
t->encoding = ENC7BIT;
+ t->d_filename = safe_strdup ("signature.asc");
+ t->description = safe_strdup (_("Digital Signature"));
+ rfc2047_encode_string (&t->description);
+ mutt_set_parameter ("name", "signature.asc", &t->parameter);
t->unlink = 1; /* ok to remove this file after sending. */

return (a);


$OpenBSD$
--- crypt-gpgme.c.orig Fri Jul 27 03:43:39 2007
+++ crypt-gpgme.c Sat Feb 16 16:15:14 2008
@@ -34,6 +34,7 @@
#include "copy.h"
#include "pager.h"
#include "sort.h"
+#include "rfc2047.h" /* for content-description */

#include <sys/wait.h>
#include <string.h>
@@ -893,13 +894,19 @@ static BODY *sign_message (BODY *a, int use_smime)
t->use_disp = 1;
t->disposition = DISPATTACH;
t->d_filename = safe_strdup ("smime.p7s");
+ t->description = safe_strdup (_("Digital Signature"));
+ rfc2047_encode_string (&t->description);
}
else
{
t->subtype = safe_strdup ("pgp-signature");
- t->use_disp = 0;
- t->disposition = DISPINLINE;
+ mutt_set_parameter ("name", "signature.asc", &t->parameter);
+ t->use_disp = 1;
+ t->disposition = DISPATTACH;
t->encoding = ENC7BIT;
+ t->d_filename = safe_strdup ("signature.asc");
+ t->description = safe_strdup (_("Digital Signature"));
+ rfc2047_encode_string (&t->description);
}
t->filename = sigfile;
t->unlink = 1; /* ok to remove this file after sending. */

2008年2月3日星期日

OpenBSD with CVSup

#
# cvsup -L1 cvsup.conf
#

# Defaults that apply to all the collections
*default host=rt.fm
#*default host=wiretapped.net
#*default host=mirror.osn.de

*default compress
*default base=/home/dongsheng/wc prefix=/home/dongsheng/wc/repo
*default umask=002 release=cvs delete use-rel-suffix

OpenBSD-ports
OpenBSD-src
OpenBSD-www
OpenBSD-xenocara

OpenBSD with CVSync

$ cat /etc/cvsync.conf
#
# cvsync -v cvsync.conf
#
config {
hostname cvsync.de.openbsd.org
compress
protocol ipv4

collection {
name openbsd-ports release rcs
prefix /home/dongsheng/wc/repo
errormode fixup
umask 002
}

collection {
name openbsd-src release rcs
prefix /home/dongsheng/wc/repo
errormode fixup
umask 002
}

collection {
name openbsd-www release rcs
prefix /home/dongsheng/wc/repo
errormode fixup
umask 002
}

collection {
name openbsd-xenocara release rcs
prefix /home/dongsheng/wc/repo
errormode fixup
umask 002
}
}

2008年1月31日星期四

mutt 使用 msmtp 发送电子邮件的典型配置

$ cat .msmtprc
defaults
auto_from off
from testuser@gmail.com
tls_certcheck off
logfile ~/.msmtplog

account gmail
host smtp.gmail.com
tls on
auth on
port 587
user testuser
password xxxxxxxx

account default: gmail

$ cat .muttrc
charset-hook !utf-8 gb18030

set sendmail="/usr/local/bin/msmtp -d"
set realname="Real Name"
set from="testuser@gmail.com"
set use_from=yes

对 mutt 1.5 不能正确处理发件人的愤慨

为了调试,我的 mutt 1.5.17 配置极为简单,按照官方文档配置后,发件人就是不对,
怎么调整都得不到发件人是"Real Name <Real.Name@gmail.com>"的结果,仍旧是
"Real.Name@gmail.com"!换用 mutt 1.4.2.3 之后,居然完全正确!

charset-hook !utf-8 gb18030

set sendmail="/usr/local/bin/msmtp -d"
set realname="Real Name"
set from="Real.Name@gmail.com"
set use_from=yes

看来我只好依旧使用 mutt 1.4 ,等待其发布稳定版本 1.6 了!