Cai Dat Redhat Linux 8.0

Published on December 2016 | Categories: Documents | Downloads: 80 | Comments: 0 | Views: 476
of 33
Download PDF   Embed   Report

Comments

Content

www.nhipsongcongnghe.net

CÀI

TH

I U HÀNH LINUX REDHAT 8.0

1. M t s đi u lưu ý trư c khi cài:

cài RedHat 8.0 ch y trơn tru tho i mái, b n c n có h th ng PII, 64MB Ram tr lên, và phân vùng c ng dành đ cài Linux c n kho ng 2GB tr lên. Tuy nhiên không có gì c n

tr b n cài Linux trên m t h th ng có c u hình th p hơn, nhưng khi đó b n ch có th ch y v i các ng d ng h n ch trên h th ng.

Nên tìm hi u thông s c u hình c a h th ng trư c khi cài đ t.

i u này r t quan tr ng,

giúp b n thu n l i trong quá trình c u hình h th ng sau khi cài đ t. B n s ph i l a ch n cho đúng thông s c a các linh ki n ph n c ng trong quá trình c u hình h th ng như: lo i card màn hình, lo i màn hình( t n s quét ngang, d c), card m ng, card âm thanh. v.v.

C n chu n b phân vùng đĩa còn tr ng đ cài Linux. Linux c n t i thi u hai phân vùng là Linux Native (ext3) và Linux swap. đĩa. ơn gi n, b n có th dùng Partition Magic đ phân chia

§ M t partition là Linux native ext3. C n kho ng 2GB tr lên đ cài Linux, bao g m c KDE và Gnome, các ti n ích đ h a, multimedia, và l p trình. T i thi u b n c n 400MB và cài toàn b là 4,5GB.

§ M t partition là Linux swap, là phân vùng tráo đ i c a Linux dành cho vi c s nh o, làm không gian trao đ i. Thông thư ng, dung lư ng b nh

d ng b

o t i ưu s g p đôi

dung lư ng b nh RAM c a h th ng.

2. B t đ u cài đ t:

Cách đơn gi n và thông d ng nh t đ cài Redhat Linux là cài đ t t

b CDROM:

Kh i đ ng h th ng t

b đĩa CD cài đ t ( CD s 1), và nh n Enter t

d u nh c kh i đ ng

đ m c đ nh cài đ t theo ch đ đ ho . Chương trình cài đ t s t

đ ng dò thông s c a

bàn phím, chu t, card màn hình, màn hình và sau đó đi vào quá trình cài đ t. Thông qua t ng bư c wizard đ b n ch n các thông s v h th ng như bàn phím, chu t, ngôn ng trong quá trình cài đ t, gi h th ng.

a. Ch n ki u cài đ t:

www.nhipsongcongnghe.net

- Personal Desktop: dành cho ngư i m i b t đ u v i Linux ho c cho nh ng h th ng desktop cá nhân. Chương trình cài đ t s ch n l a nh ng gói ph n m m c n thi t nh t cho c u hình này. Dung lư ng đĩa c n cho ki u cài đ t này chi m kho ng 1,5GB, bao g m c môi trư ng đ ho .

- WorkStation: dành cho nh ng tr m làm vi c v i ch c năng đ ho cao c p và các công c phát tri n.

- Server: cài đ t h th ng đóng vai trò máy ch như webserver, ftpsever, SQL server.v.v.

- Custom: đây là l a ch n linh ho t cho b n trong quá trình cài đ t. B n có th ch n các gói ph n m m, các môi trư ng làm vi c, boot loader tuỳ theo ý b n.

b. Thi t l p phân vùng cài Linux:

ây là quá trình nh y c m nh t và nguy hi m nh t trong quá trình cài đ t, vì ch c n b t c n ch n sai thì d li u trên c ng c a b n có th b m t s ch.

Ch c năng “automatic partition” s giúp b n t

đ ng t o các phân vùng cho Linux. Hãy

c n th n n u b n ch n option “remove all partition on this system”, vì như th t t c các phân vùng trên c ng c a b n đ u b xoá. Option “remove all Linux partition on this

system” s ch xoá các phân vùng c a Linux mà thôi

đây, đ thu n ti n thì b n có th dùng Partition Magic đ phân chia đĩa trư c. T i giai đo n này ch là công vi c t o đ nh d ng cho phân vùng cài đ t mà thôi. Tuy nhiên b n v n có th thao tác phân chia phân vùng cài đ t d dàng v i Disk Druid.

Thông thư ng, b n nên ch n “ Manually partition with Disk Druid ” đ t o các phân vùng:

M t phân vùng ch a mount point là “/”, có ki u file h th ng là Linux Native ext3.

M t phân vùng swap cho Linux, ki u c a phân vùng này là Linux swap, kích thư c t i ưu là g p đôi dung lư ng RAM c a h th ng hi n t i.

Các button trên màn hình giao di n cho phép b n thao tác phân chia và đ nh d ng phân

www.nhipsongcongnghe.net
vùng. Nút New, Delete đ t o m i hay xoá m t phân vùng. Nút Edit đ đ nh d ng phân vùng đó, có ki u là gì (ext3, swap, fvat…), qui đ nh l i kích thư c, là thư m c gì trong h th ng phân c p b nh .

B n có th Reset quá trình thao tác n u chưa tho mãn yêu c u c a mình, chưa có m t thay đ i nào đư c th c hi n cho đ n khi b n hoàn thành công vi c v i Disk Druid.

c. Cách qu n lý đĩa trong Linux:

Trong c u trúc cây th .v.v.

b c c a Linux, cao nh t là “/”, dư i đó là /boot, /etc, /root, /mnt

i v i Linux, m i thi t b ph n c ng đ u đư c coi như file ho c thư m c n m trong h th ng phân c p cây thư m c. Ch ng h n h th ng c a b n có hai nh t là /dev/had, c ng th hai là /dev/hdb. Trong cùng m t c ng thì đĩa c ng th

dĩa, các h th ng file đư c

chia thành các phân vùng khác nhau. M t đánh s th t t 1 đ n 4. tương ng v i

c ng có 4 phân vùng chính (primary) đư c c ng đ u tiên s là hda1, hda2 .v.v, phân vùng s 5: ví d hda5, hda6 …

thu c ph n m r ng (extended) đư c đánh s b t đ u t

d. Cài đ t boot loader

ây là chương trình dùng đ kh i đ ng Linux cũng như các h đi u hành khác (dual boot) khi b n có nhi u hơn m t h đi u hành đư c cài trên h th ng. Grub là boot loader m c đ nh khi cài RedHat 8.0. ây là chương trình r t m nh và uy n chuy n. Grub t đ ng dò

các h đi u hành hi n có trên h th ng và thêm vào trong danh sách kh i đ ng. Các tuỳ ch n trên màn hình tương đ i d hi u.

V i tuỳ ch n “ configure advance boot loader option” cho phép b n ch n vi c cài grub lên đâu trong c ng:

N u ch n Grub đ kh i đ ng h th ng , grub s đư c cài lên Master boot record ( /dev/hda).

N u ch n m t chương trình khác đ kh i đ ng như system commander ch ng h n, b n hãy ch n cài grub lên “first sector of boot partition”. Như v y, system commander s t đ ng nh n ra Linux và thêm vào m c nh p kh i đ ng cho Linux.

e. C u hình account:

www.nhipsongcongnghe.net
Vi c c u hình acount dùng đ thi t l p m t kh u root và có th t o thêm các account khác đ log in vào h th ng khi vi c cài đ t hoàn t t.

Tài kho n root là tài kho n có quy n cao nh t trong h th ng. B n có th cài đ t, c u hình h th ng hay làm m i chuy n m t khi đăng nh p vào h th ng v i tài kho n này.

f. Các lưu ý l a ch n gói ph n m m cài đ t:

V i Redhat 8.0, vi c ch n các gói ph n m m đ cài đ t đư c th c hi n r t thu n tiên khi các gói ph n m m đư c gom l i thành nhóm. Có th ch n cài các gói ph n m m ngay lúc này các gói c n thi t ho c có th cài thêm sau khi hoàn t t cài đ t.

B n ch n m c “select individual package” đ cài thêm các gói mà m c đ nh s không cài cho b n. Ví d như mc (Midnight Commander, tương t NC trong DOS). Sau khi l a ch n

xong, chương trình cài đ t s duy t các gói ph thu c đ b n cài thêm.

Trong su t quá trình ch n gói ph n m m cài đ t, b n đư c thông báo dung lư ng c n đ cài đ t. Nên chú ý đ không vư t quá dung lư ng phân vùng mà b n đã dành cho Linux trong quá trình ch n l a. M t đi u chú ý là b n nên cài các programming develop và kernerl source, các thư vi n l p trình đ thu n ti n cho vi c sau này c n biên d ch l i nhân h đi u hành ho c cài đ t và biên d ch ph n m m và driver cho h th ng.

g. C u hình X

làm vi c đư c v i giao di n đ ho , b n c n c u hình cho X Window. N u may m n, card đ ho và màn hình c a b n s n m trong danh sách đư c Linux h tr . Còn n u không, cách ch c ch n v i lo i card đ h a đ ch y đư c là ch n lo i vesa. V màn hình, Linux s t dò cho b n ho c b n s c u hình b ng tay vi c ch n t n s quét cho màn hình. ây chính là

Hãy c n th n vì quá trình này d làm h ng màn hình và card đ ho c a b n. lý do b n c n n m v ng thông s c a các linh ki n ph n c ng.

N u không c n Linux t

dò tìm và c u hình dùm b n, b n có th m file

/etc/X11/XF86Config (ho c XF86Config-4) đ c u hình b ng tay.

Sau khi nh n nút test đ ki m tra h th ng có ch y t t v i ch đ đ h a chưa, n u m i vi c suôn s , chúc m ng b n đã hoàn t t quá trình cài đ t Linux.

Lưu ý v card đ h a

www.nhipsongcongnghe.net
M c dù Linux nh n d ng và h tr đúng nhi u lo i card đ ho đư c s n xu t trong 2 năm g n đây, sau khi c u hình, card đ ho v n ch y v i bus PCI cho dù card đ h a c a b n là lo i AGP, và b n v n chưa t n d ng đư c các ch ng năng đ ho 3D cao c p c a nó. Lý do là các nhà s n xu t linh ki n vì lý do b o m t và b n quy n nên chưa h tr cho các nhà phát tri n Linux. Tuy nhiên, hi n nay nhi u nhà s n xu t ph n c ng đã b t đ u h tr driver cho các linh ki n c a mình trên các h th ng Linux. Ch ng h n v i nhà s n xu t Nvidia, b n có th t i driver c a nó thông qua www.nvidia.com ho c ftp://download.nvidia.com/XFree86_40/1.0-3123. Các game 3D ch y v i hình nh r t m n màng không thua kém gì trên MS Window sau khi b n đã cài driver cho h th ng.

www.nhipsongcongnghe.net

Cách cài đ t font và in Linux

n ti ng Vi t trên

Có 2 cách cài đ t Unicode fonts cho X Window. 1. S 2. S d ng ttmkfdir (cách cũ) d ng fontconfig (cách m i cho Mandrake-9.0, RedHat-8.0)

1. S

d ng ttmkfdir (cách cũ):

a. T o /usr/share/fonts, n u chưa có, b ng l nh: mkdir /usr/share/fonts

b. M utf8.tar.gz trong thư m c /usr/share/fonts b ng l nh: cd /usr/share/fonts && tar xvzf utf8.tar.gz

c. T o danh sách ch a fonts b ng l nh: cd utf8 && ttmkfdir > fonts.scale && mkfontdir

d. Báo cho fonts server bi t đ a đi m c a Unicode fonts b ng l nh: chkfontpath --add /usr/share/fonts/utf8

e. Kh i đ ng l i X font server b ng l nh: /etc/rc.d/init.d/xfs restart

2. S

d ng fontconfig (cách m i cho Mandrake-9.0, RedHat-8.0):

a. B utf8.tar.gz vô /usr/share/fonts và m nó ra b ng l nh: cp utf8.tar.gz /usr/share/fonts && cd /usr/share/fonts && tar xvzf utf8.tar.gz

b. C p nh t danh sánch fonts b ng l nh: fc-cache

Ch v y thôi không c n kh i đ ng l i xfs hay X.

B n cũng có th b arial font (t i v đ a ch

dư i) vô trong ~/.fonts và không ph i restart

cái chi h t n u b n xài fontconfig (Red Hat 8 ho c 9 ho c Mandrake-9.1).

www.nhipsongcongnghe.net
Ví d :

cd ~

mkdir ~/.fonts (n u chưa có)

tar xvjf arial.tar.bz2

cp arialuni.ttf ~/.fonts

Xem trang web ti ng Vi t và cách in ti ng Vi t:

Thông thư ng n u b n xem trang web b ng Mozilla thì không c n ph i set font gì c . N u b n xài Konqueror trên Red Hat 8.0 thì b n ph i set fonts trong Konqueror như hình thì m i xem và in đư c ti ng Vi t. đây

N u b n xài b n Mandrake m i nh t (9.1) thì b n s không c n làm gì h t. Vi c hi n th và in n ti ng Vi t đư c h tr r t t t.

Thêm chi ti t:

.Unicode fonts: có th t i v t

http://www.vnlinux.org/fonts/utf8.tar.gz ho c

http://www.vnlinux.org/arial.tar.bz2 n u b n v n chưa hi n th đư c tiêng Vi t 100% .fontconfig homepage t i http://www.fontconfig.org. .ttmkfdir có th t i v t http://www.joerg-pommnitz.de/TrueType/xfsft.html

.mkfontdir n m trong gói XFree86-3x (ho c XFree86-4x) . Viet Unicode có nhi u fonts http://sourceforge.net/project/showfiles.p...lease_id=132517

www.nhipsongcongnghe.net

Th

thu t b o m t cho Linux

Trong bài vi t này, chúng tôi xin gi i thi u m t s tính an toàn cho m t h minh ho gi i). th ng Linux (đ d

kinh nghi m nh m nâng cao

theo dõi cho b n đ c, chúng tôi s bi n Vi t Nam và trên th

b ng RedHat, m t phiên b n Linux r t ph

Hi n nay, trên môi trư ng máy ch , Linux ngày càng chi m m t v trí quan tr ng. Nguyên nhân khi n Linux d n tr Microsoft Windows là do tính thành m t đ i th ti m n ng c a h đi u hành

n đ nh, đ

linh ho t và kh

n ng ch u t i l n: đây là

nh ng đ c đi m quan tr ng hàng đ u c a m t h

th ng máy ph c v .

Tính b o m t t t cũng là m t trong nh ng đi m n i b t c a Linux. Tuy nhiên, đ m th th ng Linux có kh n ng ch ng l i các cu c t n công, ngư i qu n tr cũng k n ng nh t đ nh. Trong bài vi t này, chúng tôi xin th ng

c n ph i n m đư c m t s gi i thi u m t s Linux (đ d

kinh nghi m nh m nâng cao tính an toàn cho m t h minh ho gi i).

theo dõi cho b n đ c, chúng tôi s bi n Vi t Nam và trên th

b ng RedHat, m t phiên

b n Linux r t ph

1.1. Lo i b

t tc

các account và nhóm đ c bi t

Ngay sau khi cài đ t Linux, ngư i qu n tr nên xoá b (group) đã đư c t o s n trong h

t tc

các account và nhóm d ng, ví d

th ng nhưng không có nhu c u s

như lp, sync, shutdown, halt, news, uucp, operator, games, gopher, v.v... (Tuy nhiên b n đ c c n bi t rõ nh ng account và nhóm nào không c n cho h c a mình r i hãy xoá) th ng

Th c hi n vi c xoá b

account v i l nh :

# userdel

Ví d , n u không có nhu c u v sau:

in

n trên h

th ng, có th

xoá account lp như

# userdel lp

Tương t

như v y, có th

th c hi n vi c xoá b

các nhóm không c n thi t v i l nh

www.nhipsongcongnghe.net

# groupdel

2.2. Che gi u file ch a m t kh u

T

l ch s

xa xưa c a Unix và c

Linux, m t kh u c a toàn b

các account đã t ng các account

đư c lưu ngay trong file /etc/password, file có quy n đ c b i t t c trong h th ng! ây là m t k h l n cho các k

phá ho i: M c dù các m t kh u th c hi n đư c (và có th

đ u đư c mã hoá, nhưng vi c gi i mã ngư c là có th th c hi n khá d và ngày nay kh dàng, đ c bi t vì cơ ch n ng tính toán và x

mã hoã m t kh u không ph i là khó phá

lý c a máy tính r t m nh). Vì lí do trên, g n

đây các nhà phát tri n Unix và Linux đã ph i đ t riêng m t kh u mã hoá vào m t file mà ch có account root m i đ c đư c: file /etc/shadow. (Khi s pháp này, đ d ng phương

đ m b o tính tương thích, nơi v n đ t m t kh u trong file

/etc/password ngư i ta đánh d u "x")

N u b n đ c đang s 7.x) thì nh

d ng các phiên b n RedHat g n đây (ví d

RedHat 6.x hay s d ng

ch n l a Enable the shadow password khi cài đ t RedHat đ

tính n ng che gi u m t kh u này (Cũng th t may vì ch n l a này là m c đ nh trong h u h t các phiên b n Linux đang s d ng r ng rãi hi n nay)

3.3. T

đ ng thoát kh i shell

Ngư i qu n tr h

th ng r t hay quên thoát ra kh i d u nh c shell khi k t thúc

công vi c. B n thân tôi cũng đã t ng nhi u l n khi đang th c hi n vi c qu n tr v i account root thì b m tk phá ho i đi vì m t s này có th công vi c khác. Th t nguy hi m n u lúc đó có d dàng có quy n truy xu t h th ng m c

đó: K

cao nh t mà ch ng c n t n m t chút công s c nào c .

gi m nguy cơ này, ngư i qu n tr nên cài đ t tính n ng t shell khi không có s cách đ t m t tham s shell.

đ ng thoát ra kh i

truy xu t nào trong m t kho ng th i gian đ nh trư c b ng quy đ nh kho ng th i gian h th ng v n duy trì d u nh c

Mu n cài đ t tham s m t giá tr s nh c. th

này, ngư i s

d ng bi n môi trư ng TMOUT và gán cho nó th ng v n duy trì d u th ng, cách đơn gi n

hi n kho ng th i gian tính b ng giây h

th c hi n đi u này cho t t c

các account trong h s

nh t là đ t nó vào file /etc/profile dòng l nh sau: (gi là 600 giây)

ta đ t kho ng th i gian

www.nhipsongcongnghe.net
TMOUT=600

Như v y là n u trong kho ng 10 phút ngư i s s t

d ng không truy xu t shell, shell không " n" n u lúc đó ngư i

đ ng thoát ra. Tuy nhiên c n chú ý: M o này s

dùng đang ch y m t chương trình nào đó như vi hay mc,... Có nghĩa là ngư i dùng ph i đang làm vi c tr c ti p v i shell ch nào khác. không ph i v i b t kỳ m t chương trình

4.4. Lo i b

các d ch v

không s

d ng

M t đi u khá nguy hi m là sau khi cài đ t, h d ch v (và đa s là các d ch v

th ng t

đ ng b t ch y khá nhi u

không mong mu n), d n t i t n tài nguyên và gây ngay l p t c các d ch v các gói

nên nhi u nguy cơ v

b o m t. Ngư i qu n tr nên lo i b

không dùng t i ngay sau khi cài máy. Ho c đơn gi n b ng cách xoá b ph n m m/d ch v RedHat) ho c s không s d ng (qua công c ntsysv đ

qu n tr gói ph n m m rpm c a các d ch v đang cài

d ng công c

duy t xem t t c

đ t r i vô hi u hoá nh ng d ch v d ch v không s

không c n thi t (b ng cách b

đánh d u các

d ng v i phím Space). Sau khi thoát ra kh i ntsysv thì kh i không mong mu n s không ch y n a.

đ ng l i máy: các d ch v

5.5. Không ti t l

thông tin v

h

th ng qua telnet

D ch v h

cho phép truy xu t h

th ng t

xa telnet có kh

n ng ti t l

thông tin v

th ng, d

t o đi u ki n cho nh ng k i u này r t d

phá ho i t n công d a vào nh ng đi m xa vào d ch v

y u đã bi t.

nh n th y: M i ngư i dùng k t n i t

telnet đ u nh n đư c thông tin v nhân (kernel) c a máy ch .

tên máy, phiên b n Linux và phiên b n c a

tránh đi u này, ta c n th c hi n vi c kích ho t telnetd (telnet server) v i tham s -h. (Tham s -h s ng n telnet ti t l các thông tin và ch in ra d u nh c

"Login:" cho nh ng ngư i k t n i t

xa).

Do các phiên b n RedHat 7.x khi ch y telnetd không còn s s

d ng inetd n a (mà

d ng xinetd - m t phiên b n nâng c p và có nhi u c i ti n so v i inetd) nên khác nhau tuỳ theo phiên b n RedHat đang s d ng.

cách c u hình l i telnetd s

+ V i các phiên b n RedHat 6.x và trư c đó, th c hi n các bư c sau:

Trong file /etc/inetd.conf, thay đ i dòng

www.nhipsongcongnghe.net
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

chuy n thành :

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

Ti p theo, kh i đ ng l i inetd b ng câu l nh:

# /etc/rc.d/init.d/inetd restart

+ V i các phiên b n RedHat 7.x, th c hi n bư c sau:

Trong file /etc/xinetd.d/telnet , thêm ch n l a:

server_args = -h

File trên s

có d ng như sau;

service telnet { disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID server_args = -h }

Ti p theo, kh i đ ng l i xinetd b ng câu l nh:

# /etc/rc.d/init.d/xinetd restart

6.6. Tránh s

d ng các d ch v

không mã hoá thông tin trên đư ng truy n

M c dù

trên chúng tôi đã trình bày cách ng n d ch v

telnet ti t l

thông tin, ki u

nhưng chúng tôi xin có l i khuyên: Tuy t đ i tránh s như telnet, ftp (ngo i tr h

d ng nh ng d ch v

ftp anonymous) vì nh ng d ch v

này hoàn toàn không

mã hoá m t kh u khi truy n qua m ng. B t kỳ m t k

phá ho i nào cũng có

www.nhipsongcongnghe.net
th d dàng "tóm" đư c m t kh u c a b n b ng nh ng công c nghe lén ki u như

sniffer.

Ơ' nh ng trư ng h p có th , nên s telnet: d ch v

d ng d ch v

ssh thay th

cho c

ftp và b om t

SSH (Secure Shell) dùng cơ ch

mã hoá công khai đ

thông tin, th c hi n mã hoá c Hi n đang đư c s

m t kh u l n thông tin chuy n trên đư ng truy n.

d ng khá r ng rãi, gói ph n m m c a SSH cũng đư c đóng

kèm trong h u h t các phiên b n g n đây c a Linux. Ch ng h n, các phiên b n RedHat t th s 7.0 tr lên m c đ nh đ u cài OpenSSH, m t s n ph m mã ngu n m tham kh o website có

d ng hoàn toàn mi n phí. (B n đ c có th s n ph m này).

www.openssh.org v

Ngoài ra, nh ng d ch v nên tuy t đ i tránh s

"r" ki u như rsh, rcp hay rlogin chúng tôi cũng khuyên d ng. Lý do là các d ch v này ngoài vi c truy n m t kh u

không mã hoá còn th c hi n vi c ki m tra quy n truy xu t d a trên đ a ch máy k t n i, là m t đi u c c kỳ nguy hi m. Các k đ u có th d phá ho i s d ng k thu t spoofing

dàng đánh l a đư c cách ki m tra này khi "làm gi " đư c đ a ch h pl .

c a máy truy xu t d ch v

7. 7. C m s

d ng account root t

consoles

Có th

b n đ c đ u nh n th y, ngay sau khi cài đ t RedHat, account root s telnet trên h th ng (ch nh ng

không có quy n k t n i telnet vào d ch v account thư ng m i có th

k t n i). Nguyên nhân là do file /etc/securetty quy

đ nh nh ng console đư c phép truy nh p b i root ch li t kê nh ng console "v t lý" (t c là ch truy xu t đư c khi ng i tr c ti p t i máy ch ) mà b n i qua m ng. D ch v ftp cũng s b h n ch qua nh ng k t

này: account root không đư c phép

truy xu t ftp qua m ng.

t ng tính b o m t hơn n a, so n th o file /etc/securetty và b console b n không mu n root truy nh p t đó.

đi nh ng

8.8. C m "su" lên root

Trong Linux, l nh su (Substitute User) cho phép ngư i dùng chuy n sang m t account khác. N u không mu n m t ngư i b t kỳ "su" thành root, thêm hai dòng sau vào n i dung file /etc/pam.d/su

auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/Pam_wheel.so group=wheel

www.nhipsongcongnghe.net

Như v y, ch có nh ng ngư i có đ ng ký là thành viên c a nhóm wheel m i có quy n "su" thành root. cho phép m t ngư i dùng có quy n này, ngư i qu n tr

ch vi c gán account c a ngư i này vào nhóm wheel (qua file /etc/group)

9.9. H n ch

các thông tin ghi b i bash shell

Thông thư ng, t t c

các l nh đư c th c hi n t i d u nh c shell c a các account

đ u đư c ghi vào file ".bash_history" n m trong thư m c cá nhân c a các account. i u này cũng gây nên nh ng nguy hi m ti m n, đ c bi t v i nh ng

ng d ng đòi h i ph i gõ các thông m t như m t kh u trên dòng l nh. Ngư i qu n tr nên h n ch nguy cơ này d a trên 2 bi n môi trư ng HISTFILESIZE và l nh (gõ t i d u nh c shell)

HISTSIZE: Bi n môi trư ng HISTFILESIZE xác đ nh s s

đư c lưu l i cho l n truy nh p sau, còn bi n môi trư ng HISTSIZE xác đ nh s đư c ghi nh trong phiên làm vi c hi n th i. Ta có th gi m giá tr c a

l nh s

HISTSIZE và đ t b ng 0 giá tr HISTFILESIZE đ nêu trên.

gi m t i đa nh ng nguy hi m đã

th c hi n vi c này, ch c n đơn gi n thay đ i giá tr hai bi n này trong file /etc/profile như sau:

HISTFILESIZE=0 HISTSIZE=20

Như v y, t i phiên làm vi c hi n th i, shell ch ghi nh

20 l nh g n nh t, đ ng

th i không ghi l i các l nh ngư i dùng đã gõ khi ngư i dùng thoát ra kh i shell.

10.10. C m nhòm ngó t i nh ng file script kh i đ ng Linux

Khi kh i đ ng Linux, các file script đư c đ t t i thư m c /etc/rc.d/init.d s th c hi n. tránh nh ng s

đư c

tò mò không c n thi t, ngư i qu n tr nên h n ch

quy n truy xu t t i nh ng file này ch cho account root b ng l nh sau:

# chmod -R 700 /etc/rc.d/init.d/*

11.11. Xoá b

nh ng chương trình SUID/SGID không s

d ng

Thông thư ng, nh ng hi n m ts

ng d ng đư c th c hi n dư i quy n c a account g i th c d ng m t k thu t đ c bi t cho phép

ng d ng. Tuy nhiên, Unix và Linux s

chương trình th c hi n dư i quy n c a ngư i qu n lý chương trình (ch

www.nhipsongcongnghe.net
không ph i ngư i th c hi n). th ng đ u có th ây chính là lý do t i sao t t c m i user trong h có quy n truy xu t

đ i m t kh u c a mình trong khi không h

lên file /etc/shadow: Nguyên nhân vì l nh passwd có gán thu c tính SUID và đư c qu n lý b i root, mà ch có root m i có quy n truy xu t /etc/shadow.

Tuy nhiên, kh

n ng này có th

gây nên nh ng nguy cơ ti m tàng: N u m t t i ho c do

chương trình có tính n ng th c thi đư c qu n lý b i root, do thi t k đư c cài đ t c t it đ u có th tình b i nh ng k x y ra. Th c t

phá ho i mà l i có thu c tính SUID thì m i đi u cho th y, khá nhi u k thu t xâm nh p h k thu t này: k th ng

mà không có quy n root đư c th c hi n nh nào đó t o đư c m t shell (ví d Sau đó m i truy xu t phá ho t s hi n trong shell s

phá ho i b ng cách

bash) đư c qu n lý b i root, có thu c tính SUID. đư c th c hi n qua shell này vì m i l nh th c

đư c th c hi n dư i quy n c a root.

Thu c tính SGID cũng tương t

như thu c tính SUID: các chương trình đư c th c không ph i nhóm c a

hi n v i quy n nhóm là nhóm qu n lý chương trình ch ngư i ch y chương trình.

Như v y, ngư i qu n tr s nh ng

ph i thư ng xuyên ki m tra xem trong h

th ng có

ng d ng nào có thu c tính SUID ho c SGID mà không đư c phép không?

tìm t t c

các file có thu c tính SUID/SGID, s

d ng l nh find như sau:

# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls ưlg {} \;

N u phát hi n đư c m t file có thu c tính SUID/SGID m t cách không c n thi t, có th lo i b các thu c tính này b ng l nh:

# chmod a-s

12.12. T ng tính b o m t cho nhân (kernel) c a Linux

Th c t

cho th y, Linux không h n đư c thi t k h ng có th d ng m t h

v i các tính n ng b o m t th t h

ch t ch : khá nhi u l th ng. Do đó, vi c s

b l i d ng b i nh ng tin t c thông th o v đi u hành v i nhân đư c c ng c

là r t quan t t thì

tr ng: M t khi nhân - ph n c t lõi nh t c a h nguy cơ b phá ho i s gi m đi r t nhi u.

đi u hành - đư c thi t k

B n đ c có th

xem xét vi c c ng c

nhân Linux thông qua các mi ng vá (patch).

Tôi xin gi i thi u m t trong nh ng website t t nh t chuyên cung c p các mi ng

www.nhipsongcongnghe.net
vá b sung cho nhân Linux v b o m t t i đ a ch www.grsecurity.net. T i đây b n sung cho h

đ c có th

tìm hi u thông tin h u ích và t i xu ng các mi ng vá b

th ng Linux c a mình.

www.nhipsongcongnghe.net

B om th
1. tv nđ

th ng *nix v i PAM

Ch c h n b n đã t ng t

h i t i sao các chương trình ftp, su, login, passwd, sshd, rlogin …

l i có th hi u và làm vi c v i shadow password; hay t i sao các chương trình su, rlogin l i đòi hòi password; t i sao m t s h th ng ch cho m t nhóm nào đó có quy n su, hay sudo, hay h th ng ch cho phép m t s ngư i dùng, nhóm ngư i dùng đ n t các host xác

đ nh và các thi t l p gi i h n cho nh ng ngư i dùng đó, …T t c đ u có th lý gi i v i PAM. ng d ng c a PAM còn nhi u hơn nh ng gì tôi v a nêu nhi u, và nó bao g m các module đ ti n cho ngư i qu n tr l a ch n.

2. C u trúc PAM

- Các

ng d ng PAM đư c thi t l p trong thư m c /etc/pam.d hay trong file /etc/pam.conf

( login, passwd, sshd, vsftp, …) - Thư vi n các module đư c lưu trong /lib/security ( pam_chroot.so, pam_access.so, pam_rootok.so, pam_deny.so, … ) - Các file c u hình đư c lưu trong /etc/security ( access.conf, chroot.conf, group.conf ,… ) +access.conf – +group.conf – i u khi n quy n truy c p, đư c s i u khi n nhóm ngư i dùng, s d ng cho thư vi n pam_access.so.

d ng b i pam_group.so d ng b i pam_limits.so. d ng cho thư vi n

+limits.conf – thi t l p các gi i h n tài nguyên h th ng, đư c s +pam_env – pam_env.so . i u khi n kh năng thay đ i các bi n môi trư ng, s

+time – Thi t l p h n ch th i gian cho d ch v và quy n ngư i dùng, s vi n pam_time.so.

d ng cho thư

3. Cách ho t đ ng c a PAM

Thu t ng - Các chương trình login, pass, su, sudo, … trên đư c g i là privilege-granting application ( chương trình trao đ c quy n ).

- PAM-aware application: là chương trình giúp các privile-granting application làm vi c v i thư vi n PAM.

Các bư c ho t đ ng:

1. Ngư i dùng ch y m t

ng d ng đ truy c p vào d ch v mong mu n, vd login.

www.nhipsongcongnghe.net
2. PAM-aware application g i thư vi n PAM đ th c hi n nhi m v xác th c. 3. PAM library s d a vào file c u hình c a chương trình đó trong /etc/pam.d ( vd đây là

login -> file c u hình /etc/pam.d/login ) xác đ nh lo i xác th c nào đư c yêu c u cho chương trình trên. Trong trư ng h p không có file c u hình, thì file /etc/pam.d/other s đư c s d ng.

4. PAM library s load các module yêu c u cho xác th c trên. 5. Các modules này s t o m t liên k t t i các hàm chuy n đ i ( conversation functions ) trên chương trình. 6. Các hàm này d a vào các modules mà đưa ra các yêu c u v i ngư i dùng, vd chúng yêu c u ngư i dùng nh p password. 7. Ngư i dùng nh p thông tin vào theo yêu c u. 8. Sau khi quá trình xác th c k t thúc, chương trình này s d a vào k t qu mà đáp ng

yêu c u ngư i dùng ( vd cho phép login vào h th ng ) hay thông báo th t b i v i ngư i dùng.

4. Bây gi chúng ta s nghiên c u file config

Listing 10-1: The /etc/pam.d/rlogin file #%PAM-1.0 auth required /lib/security/pam_securetty.so auth sufficient /lib/security/pam_rhosts_auth.so auth required /lib/security/pam_stack.so service=system-auth auth required /lib/security/pam_nologin.so account required /lib/security/pam_stack.so service=system-auth password required /lib/security/pam_stack.so service=system-auth session required /lib/security/pam_stack.so service=system-auth

Các dòng trong file config có d ng sau:

module-type control-flag module-path module-args

----MODULE TYPE auth: th c hi n xác th c. Thông thư ng, m t auth module s yêu c u password đ ki m tra, hay thi t l p các đ nh danh như nhóm ngư i dùng, hay th kerberos.

Account đi u khi n s

ki m tra “b m t” v i yêu c u xác th c. Ví d , nó có th ki m tra m t host và trong th i gian cho phép hay không.

ngư i dùng truy c p d ch v t

www.nhipsongcongnghe.net

Password: thi t l p password. Thông thư ng, nó luôn có s auth và m t module password..

tương

ng gi a m t module

Session: đi u khi n các nhi m v qu n lý session. dùng s

ư cs

d ng đ đ m b o r ng ngư i

d ng tài kho n c a h khi đã đư c xác th c..

----PAM MODULE CONTROL FLAGS

Require: c đi u khi n này nói v i PAM library yêu c u s

thành công c a modules tương

ng, vd “auth required /lib/security/pam_securetty.so” à module pam_securetty.so ph i thành công. N u module đó không đư c th c hi n thành công thì quá trình xác th c th t b i. Nhưng lúc đó, PAM v n ti p t c v i các module khác, tuy nhiên nó ch có tác d ng nh m tránh kh i vi c ngư i dùng có th đoán đư c quá trình này đã b th t b i nào. giai đo n

Sufficient: c này khác v i c trên

ch , khi có m t module th c hi n thành công nó s

thông báo hoàn thành ngay quá trình xác th c, mà không duy t các module khác n a.

Requisite: c này có ý nói PAM library lo i b ngay quá trình xác th c khi g p b t kỳ thông báo th t b i c a module nào.

Optional: c này ít khi đư c s

d ng, nó có ý nghĩa là module này đư c th c hi n thành

công hay th t b i cũng không quan tr ng, không nh hư ng quá trình xác th c.

----MODULE-PATH –

ư ng d n đên thư vi n PAM.

----ARGUMENTS – Các bi n tùy ch n cho các module.

Các module ( auth, account, password, session ) đư c th c hi n trong stack và chúng đư c th c hi n theo th t xu t hi n trong file config.

Các chương trình yêu c u xác th c đ u có th s

d ng PAM.

5.Sau đây tôi xin gi i thi u ch c năng c a m t s module

_ pam_access.so:

- Support module type :account - Module này s d ng file thi t l p trong etc/security/access.conf .

www.nhipsongcongnghe.net
File c u hình này có d ng như sau: < + or - > : : + : grant permission - : deny permission V i username list là ngư i dùng hay nhóm ngư i dùng, tty list là login qua console, host list xác đ nh các host hay domain. Chúng ta có th s EXCEPT=tr , LOCAL=c c b . Ví d sau cho c m osg login t t t c , và cho phép linet login t xa. d ng các t khóa ALL=t t c ,

account required pam_access.so -:osg:ALL +:linet:ALL EXCEPT LOCAL

pam_chroot.so: Support module type :account; session; authentication

Dùng đ chroot cho các user thi t l p trong /etc/security/chroot.conf Ví d , tôi th c hi n chroot cho sshd đ ngư i dùng linet ch có quy n truy c p trong /home/osg mà không có quy n truy c p đ n các thư m c home c a ngư i dùng khác Thêm dòng sau trong /etc/pam.d/sshd ( lưu ý trong /etc/sshd/sshd_config ph i thi t l p UsePAM = yes ) session required pam_chroot.so

_ pam_deny.so:

Support module type: account; authentication; password; session Module này luôn tr v giá tr false. Vd nó đư c dùng trong /etc/pam.d/other đ t ch i

m i truy c p c a ngư i dùng khi truy c p vào các PAM-aware program mà không có file c u hình PAM

- Acount module type: T

ch i ngư i dùng quy n truy c p vào h th ng

#add this line to your other login entries to disable all accounts login account required pam_deny.so

- Authentication module type: t

ch i truy c p, thi t l p giá tr m c đ nh. vd trong

/etc/pam.d/other. Khi ngư i dùng login vào h th ng, đ u tiên s g i các module trong /etc/pam.d/login ra và yêu c u ngư i dùng nh p thông tin tương password ), n u các thông tin này không đáp deny quy n truy c p. ng ( username,

ng thì PAM s g i /etc/pam.d/other ra đ

#/etc/pam.d/other

www.nhipsongcongnghe.net
auth required /lib/security/$ISA/pam_deny.so account required /lib/security/$ISA/pam_deny.so password required /lib/security/$ISA/pam_deny.so session required /lib/security/$ISA/pam_deny.so

- Password module type: Không cho phép change password

ví d không cho phép ngư i dùng đ i passwd Thêm dòng sau vào /etc/pam.d/passwd password required pam_deny.so

_ pam_limits.so - Support module type: session Thi t l p các gi i h n tài nguyên trong /etc/security/limit

username|@groupname type resource limit.

A resource can be one of these keywords: core - Limits the size of a core file (KB). data - Maximum data size (KB). fsize - Maximum file size (KB). memlock - Maximum locked-in memory address space (KB). nofile - Maximum number of open files. rss - Maximum resident set size (KB). stack - Maximum stack size (KB). cpu - Maximum CPU time in minutes. nproc - Maximum number of processes. as - Address space limit. maxlogins - Maximum number of logins allowed for this user.

Thông tin chi ti t

trong /etc/security/limits.conf

Vd dư i đây, t t c user gi i h n 10 MB m i session và cho phép max là 4 logins đ ng th i. ftp đư c cho phép 10 login đ ng th i ( h u ích cho anonymous ftp ); thành viên c a nhóm manager gi i h n 40 process, nhóm developers gi i h n 64MB b nh , và các user thu c wwwusers không th t o files l n hơn 50 MB = 500000 KB.

Listing 3. Setting quotas and limits

www.nhipsongcongnghe.net

* hard rss 10000 * hard maxlogins 4 * hard core 0 bin ftp hard maxlogins 10 @managers hard nproc 40 @developers hard memlock 64000 @wwwusers hard fsize 50000

active các limits này, b n c n thêm dòng sau vào cu i /etc/pam.d/login:

session required /lib/security/pam_limits.so.

_ pam_listfile.so

Module này đ c thông tin trong file và th c hi n hành đ ng đư c thi t l p ( như cho phép hay không cho phép truy c p ) d a vào s username, host, groups, … t n t i hay không c a các nhân t như

Ví d trong vsftpd auth required /lib/security/pam_listfile.so item=user \ sense=deny file=/etc/ftpusers onerr=succeed

Yêu c u PAM load pam_listfile module và đ c trong /etc/ftpusers, n u /etc/ftpusers ch a các dòng username, thì PAM s s d ng sense=deny đ quy t đ nh ngăn c n các user này

truy c p vào. V y các user trong /etc/ftpusers s ko có quy n truy c p vào ftp.

_ pam_rootok.so

S

d ng module này đ yêu c u root không c n nh p password khi th c hi n chương

trình, vd nó đư c gán vào su đ chi r ng root không c n gõ passwd khi đánh l nh su

_pam_wheel.so Ch cho phép quy n truy c p root v i group wheel. Ví d ch cho phép nh ng ngư i thu c nhóm wheel có quy n su lên root.

# # root gains access by default (rootok), only wheel members can # become root (wheel) but Unix authenticate non-root applicants.

www.nhipsongcongnghe.net
# auth sufficient pam_rootok.so auth required pam_wheel.so auth required pam_unix_auth.so

-----------------> Tham kh o Document: http://www.kernel.org/pub/linux/libs/pam/pre/doc/ Mã ngu n module: http://cvs.sourceforge.net/viewcvs.py/pam/Linux-PAM/modules/

www.nhipsongcongnghe.net

Cách biên d ch nhân (kernel)

1. L y kernel v :

Kernel source có th

t iv

t

http://www.kernel.org . B n stable hi n t i là

2.4.21 và developer là 2.5.73. N u b n không mu n test nh ng ch c năng m i c a kernel thì nên s d ng 2.4.21 cho công vi c hàng ngày.

2. Bung nén và chu n b kernel: gi ch y các dòng l nh dư i b n s

s

b nv at iv

linux-2.4.21.tar.bz2, sau khi

s n sàng cho vi c compile kernel

2a. $mv linux-2.4.21.tar.bz2 /usr/src/

2b. $cd /usr/src && tar -xvjf linux-2.4.21.tar.bz2

2c. $ln -s linux-2.4.21 linux

n đây b n đã s n sàng cho vi c compile nhưng đôi lúc có l m t patch nào đó thì có th

b ns

c n apply

ch y l nh sau trong thư m c /usr/src/linux

$patch -p1 --dry-run < /đ a đi m/và tên/c a patch

Lưu ý: --dry-run s

'gi

đò' apply cái patch nhưng th c s phòng h

chưa làm gì h t. B n

nên xài --dry-run trư c khi apply đ

cái patch không ph i cho kernel

b n đang xài ho c patch còn b l i. Sau khi ch y --dry-run và không th y báo l i gì thì b n có th tên/c a patch th t s apply patch b ng l nh $patch -p1 < /đ a đi m/và

3. Compile kernel: s

đư c th c hi n v i các l nh sau đây:

3a. $make menuconfig (ho c make config, ho c make xconfig) s

h ib nm t xài

lo t câu h i cho kernel phù h p v i máy c a b n. N u b n bi t ch c mình s m t ch c năng nào đó thì nên tr n u b n lư ng l l i Y còn không thì tr l i N, tr

l i M (module)

không bi t cái ph n c ng c a mình s

xài driver này hay driver

khác, nh t là ph n cho network card hay sound card. N u b n không rõ câu h i này h i cái gì thì gõ h s có ph n gi i thích khá rõ ràng.

www.nhipsongcongnghe.net

B n có th

t iv

m t b n config m u mà mình xài cho máy Pentium3, Tekram

SCSI card, SB Live! sound card, bt848 Haupauge TV card, ext2/ext3/reiserfs/jfs/tmpfs/iso9660/vfat/ntfs và ipsec VPN compiled vô kernel, tulip, intel, realtek modules cho network cards, iptables và wireless modules. N u b n không c n cái nào thì ch vi c comment out (b cái d u #

phía trư c) cái hàng đó. Ch ng h n máy b n là Petium4 thì nên thay đ i v i giá tr tương trên. ng. Sau đó ch y l nh $make oldconfig thay vì $make menuconfig như

3b. $make dep s

chu n b các dependencies c n thi t

3c. $make clean s

d n d p .o files mà developers đ

quên và t o các source tree.

3d. $make bzImage s b ns

b t đ u th t s

compile kernel. N u m i chuy n suôn s

có bzImage n m trong thư m c /usr/src/linux/arch/i386/boot

3e. $make modules s menuconfig trên.

compile các modules b n ch n trong lúc ch y $make

3f. $make modules_install s

cài các modules vào thư m c /lib/modules/2.4.21

3g. $cp /usr/src/linux/arch/i386/boot/bzImage /boot/mykernel-2.4.21 s kernel image b n m i compile vô thư m c /boot.

cp

N u b n có SCSI card và compile SCSI card ho c filesystem (ext3, reiserfs,..v..) mà máy s d ng dư i d ng module thì b n ph i t o initial ramdisk v i l nh

$mkinitrd -o /boot/initrd-2.4.21.img /lib/modules/2.4.21. Còn n u b n đã compile SCSI card và filesytem vô luôn kernel thì bái bai initrd.

:

4. Chu n b boot loader

4a. N u b n dùng GRUB: t o h n m t section m i cho kernel c a b n b ng cách s a menu.lst v i l nh $vi /boot/grub/menu.lst gi s / c a b n n m trên

/dev/hda3 và /boot n m trên /dev/hda1, thêm vào nh ng hàng sau:

title MyKernel-2.4.21

www.nhipsongcongnghe.net
kernel (hd0,0)/boot/mykernel-2.4.21 root=/dev/hda3

initrd (hd0,0)/boot/initrd-2.4.21.img

N u b n không xài initrd thì không c n hàng cu i

trên.

4b. N u b n dùng LILO: t o h n m t section cho kernel c a b n b ng cách s a file lilo.conf v i l nh $vi /etc/lilo.conf thêm vào nh ng hàng sau:

image=/boot/mykernel-2.4.21

label=MyKernel-2.4.21

root=/dev/hda3

initrd=/boot/initrd-2.4.21.img

read-only

Nh

ch y l nh $lilo n u không b n s

không th y kernel m i c a mình khi reboot.

B n nên gi

l i /usr/src/linux/.config đ

mai này n u b n mu n compile 2.4.22

ch ng h n thì có th

xài l i nó b ng cách ch y $make oldconfig thay vì $make xóa đi /usr/src/linux/.config file và d n không th dùng

menuconfig. Lưu ý: $make mrproper s d p s ch s

các .o files và symlinks (ln -s command). B n s

config file c a kernel 2.4 cho kernel 2.5 đư c.

Hy v ng bài vi t này s

giúp b n hi u rõ hơn quá trình c p nh t kernel t

source.

Như thư ng l , cám ơn các bác trên #unixcircle đã cho feedback. M i góp ý xin g iv em_mê[email protected]

www.nhipsongcongnghe.net

Làm reverse proxy v i Linux + Apache, B o v máy ch
1. Gi i thi u Chào các fan hâm m Linux, Bài vi t này ch y u d a trên hai tài li u là "Web Security Appliance With Apache and mod_security" c a Ivan, tác gi mod_security và "Securing Apache 2: Step-by-Step" c a Artur Maj. Bà con có th xem đây là m t b n d ch ti ng Vi t c a hai tài li u trên, kèm theo nh ng suy nghĩ riêng c a b n thân tôi d a vào kinh nghi m th c t khi tri n khai reverse proxy -0-. Bài vi t này có th xem là m t case study thu c t p tài li u "B o v máy ch an toàn v i ph n m m t do". Nhi m v c a chúng ta là b o v m t hay nhi u content web-server -1- n m trong vùng Internal -2-, các web-server này có th là Apache httpd, ho c Microsoft IIS, ho c có th ch là m t web-server đơn gi n đư c embedded vào m t ng d ng nào đó. hoàn thành nhi m v , chúng ta s t p trung vào xây d ng m t firewall/ids ho t đ ng t ng application, trong tài li u này g i là reverse-proxy, s d ng Apache httpd -3- trên n n Linux. 2. Reverse proxy là gì?

M t proxy, theo đ nh nghĩa, là m t thi t b đ ng gi a server và client, tham gia vào "cu c trò chuy n" gi a hai bên. Khái ni m proxy mà chúng ta thư ng dùng hàng ngày t t hơn nên đư c g i là m t forward proxy: m t thi t b đ ng gi a m t client và t t c server mà client đó mu n truy c p vào. M t reverse proxy làm công vi c hoàn toàn ngư c l i: nó đ ng gi a m t server và t t c client mà server này ph i ph c v . Reverse proxy gi ng như m t nhà ga kiêm m t tr m ki m soát, các request t client, b t bu c ph i ghé vào reverse proxy, t i reverse proxy s ki m soát, l c b các request không h p l , và luân chuy n các request h p l đ n đích cu i cùng là các server. Chú ý là m t reverse proxy có th luân chuy n request cho nhi u server cùng lúc. L i th l n nh t c a vi c s d ng reverse proxy là kh năng qu n lí t p trung. M t khi đã đ y đư c t t c traffic đi qua m t tr m ki m soát duy nh t (là reverse proxy), chúng ta có th áp d ng nhi u "đ ngh " khác đ tăng cư ng an ninh cho h th ng c a mình. Dĩ nhiên, b t kì s n ph m hay công ngh nào cũng có ưu và khuy t đi m c a nó, đi cùng v i single point of access bao gi cũng là "bóng ma" single point of failure. Single point of failure có th đư c gi i quy t b ng cách xây d ng cluster. ây là m t v n đ hoàn toàn vư t qua kh i ph m vi c a bài vi t này, tôi ch xin gi i thi u b nào mu n tìm hi u v cluster trên Linux thì th ghé vào http://www.linux-ha.org. Ngoài ra áp d ng reverse proxy đúng cách s giúp tăng cư ng performance cũng như nâng cao scalability c a các web-application ch y trên các content server. Chút xíu n a, tôi s đi vào chi ti t các ưu đi m c a reverse proxy cũng như làm th nào đ khai thác các ưu đi m đó. 3. Cài đ t máy ch reverse-proxy

www.nhipsongcongnghe.net
3.1. Ch n và cài đ t h đi u hành cho reverse proxy Dĩ nhiên là tôi s d ng linux cho máy ch reverse proxy. Tôi không mô t quá trình cài đ t linux đây b i có r t nhi u tài li u hay trên Internet nói v đ tài này, và hơn n a tôi nghĩ là m t khi đã nghĩ đ n chuy n làm reverse proxy thì ch c ch n chuy n cài đ t Linux không là v n đ .Linux có quá tr i distro, th mrro ch n distro nào? Theo tôi thì distro nào cũng như nhau c thôi, nhưng n u ai đó h i tôi câu h i trên thì câu tr l i s là Trustix -4-. B t k ch n distro nào, nh là sau khi cài đ t xong, hãy dành m t chút th i gian đ secure cái distro c a mình l i trư c khi đ c ti p -5-. Ph n ti p theo chúng ta s bàn v vi c cài đ t Apache httpd cũng như các module kèm theo c a nó. 3.2. 1.3.x hay 2.x? Trư c tiên, tôi nghĩ c n ph i tr l i câu h i là chúng ta s ch n phiên b n Apache nào đ làm reverse proxy đây, 1.3.x hay 2.x? Tôi ch n 2.x vì ba lý do: th nh t là tôi "nghe đ n" là có r t nhi u 0-day trong phiên b n 1.3.x . Lý do th hai là Apache 2.x cung c p m t b filtering API t t hơn so v i phiên b n 1.3.x, cho phép các module có th nhìn th y và tương tác v i n i dung c a các request cũng như các response tương ng t tr l i t server. i u này r t quan tr ng đ i v i m t reverse proxy đóng vai trò là m t application gateway b i vì nó ph i ki m tra t t c thông tin đi xuyên qua nó trư c khi chuy n giao cho bên nh n. -6-. Lý do cu i cùng là Apache httpd 2.x có performance cao hơn h n 1.3.x khi ph c v các static content như file HTML và file hình nh. Tôi quan tâm đ n v n đ này là vì tôi có ý đ nh gi m t i cho các content server bên trong b ng cách tách content ra làm hai lo i là dynamic (các lo i file CGI/Perl, PHP) và static (các file HTML và file hình nh), các content server ch ph c v dynamic content, còn t t c static content thì đưa qua máy ch reverse proxy luôn. Lúc đó khi các request c a client đi vào reverse proxy, n u request đó có đích đ n là m t static content, máy ch reverse proxy s tr l i luôn cho client mà không c n forward request đó đ n content server phía sau, ch nh ng request đ n các dynamic content m i đư c forward đ các content server x lí. Tôi s đi vào chi ti t v n đ này ph n sau, ch lưu ý m t đi u là cu i cùng tôi l i không dùng Apache httpd cho m c đích này mà l i s d ng m t máy ch web khác chuyên tr static content. 3.3. Ch n module cho Apache httpd Ngoài nh ng module mà tài li u "Securing Apache 2: step by step" đ ngh , chúng ta ph i ch n thêm các module sau đây: -mod_rewrite, mod_proxy, mod_proxy_http: các module này s h tr chúng ta trong vi c thi t l p reverse proxy. -mod_security: module này giúp chúng ta c u hình reverse proxy thành m t application firewall đ ch ng l i các d ng t n công thư ng th y vào các web-application ch y trên content server. -7-mod_ssl: module này giúp chúng ta mã hóa d li u c a các k t n i t client đ n server thông qua giao th c SSL và TLS, bi n giao th c HTTP không an toàn thành giao th c HTTPS r t b o m t. -8Ph n quan tr ng ti p theo là ch n m t MPM phù h p v i m c đích làm reverse proxy c a chúng ta. MPM là vi t t t c a c m t Multi-Processing Module, là m t c i thi n đáng k c a Apache httpd 2.x so v i Apache 1.x. Trong ki n trúc c a Apache 2.x, MPM đóng vai trò h t s c quan tr ng, nó ch u trách nhi m l ng nghe trên các c ng m ng, ch p nh n các yêu c u k t n i t phía client, và chuy n các yêu c u đó vào bên trong đ Apache httpd x lí 9-. Trong trư ng h p này tôi ch n MPM worker. MPM worker s d ng thread đ ph c v các request, do đó nó có kh năng ph c v m t lư ng l n các request nhưng l i t n r t ít tài nguyên so v i các process-based MPM khác như prefork. ng th i MPM worker v n khai thác đ c tính n đ nh c a cá process-based MPM b ng cách t o ra nhi u process đ trư c, m i process có nhi u thread đ s n sàng ph c v client -10-. 3.4. Biên d ch và cài đ t Apache httpd Câu h i k ti p là biên d ch các module theo ki u nào. Như chúng ta đ u bi t, có hai cách

www.nhipsongcongnghe.net
biên d ch các module trong Apache httpd. Cách th nh t, g i là phương pháp đ ng, là biên d ch các module thành các thư vi n liên k t chia s (tương t như các thư vi n DLL trên Windows). V i cách này, các module s đư c biên d ch thành các file .so, và s đư c t i lên khi Apache httpd kh i đ ng n u c n (tùy theo các câu l nh LoadModule trong file c u hình conf/httpd.conf). Cách biên d ch th hai, g i là phương pháp tĩnh, là gom t t c module nhét vào trong file bin/httpd luôn (link statically). Khi kh i đ ng và trong quá trình ch y, Apache httpd không c n ph i t i thêm module nào n a. Phương pháp tĩnh đư c xem là l a ch n t t hơn h t. Ch n phương pháp tĩnh, chúng ta không c n dùng đ n module mod_so (module c n thi t đ t i các file .so trong phương pháp đ ng). Hơn n a, theo khuy n cáo c a Apache, s d ng phương pháp tĩnh s giúp tăng 5% v m t performance so v i phương pháp đ ng. Chúng ta t i Apache httpd 2.x http://httpd.apache.org/download.cgi và t i mod_security t i http://www.modsecurity.org s d ng các l nh sau: CODE localhost$ localhost$ localhost$ localhost$

wget http://www.tux.org/pub/net/apache/dist/htt...d-2.0.54.tar.gz wget http://www.modsecurity.org/download/modsecurity-1.8.7.tar.gz tar -xzf httpd-2.0.54.tar.gz -C /usr/local/src tar -xzf modsecurity-1.8.7.tar.gz -C /usr/local/src

Tài li u kèm theo c a mod_security ch hư ng d n cách biên d ch mod_security thành m t thư vi n chia s c a Apache httpd, do đó chúng ta c n ph i chu n b đôi ch đ có th biên d ch tĩnh mod_security: CODE localhost$ localhost$ localhost$ localhost$

cd /usr/local/src mkdir -p httpd-2.0.54/modules/security cp modsecurity-1.8.7/apache2/mod_security.c httpd-2.0.54/modules/security cp httpd-2.0.54/modules/echo/Makefile.in httpd-2.0.54/modules/security

Okay, xong xuôi, b t đ u biên d ch như sau: CODE localhost$ cd /usr/local/src/httpd-2.0.54 localhost$ ./configure \ --with-mpm=worker \ --disable-charset-lite \ --disable-include \ --disable-env \ --disable-status \ --disable-autoindex \ --disable-asis \ --disable-cgid \ --disable-cgi \ --disable-negotiation \ --disable-imap \ --disable-actions \ --disable-userdir \ --disable-alias \ --disable-so \ --with-module=security:mod_security.c \ --enable-modules='ssl rewrite proxy proxy_http' N u quá trình biên d ch thành công, chúng ta s ti p t c như sau đ cài Apache httpd vào h th ng (t i thư m c m c đ nh là /usr/local/apache): CODE localhost$ make localhost$ su localhost# umask 022 localhost# make install localhost# chown -R root:sys /usr/local/apache

www.nhipsongcongnghe.net
3.5. i "root" c a server

Ph n này xin vui lòng tham kh o tài li u "Securing Apache 2:Step by Step." -m (còn ti p) Ph n sau: 4. C u hình Apache httpd làm reverse proxy ----------------------0-: Th c t ph n ti ng Vi t c a tài li u "Securing Apache 2: Step-by-Step" tôi sao chép khá nhi u t b n d ch và m r ng tài li u "Securing Apache: Step-by-Step" (http://www.securityfocus.com/infocus/1694) c a hnd aka conmale. Tham kh o thêm v b n d ch và m r ng c a anh conmale t i http://www.hvaonline.net/forum/index.php?a...T&f=161&t=46199 -1-: ngoài web-server ra, gi i pháp reverse proxy (ho c tương t ) có th áp d ng cho các d ch v khác như VNC (xem th http://sourceforge.net/projects/vnc-reflector/), mail (xem th tài li u "Qmail as the mail gateway" c a [email protected]). Ch duy nh t m t d ch v tui chưa làm đư c reverse proxy là FTP, b nào có thông tin v ftp reverse proxy thì cho tui vài xu. -2-: chúng ta v n có th thi t l p reverse proxy đ b o v cho các web-server n m ngay vùng DMZ, ho c thi t l p m t reverse-proxy đ t ngay trong vùng Internal đ b o v các web-server vùng Internal t các m i hi m h a đ n t bên trong. -3-: Ngoài Apache httpd ra, còn có r t nhi u software khác có th đư c reverse proxy mà đáng k nh t là pound. Thao kh o thêm t i đ a ch http://www.apsis.ch/pound/. ng d ng đ làm

-4-: Trustix là m t distro nh g n (tr n b cài đ t ch có m t CD duy nh t) đư c xây d ng d a trên RedHat v i hai m c tiêu chính là b o m t và n đ nh. Phiên b n stable m i nh t c a Trustix là 2.2, phiên b n unstable là 3.0 RC2. Tham kh o thêm t i www.trustix.org. -5-: Tham kh o tài li u Linux Security HOWTO có t i http://www.tldp.org đ bi t thêm chi ti t. Ph n m m Bastille-Linuxcũng s r t h u d ng trong vi c secure cho các Linux server. -6-: Ch có s tác d ng. d ng Apache 2.x thì nh ng lu t c n l c OUTPUT c a mod_security m i có

-7-: Tham kh o thêm tài li u v mod_security t i đ a ch http://www.modsecurity.org và lo t kí s c a conmale v các v t n công DDoS vào HVA. -8-: K t phiên b n Apache httpd 2.0, mod_ssl đã đư c chính th c đưa vào Apache httpd. Tham kh o thêm tài li u v mod_ssl t i đ a ch http://www.modssl.org. -9-: Ch n l a MPM cho Apache 2.x là m t v n đ c c kì quan tr ng, nh hư ng r t nhi n đ n performance c a server, do đó tôi đ ngh nh ng ai quan tâm đ n Apache 2.x, nên tham kh o thêm tài li u v MPM t i http://httpd.apache.org/docs-2.0/mpm.html -10-: T i sao thread l i "ngon" hơn process v performance? Nh ng ai quan tâm đ n v n đ này xin tìm các tìm đ c các tài li u sau đây: Advanced Linux programming (http://www.advancedlinuxprogramming.com) Understanding the Linux kernel. Tác gi Mrro - Nhóm HVAonline

www.nhipsongcongnghe.net

ng d ng t p tin htaccess trên máy ch Apache
ng d ng t p tin htaccess trên máy ch Apache - 15/11/2004 12h:37 B n đã t ng nghe v t p tin .htaccess trên các máy ch h Unix (FreeBSD, Linux, Solaris, True64...)? B n bi t r ng t p tin này có th đi u khi n đư c khá nhi u th , th m chí thay đ i đư c c thi t l p m c đ nh c a máy ch Apache http://apache.org/. Th nhưng b n đã t n d ng đư c bao nhiêu l nh trong t p tin này đ làm cho website c a mình m nh m , an toàn hơn? Trong bài vi t t ng h p này, tác gi s cùng b n nghiên c u, ng d ng m t s l nh thông d ng nh t đ th c hi n các tác v b o v , đi u khi n website theo ý b n mu n. Nào, xin m i b n! T o trang báo l i mang màu s c cá nhân Trong quá trình làm vi c v i client, n u có l i x y ra (ví d như không tìm th y t p tin) thì Apache s báo l i b ng m t trang có s n hi n th mã s c a l i đó, r t không đ p và khó hi u. V i .haccess thì b n có th t t o các trang báo l i hay hơn. làm đư c đi u này thì trong t p tin .htaccess b n thêm dòng sau: ErrorDocument mã s l i /trangloi.html Trong đó mã s l i là mã s c a l i phát sinh, sau đây là nh ng l i hay g p: 401 400 403 500 404 Authorization Required (c n password đ truy nh p) Bad request (L i do yêu c u) Forbidden (không đư c vào) Internal Server Error (l i server) Wrong page (l i trang, không tìm th y...)

còn trangloi.html là trang web mà b n mu n hi n th khi l i phát sinh, có th đưa vào t p tin này n i dung hay đ ho gì tùy b n, ch ng h n liên k t tr v trang chính c a trang web. Ví d : ErrorDocument 404/trangloi.html ho c: ErrorDocument500/loi/500.html Bây gi b n hãy t i (upload) 2 t p tin .htaccess và trangloi.html lên hosting c a mình. Ch ng ăn c p băng thông (bandwidth) Thông thư ng nh ng d ch v lưu tr web ch cung c p cho b n m t lư ng d li u luân chuy n (data transfer) nh t đ nh hàng tháng và khi b n s d ng h t lư ng d li u này, website c a b n s t đ ng b đóng c a. B n s ph i tr thêm ti n cho lư ng băng thông vư t quá ho c ph i bu c lòng ch đ n tháng sau. N u hình nh, d li u, … c a b n b các website khác “ăn tr m” (b ng các th thu t đơn gi n) làm cho lư ng d li u luân chuy n c a b n tăng lên, thì có nghĩa là b n s ph i tr ti n cho cái mà b n không s d ng. S d ng t p tin .htaccess là m t gi i pháp hoàn h o, đ ngăn ch n vi c s d ng hình nh trái phép trên website c a b n. B n ch vi c đưa vào t p tin .htaccess n i dung sau : RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC] RewriteRule \.(gif|jpg)$ - [F] đo n mã trên tôi s d ng module Rewrite c a máy ch Apache, b n ch vi c thay đ i trangweb.com thành đ a ch website c a mình. Có th s d ng m t hình nh nào đó c nh cáo nh ng k “ăn tr m” băng thông, b n dùng dòng l nh sau:

www.nhipsongcongnghe.net
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L] Không cho hi n danh sách t p tin trong thư m c Trong trư ng h p m t thư m c nào đó không có t p tin index ho c default, Apache s hi n th m t danh sách li t kê nh ng t p tin có trong thư m c đó. Tuy nhiên n u đây là nh ng tài li u nh y c m, b n không mu n ngư i khác th y, hãy thêm l nh sau vào t p tin .htaccess Options –Indexes Thay th trang index Thông thư ng khi truy nh p vào m t trang web, Apache s tìm t p tin index.htm ho c default.htm tr k t qu v cho trình duy t, b n có th dùng .htaccess thay đ i m c đ nh này. DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm V i dòng l nh này thì t t c các t p tin đư c li t kê s đư c tìm theo th t khi có yêu c u t i thư m c hi n hành, trang nào đư c tìm th y đ u tiên s thành trang index c a thư m c. C m/h n ch IP truy nh p M t s ngư i mu n làm ng p (flood) trang web c a b n, vi c c n làm là ngăn c m nh ng IP c a nh ng ngư i này truy nh p vào trang web, b n thêm đo n mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nh p: allow from 203.262.110.20. N u b n ch vi t IP dư i d ng: 203.262.110 thì s c m t t c IP trong d i t 203.262.110.1 đ n 203.262.110.254. S d ng dòng l nh sau: Deny from all s c m t t c m i truy nh p đ n các trang web trong thư m c, tuy nhiên các t p tin trong đó v n có th đư c s d ng t bên ngoài thông qua các l nh d ng require hay include (trong l p trình PHP), có th xem thêm mã ngu n c a PHPBB forum,IBF... đ hi u rõ hơn. T đ ng chuy n đ n đ a ch m i (Redirection)

B n chuy n trang web c a mình đ n đ a ch m i nhưng không ph i ai cũng bi t đi u này, redirect truy nh p t xa m t cách đơn gi n b ng l nh sau: Redirect/olddirectory http://www.trangwebmoi.com/thumucmoi ; Tuỳ bi n đuôi t p tin Thông thư ng, tuỳ thu c vào ngôn ng l p trình web mà b n s d ng t p tin s có ph n m r ng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên n u s d ng .htaccess b n có th tác đ ng vào máy ch Apache, Apache s g i đ n t p tin c a b n và tr v cho trình duy t web c a ngư i dùng v i ph n m r ng do b n quy đ nh trong .htaccess. B n s d ng đo n l nh sau trong t p tin .htaccess: RewriteEngine on RewriteRule (.*)\.dll$ $1.html Html là ph n m r ng th c s c a nh ng t p tin trên website, dll là ph n m r ng do b n l a ch n. Lưu ý trong liên k t trên trang web, b n ph i g i đúng đư ng d n đ n t p tin v i ph n m r ng m i ( trên là dll), ví d http://www.trangweb.com/in dex.dll Lưu ý khi s d ng t p tin .htaccess:

www.nhipsongcongnghe.net
- Ch áp d ng trên máy ch Apache đã b t ch đ .htaccess, n u chưa b n hãy th v i nhà cung c p dich v hosting. liên h

t o ra t p tin này b n có th s d ng ngay chương trình Notepad c a Windows: ch n ch đ save as v i tên .htaccess, nhưng khi lưu nh b đuôi txt. -.htaccess ch có tác d ng đ i v i nh ng t p tin ngang hàng (trong cùng thư m c v i nó) ho c thư m c con. V i thư m c, nó ch có tác d ng trong thư m c ch a nó và thư m c con, còn vô tác d ng v i thư m c m (parent directory). - B n có th dùng m t s chương trình FTP (Leaf FTP, WS FTP, Cute FTP) đ t i t p tin .htaccess lên hosting c a mình v i ch đ ASCII, n u nó không ho t đ ng b n th CHMOD v i giá tr 644.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close