TA的每日心情 | 无聊 2015-1-16 14:36 |
---|
签到天数: 3 天 [LV.2]偶尔看看I
|
2楼
楼主 |
发表于 2003-8-14 22:38:00
|
只看该作者
(接上)
2 E1 G* }/ |$ Z1 @& g! g#adslip.sh 是一个自动检测ADSL分配的IP地址和利用这个IP地址动态创建IPFILTER过: P2 x& S& S) p) \ H. H
#滤规则的脚本。
8 K0 B4 d/ _+ {0 `/ B#使用方法:5 q+ R& f/ B& T. w4 [* G
#步骤一:要确定使用adslip.sh脚本的服务器能正常使用ADSL拨号和IPFILTER能正常运
. }& ~& n! ^" m#行。: i4 h& n0 D5 H4 S
#步骤二:把adslip.sh脚本修改成你的实际网络情况。修改如下:
( K, M" D6 T6 E4 m y$ C5 b#内部网卡设备号、内部网段、服务器IP地址、ADSL拨号网络设备号或自己增加网络设备
) R( F5 q! f& E" l& T2 J#和相应的过滤规则。$ K7 [! P. E$ n5 D/ y5 A2 G
#步骤三:把adslip.sh脚本拷贝到/etc目录里,和在/etc/rc.local文件中为入”sh /etc/adslip.sh”$ ?7 I. H, p) @& _! [
#就可以了。
( v" E S' ~: k8 `###############################################################################9 |; x _+ m5 t3 d4 c- O/ a1 b+ r
; V1 p" N$ Y" A5 _* W
#内部网卡设备号fxp0 q+ @7 {5 u/ D H/ z5 o0 I3 a
INTARNDEV="fxp0"$ l/ z8 S6 y$ F
INTARN=`ifconfig $INTARNDEV | grep inet | cut -d ' ' -f 2`
5 \- J! J/ k- R3 V2 f#内部网段192.168.168.0/24
& ^6 ~; U+ ]8 m/ ?$ i" JINTARNNET="192.168.168.0/24"
6 c+ ~3 X6 b' K0 W( i#服务器IP地址- ?: l/ Y' ^5 H: f G% Z" I
#注意:服务器IP地址为0.0.0.0时是不会做相应的服务映射,只在填写了正确的IP地址后才会映射到该IP地址上。
( l2 i5 e0 ~( Z- x' \INTARNFTP="0.0.0.0" #FTP服务器
% F* |2 J5 X+ o5 p; u! kINTARNSSH="0.0.0.0" #SSH服务器% p: l' G8 r, |& W9 K
INTARNEMAIL="0.0.0.0" #EMAIL服务器% Z4 [. E9 I4 o
INTARNDNS="0.0.0.0" #DNS服务器4 D$ \7 [0 B% w3 O/ {
INTARNWEB="0.0.0.0" #WEB服务器
! N% V2 _; C( D8 f3 O8 Q7 kINTARNSSL="0.0.0.0" #SSL服务器
- j3 J0 f% L- N. [7 w8 ]) I- }' [INTARNRTSP="0.0.0.0" #RTSP服务器
, C! u8 [$ V( a" ]4 SINTARNMYSQL="0.0.0.0" #MYSQL服务器
& T9 y( I9 J1 PINTARNJABBER="0.0.0.0" #JABBER服务器% L% }5 ?4 v4 b: A* D
: B5 y6 V P4 H7 a4 R#ADSL拨号网络设备号tun0
. Q4 `. u. w4 ?. T- T7 T+ e- vADSLDEV="tun0"5 K/ \! x) |! U( Y$ ~( H- r" l3 k* h
ADSLIP=`ifconfig $ADSLDEV | grep inet | cut -d ' ' -f 2`# @4 o/ |# Q% [8 Z
until [ $ADSLIP ]- ]6 K; ~% p& B9 p- ]$ u
do! g6 E, m9 @* Z C; c f
sleep 5
- [, }9 f* }. |- hdone
+ R3 ?' w% a. m#动态生成ipnat.rules规则7 k2 c8 v- @# U" u$ d# Q
echo '######################################################' > /etc/ipnat.rules
0 s# O0 o: x( g% P% zecho '#/etc/ipnat.rules #' >> /etc/ipnat.rules' ?- ~1 \ n- L0 s; @
echo '######################################################' >> /etc/ipnat.rules3 u. n" |2 B! T/ y1 k
echo ''8 k9 c! q- d6 s$ }; b- s
echo '#把所有的内部网络IP伪装成ADSL拨号IP' >> /etc/ipnat.rules0 s! t/ V8 H2 S& a- E1 \
echo 'map '$ADSLDEV' '$INTARNNET' -> '$ADSLIP'/32 portmap tcp/udp 10000:65000' >> /etc/ipnat.rules' \0 o! r" S: R: ]6 V- [/ R& K
if [ $INTARNFTP != "0.0.0.0" ]1 W+ T5 y3 s2 a: t) e6 ~$ G* j6 ^2 c8 T
then6 P" x5 [2 }! D( `7 F) v
echo '': |3 ~' J5 k" n+ G
echo '#把对ADSL拨号IP的FTP服务映射到服务网络的FTP服务器上' >> /etc/ipnat.rules v8 f5 E7 X9 b- q8 o
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 20 -> '$INTARNFTP' port 20' >> /etc/ipnat.rules% ~4 S) q e \* ?
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 21 -> '$INTARNFTP' port 21' >> /etc/ipnat.rules9 H1 C0 N1 y0 `
fi
: N& {; O \# c5 o' y5 F0 Bif [ $INTARNSSH != "0.0.0.0" ]5 E0 |4 S, H: u3 X1 b% W
then
0 c% J6 c' {6 K1 `9 _echo ''; Q4 }0 X" W7 t0 T5 x/ p5 F N
echo '#把对ADSL拨号IP的SSH服务映射到服务网络的网管工作站上' >> /etc/ipnat.rules
* A- v3 m2 E5 O! i; Techo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 22 -> '$INTARNSSH' port 22' >> /etc/ipnat.rules
3 A& B2 S" r6 a1 u$ R$ hfi
9 l; f6 v( z) p; v9 u Sif [ $INTARNEMAIL != "0.0.0.0" ]3 ^) O$ l: b+ w$ L/ T% N5 h& r5 Z3 c
then9 p9 x! g; S0 K4 j/ G
echo ''
: ~) Z) [+ y1 o$ x0 m$ ~echo '#把对ADSL拨号IP的EMAIL服务映射到服务网络的EMAIL服务器上' >> /etc/ipnat.rules
2 C, \9 R4 I2 y6 {echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 25 -> '$INTARNEMAIL' port 25' >> /etc/ipnat.rules
' ]% a% T z/ r5 \5 _/ `echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 110 -> '$INTARNEMAIL' port 110' >> /etc/ipnat.rules$ l; j: p: z l/ z- h# n: a, t
fi
3 D/ O0 r {1 a2 L5 t( xif [ $INTARNDNS != "0.0.0.0" ]2 ~2 q8 P3 z. a" f, V% g
then
' I5 c5 @ J+ ]2 k) ~, `2 oecho ''
+ @; X' Q: }1 H7 F2 F9 `echo '#把对ADSL拨号IP的DNS服务映射到服务网络的DNS服务器上' >> /etc/ipnat.rules
- y2 x! c+ u* ]) s( _7 u/ Kecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 53 -> '$INTARNDNS' port 53' >> /etc/ipnat.rules0 E6 G5 B" h5 E" |3 W) x/ Z
fi
3 a! P, m( L' r: z S( Qif [ $INTARNWEB != "0.0.0.0" ]: `. a; S& Z$ s" M# J/ G* ?
then* @1 d) S I4 o9 {# X
echo ''
' z a/ c" q( W: M6 Hecho '#把对ADSL拨号IP的WEB服务映射到服务网络的WEB服务器上' >> /etc/ipnat.rules
1 F6 I. E* f7 Q: t5 ?echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 80 -> '$INTARNWEB' port 80' >> /etc/ipnat.rules
( o3 Z7 c3 n) Zfi
) e% t2 m# i( \$ pif [ $INTARNSSL != "0.0.0.0" ]5 s8 i; W. O3 t! D- e* }
then/ [2 d; i+ x: r$ I
echo ''- g5 X5 S2 B# Y7 L( m6 `
echo '#把对ADSL拨号IP的SSL服务映射到服务网络的SSL服务器上' >> /etc/ipnat.rules
9 S9 |) j9 \6 H1 e- D) Q A8 Vecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 443 -> '$INTARNSSL' port 443' >> /etc/ipnat.rules& @2 m" W" x" U
fi
, _" d: c' c9 ]" B# Mif [ $INTARNRTSP != "0.0.0.0" ]
5 c1 r% l7 Q: x7 J2 ^ wthen
5 D! \9 m J2 k- }: G0 F9 H2 r/ xecho '': ?0 h: h) V6 f* j) } v* l
echo '#把对ADSL拨号IP的RTSP服务映射到服务网络的RTSP服务器上' >> /etc/ipnat.rules, L3 Z- N7 w1 K5 [! h3 F& {
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 554 -> '$INTARNRTSP' port 554' >> /etc/ipnat.rules
! _' X) r+ ^% B! ?$ ofi0 U2 h8 K$ d/ O1 m, C
if [ $INTARNMYSQL != "0.0.0.0" ]
% W. s1 K" x6 v: T2 D5 l/ b% wthen' J. s" t* [# P
echo ''. t4 z+ w9 `) R* |0 z3 |. x
echo '#把对ADSL拨号IP的MYSQL服务映射到服务网络的MYSQL服务器上' >> /etc/ipnat.rules% q! E; t. d: v' g
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 3306 -> '$INTARNMYSQL' port 3306' >> /etc/ipnat.rules
8 y% k/ l A* b3 D' O) m) Wfi v; v' l; |& T8 R
if [ $INTARNJABBER != "0.0.0.0" ]
7 z9 T# M# `) Pthen, \0 q- O% p! X2 e( ?. _ G
echo ''! [. A) V# ?0 R
echo '#把对ADSL拨号IP的JABBER(客户端口5222和服务器端口5269)服务映射到服务网络的JABBER服务器上' >> /etc/ipnat.rules
1 u! u) b9 _: n: l/ recho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 5222 -> '$INTARNJABBER' port 5222' >> /etc/ipnat.rules
) u7 m0 k8 V, B" C' Necho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 5269 -> '$INTARNJABBER' port 5269' >> /etc/ipnat.rules( N# o# Q- k. p% _ a7 S
fi
7 L d# t* N% s* `8 u8 [6 O \% [5 K2 Z9 n, w' D. p
#动态生成ipf.rules规则
- N6 ^, l2 J3 vecho '#######################################################' > /etc/ipf.rules ]& f$ b, P- g
echo '#/etc/ipf.rules #' >> /etc/ipf.rules
6 F8 x9 A7 @8 V' {1 B/ ~7 r) ^echo '#######################################################' >> /etc/ipf.rules# W. D B- m; ~
echo '#阻塞所有存在安全问题的数据包'>> /etc/ipf.rules! w1 M: s7 `2 S+ h- Y$ h6 ~
echo 'block in log quick all with short' >> /etc/ipf.rules
b. ?8 B# ^( [) _& r0 n& A8 k! B, hecho 'block in log quick all with ipopts' >> /etc/ipf.rules
' d, d+ ~$ f% Y/ a& S, necho 'block in log quick all with frag' >> /etc/ipf.rules7 @. q% G- \) p2 ?8 A$ G. @
echo 'block in log quick all with opt lsrr' >> /etc/ipf.rules! N; B' B- r$ |* ~, I3 h$ r+ G
echo 'block in log quick all with opt ssrr' >> /etc/ipf.rules5 x7 Q/ [0 u& K' `/ D2 [! r+ e
echo '' >> /etc/ipf.rules+ T1 ^4 ^: f* N; Z$ s8 d2 o
echo '#外部网络的数据只有FTP(使用20和21端口)、www、dns、smtp、pop3、mysql、ssh、rtsp、jabber和ssl的服务可以进入' >> /etc/ipf.rules
! R! g4 u# d0 J! [% p' Uif [ $INTARNFTP != "0.0.0.0" ]8 Y+ f' Z- x4 y, I7 Z
then) i( \! `: p; p. h" L
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 20 keep state' >> /etc/ipf.rules! W) y# o" s1 Q2 @1 v+ _
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 21 keep state' >> /etc/ipf.rules6 R* j }0 `0 W7 y: J- X& H
fi# S% B Z5 }, ?. W, _- J, ~
if [ $INTARNSSH != "0.0.0.0" ]
3 E. @" h0 t+ m- i4 w9 s" n6 rthen
( B$ ^- \7 s) @- w* X; decho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 22 keep state' >> /etc/ipf.rules% g$ g( S' w+ ~6 `* n3 Q
fi
0 `$ {# N" k! j& O0 \3 @! C$ ?if [ $INTARNEMAIL != "0.0.0.0" ]! U e% O8 Q1 ]/ W% Z" V+ H
then0 p( R- M1 X' I A, W! X
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 25 keep state' >> /etc/ipf.rules0 R/ ]: L! W2 j5 C! ~
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 110 keep state' >> /etc/ipf.rules
7 [- ^: G4 ]) `3 ?( l* {( efi" c1 t- x5 \/ N+ a6 r3 [ W; p
if [ $INTARNDNS != "0.0.0.0" ]+ [4 l' N) I; \
then7 w0 K- v8 J. n0 N0 T" ~
echo 'pass in quick on '$ADSLDEV' proto udp from any to any port = 53 keep state' >> /etc/ipf.rules) n+ f2 d5 z. q3 ?0 n
echo 'pass out quick on '$ADSLDEV' proto udp from any port = 53 to any keep state' >> /etc/ipf.rules
7 u6 ]7 l0 j# |: U3 \fi6 e/ J6 ?) p/ R& ~* C" c! ^2 S
if [ $INTARNWEB != "0.0.0.0" ]
2 F$ p* p' J9 y+ w. Ethen( X6 _ u0 j* T/ L
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 80 keep state' >> /etc/ipf.rules
H- b, @& |& } I" xfi/ @) x+ y) m7 F |( d8 Z+ ~$ G
if [ $INTARNSSL != "0.0.0.0" ]
, C: u/ M4 m/ b% ~1 W% ~then! U: |" Y3 a5 X, |* Z2 X- l
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 443 keep state' >> /etc/ipf.rules% y+ ~' \, q! V# y1 ~2 \/ t
fi$ u6 M; g8 u0 ^0 B' ` T
if [ $INTARNRTSP != "0.0.0.0" ]5 s1 A: Y; ?& n+ j+ c* i# J; v
then
+ g$ n2 U% Y& _, ?echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 554 keep state' >> /etc/ipf.rules/ y3 R( f/ }' T7 Z3 m% T. F$ R4 z
echo 'pass in quick on '$ADSLDEV' proto udp from any to any port = 554 keep state' >> /etc/ipf.rules# M: o7 u) o: A' J3 o0 Z# D' U8 C
fi4 d* s% b! f/ b! y/ m& m6 ]& g& H+ s
if [ $INTARNMYSQL != "0.0.0.0" ]& U" J' B% G P# \! f. x
then
( w# r/ n! m6 techo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 3306 keep state' >> /etc/ipf.rules# G& t9 W( Y( U& i4 u: k/ p& [! `
fi1 }. {' ?% h% \6 Z" n
if [ $INTARNJABBER != "0.0.0.0" ]
' n& O t% U0 qthen
+ ?* m( E6 g s" M0 gecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 5222 keep state' >> /etc/ipf.rules
0 z+ ^3 U3 w* Y: b' Cecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 5269 keep state' >> /etc/ipf.rules
" \1 |1 U5 p6 @8 D6 ^5 xfi
" {, M5 x3 P2 B7 z3 y6 kecho '' >> /etc/ipf.rules" A% V4 l7 M2 O
echo '#阻塞内部网络访问以下指定IP地址' >> /etc/ipf.rules
8 r* g' @ e! ?# Fecho 'block out quick proto tcp/udp from any to any port = 8000 #不能连接QQ ' >> /etc/ipf.rules
0 @7 t, r* T% F# I. o8 @echo 'block out quick proto tcp/udp from any to 61.141.194.202 #不能连接QQ ' >> /etc/ipf.rules+ M. R9 E$ x! X! b1 [* R
echo 'block out quick proto tcp/udp from any to 61.141.194.207 #不能连接QQ' >> /etc/ipf.rules, m) Z0 ~3 i; b( i3 D: y
echo 'block out quick proto tcp/udp from any to 61.141.238.145 #不能连接QQ' >> /etc/ipf.rules
9 }, h& c9 c/ g6 i2 Fecho 'block out quick proto tcp/udp from any to 61.144.238.146 #不能连接QQ' >> /etc/ipf.rules
( n2 \& w" i0 |* P, i8 decho 'block out quick proto tcp/udp from any to 218.17.209.18 #不能连接QQ' >> /etc/ipf.rules+ o+ y( @ Q6 C1 N3 d
echo 'block out quick proto tcp/udp from any to 218.17.209.23 #不能连接QQ' >> /etc/ipf.rules9 Z) h! j( H7 Y" `9 U e$ u+ G/ n
echo 'block out quick proto tcp/udp from any to 219.133.40.15 #不能连接QQ ' >> /etc/ipf.rules
" N; m, _: J, u Xecho 'block out quick proto tcp/udp from any to 202.104.129.242 #不能连接QQ' >> /etc/ipf.rules
" x: n. H. A6 q4 ~; Recho 'block out quick proto tcp/udp from any to 202.104.129.251 #不能连接QQ' >> /etc/ipf.rules
- i3 _- d7 u$ Q4 t3 }. ?* |9 eecho 'block out quick proto tcp/udp from any to 202.104.129.252 #不能连接QQ' >> /etc/ipf.rules* S' R8 D& G6 F( [4 A$ n
echo 'block out quick proto tcp/udp from any to 202.104.129.254 #不能连接QQ' >> /etc/ipf.rules& s2 o7 v2 C9 @
echo 'block out quick proto tcp/udp from any to 204.134.15.1 #不能连接QQ' >> /etc/ipf.rules0 q6 C. H1 y+ p4 x( B
echo '' >> /etc/ipf.rules+ g. w6 _1 E3 |
echo '#内部网络可以访问外部网络' >> /etc/ipf.rules {( r9 g/ U* V3 M% F& [
echo 'pass out log on '$ADSLDEV' proto icmp all keep state' >> /etc/ipf.rules
. L9 X4 y6 f( C" E" Y: Qecho 'pass out log on '$ADSLDEV' proto tcp/udp from any to any keep state' >> /etc/ipf.rules8 Q" j: n5 B' X+ P3 D9 \& }8 N
echo '' >> /etc/ipf.rules2 m* J5 Z6 b, z4 \9 ~, E
echo '#阻塞外部网络的其它请求' >> /etc/ipf.rules4 R6 c o3 p/ z3 o
echo 'block return-rst in log on '$ADSLDEV' proto tcp from any to '$ADSLIP' flags S/SA' >> /etc/ipf.rules
) k6 ?% _6 x& Z" y" P6 ]echo 'block return-icmp(net-unr) in log on '$ADSLDEV' proto udp from any to '$ADSLIP'' >> /etc/ipf.rules
/ y) M9 k. t$ q% F# Hecho 'block in log on '$ADSLDEV' all' >> /etc/ipf.rules
& N: B+ k$ O8 {echo '' >> /etc/ipf.rules. }& j& k; `3 E4 r+ m# X( X
echo '#阻塞内部网络访问以下指定IP地址' >> /etc/ipf.rules- v0 _7 K8 N/ z
echo '#block in log quick on rl1 proto tcp from any to 202.106.185.77 flags S/SA #不能连接163.com' >> /etc/ipf.rules; @* ]; Z; z) R# k$ T* a
echo '' >> /etc/ipf.rules! ` m/ g# A4 u% ?- M( O
echo '#内部网络的数据全部可以通过防火墙' >> /etc/ipf.rules. l1 W) T3 m# Y" E4 C+ R8 X
echo 'pass in on '$INTARNDEV' all' >> /etc/ipf.rules
( F- d% b# |+ Yecho 'pass out on '$INTARNDEV' all' >> /etc/ipf.rules; ]% _+ j$ [: n1 A8 g6 w: c8 @4 y
echo 'pass in on lo0 all' >> /etc/ipf.rules
# ^+ W: r) h. R" b# _3 m& g; o% wecho 'pass out on lo0 all' >> /etc/ipf.rules
3 z4 }! l8 p1 a; k9 ^# Z, {, b7 Y5 hecho '' >> /etc/ipf.rules
3 L+ d3 a$ J7 s( r0 y( `( }) pecho '#让VPN能通过防火墙' >> /etc/ipf.rules6 m6 \" u& }$ j6 v4 P
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 47 keep state' >> /etc/ipf.rules
3 e5 S- D- s3 f# }echo 'pass out quick on '$ADSLDEV' proto tcp from any port = 47 to any keep state' >> /etc/ipf.rules ` e! M& w( V2 Z
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 1723 keep state' >> /etc/ipf.rules: T" p+ H9 I$ f1 y) M
echo 'pass out quick on '$ADSLDEV' proto tcp from any port = 1723 to any keep state' >> /etc/ipf.rules
8 q# F$ |- h- u, x6 Aecho 'pass in proto gre from any to any keep state' >> /etc/ipf.rules+ Z4 P% J$ S) ?" {0 J
echo 'pass out proto gre from any to any keep state' >> /etc/ipf.rules1 P' v% H4 v$ w+ B
echo 'pass in on ng0 all' >> /etc/ipf.rules
3 _5 o0 m0 u7 I5 U' d4 C8 b9 Fecho 'pass out on ng0 all' >> /etc/ipf.rules( `" p: R2 a) R, f1 ^% ~5 A
X3 r/ R6 m( g! }! H# P% R/sbin/ipf -Fa -f /etc/ipf.rules
( I w2 j- u- g* r7 m0 v5 N/sbin/ipnat -CF -f /etc/ipnat.rules* A& a4 g+ y$ K# ?2 ?/ M1 t: s
. ?0 d+ m; a" i& W
############################## END ADSLIP.SH #################################' M& o7 @& h5 o4 W X# _
/ L# r3 U, ]- ]" ~最后我们还要在/etc/rc.conf中加入以下命令行:/ y9 }4 j5 j. r6 m2 o3 ?2 a$ J9 }
gateway_enable="YES"$ E% c0 S& s) |, P" Q) x8 @
到这里我们就完成了基于ADSL的VPN防火墙(IPFILTER)网关的安装和配置,至于如何做你的防火墙规则就看你自己了以上只是一个样板而已。- @/ q# d, A/ w+ G$ p7 Q
0 Y7 r7 |8 t3 H& s
在这里我要谢谢quakelee,我是参考他的"使用FreeBSD配置基于ADSL的VPN网关+防火墙"文章整理出来的,因为我喜欢使用IPFILTER做防火墙。- P7 ]9 Y0 N1 L+ Q6 n9 }7 E
5 V6 ?" l; R6 i: I
- B+ c. d: }& ^注:任何转载或摘抄请注明文章出处(中文FreeBSD用户组 http://www.cnfug.org)
# S# s6 }0 q" X$ G& W' N/ _
_% s, @# B' P. v: e1 f6 w( ~1 J$ ~& Q: k0 x* c% q& h1 e8 @! M
作者(译者)信息:
) D) d* d0 M- g& X% g' c
6 h* J4 c' ~" b, d陈永光(Charlin) ,自由软件爱好者。1997年开始学习Linux,1999年开始学习FREEBSD。2000年毕业后一直在深圳市崛计算机网络技术有限公司里负责技术方面的工作,现在已经成功的把FREEBSD应用到INTERNET服务器上和几个校园网解决方案上。你可以通过charlin@88vip.com与他联系。
. }9 G K: s% }! v( D4 N6 I/ z4 r Z% D I9 B
! @6 S; J6 f$ g7 m/ H& Q[此贴子已经被作者于2003-8-14 22:39:40编辑过]
) t. R' h8 s5 |; J |
|