TA的每日心情 | 无聊 2015-1-16 14:36 |
---|
签到天数: 3 天 [LV.2]偶尔看看I
|
2楼
楼主 |
发表于 2003-8-14 22:38:00
|
只看该作者
(接上)
. l: j0 u' e- t% q+ e#adslip.sh 是一个自动检测ADSL分配的IP地址和利用这个IP地址动态创建IPFILTER过
0 b3 l! K3 o% @2 G- ^6 \! M#滤规则的脚本。1 u( Q$ P6 d, m: g
#使用方法:
6 n' C$ {( Y6 x2 L#步骤一:要确定使用adslip.sh脚本的服务器能正常使用ADSL拨号和IPFILTER能正常运
- s3 d# A, p8 R5 o8 K" `1 k. c#行。$ \* }& Z5 g9 {- l7 w
#步骤二:把adslip.sh脚本修改成你的实际网络情况。修改如下:+ |- s3 M; _& q# d
#内部网卡设备号、内部网段、服务器IP地址、ADSL拨号网络设备号或自己增加网络设备% X4 w9 n. [. I) E M" F( E
#和相应的过滤规则。, q Z$ H) W8 _ _$ A- f
#步骤三:把adslip.sh脚本拷贝到/etc目录里,和在/etc/rc.local文件中为入”sh /etc/adslip.sh”
2 v( f9 Y7 n8 \; z7 [ U#就可以了。
2 s6 S0 ^2 |, K###############################################################################
* p: n I* n0 c
6 N( f2 R4 V5 _#内部网卡设备号fxp07 G5 `; {# @5 O: \# [ L1 ~) X/ C
INTARNDEV="fxp0"
1 e7 j% m3 N0 M: `/ ZINTARN=`ifconfig $INTARNDEV | grep inet | cut -d ' ' -f 2`
2 @3 e4 I2 f( s% L3 z#内部网段192.168.168.0/24
0 H6 ^5 Z- |. `: L- r( y }& xINTARNNET="192.168.168.0/24"
4 f0 l0 a2 l2 b: h& Z5 |3 l#服务器IP地址
$ C4 r- E) }. f! v* n#注意:服务器IP地址为0.0.0.0时是不会做相应的服务映射,只在填写了正确的IP地址后才会映射到该IP地址上。
3 S" X; }+ U$ r0 l/ S* hINTARNFTP="0.0.0.0" #FTP服务器
9 f( ^; n0 E c# h# p4 j, RINTARNSSH="0.0.0.0" #SSH服务器
8 F& y; l! z; lINTARNEMAIL="0.0.0.0" #EMAIL服务器
5 S& \" S9 d& ?& }9 x* ?. y7 N& tINTARNDNS="0.0.0.0" #DNS服务器
8 C$ }7 m, ^" U% KINTARNWEB="0.0.0.0" #WEB服务器
/ r- k$ d0 r( a+ B. E. |; c: X5 MINTARNSSL="0.0.0.0" #SSL服务器6 W3 z: b1 V# w" c2 }* d- q& J# c
INTARNRTSP="0.0.0.0" #RTSP服务器/ V7 m7 t6 e8 r) S% L |+ e
INTARNMYSQL="0.0.0.0" #MYSQL服务器
% {, r, C: |7 x/ Z& FINTARNJABBER="0.0.0.0" #JABBER服务器
9 m; J' }5 l l- v. M" h z. b" P' K6 a
#ADSL拨号网络设备号tun0
3 y6 F, ^/ D+ J1 p' YADSLDEV="tun0": p4 M7 B2 v1 n: a6 X
ADSLIP=`ifconfig $ADSLDEV | grep inet | cut -d ' ' -f 2`
: Q( V4 m5 d# u( v3 f5 cuntil [ $ADSLIP ]
: O) q. D0 A4 r5 @do
$ \ {' w- [9 D/ @% c4 l5 ]) Osleep 5
9 k3 H. r) I. H( n E9 E) |done
$ C/ u8 O0 x3 g2 g#动态生成ipnat.rules规则% L @6 p% o, d m# V5 b
echo '######################################################' > /etc/ipnat.rules
3 q/ D* |, y3 u5 @/ t8 d0 `- Gecho '#/etc/ipnat.rules #' >> /etc/ipnat.rules
" ]) ~$ L2 e( R, x: f" `/ n% techo '######################################################' >> /etc/ipnat.rules6 b% F# a ~; |$ S3 n0 U
echo ''
, d, k" f( G- t8 necho '#把所有的内部网络IP伪装成ADSL拨号IP' >> /etc/ipnat.rules
9 x6 @/ \0 O6 e ~$ techo 'map '$ADSLDEV' '$INTARNNET' -> '$ADSLIP'/32 portmap tcp/udp 10000:65000' >> /etc/ipnat.rules
9 G1 h Z5 S5 Z2 h* @if [ $INTARNFTP != "0.0.0.0" ]
6 N- M0 g/ n. ?* w! zthen9 U& u' E6 z: ^8 w4 Y% b
echo ''0 N/ ~" F; {; G8 `2 j
echo '#把对ADSL拨号IP的FTP服务映射到服务网络的FTP服务器上' >> /etc/ipnat.rules e C( l+ s3 i/ J
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 20 -> '$INTARNFTP' port 20' >> /etc/ipnat.rules1 P' n( ]: G' Q. X! w
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 21 -> '$INTARNFTP' port 21' >> /etc/ipnat.rules: s" z8 b m3 L2 t3 N- D- x8 c
fi0 {# x8 `6 {9 }- s
if [ $INTARNSSH != "0.0.0.0" ]/ s$ g+ [- @, G5 X& q) k/ z
then
" F8 [+ X$ V: n. X9 w8 J# \8 t3 \echo ''
! M6 E3 l [0 n7 J/ W2 W) r; L3 ?echo '#把对ADSL拨号IP的SSH服务映射到服务网络的网管工作站上' >> /etc/ipnat.rules! V4 I( k' X1 ?2 n; q' _
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 22 -> '$INTARNSSH' port 22' >> /etc/ipnat.rules
2 c1 [3 h$ w% `- w5 bfi o( N" v7 l6 I
if [ $INTARNEMAIL != "0.0.0.0" ]
/ E+ t6 F7 \7 K: R6 b2 d, Fthen
2 Y' K, M8 a7 F, Mecho ''
. i, m; f3 w8 `9 Necho '#把对ADSL拨号IP的EMAIL服务映射到服务网络的EMAIL服务器上' >> /etc/ipnat.rules4 `! z+ w1 T3 p t; X" f U
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 25 -> '$INTARNEMAIL' port 25' >> /etc/ipnat.rules
4 W+ l X; r8 |/ wecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 110 -> '$INTARNEMAIL' port 110' >> /etc/ipnat.rules1 k, b9 [$ p! A# Y5 B
fi" Y( l! v( n, z- j( ^) w
if [ $INTARNDNS != "0.0.0.0" ]
7 p" {5 b5 J- }+ o' ?5 Pthen! u$ N+ L. |0 r
echo ''$ n3 \. \+ c; S4 ]- Y. q" C
echo '#把对ADSL拨号IP的DNS服务映射到服务网络的DNS服务器上' >> /etc/ipnat.rules# j- \* F5 t* H. z# V3 s
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 53 -> '$INTARNDNS' port 53' >> /etc/ipnat.rules
1 a4 ?# W% x: q8 M7 t bfi
9 U! C6 y: u/ l9 L% pif [ $INTARNWEB != "0.0.0.0" ]
! q+ U! k& N1 H6 U- \6 sthen% T2 g) q8 ~' N7 t7 L$ T
echo ''* ~, H/ G {! S3 F" J2 Q1 S
echo '#把对ADSL拨号IP的WEB服务映射到服务网络的WEB服务器上' >> /etc/ipnat.rules: i- M5 d. V( f+ U$ |
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 80 -> '$INTARNWEB' port 80' >> /etc/ipnat.rules
5 P/ |3 x- E" [ a7 ffi$ Y% o7 P! u- e5 ]
if [ $INTARNSSL != "0.0.0.0" ]. T y0 F4 ~6 }7 y' Y. V
then
: X+ I1 M. ~+ jecho ''
9 ]) r2 S% p' z- yecho '#把对ADSL拨号IP的SSL服务映射到服务网络的SSL服务器上' >> /etc/ipnat.rules
: L3 H1 I) r5 O) q* u; { mecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 443 -> '$INTARNSSL' port 443' >> /etc/ipnat.rules
" w* k6 L, m( E% gfi& P0 r: ~& V+ b3 o
if [ $INTARNRTSP != "0.0.0.0" ], y3 n( O6 R# u( g& D! `5 S- \
then/ r6 S6 R2 F7 w2 |5 i9 E
echo ''; F( R' [6 ?) a0 S% } N; R7 p
echo '#把对ADSL拨号IP的RTSP服务映射到服务网络的RTSP服务器上' >> /etc/ipnat.rules
4 \7 p* i5 m: @6 ~& N; V" B! \. |( a+ recho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 554 -> '$INTARNRTSP' port 554' >> /etc/ipnat.rules# z+ N: n3 D4 z& q$ V
fi
2 {/ O4 \0 T) |8 {+ k$ Gif [ $INTARNMYSQL != "0.0.0.0" ]
. G; l' s8 m" u2 X! dthen0 \' D; z9 ?3 @, \7 C+ R( V& o
echo ''/ P) i$ ]6 ]- [6 R. }# Y+ o
echo '#把对ADSL拨号IP的MYSQL服务映射到服务网络的MYSQL服务器上' >> /etc/ipnat.rules
5 C) X: v! ?: A2 c0 lecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 3306 -> '$INTARNMYSQL' port 3306' >> /etc/ipnat.rules
# q9 }; ?: `6 }/ A% W2 j' O" W1 U+ h' P* [fi$ C/ ~1 [# o+ |# D3 d
if [ $INTARNJABBER != "0.0.0.0" ]
8 u0 Z- F9 d9 A& w8 G1 Y; M) |then9 W4 Y% D2 y+ d* L" T. N v
echo ''* g) q8 g4 m) o; [! u
echo '#把对ADSL拨号IP的JABBER(客户端口5222和服务器端口5269)服务映射到服务网络的JABBER服务器上' >> /etc/ipnat.rules% B) X$ t( T6 t- R$ }* f( [ M
echo 'rdr '$ADSLDEV' '$ADSLIP'/32 port 5222 -> '$INTARNJABBER' port 5222' >> /etc/ipnat.rules
2 w$ p0 A7 @- X3 l7 d; A5 \& jecho 'rdr '$ADSLDEV' '$ADSLIP'/32 port 5269 -> '$INTARNJABBER' port 5269' >> /etc/ipnat.rules. W s4 W& D2 F1 \8 S
fi
4 D- |" }8 h5 J" g' p$ g: M* S ~+ s( e- [, X
#动态生成ipf.rules规则" d1 {4 w* n0 o/ [) x; q j
echo '#######################################################' > /etc/ipf.rules7 w4 s! d9 i/ s+ w' Y" e2 M
echo '#/etc/ipf.rules #' >> /etc/ipf.rules
, p- |7 N7 O8 ]( }, I6 Pecho '#######################################################' >> /etc/ipf.rules
5 F3 }9 Y5 D0 j4 ^$ U# b& {echo '#阻塞所有存在安全问题的数据包'>> /etc/ipf.rules. @0 Q7 l, U% F* C( ~
echo 'block in log quick all with short' >> /etc/ipf.rules
7 Y9 M# z- G- `" Aecho 'block in log quick all with ipopts' >> /etc/ipf.rules
) ^/ i: E' V: b: Uecho 'block in log quick all with frag' >> /etc/ipf.rules/ U( M! ?" B3 @# _8 M1 @
echo 'block in log quick all with opt lsrr' >> /etc/ipf.rules
, }1 ~- x0 w# D# |; |% c/ W) E$ P( Cecho 'block in log quick all with opt ssrr' >> /etc/ipf.rules- ^: B7 b% ~6 u7 x4 F4 _; |
echo '' >> /etc/ipf.rules
' D: x% w4 b( j& E) Z. Decho '#外部网络的数据只有FTP(使用20和21端口)、www、dns、smtp、pop3、mysql、ssh、rtsp、jabber和ssl的服务可以进入' >> /etc/ipf.rules' p% U' R% d; q- h# n* m
if [ $INTARNFTP != "0.0.0.0" ]
. h6 b9 }6 |% L( Jthen
& j- M3 Z; k. Iecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 20 keep state' >> /etc/ipf.rules3 u% ?, [+ d8 B# b& P
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 21 keep state' >> /etc/ipf.rules
& ^8 |* q! }9 x2 I- l1 [( U8 Q9 C ]8 Hfi& H0 ?0 N% S: T
if [ $INTARNSSH != "0.0.0.0" ]4 u! m" m V4 L! R* t- e( K
then
Z- ^5 S+ F+ } g# ^echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 22 keep state' >> /etc/ipf.rules
* c$ O% s6 }& j2 rfi
3 R- e# U, t, H: m R+ I, Vif [ $INTARNEMAIL != "0.0.0.0" ] _! i: X8 l1 n8 U! O( P, O
then
" {0 S# p4 u; G( V: l; A) uecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 25 keep state' >> /etc/ipf.rules4 r4 F8 g" n' J6 }. }! U |
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 110 keep state' >> /etc/ipf.rules$ \9 m- S b5 X& d6 z
fi
* { Z1 G7 D. t, p- \& ?. |if [ $INTARNDNS != "0.0.0.0" ]
( H* M R* [! U. ^! \4 @5 i9 u2 ithen
% _" x% X/ G, Wecho 'pass in quick on '$ADSLDEV' proto udp from any to any port = 53 keep state' >> /etc/ipf.rules
, w5 {0 t( g! P: B( Techo 'pass out quick on '$ADSLDEV' proto udp from any port = 53 to any keep state' >> /etc/ipf.rules
! i( W3 j* }/ s9 D+ Xfi B9 Z. H; W1 ^# w9 l4 L, n; P
if [ $INTARNWEB != "0.0.0.0" ]
% f) i4 q# t- p h1 F8 [. g% bthen
6 s7 y; s O& D) n% aecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 80 keep state' >> /etc/ipf.rules: y1 H1 ~. M) s+ F
fi
( {+ b$ z; d& I+ `% M2 e/ Mif [ $INTARNSSL != "0.0.0.0" ]8 m6 y& O$ J# {% b1 ^
then: {8 |! Q4 @8 F# f$ y
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 443 keep state' >> /etc/ipf.rules% ~, I! R& @5 n
fi
0 a A- K' R! ]! r8 S5 Nif [ $INTARNRTSP != "0.0.0.0" ]
2 ^5 ?2 Z; J1 O6 J* `then+ ~1 V( F! M' f+ Z
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 554 keep state' >> /etc/ipf.rules
: H Z9 Y( s$ necho 'pass in quick on '$ADSLDEV' proto udp from any to any port = 554 keep state' >> /etc/ipf.rules
$ |8 q8 W( C1 ~( Afi
3 Z( w- y/ j; c' d9 b% s9 zif [ $INTARNMYSQL != "0.0.0.0" ]) D2 u* X* `- A% W7 o/ _5 e* e: Q/ G
then! \: k, Y1 h: E" p+ C1 V
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 3306 keep state' >> /etc/ipf.rules1 A8 M: q$ U4 ]4 Y
fi
6 Y* f0 l, q: @( J) \. Bif [ $INTARNJABBER != "0.0.0.0" ]
5 S# ?7 P' ?& Z% o( |. s3 \then( h) {! e! c6 J9 W! z
echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 5222 keep state' >> /etc/ipf.rules
! q6 X$ k7 ]# N9 v; Uecho 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 5269 keep state' >> /etc/ipf.rules
: E. a1 h/ m7 [7 r( G' F0 ^6 Ufi! _. @: v0 V/ t3 ?4 C. b7 l
echo '' >> /etc/ipf.rules! v3 e: V( { m* K. r
echo '#阻塞内部网络访问以下指定IP地址' >> /etc/ipf.rules, J$ y2 H5 J4 Q
echo 'block out quick proto tcp/udp from any to any port = 8000 #不能连接QQ ' >> /etc/ipf.rules# x8 I# [+ d: W j3 |, g
echo 'block out quick proto tcp/udp from any to 61.141.194.202 #不能连接QQ ' >> /etc/ipf.rules
% @ D4 c2 T0 `1 b: a; Aecho 'block out quick proto tcp/udp from any to 61.141.194.207 #不能连接QQ' >> /etc/ipf.rules
- G. ?5 X% _& r N+ pecho 'block out quick proto tcp/udp from any to 61.141.238.145 #不能连接QQ' >> /etc/ipf.rules
& h. o2 P+ X6 S! Techo 'block out quick proto tcp/udp from any to 61.144.238.146 #不能连接QQ' >> /etc/ipf.rules
& @# d* ]. k( {2 d' ]% uecho 'block out quick proto tcp/udp from any to 218.17.209.18 #不能连接QQ' >> /etc/ipf.rules
, U3 e8 ]6 b Hecho 'block out quick proto tcp/udp from any to 218.17.209.23 #不能连接QQ' >> /etc/ipf.rules g5 p6 p7 x6 o5 }& I
echo 'block out quick proto tcp/udp from any to 219.133.40.15 #不能连接QQ ' >> /etc/ipf.rules) r* C, m+ u+ |3 {( O& Y
echo 'block out quick proto tcp/udp from any to 202.104.129.242 #不能连接QQ' >> /etc/ipf.rules0 O% V4 d) Q* z2 k: d& v+ n' F+ Q
echo 'block out quick proto tcp/udp from any to 202.104.129.251 #不能连接QQ' >> /etc/ipf.rules
; ]: ~7 M' a# a N iecho 'block out quick proto tcp/udp from any to 202.104.129.252 #不能连接QQ' >> /etc/ipf.rules
$ B" C3 p+ o1 Kecho 'block out quick proto tcp/udp from any to 202.104.129.254 #不能连接QQ' >> /etc/ipf.rules
/ l( K9 x& r( H; qecho 'block out quick proto tcp/udp from any to 204.134.15.1 #不能连接QQ' >> /etc/ipf.rules) `2 P+ J4 L' E; Z; N
echo '' >> /etc/ipf.rules) M- B6 y+ u3 B7 Z' Y2 R/ x
echo '#内部网络可以访问外部网络' >> /etc/ipf.rules
3 p7 B- e3 @" U/ K1 lecho 'pass out log on '$ADSLDEV' proto icmp all keep state' >> /etc/ipf.rules
( P/ K6 t' g# e) cecho 'pass out log on '$ADSLDEV' proto tcp/udp from any to any keep state' >> /etc/ipf.rules1 I; }5 Y: v) ] e' G4 _
echo '' >> /etc/ipf.rules
" C; b3 _/ R, g3 K( ?echo '#阻塞外部网络的其它请求' >> /etc/ipf.rules2 ~8 n# Y5 |3 R6 F
echo 'block return-rst in log on '$ADSLDEV' proto tcp from any to '$ADSLIP' flags S/SA' >> /etc/ipf.rules
0 v) p0 {. ^; @9 e' cecho 'block return-icmp(net-unr) in log on '$ADSLDEV' proto udp from any to '$ADSLIP'' >> /etc/ipf.rules. M* q4 O7 A/ P& q2 V# `
echo 'block in log on '$ADSLDEV' all' >> /etc/ipf.rules
' A# I) G4 H6 K" W7 Z8 ~* ~echo '' >> /etc/ipf.rules
5 c0 t. B" O* _6 ]2 r% Lecho '#阻塞内部网络访问以下指定IP地址' >> /etc/ipf.rules2 F$ h3 }' x5 X# m- W& 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/ b9 @+ G) ]# _+ Y. ]. M
echo '' >> /etc/ipf.rules5 `. k$ E! @- s# i" `% g
echo '#内部网络的数据全部可以通过防火墙' >> /etc/ipf.rules
" v( `. ~$ s$ ? ?# S/ v& ?4 ]echo 'pass in on '$INTARNDEV' all' >> /etc/ipf.rules
, |' B* `6 ?) Y" R* i' Lecho 'pass out on '$INTARNDEV' all' >> /etc/ipf.rules. m a* A: e* P
echo 'pass in on lo0 all' >> /etc/ipf.rules
0 p' m* x. ^: j7 p" w# yecho 'pass out on lo0 all' >> /etc/ipf.rules; u' U) c% i4 o2 ~ J
echo '' >> /etc/ipf.rules, m' s0 B: w, {# J) `3 P
echo '#让VPN能通过防火墙' >> /etc/ipf.rules
0 i% ~ V8 f7 u+ _2 K5 R" @echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 47 keep state' >> /etc/ipf.rules
" q f& E' {0 c/ r/ ?echo 'pass out quick on '$ADSLDEV' proto tcp from any port = 47 to any keep state' >> /etc/ipf.rules
- t2 j( l$ T1 q& x* w: ]echo 'pass in quick on '$ADSLDEV' proto tcp from any to any port = 1723 keep state' >> /etc/ipf.rules* V* X4 s/ D7 b8 V) d
echo 'pass out quick on '$ADSLDEV' proto tcp from any port = 1723 to any keep state' >> /etc/ipf.rules0 W3 A/ g, l+ Z2 o
echo 'pass in proto gre from any to any keep state' >> /etc/ipf.rules0 p7 ]8 L3 X$ F. j) A c6 I2 I
echo 'pass out proto gre from any to any keep state' >> /etc/ipf.rules+ f- M5 [- X6 X$ ^4 O
echo 'pass in on ng0 all' >> /etc/ipf.rules7 ^9 t/ S" |: i, B0 M, R X
echo 'pass out on ng0 all' >> /etc/ipf.rules
* G7 O& |, v% h4 K, k! ~. {$ E4 k1 b9 g/ u, d" j' S7 Y
/sbin/ipf -Fa -f /etc/ipf.rules
, k S$ x8 O7 B& G* ~: k w" M/sbin/ipnat -CF -f /etc/ipnat.rules
Q4 y4 R% S# J! q! ?! o: B6 g5 ]6 M% ?3 l; e# \; }+ g
############################## END ADSLIP.SH #################################" i; ^* Y/ O7 A1 ^$ [
. G: h2 ]2 m% h7 D最后我们还要在/etc/rc.conf中加入以下命令行:" o8 a) g) D; |" X" P/ D
gateway_enable="YES"! X/ Y- J% V5 t# Y$ c% \$ S" l- c4 O
到这里我们就完成了基于ADSL的VPN防火墙(IPFILTER)网关的安装和配置,至于如何做你的防火墙规则就看你自己了以上只是一个样板而已。
0 j5 g4 W8 f3 f9 l5 j+ B! p+ h- l' j- T' Z% w+ S
在这里我要谢谢quakelee,我是参考他的"使用FreeBSD配置基于ADSL的VPN网关+防火墙"文章整理出来的,因为我喜欢使用IPFILTER做防火墙。1 \' F. C3 ^# i0 C( k0 j/ W" i# p8 C
# Y+ U) U) j# ]" l' k5 w' g
, m$ |, _! C2 T' K( D
注:任何转载或摘抄请注明文章出处(中文FreeBSD用户组 http://www.cnfug.org)
' F/ p" w7 h" a- E" i5 s K2 X4 c6 L$ b' F& R9 N# }
2 q, |' E. {. M9 h+ c2 o作者(译者)信息:- a# }/ I! @, }1 P0 L9 h
5 L' Y, A! C7 I) ?( _8 U& h/ _陈永光(Charlin) ,自由软件爱好者。1997年开始学习Linux,1999年开始学习FREEBSD。2000年毕业后一直在深圳市崛计算机网络技术有限公司里负责技术方面的工作,现在已经成功的把FREEBSD应用到INTERNET服务器上和几个校园网解决方案上。你可以通过charlin@88vip.com与他联系。 I& z: H0 ?; s5 J/ Q
& `; ]! H d4 j+ P3 m
$ ?! ]: u5 l i
[此贴子已经被作者于2003-8-14 22:39:40编辑过] , @8 w8 ^/ d) B& A" K# |9 z) T( I- ^
|
|