Professional Documents
Culture Documents
Trên hết nhóm chúng em xin chân thành cảm ơn thầy Phạm Nguyễn Huy Phương
đã tận tình chỉ bảo, hướng dẫn chúng em hoàn thành đề tài tốt nghiệp này.
Chúng em xin gửi đến qúy thầy cô khoa Công Nghệ Thông Tin lòng biết ơn sâu
sắc và ghi nhận sự chỉ dẫn, giảng dạy, hỗ trợ và giúp đỡ, cung cấp những kiến thức
qúy báu, đã tạo mọi điều kiện thuận lợi và góp ý trong suốt quá trình học tập cho sinh
viên chúng em thực hiện đề tài tốt nghiệp được thuận lợi.
Xin chân thành tỏ lòng biết ơn đến các bạn bè thân hữu đã động viên giúp đỡ
chúng tôi trong suốt thời gian học tập cũng như làm đề tài tốt nghiệp.
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
Tùy chọn...............................................................................................................................123
SMB= Samba chương trình dùng chia sẻ tài nguyên giữa các Windows PC và
Linux PC.
Point, mount_point: điểm truy cập, thường là thư mục, nơi mount các hệ thống
tập tin.
Mount: gắn kết các tập tin vào 1 point nào đó.
Umount: gỡ bỏ các tập tin đã được mount vào 1 point nào đó.
SMB: Samba.
…
- Linux là gì?
- Tại sao Linux phát triển?
- Các bản phát hành Linux
- Lợi ích của Linux
- Ai phát triển Linux?
- Linux cộng sinh với Windows
- Thương mại hóa Linux
- UNIX và Linux
- Tác quyền và bản quyền Linux
1.1.Linux là gì?
Linux xuất hiện như một sản phẩm nguồn mở miễn phí và đến nay đã có thể sánh
vai với các hệ điều hành thương phẩm như MS Windows, Sun Solaris v.v. Linux ra
đời từ một dự án hồi đầu những năm 1990 có mục đích tạo ra một hệ điều hành kiểu
UNIX cài đặt trên máy tính cá nhân chạy với bộ vi xử lý Intel, tương hợp họ máy tính
IBM-PC (còn gọi tắt là PC). Từ lâu, UNIX đã nổi tiếng là một hệ điều hành mạnh, tin
cậy và linh hoạt, nhưng vì khá đắt nên chủ yếu chỉ dùng cho các trạm tính toán hoặc
máy chủ cao cấp.
Ngày nay Linux có thể cài đặt trên nhiều họ máy tính khác nhau, không chỉ riêng
cho họ PC. Qua Internet, Linux được hàng nghìn nhà lập trình khắp trên thế giới tham
gia thiết kế, xây dựng và phát triển, với mục tiêu không lệ thuộc vào bất kỳ thương
phẩm nào và để cho mọi người đều có thể sử dụng thoải mái. Khởi thuỷ, Linux xuất
phát từ ý tưởng của Linus Torvalds, khi đó chàng sinh viên Đại học Helsinki ở Phần
Lan đã muốn thay thế Minix, một hệ điều hành nhỏ kiểu UNIX.
Về cơ bản, Linux bắt chước UNIX cho nên cũng có nhiều ưu điểm của UNIX.
Tính đa nhiệm thực sự của Linux cho phép chạy nhiều chương trình cùng lúc. Với
Linux, bạn có thể đồng thời thực hiện một số thao tác, thí dụ chuyển tệp, in ấn, sao
tệp, nghe nhạc, chơi game v.v.
Linux là hệ điều hành đa người dùng, nghĩa là nhiều người có thể đăng nhập và
cùng lúc sử dụng một hệ thống. Ưu điểm này có vẻ không phát huy mấy trên máy PC
ở nhà, song ở trong công ty hoặc trường học thì nó giúp cho việc dùng chung tài
nguyên, từ đó giảm thiểu chi phí đầu tư vào máy móc.
Ngay cả khi ở nhà, bạn cũng có thể đăng nhập vào Linux với nhiều trương khoản
(account) khác nhau qua các terminal ảo và tổ chức dịch vụ trên mạng riêng cho mình
bằng cách sử dụng Linux với nhiều modem (xem chương 10).
Có thể kể tên các hệ điều hành miễn phí khác như FreeBSD, OpenBSD, NetBSD
v.v. Cũng phải kể đến ảnh hưởng lớn công ty Sun (chủ nhân của ngôn ngữ Java) vì
Sun muốn cung cấp hệ điều hành Solaris dùng miễn phí trên máy PC. Phiên bản
Solaris chạy trên chip Intel sẽ trở nên một đối thủ đáng gờm của Linux với mã nguồn
mở và nhờ danh tiếng là hệ điều hành rất ổn định và tương thích với hệ Solaris chạy
trên chip Sun SPARC.
Bản thân việc độc lập với những công ty lớn cũng tiềm tàng một điểm yếu của
Linux. Khi chưa có một mạng lưới riêng cung cấp dịch vụ bảo trì thì tất nhiên người
ta sẽ ngại sử dụng Linux. Tuy thế, với sự phát triển của Internet, các tổ chức hỗ trợ
người dùng Linux đã tạo nên các Website và forum để tháo gỡ cho bạn nhiều vấn đề
khó khăn.
Hơn nữa Linux có thể không chạy tốt với một số phần cứng ít phổ biến, thậm chí
việc hỏng hóc hoặc xoá mất dữ liệu đôi khi cũng xảy ra, bởi vì Linux luôn thay đổi và
khó được thử nghiệm đầy đủ trước khi đưa lên Internet.
Linux không phải là đồ chơi sẵn có, nó được thiết kế nhằm mang đến cho người sử
dụng cảm giác cùng tham gia vào một dự án mới. Tuy nhiên thực tế cho thấy Linux
chạy tương đối ổn định và cho bạn một cơ may không tốn kém để học và sử dụng
UNIX, một họ hệ điều hành chuyên nghiệp hiện nay đang được rất nhiều người dùng
trên các máy chủ và trạm tính toán cao cấp.
Trước hết, Linux phát triển vì là một trong những hệ điều hành miễn phí và có khả
năng đa nhiệm cho nhiều người sử dụng cùng lúc trên các máy tính tương thích với
PC. So với những hệ điều hành thương phẩm, Linux giúp bạn ít phải nâng cấp và lại
không cần trả tiền, cũng như phần lớn các phần mềm ứng dụng cho nó. Hơn nữa,
Linux và những ứng dụng đó được cung cấp với cả mã nguồn miễn phí mà bạn có thể
lấy về từ Internet, sau đó chỉnh sửa và mở rộng chức năng của chúng theo nhu cầu
riêng.
Linux có khả năng thay thế một số hệ điều hành thuộc họ UNIX đắt tiền. Nếu tại
nơi làm việc mà bạn sử dụng UNIX thì ở nhà bạn cũng thích sử dụng một hệ nào đó
giống như thế nhưng rẻ tiền. Linux giúp bạn dễ dàng truy cập, lướt qua các Website
và gửi nhận thông tin trên mạng Internet. Nếu bạn là một quản trị viên UNIX thì về
nhà bạn cũng có thể sử dụng Linux để thực hiện mọi công việc quản trị hệ thống.
Một nguyên nhân khác làm cho Linux dễ đến với người dùng là nó cung cấp mã
nguồn mở cho mọi người.
Chính điều này đã khiến một số tổ chức, cá nhân hay quốc gia đầu tư vào Linux
nhằm mở rộng sự lựa chọn ra ngoài các phần mềm đóng kín mã nguồn. Họ cho rằng,
mặc dù có dịch vụ hậu mãi nhưng không gì đảm bảo được rằng khi dùng các sản
phẩm đóng kín này trên Internet, các thông tin cá nhân hay quốc gia của họ có bị gửi
về một tổ chức hay một quốc gia nào khác hay không. Thí dụ Trung Quốc đã phát
triển hệ điều hành Hồng Kỳ từ kernel của Linux để không bị lệ thuộc Microsoft
Windows, cũng như họ đang tự nghiên cứu bộ vi xử lý Hồng Tâm để thay thế cho họ
chip Intel.
Tại Việt Nam, việc nghiên cứu xây dựng một hệ điều hành từ kernel Linux đã thu
được một số thành công nhất định. Chắc bạn cũng đã biết đến Vietkey Linux và CMC
RedHat Linux (phiên bản tiếng Việt của RedHat Linux 6.2).
Gần đây, các công ty nổi tiếng như IBM, Sun, Intel, Oracle cũng bắt đầu nghiên
cứu Linux và xây dựng các phần mềm ứng dụng cho nó.
Nhiều người đã biết đến các nhà sản xuất phần mềm RedHat, ManDrake, SuSE,
Corel và Caldera. Có thể chính bạn cũng đã từng nghe đến tên các phiên bản Linux
như Slackware, Debian, TurboLinux và VA Linux, v.v. Quả thật, Linux được phát
hành bởi nhiều nhà sản xuất khác nhau, mỗi bản phát hành là một bộ chương trình
chạy trên nhóm tệp lõi (kernel) của Linus Tordvalds. Mỗi bản như vậy đều dựa trên
một kernel nào đó, thí dụ bản RedHat Linux 6.2 sử dụng phiên bản kernel 2.2.4.
Hãng RedHat đã làm ra chương trình quản lý đóng gói RPM (RedHat Package
Manager), một công cụ miễn phí giúp cho bất cứ ai cũng có thể tự đóng gói và phát
hành một phiên bản Linux của chính mình. Thí dụ bản OpenLinux của Caldera cũng
đã được tạo ra như thế.
Tại sao có thể chọn Linux thay vì chọn một trong những hệ điều hành khác chạy
trên PC như DOS, Windows 95/98, Windows NT, hoặc Windows 2000 ?
Linux cung cấp cho bạn một môi trường học lập trình mà hiện nay chưa có hệ nào
sánh được. Với Linux, bạn có đầy đủ cả mã nguồn, trong khi đó các sản phẩm mang
tính thương mại thường không bao giờ tiết lộ mã nguồn.
Cuối cùng, Linux mang đến cho bạn cơ hội sống lại bầu không khí của cuộc cách
mạng vi tính trước kia. Cho đến giữa thập niên 1970, máy tính điện tử còn là sân chơi
riêng của các tổ chức lớn, chẳng hạn như chính quyền, tập đoàn doanh nghiệp và
trường đại học. Người dân thường đã không thể sử dụng những thành tựu kỳ diệu của
công nghệ thông tin.
Song với sự xuất hiện của bộ vi xử lý đầu tiên (1971) rồi máy tính cá nhân (1975),
mọi việc đã thay đổi. Thoạt tiên, đó là đất dụng võ của các tay hacker say mê vi tính.
Họ thậm chí có thể tự làm ra những máy tính cá nhân và hệ điều hành đơn giản,
nhưng các hệ này chưa làm gì được nhiều ở góc độ hiệu năng. Với kinh nghiệm tích
luỹ dần theo năm tháng, một số hacker đã trở thành nhà doanh nghiệp, rồi cùng với
khả năng tích hợp ngày càng cao của các vi mạch, PC đã trở thành phổ biến (rất tiếc
hiện nay xã hội thường nghĩ xấu về chữ "hacker", xin mời bạn xem thêm mục "Ai
phát triển Linux?" ở cuối chương này để phân biệt rõ hơn hacker và cracker là những
ai).
Ngày nay Linux đang làm một cuộc cách mạng ở lĩnh vực phần mềm hệ thống.
Linux là lá cờ tập hợp những con người không muốn bị kiểm sát bởi các hãng khổng
lồ nhân danh kinh tế thị trường để làm xơ cứng óc sáng tạo và cải tiến.
Với Linux bạn sẽ khai thác được nhiều thế mạnh của UNIX. Trong số những hệ
điều hành thông dụng hiện nay, Linux là hệ điều hành miễn phí được nhiều người sử
dụng rộng rãi nhất. Bản thân Linux đã hỗ trợ sẵn sàng bộ giao thức mạng TCP/IP,
giúp bạn dễ dàng kết nối Internet và gửi thư điện tử. Linux thường đi kèm XFree86 là
một giao diện đồ hoạ cho người sử dụng (GUI) và cũng được phát hành miễn phí.
XFree86 cung cấp cho bạn các chức năng phổ biến ở một số thương phẩm khác,
chẳng hạn như Windows.
Tính khả chuyển của một hệ điều hành giúp bạn chuyển nó từ một nền này sang
nền khác mà vẫn hoạt động tốt. Thí dụ UNIX là một hệ có tính khả chuyển cao. Ban
đầu UNIX chỉ hoạt động trên một nền duy nhất, đó là máy tính mini DEC PDP-7.
Hiện nay UNIX và Linux có khả năng chạy trên bất kỳ nền nào, từ máy xách tay
cho đến máy tính lớn. Nhờ tính khả chuyển, các máy tính chạy UNIX và Linux trên
nhiều nền khác nhau có thể liên lạc với nhau một cách chính xác và hữu hiệu. Những
Khoa CNTT – 05CDTH2 Trang 10
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
hệ này có thể hoạt động mà không cần phải bổ sung thêm bất kỳ giao diện liên lạc đắt
tiền nào, mà thông thường bạn phải mua thêm sau khi mua những hệ điều hành khác.
Linux đã có hàng ngàn ứng dụng, từ các chương trình bảng tính điện tử, quản trị cơ
sở dữ liệu, xử lý văn bản đến các chương trình phát triển phần mềm cho nhiều ngôn
ngữ, chưa kể nhiều phần mềm viễn thông trọn gói. Ngoài ra Linux cũng có hàng loạt
trò chơi giải trí trên nền ký tự hoặc đồ hoạ. Phần lớn những chương trình tiện ích và
ứng dụng có sẵn cho Linux lại không mất tiền mua. Các bạn chỉ phải trả chi phí cho
việc tải chúng từ Internet xuống hoặc trả cước phí bưu điện.
Đến với Linux, giới lập trình sẽ có một loạt các công cụ phát triển chương trình,
bao gồm các bộ biên dịch cho nhiều ngôn ngữ lập trình hàng đầu hiện nay, chẳng hạn
như C, C++. Bạn cũng có thể dùng ngôn ngữ Pascal thông qua trình biên dịch
FreePascal. Nếu bạn không thích sử dụng những ngôn ngữ vừa kể, Linux có sẵn các
công cụ như Flex và Bison để bạn xây dựng ngôn ngữ riêng cho mình.
Hai khái niệm hiện nay được đề cập rất nhiều là hệ thống mở (open system) và tính
liên tác (interoperability) đều gắn với khả năng của những hệ điều hành có thể liên lạc
với nhau. Phần lớn các hệ mở đòi hỏi phải thoả mãn tương thích tiêu chuẩn IEEE
POSIX (giao diện hệ điều hành khả chuyển). Linux đáp ứng những tiêu chuẩn ấy và
được lưu hành với mã nguồn mở.
Nói chung, Linux là một hệ thống được xây dựng bởi các hacker và cho các
hacker. Mặc dù hiện nay trong xã hội từ hacker thường có hàm ý tiêu cực, song nếu
theo nghĩa ban đầu thì hacker không phải là tội phạm. Hacker tìm hiểu những gì có
bên trong một hệ thống cho đến từng chi tiết và có khả năng sửa chữa nếu hệ thống ấy
bị hỏng hóc. Đa số các hacker không xâm nhập hệ thống vì tiền bạc hoặc ác ý, mặc dù
sau này đã có những người vượt qua giới hạn ấy và bị tập thể các hacker gọi là
cracker (tin tặc) hay hacker mũ đen. Giới hacker cảm thấy bị xúc phạm khi mọi người
xem họ như lũ phá hoại và gọi chung là tin tặc.
Thực ra, những hacker chân chính, còn gọi là hacker mũ trắng, rất có công trong
việc phát hiện kẽ hở của các phần mềm, giúp mọi người và chủ nhân của những phần
mềm ấy cảnh giác trước sự tấn công của giới tin tặc. Cũng nhờ công cuộc bảo vệ này
mà Linux và các ứng dụng Linux (nói rộng hơn là các phần mềm nguồn mở) càng
ngày càng an toàn hơn
Ngoài đời, phần lớn những người sử dụng UNIX chỉ được cấp cho một số trương
khoản với quyền hạn thu hẹp, do đó một người bình thường không thể thử nghiệm
đầy đủ các câu lệnh UNIX. Với Linux bạn có một phiên bản hoạt động tương tự
UNIX nhưng cho phép quản trị, sử dụng, vào ra thoải mái không giới hạn, một điều
hiếm gặp trong cuộc sống. Linux cho bạn biết thế nào là làm hacker, song chúng tôi
hy vọng từ đó bạn sẽ không trở thành cracker.
Về nguyên tắc, tất cả các phần mềm đang chạy trên DOS hoặc Windows sẽ không
chạy trực tiếp với Linux, nhưng 3 hệ điều hành này có thể cộng sinh trên cùng một
máy PC, dĩ nhiên mỗi lúc chỉ chạy được một hệ điều hành thôi. Bạn cũng có thể cài
thêm một chương trình đặc biệt tên là "VMWARE" để phỏng tạo một hay nhiều hệ
điều hành khác nhau chạy đồng thời trên cùng một máy với điều kiện máy của bạn
phải có một cấu hình thích hợp và đủ mạnh.
Người ta còn xây dựng những chương trình phỏng tạo môi trường Windows và
DOS trên nền Linux. Công ty Caldera đã chuyển WABI (Windows Applications
Binary Interface) của Sun sang Linux., cho phép các ứng dụng Windows 3.1 chạy với
Linux. Caldera bán sản phẩm vừa kể trên và nhiều ứng dụng Linux song vẫn biếu
không phiên bản RedHat để chạy các ứng dụng do hãng bán ra. Caldera còn thử
chuyển một phiên bản DR DOS sang Linux.
Chương trình WINE cũng được sử dụng như một môi trường phỏng tạo Windows
để có thể chạy các ứng dụng Windows trong Linux. Nói chung, Linux có khả năng
chạy các ứng dụng Macintosh, DOS và Windows.
Ngược lại, cũng có nhiều người đang soạn thảo những chương trình phỏng tạo
Linux trên nền Windows như đã từng có chương trình cho phép chạy các phần mềm
Macintosh trên nền Sun và Windows. Bạn có thể xem các thông tin liên quan mới
nhất trên các Web site về Linux.
Muốn cài đặt Linux bạn phải phân vùng lại ổ cứng máy mình, mặc dù không phải
lúc nào cũng nhất thiết làm như thế. Bạn phải xoá một phần ổ cứng chứa chương trình
và dữ liệu có sẵn trong đó. Hiện nay, việc cài đặt Linux mà không phân vùng lại ổ
cứng đã được giải quyết nhưng khi chạy vẫn còn chậm. Do đó khi dự định cài đặt
Linux bạn nên sao lưu ổ cứng ra vài ba bản.
Ổ cứng cũng cần phải còn đủ chỗ cho cả Linux và những hệ điều hành khác, bạn
phải quyết định cái nào giữ lại và cái nào bỏ đi. Bạn có nhiều lựa chọn để phân vùng
lại ổ cứng. Chẳng hạn bạn có thể dành chỗ riêng cho DOS và Linux, hoặc bạn chạy
một chương trình phân vùng ổ cứng mà không phải xoá các tệp có sẵn. Tuy nhiên rủi
ro mất dữ kiện khi cài đặt vẫn còn đó.
Khi phân vùng lại ổ cứng, bạn sẽ kiểm sát vùng đĩa dành riêng cho Linux hữu hiệu
hơn, và Linux cũng chạy tốt hơn. Dung lượng đĩa cứng dành cho Linux sẽ tuỳ vào
việc bạn muốn cài bao nhiêu ứng dụng và đó là phiên bản Linux nào. Bạn cần có ít
nhất 300 MB trống trên ổ đĩa cứng nếu muốn cài RedHat 7.2, chưa kể đến tất cả các
chương trình và dữ liệu mà bạn muốn giữ lại từ hệ điều hành trước đó. Nếu ổ cứng
của bạn còn nhiều hơn thì càng tốt.
Bạn cần phải học cách quản lý hệ thống Linux để trở thành quản trị viên hệ thống
(system administrator hoặc sys admin). Công việc của quản trị viên hệ thống bao
gồm: thêm bớt trương khoản cho những người sử dụng, đều đặn sao lưu dữ liệu, cài
đặt thêm phần mềm mới, thiết lập cấu hình hệ thống, và giải quyết các hỏng hóc.
Linux càng ngày càng phổ biến vì thế nguồn tài liệu hiện nay rất phong phú. Phần lớn
các bản phát hành Linux đều kèm theo hàng ngàn trang tài liệu. Có thể dễ dàng tìm
thấy những thông tin tương tự tại thư mục /DOCS trên các CD chứa Linux
Cũng như mọi phần mềm, Linux chưa thể khắc phục hết ngay những bất tiện và sai
sót. Nhưng rõ ràng càng ngày càng có thêm công ty mới đầu tư cho Linux và đưa ra
các giải pháp ít nhiều có tính thương mại với giá rất rẻ. Xin nêu tên hai trong số các
công ty đó là RedHat và Caldera.
Cả hai công ty này đều trợ giúp kỹ thuật qua e-mail, fax và qua mạng cho những
người đã mua các phiên bản Linux và sản phẩm của họ mà không dành cho những
người sao chép các bản miễn phí.
Vì tính kinh tế, Linux và các chương trình kèm theo thường được chạy trên mạng
nội bộ của nhiều doanh nghiệp, chẳng hạn làm các dịch vụ Web, tên miền (DNS),
định tuyến (routing) và bức tường lửa. Nhiều nhà cung cấp dịch vụ Internet (ISP)
cũng dùng Linux làm hệ điều hành chính.
Ngoài việc phân phối RedHat Linux với RPM, doanh nghiệp RedHat còn có những
sản phẩm khác, thí dụ bộ ứng dụng văn phòng Applixware, bao gồm một phần mềm
xử lý văn bản, một phần mềm bảng biểu, một phần mềm trình diễn, một công cụ thư
điện tử cùng với nhiều công cụ triển khai lập trình và giao diện đồ hoạ XFree86...
Nhưng chỉ cần trả khoảng một nửa giá bán của riêng Windows XP thôi, bạn sẽ nhận
được một bản RedHat kèm các phần mềm nói trên mà không cần phải mua thêm MS
Office, v.v.
Caldera lúc đầu chỉ phát hành từ mạng Internet các sản phẩm dựa trên RedHat và
Novell, trước khi có OpenLinux, một hệ điều hành giá rẻ với kernel 2.x. Sản phẩm
này bao gồm một giao diện đồ hoạ có khả năng quản lý hệ thống và tài nguyên mạng,
cùng với các ứng dụng mạng chủ yếu. OpenLinux tích hợp một X server thương mại
của MetroLink và một phiên bản trình duyệt đã đăng ký đầy đủ của Netscape
Navigator. Hiện nay, Caldera tách riêng OpenLinux thành 2 sản phẩm khác nhau: một
để dùng cho máy tính cá nhân và một để dùng cho máy chủ. Caldera cũng phát hành
bản Corel WordPerfect cho Linux, cùng với một bộ ứng dụng văn phòng hướng
Internet. Ngoài ra Caldera còn phát triển phần mềm tương thích công nghệ WABI của
SunSoft, cho phép người dùng cuối chạy các ứng dụng Windows trên nền Linux.
1.8.UNIX và LINUX
Lịch sử Linux phát xuất từ UNIX và cụ thể liên quan đến Minix. Minix là một hệ
điều hành nhỏ kiểu UNIX, minh hoạ bộ sách giáo khoa rất nổi tiếng do Tannebaum
viết từ giữa những năm 1980. Minix đã từng phổ biến trên nhiều máy tính mini và
PC. Còn Bell Laboratories thuộc công ty AT&T là nơi hệ điều hành UNIX sinh ra,
song chính các tập thể và cá nhân khác đã cải thiện UNIX qua nhiều năm. Từ năm
1969, Thompson và các cộng sự ở Bell Laboratories đã phát triển UNIX, một hệ điều
hành rất linh động và phù hợp với nhiều yêu cầu khác nhau của giới lập trình. Khởi
thuỷ, hệ điều hành MULTICS của Viện MIT đã gợi ý cho Thompson viết được sản
phẩm của mình, nhưng sau này chỉ có UNIX trở thành một tiêu chuẩn công nghiệp
cho các hệ điều hành đa nhiệm và đa người dùng.
Năm 1978, Berkeley Software Distribution (BSD) thuộc Đại học Berkeley tại
California đã phát triển phiên bản UNIX đầu tiên của mình từ nền phiên bản UNIX
v.7 của AT&T, với ý đồ sao cho UNIX trở nên thân thiện hơn với người sử dụng.
Mặc dù không hoàn toàn tương thích với UNIX nguyên thuỷ của AT&T, phiên bản
BSD UNIX vẫn đạt được mục tiêu đề ra nhờ những tiện ích mới đã làm nhiều người
hài lòng.
Sau đó BSD đã phát hành FreeBSD, một phiên bản dành cho họ vi xử lý Intel 386
và phân phối khá hạn chế qua Internet hoặc CD-ROM, rồi các tác giả đã công bố bản
này trên tạp chí Dr. Dobb's. Hiện nay bản thương phẩm của FreeBSD đã trở thành
một hệ điều hành thông dụng tương tự như Linux.
UNIX System Laboratories (USL) là một công ty ra đời từ AT&T và đã từng triển
khai UNIX System V từ đầu thập niên 1980. Trước khi được Novell mua lại hồi năm
1993, USL sở hữu mã nguồn của tất cả các phiên bản xuất xứ từ UNIX System V.
Tuy nhiên hồi ấy USL chưa bán ra được những bản sẵn sàng cho người tiêu dùng.
Bản phát hành đáng nhớ nhất của USL là UNIX System V Release 4.2 (SVR4.2).
Đây là lần đầu tiên mà USL tham gia vào thị trường với qui mô lớn. Lúc ấy Novell và
USL khai trương một công ty liên doanh mang tên Univel để sản xuất hàng loạt phiên
bản SVR4.2 gọi là UnixWare. Khi mua lại USL, Novell đã chuyển vai trò trọng tâm
của USL từ nhà sản xuất mã nguồn thành nhà phát hành UnixWare. Cuối cùng Novell
lại bán UNIX của mình cho công ty Santa Cruz Operation (SCO). Gần đây SCO phát
hành bản SCO UNIX một người dùng (single-user), tuy nhiên chi phí lên đến 19
USD, khó cạnh tranh được với Linux đa người dùng. Hơn nữa SCO không công bố
mã nguồn hệ điều hành của mình.
Từ cuối thập niên 1970, Microsoft cũng đã từng phát triển phiên bản UNIX của
mình, gọi là XENIX. Đến năm 1981, trong thời kỳ cao điểm của cuộc cách mạng vi
tính, máy tính cá nhân IBM-PC ra đời với hệ điều hành đơn nhiệm một người dùng
DOS. Khả năng xử lý của PC tăng dần và bắt đầu sánh ngang các máy tính mini vào
cuối thập niên 1980, khi sự ra đời của bộ vi xử lý Intel 386 cho phép XENIX có thể
chạy trên PC. Microsoft và AT&T đã đồng ý nhập XENIX và UNIX vào thành một
phiên bản duy nhất gọi là System V/386 Release 3.2, có khả năng hoạt động hầu như
trên mọi cấu hình phần cứng của PC 386.
Sun Microsystems có đóng góp lớn lao vào việc mở rộng thị trường UNIX khi sản
xuất ra các máy chủ và máy trạm chạy với hệ điều hành SunOS trên nền UNIX BSD.
Cuối cùng BSD và SVR4 cũng đã hội tụ và tương thích với nhau.
IBM bước vào thế giới của UNIX bằng sản phẩm mang tên hệ điều hành AIX
(Advanced Interative Executive). Các công ty HP và Apple cũng phát triển phiên bản
UNIX của mình, gọi là HP-UX và A/UX. Mặc dù AIX, HP-UX và A/UX không nổi
tiếng bằng vài phiên bản UNIX khác, song chúng chạy rất tốt và có một thị phần đáng
kể.
Các công ty nói trên đều giữ bản quyền phiên bản UNIX của mình, trong khi DOS
và MS Windows thuộc về Microsoft. Vậy ai là chủ sở hữu của Linux?
Nói chung, Linux không phải là phần mềm công cộng, bởi vì các thành tố của nó
đã được nhiều người khác đăng ký tác quyền. Linus Torvalds giữ tác quyền về kernel
Linux. Công ty RedHat là chủ của phiên bản RedHat Linux, và Patrick Voldkerding
giữ tác quyền bản Slackware Linux v.v.
Nhưng nhiều tiện ích Linux lại có giấy phép công cộng GPL (GNU General Public
License). Quả thực, Torvalds cùng nhiều người đóng góp cho Linux đã đặt công trình
của mình dưới sự bảo vệ của GPL. Bạn có thể xem toàn văn GPL trên Internet hoặc
trong tệp mang tên "copying" của mọi bản phát hành Linux. Bản quyền ấy đôi khi
được gọi dí dỏm là Copyleft để đối lập chữ Copyright. GPL áp dụng cho phần mềm
thuộc phong trào GNU (cũng chơi chữ: GNU's Not UNIX) và FSF (Free Software
Foundation), cho phép tạo ra phần mềm tự do cho tất cả mọi người. Tự do hiểu là mỗi
người đều có quyền sử dụng phần mềm GPL và tùy thích chỉnh sửa nó theo nhu cầu
riêng của mình nhưng phải nhớ rằng không được giữ riêng bản chỉnh sửa ấy mà phải
phổ biến rộng rãi để cho người khác cùng sử dụng và tiếp tục thay đổi theo ý họ.
GPL cho phép tác giả chương trình được giữ tác quyền pháp lý; song tác giả phải
để cho người khác thao tác, thay đổi, và thậm chí bán chương trình mới được viết lại.
Tuy nhiên một khi đã bán đi rồi thì người bán không được cấm người mua thay đổi
chương trình đó và phải cung cấp mã nguồn. Đó là lý do tại sao Linux đến với bạn
cùng toàn bộ mã nguồn đầy đủ và mở.
Cùng với thời gian, hệ điều hành Linux ngày càng được hoàn thiện, nhiều hãng sản
xuất cùng với các lập trình viên đã xây dựng được một kho thư viện phần mềm khổng
lồ đáp ứng phần lớn nhu cầu của người dùng.
Nếu như trong Windows có bộ Microsoft Office thì trong Linux có những bộ
Office khác như KOffice, bộ Start Office hoặc OpenOffice.org của hãng Sun
Microsystem được phân phối miễn phí .
Ngoài các ứng dụng văn phòng ra, Linux cũng có khá nhiều games phục vụ nhu
cầu thư giãn và giải trí của người dùng
Có thể nói các ứng dụng mạng là tập hợp những ứng dụng nổi bật nhất của hệ điều
hành Linux. Những khả năng mà các ứng dụng mạng trên Linux có thể thực hiện
được làm cho hệ điều hành này trở nên vượt trội hơn so với Windows.
Linux cho phép người dùng có thể cấu hình 1 server với đầy đủ các ứng dụng cơ
bản nhất của Internet
- Web Server
- Mail Server
- FPT Server
- SMTP Server
- Pop3 Server
- Firewall
Với sự bùng nổ các ứng dụng trên Internet, hệ điều hành Linux hỗ trợ một môi
trường lý tưởng cho các server ứng dụng.
Các hãng phần mềm nổi tiếng đều nghiên cứu để làm sao có thể cài các ứng dụng
của họ lên Linux
Hệ điều hành Linux được viết lại hoàn toàn từ đầu bằng ngôn ngữ C nhằm tránh
vấn đề bản quyền của Unix. Do đó ngôn ngữ lập trình C được hỗ trợ mạnh mẽ và khá
đầy đủ cho việc phát triển các ứng dụng mạng.
Tuy nhiên ngôn ngữ C không phải là sự lựa chọn duy nhất cho việc lập trình trên
Linux. Có nhiều ngôn ngữ lập trình khác cũng được hỗ trợ bởi Linux được liệt kê
dưới đây:
Linux kernel cung cấp một giao diện giữa các ứng dụng người dùng, hệ thống phần
cứng và tài nguyên. Một vài chức năng của Linux là:
• Quản lý bộ nhớ
Trong những năm đầu của Linux, kernel Linux là một monolithic kernel.
Monolithic kernel là tất cả các dịch vụ của Kernel được biên dịch hết vào trong nó và
không có drivers ngoài nào được gọi. Với monolithic kernel, kernel phải được biên
dịch lại mỗi khi có một thiết bị mới được gắn vào hệ thống.
Khi sự hỗ trợ phần cứng của Linux tăng lên thì kích thước của Kernel tăng lên và
cho thấy sự bất tiện của nó. thế là modular Linux kernel ra đời.
Modular Linux kernel bao gồm một kernel tối tiểu và một tập các modules có thể
được thêm vào khi kernel đang chạy để hỗ trợ các thiết bị và dịch vụ mới
Quản lý bộ nhớ.
1.11.4.1. GNU-GPL là gì ?
GNU General Public License là một hình thức bản quyền cho phép đảm bảo việc
trao đổi tự do các phần mềm, đảm bảo các phần mềm là miễn phí đối với tất cả các
người sử dụng.
General Public License áp dụng cho hầu hết các sản phẩm của Free Software
Foundation's. Bạn có thể áp dụng GNU GPL cho phần mềm của bạn.
Giấy phép phần mềm mã nguồn mở (Open Source – OS) cho phép người dùng
đọc, truy cập, thay đổi và làm lại mã nguồn của một sản phẩm phần mềm (theo tổ
chức OSI – Open Source Initiative). Các giấy phép phần mềm được OSI phê chuẩn và
quản lý tại http://www.opensource.org. Xem thêm chi tiết trong
http://www.opensource.org/docs/osd-vietnamese.php/
Open Source mang ý nghĩa “tự do” nhiều hơn là “miễn phí”.
Mỗi loại giấy phép có những điều khoản quy định riêng. Ví dụ: BSD Licensing chỉ
dài 1 trang với 3 điều khoản cần phải tuân thủ nhưng trong khi đó thì Mozilla Public
License 1.1 dài đến 12 trang đề cập mọi thứ từ việc định nghĩa thuật ngữ đến cách
thức áp dụng giấy phép cho chính phủ.
Một trong những khoản quan trọng trong OS Licensing là: Nếu ta thay đổi mã
nguồn thì phải lập lại tài liệu về các thay đổi và đính kèm mã nguồn theo phần mềm.
Không được thông báo bản quyền của mình (copyright) mặc dù đã thay đổi mã
nguồn của chương trình.
Người ta còn nói GNU GPL là “Copyleft” để thay cho khái niệm “Copyright”.
• Tác giả vẫn giữ bản quyền phần mềm của mình
• bạn có thể copy và phân phối chương trình dưới bất cứ hình thức nào và giá tùy ý
• Bạn có thể thay đổi một phần của chương trình và phân phối thay đổi của mình
cùng toàn bộ chương trình ccho người khác với điều kiện nói rõ phần mình thay
đổi.
• Nếu phần bạn thay đổi không thể tách rời tòan bộ chương trình thì GNU GPL sẽ
mở rộng sang toàn bộ chương trình, kể cả phần bạn viết.
• Bạn không được thông báo bản quyền của bạn (copyright) mặc dù bạn đã thay đổi
mã nguồn của chương trình.
• Bạn phải đảm bảo cung cấp mã nguồn khi bạn bán một sản phẩm theo GNU GPL
để cho người khác có thể sử dụng và/hoặc bán tiếp sản phẩm (người bạn phân phối
sản phẩm phải có được các quyền lợi giống của bạn được hưởng khi bạn nhận một
phần mềm dưới GNU GPL).
Open Source:
Một sản phẩm là Open Source phải thỏa mãn các điều kiện:
• Free Redistribution: có thể phân phối tới bất cứ đội tượng nào.
• Integrity of The Author’s Source Code: Có thể có hạn chế chỉ cho phép thay đổi
mã nguồnt hông qua các patch (chứ không được tự ý thay đổi), hoặc nếu thay đổi
phải đổi qua tên khác. Đây là điểm khác với GNU GPL.
• No Discrimination Against Fields of Endeavor: Không được phân biệt đối xử với
cá nhân hay nhóm người nào trong quá trình phân phối phần mềm mã nguồn mở.
• Distribution of License: quyền đối với phần mềm được tiếp tục chuyển đến những
người nhận phần mềm.
• License Must Not Be Specific to a Product: Các quyền đối với phần mềm được
tiếp tục thực hiện không phụ thuộc vào các phân phối (distribution) chứa phần
mềm.
• License Must Not Restrict Other Software: Các sản phẩm khác đi cùng Open
Source không nhất thiết phải tuân theo yêu cầu của Open Source.
• License Must Be Technology-Neutral: License không được bắt buộc gắn kết với
bất kỳ công nghệ hay kiểu kết nối nào.
Chú ý: Bruce Perens Đã viết các quy định trên cho "The Debian Free Software
Guidelines".
Sau đó ông đã bỏ đi các phần đặc trưng cho Debian-specific và xây dựng thành
"Open Source Definition.“
Ethereal is Open Source software released under the GNU General Public License
Bạn sẽ tìm thấy sau đây các thông tin cần thiết trước khi cài đặt bất cứ bản phát
hành Linux nào trên PC. Xin nhớ rằng Linux không phải là một thương phẩm, do đó
cần phải chuẩn bị đối phó các trục trặc nếu có.
Lưu ý: Cài đặt hệ điều hành có nghĩa là thay đổi cả hệ thống quản lý máy tính, vì
vậy hãy cẩn thận và chuẩn bị sẵn giấy bút đề ghi chép các thông tin cần thiết.
Điều kiện cài đặt Linux thành công là có các phần cứng phù hợp. Muốn chọn cấu
hình cho tương xứng, bạn phải biết trước bao nhiêu người sẽ sử dụng hệ thống và sẽ
chạy những ứng dụng nào. Từ đó bạn tính ra các yêu cầu về bộ nhớ, dung lượng ổ đĩa
cứng, chủng loại thiết bị đầu cuối, v.v.
Ngày nay, đa số các máy tính có cài đặt Linux đều là PC và thường cũng chỉ cài
đặt phiên bản cho một người sử dụng, mặc dù các máy ấy có thể liên kết với nhiều hệ
thống Linux và UNIX lớn hơn.
Nếu bạn cài đặt phiên bản Linux cho một người dùng (trường hợp hay gặp nhất)
thì bạn cũng là quản trị viên của hệ thống. Bạn có trách nhiệm hiểu rõ hệ thống để
thực hiện chức năng quản trị, sao cho hệ thống chạy tối ưu. Bạn phải bảo đảm dung
lượng tối thiểu trên ổ đĩa cứng, sao lưu đều đặn, các thiết bị kết nối với hệ đều có
trình điều khiển (driver) và các phần mềm cài đặt thích hợp, v.v..
Bạn nên chọn lựa các loại phần cứng mà chính đa số những người tạo ra Linux
đã sử dụng. Các công ty phát triển phần mềm thương phẩm thường chạy thử sản
phẩm của họ trên nhiều phần cứng khác nhau, còn cộng đồng tình nguyện triển khai
Linux chỉ có máy tính của chính mình.
Cũng may là cộng đồng Linux khá đông đảo cho nên hầu hết những phần cứng
tiêu chuẩn của PC đều được Linux chấp nhận.
Lưu ý: Linux là một hệ thống tiến hoá và thỉnh thoảng lại có thông tin cập nhật.
Bản phát hành RedHat sử dụng trong tài liệu này chạy khá ổn định, tuy nhiên thực tế
có những phần cứng thay đổi mà chưa được Linux biết đến. Mặc dù nhiều phần cứng
có thể đã thay đổi bằng các linh kiện “nhái” hoặc tương thích Intel, song không phải
tất cả những phần cứng ấy đều chạy được với Linux.
Mục tiêu: Nắm được một số yêu cầu cần thiết nhằm phục vụ tốt trong quá trình cài
đặt.
~ 100MB nếu chỉ sử dụng Console Mode (~1000MB nếu cài RedHat 9.0)
~ 500MB nếu sử dụng Graphic Mode (~1500MB nếu cài RedHat 9.0)
- Ổ CD-ROM
Mục tiêu: Tạo đĩa mềm khởi động Linux trong trường hợp không thể khởi động từ
đĩa CD-ROM hoặc ROM-BIOS không hỗ trợ khởi động từ CD-ROM.
Kiểm tra có tập tin “boot.img” trong thư mục Images của CD1 không?
Để có những thông tin hướng dẫn chi tiết hơn ◊ tham khảo Readme trong CD1
hoặc vào trang chủ của RedHat tại địa chỉ: http://www.redhat.com/ để có những chỉ
dẫn cụ thể hơn trong quá trình tại ảnh đĩa (Disk Image
Có đến 4 cách cài đặt Linux, đó là từ CD, NFS, FTP, hoặc từ ổ đĩa cứng.
• Cách phổ biến nhất là cài đặt Linux từ đĩa CD. Muốn cài đặt trực tiếp từ CD,
bạn phải khởi đầu bằng DOS. Ở dấu nhắc DOS, bạn gõ lệnh:
[ổ CD]:\dosutils\autoboot
Có thể bắt đầu bằng việc đặt lại cấu hình cho BIOS để có thể khởi động bằng đĩa
CD. Đa số các BIOS sản xuất sau 1997 đều hỗ trợ việc này. Khi đó, bạn chỉ cần tắt
nguồn điện và khởi động lại với đĩa CD Linux đặt sẵn trong ổ.
Nếu ổ đĩa cứng có sẵn một phân vùng trống, bạn có thể cài đặt Linux vào đó bên
cạnh hệ thống hiện hành để khỏi xoá mất những thông tin trước đó. Như vậy những gì
bạn cần là một ổ CD, một phân vùng trống và một đĩa mồi.
• Cách cài đặt Linux từ mạng máy tính nhờ một máy chủ NFS (Network hệ
thống tệp) yêu cầu bạn trước hết phải lắp ráp logic (mount) ổ CD vào một máy
tính chấp nhận hệ thống tệp ISO-9660 với phần mở rộng RockRidge, rồi bạn công
bố hệ thống tệp qua NFS. Bạn phải biết đường dẫn của hệ thống tệp này, cũng như
địa chỉ IP của máy, hoặc tên của máy nếu có DNS.
• FTP (File Transfer Protocol) là một giao thức truyền tệp qua mạng LAN hoặc
WAN. Việc cài đặt qua FTP yêu cầu phải có đĩa mồi và đĩa phụ trợ.
• Cài đặt Linux từ ổ đĩa cứng cũng cần đĩa mồi và các đĩa phụ trợ nói trên. Trước
tiên phải tạo ra thư mục mang tên Linux, sau đó sao chép thư mục tương ứng từ
CD cùng với tất cả các thư mục thứ cấp (subdirectory) vào thư mục Linux.
Bạn có thể sử dụng các lệnh DOS sau đây để thi hành việc cài đặt:
cd\Linux
xcopy/s e:\Linux
Lệnh cd chọn thư mục làm việc là thư mục Linux trên ổ đĩa cứng; lệnh xcopy sao
chép thư mục tương ứng từ đĩa CD đặt ở ổ E.
Cho dù bạn sử dụng phương pháp cài đặt nào, bạn luôn cần có đĩa mồi. Nhưng
trước hết bạn phải tìm một số thông tin cần thiết.
Cũng giống như cài đặt với giao diện, bước chuẩn bị cũng giống như cài đặt bằng
giao diện.
Đầu tiên bạn bỏ đĩa CD vào ổ đĩa (và tất nhiên là phải có ổ cứng còn trống).
Khi bạn cho boot từ đĩa CD, bạn nhập vào dòng linux text.
Bạn có thể bỏ qua bước này bắng cách nhấn vào Skip. Còn nếu bạn muốn test đĩa
CD thì bạn nhấn vào OK.
Nhấn OK.
Sau khi chọn xong loại chuột của mình thì nhấn OK.
Hình 2.8 Chọn loại cấu hình HDH cài vào máy
Disk Partitioning Setup: Nếu chọn Autopartition: hệ thống sẽ tự động chia tìm
phân vùng còn trống và chia phân vùng cần thiết cho bạn.
Disk Druid: Bạn chọn chế độ tự chia phân vùng bằng tay.
Ở đây vùng còn trống 8192Mb. Bấm New để tạo phân vùng Root.
Sau khi tạo xong phân vùng Root dùng để lưu trữ hệ điều hành. Bạn tiến hành tạo
phân vùng Swap.
Sau khi phân vùng xong. Nhấn OK để chuyển sang bước kế tiếp.
Nếu bạn cài 2 hệ điều hành trở lên thì nên sử dụng GRUB Boot loader.
Nếu bạn không cần đặt Password cho Boot Loader thì có thể nhấn OK để tiếp tục.
Quá trình cấu hình Boot Loader hoàn thành. Nếu bạn muốn sửa lại file Boot
Loader thì có thề nhấn Edit. Nếu không thì nhấn Ok để chuyển qua bước kế tiếp.
Bạn nên chọn nơi lưu trữ Boot loader tại Master Boot Record.
Sau khi đặt xong địa chỉ IP và Netmask (Mask Address). Bấm OK để chuyển qua
bước kế tiếp.
Nếu bạn không kết nối Internet có thể bỏ qua bước này.
Bước này cho phép bạn đặt tên cho máy hoặc có thể bỏ qua bằng cách chọn
automatically via DHCP.
Bạn có thể cấu hình cho hệ thống tránh sự xâm phạm từ bên ngoài.
Hoặc cũng có thề không cần firewall nếu như bạn không nối mạng internet.
Nếu chọn Enable firewall thì bạn có thể cấu hình cho firewall bằng cách nhấn vào
Customize.
Còn nếu bạn chọn no firewall thì hệ thống sẽ cảnh báo bạn.
Bước này cho phép bạn chọn ngôn ngữ cho hệ diều hành Linux. Mặc định là
English (USA).
Bước này cho phép bạn chọn múi giờ cho máy. Mặc định là America/New_York.
Bạn có thể chọn các gói phần mềm để cài đặt. nếu muốn sử dụng gioa diện đồ họa
gói X Window System.
Nếu muốn tạo đĩa boot thì nhấn Yes (dùng để boot vào hệ điều hành bằng đĩa này).
Sau khi tinh chỉnh xong lại ngày giờ hệ thống. Nhấn Next để tiếp tục.
Sau khi đặt xong user name và password, nhấn Next để tiếp tục.
Nếu bạn muốn cài thêm bất cứ một gói phần mềm nào từ CD thì nhấn vào Install.
Sau khi nhập xong username và password. Hệ thống sẽ được đăng nhập với giao
diện.
2.3.2.2. Cài đặt bằng giao diện (phiên bản Fedora Core 4)
• Cài đặt (Intall) hoặc nâng cấp (Upgrade) với giao diện đồ họa (graphical mode).
• Cài đặt (Intall) hoặc nâng cấp (Upgrade) với giao diện sử dụng dòng lệnh (text
mode).
• Để tắt (disable) thiết bị phần cứng: gõ lệnh linux noprobe -> nhấn
Enter.
• Để kiểm tra các thiết bị đang sử dụng : gõ lệnh linux mediecheck ->
Enter.
• Để sửa lỗi cho linux (rescuse mode) : gõ lệnh linux rescuse -> Enter.
(Nhấn F5 để đọc thêm hướng dẫn về chế độ rescuse).
• Để nhắc nhở cho phương thức cài đặt sử dụng trên CD-ROM : gõ lệnh
linux askmethod -> Enter.
• Nếu bạn có đĩa để cập nhật hệ điều hành (update) : gõ lệnh linux
updates -> Enter.
Thông thường để cài mới thì tốt nhất là bạn sử dụng giao diện đồ họa.
Chương trình sẽ tiến hành kiểm tra một số phần cứng của máy tính.
Sau khi kiểm tra xong thì giao diện cài đặt như sau:
Cho phép bạn nhấn Ok kiểm tra lại đĩa CD dùng để cài đặt hoặc để bỏ qua bước
này nhấn Skip.
Nếu nhấn Ok thì chương trình bắt đầu quá trình kiểm tra đĩa.
Ở đây tôi chọn Skip để bỏ qua quá trình kiểm tra đĩa.
Nhấn test để kiểm tra đĩa hiện tại đang có trong ổ đĩa hoặc lấy đĩa ra.
Quá trình kiểm tra đĩa 1 hoàn thành và nhấn ok để tiến hành để tiến hành kiểm tra
các đĩa còn lại.
Sau khi kiểm tra xong 4 CD thì chương trình bắt đầu cài đặt.
Chọn ngôn ngữ để sử dụng trong suốt quá trinh cài đặt.
Bấm Next.
Bấm Next
Personal : chế độ này dùng cho các máy tính các nhân hoặc laptops.
Workstation : chế độ này cài đặt thêm môi trường để phát triễn thêm các ứng
dụng và system administrator.
Server : chế độ này cho phép bạn sử dụng để cài đặt file sharing, print sharing và
dịch vụ web.
Custom : cho phép bạn tùy chọn các package hoặc các phần mềm đi kèm theo.
Automaticcally partition : chương trình sẽ tự động dò tìm phân vùng còn trống và
chia đĩa theo yêu cầu của hệ thống. Khi chọn chế độ này, ổ cứng của bạn sẽ được hỏi
là có muốn xóa hết không nếu như ổ cứng không còn chỗ trống.
Manually partition with Disk Druid : cho phép bạn tự chia đĩa với công cụ Disk
Druid có sẵn trong linux.
Ở bước này chương trình sẽ hỏi bạn có muốn xóa hểt dữ liệu có trong ổ cứng
không.
Nếu như ổ cứng của bạn không có phân vùng còn trống thì sẽ báo lỗi không thể
tìm thấy thiết bị nào để tạo file hệ thống.
Ngược lại nếu như đã có phân vùng trống thì sẽ qua bước kế tiếp.
Ở bước này, nếu như phân vùng của bạn chưa định dạng thì bấm chọn phân vùng
còn trống, bấm New .
Ở khung Size, mặc định là 100Mb, nhưng tốt nhất là bạn chọn 510 Mb (theo kinh
nghiệm cài đặt của cả nhóm).
Ở phân vùng còn lại, bạn click chuột vào và chọn Edit.
Ở khung Mount Point, bấm sổ xuống và chọn dấu / để làm thư mục gốc và cài đặt
lên đó.
Bấm OK.
Bạn có thể check vào ô Configure advance boot loader options để boot từ 2 hệ
điều hành trở lên (nếu máy của bạn cài thêm hệ điều hành khác).
Bấm Next.
Bấm Next.
Cho phép bạn bật chế độ Firewall hay không. Bấm Next.
Nếu bạn không chọn chức năng Firewall thì chương trình sẽ hỏi bạn có chắc chắn
không. Hoặc là muốn cấu hình lại.
Bước này cho phép bạn chọn múi giờ của mình.
Bấm Next.
Bước này yêu cầu bạn đặt Password cho Root (tương đương với Adminitrator
trong Windows). Và đây là bước bắt buộc.
Hinh 2.71 : Chọn các gói phần mềm nguồn để cài đặt
Bước này cho phép bạn chọn lựa các gói phần mềm cài đặt kèm theo. Những ô
đã check mặt định thì nên giữ lại.
Bạn cũng có thể bấm vào Details ở cuối để chọn lựa chi tiết hơn.
Hình 2.73 : Dung lượng đĩa sau khi chọn gói cài đặt
Và nhớ là phải xem dung lượng sau khi chọn có phù hợp với dung lương ổ cứng
của mình hay không.
Bấm Next.
Bây giờ bạn có thể click Next để thực hiện quá trình cài đặt.
Hệ thồng sẽ yêu cầu bạn xác nhận một lần nữa là đã có đủ 4CD để cài chưa (vì ở
đây là cài Fedora Core 4).
Sau khi đĩa 1 cài xong, chương trình sẽ yêu cầu đĩa thứ 2, 3 và đĩa thứ 4.
Sau khi cài đặt thành công hệ thống sẽ yêu cầu bạn reboot lại để thay đổi các cấu
hình.
Bấm Reboot.
Đây là lần đầu tiên bạn khởi động vào hệ điều hành Linux.
Bấm Next.
Bấm Next.
Bước này cho phép bạn điều chỉnh lại ngày giờ hê thống.
Bấm Next.
Bước này cho phép bạn chọn độ phân giải của màn hình. Mặc định là 800x600.
Bấm Next.
Bước này cho phép bạn tạo 1 User mới không có quyền Adminitrative (Root).
Nếu bạn không muốn tạo thêm bất kỳ User nào và chỉ sử dụng User Root thì bấm
next.
Và nếu bạn đồng ý thì bấm Cotinue ngược lại bấm Create account.
Nếu có nghe âm thanh thì bấm Yes (dĩ nhiên là bạn phải có gắn thiết bị để nghe
như Loa hoặc Headphone).
Bấm Next.
Khoa CNTT – 05CDTH2 Trang 71
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Bước này cho phép bạn cài đặt thêm một số phần mềm từ CD.
Hệ thống của bạn đã được cài đặt xong. Bấm Next để tiếp tục.
Quá trình cài đặt đã hoàn thành. Đây là giao diện chính của hệ điều hành Linux.
Với sự hình thành và phát triển của hệ điều hành Linux, giờ đây chúng ta có rất
nhiều cách trong việc chọn lựa các hệ thống file (file system) cho từng loại ứng dụng.
Trong bài viết này tôi muốn giới thiệu các hệ thống file tiên tiến được sử dụng trong
Linux như EXT2, EXT3, VFAT Reiserfs, XFS, và JFS có tính tin cậy cao và có khả
năng ghi nhớ quá trình thao tác trên dữ liệu (journaling).
Chúng ta hãy tìm hiểu sơ lược về cách làm việc của các hệ thống file
Giới thiệu hệ thống file ext2 được giới thiệu vào đầu năm 1993 và được thiết kế
riêng cho Linux. Nó có nhiều tính năng tăng cường để khắc phục các hạn chế của các
hệ thống file khác.
Filesystem caching : Nhằm tăng hiệu suất của toàn hệ thống file ext2, cache được
dùng để lưu giữ các dữ liệu được dùng thường xuyên. Thông tin của filesystem được
cache trong bộ nhớ, đôi khi được tham khảo tới như là một bộ đệm đĩa, bởi vì việc
truy cập vào bộ nhớ thì nhanh hơn nhiều so với các đĩa vật lý. Cả hai quá trình đọc và
ghi đều được cache dữ liệu trên RAM. Hệ thống buffers đĩa càng lớn thì filesystem
đáp ứng càng nhanh cho các thao tác đọc ghi. Do RAM là bộ nhớ tạm thời, buffer sẽ
được ghi vào đĩa khi máy hoạt động, hay khi filesystem được unmount.
Lệnh sync có thể dùng để ép kernel ghi tất cả các buffers vào các file trên đĩa.
Lệnh này có thể sử dụng không cần tham số.
Ví dụ: Với lý do này có thể giải thích vì sao khi chép file vào đĩa mềm ta thấy hệ
thống chạy rất nhanh tuy nhiên lúc này thực sự file chưa được ghi vào đĩa mềm. nếu
để ý thì bạn sẽ thấy khoảng 5 giây sau đèn ổ mềm mới bắt đầu sáng. Nếu trước đó ta
cứ tưởng là đã chép xong file mà rút đĩa mềm ra thì sẽ không có file nào được ghi vào
đĩa cả.
Hệ thống ext2 được thiết kế nhằm hạn chế tối thiểu sự phân mảnh nên ta không cần
phải defragment hệ thống file ext2.
Nguyên nhân gây ra sự phân mảnh của file system là việc ghi file nhiều lần trên ổ
đĩa. Trong đó các file làm bộ nhớ mở rộng của hệ thống trên đĩa là có nguy cơ bị
phân mảnh nhiều nhất.
Đối với các hệ điều hành và MS Windows, hệ thống bộ nhớ mở rộng này nằm trên
cùng một partition chính của hệ thống thông qua file pagefile.sys còn trong Linux thì
hệ thống bộ nhớ mở rộng này được cho ra một partition riêng nên hạn chế rất nhiều
sự phân mảnh.
Được xây dựng dựa trên cơ sở của hệ thống file chuẩn ext2 mà Linux đang sử
dụng, ext3 đưa vào thêm chức năng mới vô cùng quan trọng, journaling file system,
giúp thao tác dữ liệu an toàn hơn. Ext3 còn sử dụng cơ chế JBD (Journaling Block
Device) để bảo vệ thông tin thao tác trên dữ liệu, được đánh giá là tin cậy hơn so với
các hệ thống chỉ thực hiện journaling trên chỉ mục dữ liệu (journaling of meta-data
only) như Reiserfs, XFS hay JFS. Với cách bảo vệ hai lần như vậy thì hiệu suất ghi
dữ liệu có phần nào chậm hơn ext2; nhưng trong một vài trường hợp, nhờ thông tin
trong journal log mà đầu từ ổ cứng di chuyển hợp lý hơn, nên tốc độ thao tác dữ liệu
nhanh hơn.
Đối với những ứng dụng ưu tiên cho độ tin cậy của dữ liệu hơn là tốc độ ghi đơn
thuần thì ext3 là lựa chọn thích hợp. Ngoài ra, ext3 còn cho phép cải thiện tốc độ thao
tác trên dữ liệu bằng cách thiết lập thông số cho hệ thống chỉ thực hiện journaling đối
với thao tác trên dữ liệu (mode: data=writeback và data = ordered).
Với mode data=writeback, quá trình khởi động nhanh, dữ liệu được ghi vào đĩa
ngay sau khi đã ghi xong thông tin trong journal log (write back), với mode này đôi
khi cũng xảy ra tình trạng hư dữ liệu nếu sự cố xảy ra ngay sau khi ghi journal log mà
chưa kịp ghi vào đĩa, nhưng bù lại tốc độ thao tác file nhanh hơn trong một vài trường
hợp.
Với mode data=ordered, dữ liệu được ghi lên đĩa trước rồi mới đến journal log, cho
phép luôn luôn bảo đảm tính toàn vẹn của dữ liệu trong mọi tình huống và đây cũng
chính là mode mặc định của ext3. Với mode data=journal thì việc bảo vệ được thực
hiện trên cả hai: dữ liệu và journal log; thông tin được ghi chi tiết và nhiều hơn giúp
cải thiện tốc độ truy cập dữ liệu nhờ tối ưu việc di chuyển của đầu từ, hoạt động rất
tốt đối với kiểu dữ liệu là database hoặc dữ liệu dùng chung trên mạng (NFS), tuy
nhiên do phải đọc lại nhiều loại thông tin trên journal log nên thời gian khởi động lại
máy hơi chậm hơn so với hai mode trên một chút.
Vì bản chất cấu trúc của ext3 được xây dựng hoàn toàn dựa trên cơ sở của ext2 nên
ta có thể chuyển đổi dễ dàng các dữ liệu đang tồn tại trên các hệ thống ext2 sang ext3
mà dữ liệu không hề bị ảnh hưởng và thực hiện tương đối dễ dàng, đơn giản. Với
kernel Linux từ 2.4.15 trở lên thì ext3 đã có sẵn mà không cần phải đưa thêm vào
(patch) như các version cũ. Hiện tại hãng Linux RedHat đã đưa sẵn module ext3 vào
kernel 2.4.7-10 trong bản RedHat 7.2.
Từ phiên bản Red Hat 7.2, hệ thống tập tin mặc định là ext3.
Hệ thống file ext3 thực chất là phiên bản nâng cao của ext2. Ext3 có những ưu
điểm sau:
• Khi bộ nguồn bị hỏng hay hệ thống đổ vỡ bất chợt, mỗi phân vùng định dạng
theo ext2 trên máy tính phải được kiểm tra việc đồng nhất của chúng bằng
chương trình e2fsck. Việc này cần khoảng thời gian để tiến hành làm thời gian
khởi động hệ thống bị trễ đáng kể, đặc biệt là với phân vùng lớn.Trong suốt
thời gian này dữ liệu trên phân vùng không được dùng đến.
• Ext3 được đưa ra để không cần phải thực hiện việc kiểm tra đó khi hệ thống
máy tính bị tắt đột ngột, việc kiểm tra chỉ xảy ra khi phần cứng bị hư hỏng,
chẳng hạn như ổ đĩa cứng bị hư. Thời gian kiểm tra không phụ thuộc vào dung
lượng hay số lượng file của phân vùng.
• Hệ thống tập tin ext3 cung cấp việc bảo toàn dữ liệu trong việc hệ thống tắt đột
ngột, và cho phép ta chọn loại và mức độ bảo vệ dữ liệu. Mặc định là mức bảo
vệ cao nhất (high level)
• Tốc độ
• Bất chấp việc ghi dữ liệu nhiều lần hay một lần, ext3 có số lượng dữ liệu đưa
vào quá trình ghi nhiều hơn hẳn so với ext2 bởi ext3 đã tối ưu hóa đầu đọc
chuyển động của ở đĩa cứng. Ta có thể chọn một trong ba mức để tối ưu tốc độ
nhưng điều này có thể làm giảm tính toàn vẹn của dữ liệu.
• Thật dễ dàng để ta chuyển đổi từ ext2 lên ext3 và đạt được những lợi ích của
một hệ thống tập tin mạnh mà không cần phải định dạng lại.
• Để chuyển đổi từ ext2 sang ext3, đăng nhập bằng root và gõ lệnh:
• /sbin/tune2fs –j /dev/hdbx
• /dev/hdb : thay bằng tên thiết bị và x là số thứ tự của phân vùng cần chuyển
đổi.
• tune2fs : là chương trình chuyển đổi phân vùng ext2 có sẵn sang ext3 mà không cần
thay đổi dữ liệu có trên phân vùng đó.
VFAT là chữ tắt (acronym) của Virtual File Allocation Table. VFAT là một hệ
thống tệp (file system) đuợc xử dụng trong hệ điều hành Windows áp dụng cho
Workgroups và Windows 95 và 98. VFAT là phiên bản của FAT32..
FAT32 tăng số bit cho address clusters và đồng thời giảm kích cỡ của mỗi cluster.
Nhờ thế hệ điều hành Windows 98 có thể chạy các đĩa cứng lớn hơn cho tới 2
terabytes và lưu trữ dữ liệu nhiều hơn. FAT là bảng mà nhờ nó, hệ điều hành có thể
kiếm ra tệp đã lưu trữ trong đĩa cứng mà bạn muốn VFAT là dạng ảo của FAT (bảng
thể hiện sự xắp xếp của các file trên đĩa cứng). VFAT được dùng trong phiên bản đầu
Windows 95 tuy nhiên Windows 98 cũng hỗ trợ vì lý do tương thích
• Boot vào Win98 ở đạng Safe Mode (nhấn F8 khi khởi động máy hoặc nhấn giữ
phím Ctrl).
• Vào thư mục Windows xem có một file tên là "Ifshlp.sys". Nếu có làm tiếp
bước Nếu không bạn copy file này ở một máy tính có Windows 98 khác vào
thư mục này.
• Bạn mở file "system.ini" trong thư mục Windows ra, nếu thấy có dòng
"maxfilecache = 4096" thì xoá nó đi hoặc thêm dấu chấm phẩy ";" vào đằng
trước dòng này. Nhớ lại những thay đổi rồi thoát ra.
• Nếu không thấy dòng này thì đừng thay đổi gì cả.
• Nếu bạn thấy một file có tên là Winboot.ini trong thư mục gốc C:\, thì cũng xoá
file này đi. Nếu không thì thôi. Khởi động lại Windows.
Trong trường hợp bạn không boot vào Safe mode được thì boot vào "Safe Mode
Command Prompt Only". Tiếp theo đó dùng NC hoặc một chương trình nào đó tương
tự để mở file "C:\msdos.sys " ra. 3 dòng dưới phần [Paths] phải có giá trị như sau:
WinDir=Windows
WinBootDir= Windows
HostWinBootDrv=C.
Khoa CNTT – 05CDTH2 Trang 79
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
• Giới hạn :
Linux chỉ hổ trợ những tập tin lên tới 2GB. Bạn có thể phục giảm thiểu việc sao
lưu lớn các file này bằng cách chia ra thành các phần nhỏ hơn. Trong ví dụ sau bạn có
thể chia một tập tin 5GB thành các phần nhỏ hơn trên vfat bằng cách chia nó thành
nhiều phần nhỏ có dung lượng 2000MB.
> cd /myvfat
Khi bạn định dạng với mkfs.vfat bạn phải thêm tùy chọn để một hệ tập tin 32 bít
tạo ra. Nếu không có tùy chọn này thì một tập tin 12 bít hoặc 16 bít sẽ được tạo thành,
phụ thuộc vào kích thước phân chia hoặc sự định dạng. Fat 16 chỉ hổ trợ những tập
tin lên tới 2GB, Fat 32 lên tới 2TB.
Cũng giống như Windows Linux cũng có các loại tài khoản khác nhau, xét về mặt
tổng thể thì có 2 loại chính tài khoản người dùng và tài khoản quản trị hay còn gọi là
root.
Root là tài khoản quản trị có ảnh hưởng rất lớn đối với an toàn của hệ thống, tài
khoản root có các các quyền như: tạo tài khoản người dùng, cài đặt phần mềm, thêm,
xóa, sửa đổi các tài khoản… Khi đăng nhập với tài khoản root thì tại giao diện
terminal thường có kí hiệu:”#”.
Các thông tin, dữ liệu về tài khoản người dùng khác thường được lưu trữ trong thư
mục home
Trong các phiên bản từ 6.x trở đi, RedHat Linux đã chuyển script này thành một
lệnh với các tham số như sau:
adduser [tên tài khoản] [-u uid [-o]] [-g group] [-G group...]
[-d home] [-s shell] [-c comment] [-m [-k template]]
[-f inactive] [-e expire] [-p passwd] [-n] [-r] name
adduser [tên tài khoản] -D [-g group] [-b base] [-s shell]
[-f inactive] [-e expire]
Nếu sử dụng các tùy chọn ta cần biết ý nghĩa từng tùy chọn như sau:
Ví dụ:
Tạo user có tên lvd với tên đầy đủ levanduan ta thự hiện dòng lệnh sau:
• -d(home) sử dụng thư mục dành cho việc login, nếu ta không chỉ ra một thư mục
thì hệ thống sẽ tự tạo ra một thư mục trùng với tên user, xét ví dụ sau:
Ví dụ: Tạo 1 user có tên cntp chứa trong thư mục linuxgroup thư mục, ta thực hiện
dòng lệnh sau:
Lưu ý: Thư mục chứa thông tin user phải được tạo trước
• -e(expire_date) Ngày tài khoản hết hạn( không thể sử dụng tài khoản này login
vào hệ thống)
Ví dụ: Tạo tài khoản cntp được phép sử dụng đến ngày 20-02-2007, chứa trong thư
mục linuxgroup với tên đầy đủ congnghiepthucpham
• -f (inactive_days) Với tùy chọn này ta có thể chỉ định số ngày password mất hiệu
lực trước khi tài khoản bị khóa .Giá trị mặc định của tùy chọn này là -1, với giá trị
này password không thể thiết lập ngày mất hiệu lực
Ví dụ : Tạo thời gian hiệu lực cho passwosd của tài khoản cntp trong 20 ngày
useradd cntp -f 20
• -u (user id) với tùy chọn này ta có thể ráng số thứ tự cho tài khoản
Ví dụ : Tạo tài khoản cntp với số thứ tự 550 ta thực hiện dòng lệnh sau:
• -p(password) tùy chọn này dùng để đặt mật khẩu cho tài khoản
• -g(group) dùng để chỉ định user thuộc về nhóm nào trong hệ thống các nhóm và
nhóm đó sẽ đặt trưng về quyền cho user nếu user thuộc về nhiều nhóm, nhóm này
thường được gọi là nhóm chính(Primary group). Nếu user mới khi tạo không được
chỉ định thuộc về nhóm nào thì hệ thống tự tạo ra nhóm mới có tên trùng với tên
user.
Ví dụ : Tạo tài khoản cntp thuộc về phân nhóm root. Ta sử dụng dòng lệnh sau:
• -G(group) tùy chọn này cũng dùng để chỉ định user thuộc về nhóm nào trong hệ
thống nhóm, tuy nhiên với tùy chọn này ta có thể chỉ định một lúc nhiều nhóm cho
user, mõi nhóm cách nhau bởi dấu “,”(phẩy).
Ví dụ : Sử dụng dòng lệnh để đưa tài khoản cntp thuộc về phân nhóm root và
linuxx.
Lưu ý: Ta cũng có thể sử dụng tùy chọn này để chỉ định user thuộc về một
nhóm.Tuy nhiên tùy chọn này không thể chỉ định nhóm này làm primary group, hệ
thống sẽ tự tạo ra primary group trùng với tên user.
• -o Tùy chọn này thường được dùng chung với tùy chọn -u (user id), nếu sử dụng
ta có thể đặt trùng số id cho tài khoản ta muốn tạo trùng với tài khoản bất kỳ nào
trước đó.
Ví dụ : Tạo tài khoản cntt có số id trùng với số id của tài khoản cntp(id 550)
• -l Nếu sử dụng tùy chọn này thì tài khoản được tạo khi đăng nhập vào hệ thống sẽ
không được ghi vào file nhật ký đăng nhập hệ thống
• -M Thông thường khi một tài khoản mới được tạo hệ thống sẽ tạo một thư mục có
tên giống với tên tài khoản chứa trong thư mục home, nếu ta sử dụng tùy chọn này
thì hệ thống sẽ không tạo thư mục này. Khi đăng nhập hệ thống tài khoản sẽ sử
dụng tập tin login.defs để tạo thư mục đăng nhập.
• -r Tùy chọn dùng để tạo ra tài khoản hệ thống với số id nhỏ hơn số id được định
nghĩa trong fije login.defs, khi sử dụng tùy chọn này thì tài khoản được tạo sẽ
không có thư mục của tài khoản trong thư mục home, nếu muốn tạo thư mục cho
tài khoản hệ thống ta sử dụng thêm tùy chọn -m.
• -s(shell) Chỉ định nhân để phục vụ cho việc đăng nhập vào hệ thống của tài
khoản(Tìm hiểu thêm phần lập trình nhân trong linux)
Để xóa một tài khoản trong giao diện terminal ta sử dụng lệnh userdel với cấu trúc
như sau:
Với tùy chọn -r kèm theo thì hệ thống sẽ thực hiện việc xóa tài khoản cùng với
việc xóa tất cả các thư mục có liên quan đến tài khoản
Ví dụ:
• Xóa tài khoản cntt nhưng không xóa các thư mục liên quan đến
tài khoản cntp cũng như thư mục có trong thư mục home
userdel cntt
• Xóa tài khoản cntp và các thư mục của tài khoản cntp
userdel cntp -r
Khi ta cần chỉnh sửa thông tin về tài khoản ta sử dụng lệnh usermod với cấu trúc
sau:
Nếu sử dụng các tùy chọn ta cần biết ý nghĩa từng tùy chọn như sau
Ví dụ: Sửa lại tài khoản có tên cntp với tên đầy đủ congnghiepthucpham thành tên
đầy đủ là congnghiep ta thự hiện dòng lệnh sau:
• -d(home) đổi thư mục dành cho việc login, nếu ta không đổi thư mục mới thì hệ
thống sẽ lấy thư mục trước đó, xét ví dụ sau:
Ví dụ: Đổi tài khoản có tên cntp với thư mục cntp trong thư mục home thành
thucpham , ta thực hiện dòng lệnh sau:
• -e(expire_date) Ngày tài khoản hết hạn( không thể sử dụng tài khoản này login
vào hệ thống)
Ví dụ: Sửa lại tài khoản cntp được phép sử dụng đến ngày 20-02-2007 thành
ngày 20-03-2007
• -f (inactive_days) Với tùy chọn này ta có thể thay đổi ngày password mất hiệu
lực trước khi tài khoản bị khóa .Giá trị mặc định của tùy chọn này là -1, với giá trị
này password không thể thiết lập ngày mất hiệu lực
Ví dụ : Tạo thời gian hiệu lực cho passwosd của tài khoản cntp trong 20 ngày
thành 30 ngày
usermod -f 30 cntp
• -u (user id) với tùy chọn này ta có thể thay đổi số thứ tự cho tài khoản
Ví dụ : Thay đổi tài khoản cntp với số thứ tự 550 thành 500 ta thực hiện dòng lệnh
sau:
• -p(password) tùy chọn này dùng để đặt lại mật khẩu cho tài khoản
Ví dụ: Chuyển password 123456 thành cntp123 cho tài khoản cntp
• -g(group) dùng để chỉ định lại user thuộc về nhóm nào trong hệ thống các nhóm
và nhóm đó sẽ đặc trưng về quyền cho user nếu user thuộc về nhiều nhóm, nhóm
này thường được gọi là nhóm chính(Primary group). Nếu user mới khi tạo không
được chỉ định thuộc về nhóm nào thì hệ thống tự tạo ra nhóm mới có tên trùng với
tên user.
Ví dụ : Đổi primary group của tài khoản cntp thuộc về phân nhóm root thành
linuxgroup. Ta sử dụng dòng lệnh sau:
• -G(group) tùy chọn này cũng dùng để thay đổi hàng loạt nhóm mà tài khoản
thuộc về, cũng giống như khi tạo mới các nhóm cách nhau bởi dấu “,”(phẩy).
Ví dụ : Sử dụng dòng lệnh để đưa tài khoản cntp thuộc về phân nhóm root và
linux.
Lưu ý: Cũng giống như khi tạo mới một tài khoản ta cũng có thể sử dụng tùy
chọn này để chỉ định user thuộc về một nhóm.Tuy nhiên tùy chọn này không thể chỉ
định nhóm này làm primary group, hệ thống sẽ tự tạo ra primary group trùng với tên
user.
• -o Tùy chọn này thường được dùng chung với tùy chọn -u (user id), nếu sử dụng
ta có thể đặt trùng số id cho tài khoản ta muốn tạo trùng với tài khoản bất kỳ nào
trước đó.
Ví dụ : Chỉnh lại tài khoản cntt có số id trùng với số id của tài khoản cntp(id 550)
• -l(login_name) Dùng tùy chọn này để thay đổi tên đăng nhập vào hệ thống, cấu
trúc lệnh như sau:
Ví dụ : Đổi tên dăng nhập của tài khoản cntp thành cntt
• -L Với tùy chọn này ta dung để khóa tinh năng mật mã của một tài khoản, nếu tài
khoản đã được đặt password thì khi sử dụng tùy chọn này để chỉnh sửa tàii khoản,
mật mã sẽ bị khóa.
usermod -L cntp
• -U Ngược lại với tùy chọn trên tùy chọn này có chức năng mở khóa cho password
của một tài khoản.
usermod -U cntp
3.2.2. Các thao tác quản lý tài khoản trên giao diện X - Windows
Để vào được giao diện quản lý người dùng ta cần phải đang nhập với tài khoản
root hoặc các tài khoản khác nhưng ta cấn biết được password của root. Sau đó ta
thực hiện như sau:
Hình 3.1 Đăng nhập vào giao diện quản lý tài khoản và nhóm
Khi đăng nhập thành công giao diện kế tiếp như sau.
Việc tạo mới tài khoản trên giao diên windows rất đơn giản, để tạo mới một tài
khoản ta thực hiện như sau: trên giao diện quản lý có mục Add User ta click vào khi
đó xuất hiện giao diện như sau:
Tại giao diện này ta cần điền các thông tin cần thiết để tạo tài khoản như:
• Full Name : Ghi chu hay tên đầy đủ của tài khoản
• Create home directory: tạo thư mục chứa thông tin về phiên làm việc của tài
khoản.
• Create a private group for the user: Tạo nhóm riêng cho tài khoản thường trùng
với tên của tài khoản.
Sau khi đã điền đầy đủ thông tin cho tài khoản ta chọn Ok để hoàn tất việc tạo
mới
Việc xóa một tài khoản cũng tương đối đơn giản, ta chọn vào một tài khoản muốn
xóa trên giao diện quản lý xuất hiện chữ Delete ta click vào khi đó xuất hiện giao diện
hỏi ta muốn xóa thưc mục của tài khoản đó không, nếu ta muốn xóa thi ta cứ click
vàoYes nếu không muốn xóa thư mục nhưng vẫn muốn xóa tài khoản ta bỏ chọn ở
mục delete linuxx’s home directory(‘home/linuuxx’) and temporary files(Xét ở phần
minh họa này), sau đó ta chọn Yes để hoàn tất.
Để chỉnh sửa các thông tin liên quan đến đến tài khoản cấn sửa đổi ta chọn ngay
tài khoản cần thay đổi sau đó chon vào mục properties giao diên xuất hiện như hình
bên dưới.
Ở thẻ thứ đầu tiên(User data) ta có thể thay đổi tên đăng nhập, tên đầy đủ, mật
khẩu....
Ta click chọn tiếp thẻ Account info giao diện như sau.
Tại thẻ này ta có thể chỉ định ngày tài khoản hết hạn, khóa mật mã của tài khoản.
Chuyển sang thẻ kế tiếp (Password info) chỉnh sửa các thông tin liên quan đến mật
mã.
Tại thẻ này ta có thể thay đổi các thông tin liên quan đến mật mã như sau:
• Days before change allowed: chỉ định số ngày cho phép thay đổi mật mã
• Days before change required: chỉ định số ngày trước khi thay đổi được yêu cầu.
• Days warning before change: Chỉ định số ngày nhắc nhở trước khi thay đổi mật
mã.
• Days before account inactive: Chỉ định số ngày mật mã hết hiệu lực trước khi tài
khoản bị khóa.
Chuyển sang thẻ cuối cùng(Groups) tại thẻ này chúng ta có thể thay đổi primary
group và thêm hoặc bớt các nhóm tài khoản này phụ thuộc bằng thao tác đơn giản
thêm hoặc bỏ chọn.
Để tạo một nhóm người dùng mới ta sử dụng lệnh groupadd với cấu trúc như sau:
Nếu sử dụng các tùy chọn ta cần biết ý nghĩa từng tùy chọn như sau :
- g: (gid) đánh số thứ tự cho nhóm với giá trị hợp lệ thường lớn hơn 500, còn
khoảng giá trị từ 0 đến 499 thường dùng cho các nhóm nhằm mục đích nghiên cứu
các tài khoản hệ thống.
Ví dụ:
Thực hiện việc tạo mới nhóm có tên linux với số thứ tự 501
- o: tùy chọn này thường được dùng kèm theo tùy chọn -g nhằm cho phép ta có thể
đánh trùng số thứ tự của các nhóm.
Ví dụ:
Tạo nhóm có tên linuxgroup có số thứ thự trùng với nhóm có tên linux.
- r: Việc sử dụng tùy chọn này nhằm mục đích cho biết việc tạo ra nhóm này để
chứa các tài khoản hệ thống.Thông thường số thứ tự của nhóm thường nhỏ hơn 499
hệ thống sẽ tự động cập nhật.
-f : Khi sử dụng tùy chọn này thì dù có tạo ra một nhóm mới có tên trùng với nhóm
đa có thi hệ thống cũng không cảnh báo hay báo lỗi, nói cách khác đây là tùy chọn tạo
nhóm với trạng thái thành công.
Việc xóa một nhóm trong hệ thống tương đối đơn giản với lệnh groupdel có cấu
trúc như sau:
Ví dụ:
groupdel linux
Để chỉnh sửa nhóm ta sử dụng lệnh groupmod với cấu trúc như sau:
groupmod -g -o -n
Ý nghĩa các tùy chọn cũng giống như các tùy chọn khi tạo mới một nhóm
• -g: với tùy chọn này cho phép đặt lại số thứ tự của nhóm, dãy số hợp lệ cụng
giống như khi tạo mới.
Ví dụ:
Đặt lại số thứ tự cho nhóm linux( ID ban đầu: 650) với ID mới bằng 600
Ví dụ:
Đặt lại số thứ tự của nhóm có tên linuxgroup trùng với số thứ tự của nhóm có tên
linux(600)
3.3.2. Các thao tác quản lý tài khoản trên giao diện Windows
Việc chỉnh sửa, tạo mới và xóa một nhóm trong giao diện windows tương đối đơn
giản.
Để thực hiện được ta cần đăng nhập vào hệ thống quản lý tài khoản va nhóm của
linux, cách thức đăng nhập hoàn toàn giống như cách thức đăng nhập vào giao diện
quản lý tài khoản như đã đề cập ở mục trên.
Cũng giống như khi tạo mới user ta cũng sẽ thấy trên giao diện quản lý cũng có
mục add group. Để tạo mới nhóm ta cứ click chuột vào giao diện xuất hiện như sau:
Giao diện này yêu cầu ta điền hai thông tin đơn giản là tên nhóm và số thứ tự của
nhóm, nếu ta không diền số thứ tự hệ thống sẽ tự động cập nhật số thứ tự
Việc xóa một nhóm cũng tương đối đơn giản, để xóa một nhóm sau khi đã chọn ta
cũng click vào chữ delete trong giao diện, sau đó hệ thống cũng sẽ xác nhận ta có
muốn xóa hay không bằng cách hiển thị thông báo như hình bên dưới:
Nếu ta muốn xóa thì chọn Yes, nếu muốn hủy bỏ ta chọn No.
Các cấp thư mục cao nhất trong hệ thống tập tin của Linux.
• /: Đây là thư mục gốc(root) trong Linux.Tất cả các tập tin và thư mục khác đều
nằm trong thư mục gốc này.
• /bin: Thư mục này chứa các chương trình có thể thực thi được trong hệ điều
hành Linux,chẳng hạn như cat, cp, ls, more, tar...
• /boot: Chứa nhân (kernel) của Linux và các tập tin khác mà trình quản lý
GRUB hay LILO cần để khởi động.
• /dev: Chứa các tập tin đặc biệt liên quan đến các thiết bị gắn trên hệ thống, ví
dụ như fd0(đĩa A).
• /etc: Chứa hầu hết các tập tin cấu hình và các đoạn mã kịch bản (script) lúc
khởi động.
• /home: Chứa thư mục chủ của các tài khoản trên Linux, ví dụ với tài khoản
tienmap, ta có thư mục /home/tienmap.
• /lib: Chứa driver của các thiết bị nạp lúc khởi động Linux và các tập tin thư
viện dùng cho các chương trình trong /bin và /sbin.
• /lost+found: Chứa tất cả các bị mất.Mỗi phân vùng trên đĩa cứng đều có thư
mục lost+found này.
• /mnt: Thư mục tạm chứa các mount-point của hệ thống tập tin như ổ CD-
ROM,hay ổ đĩa mềm.
• /opt: Cung cấp vùng lưu trữ tạm cho các gói chương trình ứng dụng lớn.
• /proc: Đây là thư mục đặc biệt, chứa thông tin về các tiến trình đang chạy trên
hệ thống Linux.
• /sbin: Chứa các tập tin có thể thực thi được dùng cho công việc quản trị hệ
thống và chỉ được thực thi bởi root, ví dụ halt, shutdown.
• /selinux: Chứa các thông tin được dùng cho Security Enhanced Linux
(SELinux) và các tiện ích liên quan đến bảo mật hệ thống.
• /sys: Chứa các thông về các thiết bị được nhận biết bởi nhân Linux kernel.
• /usr: Chứa nhiều thư mục của các chương trình quan trọng, ví dụ như:
• /usr/X11R6: Chứa các tập tin của chương trình X Window System
• /usr/bin: Chứa các tập tin có thể thực thi của nhiều dòng lệnh trên
Linux,bao gồm cả các tiện ích thông thường có sẵn trên Linux, nhưng không liên
quan đến phần lõi của hệ điều hành Linux.
• /usr/include: Chứa các tập tin header (*.h) của C và C++, các tập tin
header của X Window trong thư mục /usr/include/X11, các tập tin header của
Linux kernel trong thư mục /usr/include/linux.
• /usr/lib: Chứa các tập tin thư viện của ngôn ngữ C, C++ và các thư viện
khác như thư viện đồ họa, thư viện cơ sở dữ liệu.v.v…
• /usr/local: Chứa các tập tin cục bộ,ví dụ như thư mục /usr/local/bin chứa
các tập tin thực thi được phát triển trên hệ thống của bạn.
• /usr/sbin: Chứa nhiều dòng lệnh quản trị hệ thống, chẳng hạn như về thư
điện tử, mạng máy tính...
• /usr/share/man: Chứa các tài liệu giúp đỡ mà có thể đọc qua lệnh man.
• /usr/src: Chứa mã nguồn của Linux kernel (lõi của hệ điều hành)
• /var/cache: Vùng lưu trữ dữ liệu cache của của ứng dụng.
• /var/lib: Chứa các thông tin liên quan đến tình trạng của
các ứng dụng.
• /var/lock: Chứa các tập tin đã bị khóa để đảm bảo một tài
nguyên chỉ có thể sử dụng bởi 1 ứng dụng.
• /var/mail: Chứa các tập tin trong hộp thư của người dùng.
• /var/opt: Chứa các biến dữ liệu của các gói chương trình
lưu trong thư mục /opt
• /var/tmp: Chứa các tập tin tạm được lưu lại khi hệ thống
khởi động lại.
Hình 4.1 Các thư mục nằm trong thư mục gốc
Để xem các quyền hiện có trên tập tin và thư mục,sử dụng lệnh ls –l.
VD:
VD: tập tập ẩn .profile sau là tập tin bình thường có số id là 1, người tạo ra là user2
có quyền đọc và ghi(rw), thuộc nhóm staff chỉ có quyền đọc(r), mọi người dùng còn
lại có quyền chỉ đọc(r).
d: thư mục
l: là tập tin liên kết đến một thư mục hay tập tin nào đó.
Chúng ta có thể hiệu chỉnh các quyền trên tập tin hay thư mục bằng dòng lệnh
chmod
r: quyền đọc
w: quyền ghi
-: cấm quyền
=: gán quyền.
+: thêm quyền.
-: bớt quyền
VD: gán quyền thực thi(x) cho tất cả các user vào tập tin allfile.txt (ngoại trừ root)
Riêng đối với thư mục phải có quyền thực thi (x) thì mới có thể di chuyển vào thư
mục đó được.
VD: ta có thư mục test, gọi lệnh ls –l để xem các quyền trên đó, sau đó bỏ đi
quyền thực thi của user, và cuối cùng gọi lệnh cd để di chuyển vào thư mục test. Kết
quả: đã bị cấm quyền. Sau đó thêm quyền x vào user,sau đó di chuyển vào thư mục
test.
Lưu ý: với tài khoản root, ta có quyền làm mọi việc trên tất cả các tập tin, không bị
hạn chế nào, không bị ảnh hưởng bởi bất cứ quyền hạn nào.
Mỗi quyền có một giá trị octal, chúng ta có thể dùng số octal này để gán quyền vào
tập tin hay thư mục.
Cú pháp:
Để thay đổi người tạo ra tập tin, dùng dòng lệnh chown
Cú pháp:
Cú pháp:
rpm -q: Truy vấn các thông tin về các gói rpm..
rpm –qa: Tìm kiếm tất cả các gói rpm đã được cài đặt trong hệ thống.
Hình 5.2 Liệt kê các gói rpm đã được cài đặt vào hệ thống
Hình 5.3 Liệt kê các tập tin theo từng trang có trong kernel
rpm –qc: Liệt kê tất cả các tập tin cấu hình trong gói rpm.
Hình 5.5 Liệt kê các tập tin cấu hình trong xinetd
rpm –qd: Liệt kê tất cả các tập tin tài liệu trong gói rpm.
rpm –qi: Xem các thông tin chi tiết về gói rpm , bao gồm: số phiên bản, dung
lượng, ngày cài đặt, thông tin mô tả của gói rpm.
rpm –qs: Xem trạng thái của các tập tin trong gói rpm.
Hình 5.8 Các tập tin trong gói xinet ở trạng thái normal
Các dòng lệnh rpm chỉ cung cấp thông tin về các gói đã được cài đặt. Nếu muốn
tìm kiếm thông tin về các gói rpm chưa được cài đặt, ta thêm tùy chọn p vào dòng
lệnh rpm. Dĩ nhiên dòng lệnh này chỉ thực hiện được trên các thư mục có chứa các
gói rpm.
rpm -q—whatprovides filename: Cho phép xem thông tin của một tập tin xác
định.
rpm -q—whatrequires packname: Xem thông tin nhà cung cấp của gói rpm xác
định.
Bạn chỉ có thể xây dựng một gói phần mềm RPM từ dòng lệnh với cú pháp sau
đây:
. Tên gói phần mềm bao gồm những thành phần như sau:
tên quota
phiên bản 1.55
ấn bản 4
cấu trúc máy tính i386
phần mở rộng .rpm
rpm –i: Cài đặt một gói rpm.
rpm –ivh: Cài đặt và xem quá trình cài đặt gói rpm.
rpm -i --force package: Buộc phải cài gói package dù lỗi có xuất hiện.
Muốn gỡ bỏ một gói phần mềm ra khỏi hệ thống máy bạn, RPM phải qua các bước
như sau:
- Kiểm tra tính phụ thuộc. RPM kiểm tra cơ sở dữ liệu xem có gói phần mềm nào
khác phụ thuộc vào gói phần mềm ấy hay không. Nếu có, RPM sẽ không xoá, trừ
khi bạn khẳng định là phải xoá.
- Chuẩn bị gỡ bỏ. RPM thi hành một script chuẩn bị cho việc gỡ bỏ cài đặt.
- Kiểm tra các tệp cấu hình. RPM lưu bản sao của mọi tệp cấu hình đã thay đổi.
- Xoá các tệp. RPM xoá tất cả các tệp kết hợp với gói phần mềm được xác định.
- Dọn dẹp. RPM thi hành một script dọn dẹp sau khi gỡ bỏ cài đặt.
- Cập nhật cơ sở dữ liệu. RPM gỡ bỏ tất cả mọi chỉ mục tham chiếu đến gói phần
mềm đã tháo bỏ.
Ta thường làm theo các bước sau để đảm bảo quá trình gỡ bỏ package.
Muốn cập nhật 1 gói rpm, trước hết ta phải có sẵn gói rpm trên thiết bị lưu trữ, sau
đó chỉ định đường dẫn xác định tới file muốn cập nhật.
Thực hiện việc cập nhật bằng cách xóa bỏ phiên bản cũ, sau đó cài đặt phiên bản
mới vào. Quá trình cập nhật sẽ tự động lưu những tập tin cấu hình của phiên bản cũ,
sau đó sẽ cấu hình lại chương trình vừa được cài mới
Muốn biết những gói phần mềm nào đã cài đặt vào hệ thống, bạn dùng lệnh như
sau:
rpm –qa
Lệnh sẽ hiển thị danh sách các gói phần mềm hiện có trên hệ thống. Muốn lấy
thông tin từ một gói phần mềm nhất định, bạn cần gõ tuỳ chọn –q. Bảng sau liệt kê
các tuỳ chọn mà bạn có thể sử dụng với nhóm lệnh rpm –q để tìm các gói phần mềm.
Tuỳ chọn Mô tả
-q tên Cung cấp tên, phiên bản và số phát hành của gói phần mềm.
-qa Liệt kê tất cả các gói phần mềm đã cài đặt trên hệ.
-qf tệp Tìm gói phần mềm liên kết với tệp.
-qp Tìm gói_phần_mềm.
gói_phần_mềm
-qi Cung cấp tên, mô tả, bản phát hành, kích cỡ, ngày tạo ra, ngày
gói_phần_mềm cài đặt và các thông tin khác về gói phần mềm.
-ql Liệt kê tất cả các tệp liên kết với gói phần mềm.
gói_phần_mềm
Có thể ta ít khi làm điều này, nhưng nếu nghi ngờ 1 phần mềm nào đó không chắc
là đã được cài, ta sẽ xác minh lại bằng lệnh rpm –V
8 kí tự đầu tiên chỉ ra loại khác nhau được tìm thấy, bao gồm:
Mã Ý nghĩa
c Tệp này là tệp cấu hình
5 Tệp này không qua được thử nghiệm tổng kiểm MD5
S Kích cỡ tệp đã thay đổi sau thời điểm cài đặt
L Có vấn đề với các mối liên kết tượng trưng
T Thời gian chỉnh sửa tệp không trùng với nguyên thuỷ
D Thuộc tính thiết bị
U Các thiết lập cho user đã thay đổi
G Các thiết lập cho nhóm đã thay đổi
M Chế độ
Phần hai là kí tự ‘c’ kế tiếp cho biết là tập tin cấu hình đã bị thay đổi, mặt khác là
khoảng trắng.
Phần cuối cùng là đường dẫn tới tập tin, dựa vào phần này ta sẽ biết được tập tin
nằm ở đúng vị trí nào.
Điều đầu tiên khi bạn tiến hành cài đặt là bạn phải có mã nguồn của gói đó trước.
Hãy lên mạng search bất kì gói nào bạn thích như thư viện Gtk+ hoặc Gnome .v.v...
Sau khi tải về, thông thường có dạng là .gz hoặc .bz2, đây đều là 2 chuẩn nén khác
nhau, sau khi giải nén bằng gunzip cho gz hoặc bunzip2 cho bz2 thì các gói sẽ có
dạng mới là tar, cũng là một chuẩn nén khác, bạn có thể giải nén bằng lệnh, tar -xvf ...
Thế nhưng để dễ dàng và tiết kiệm dung lượng ổ đĩa thì chúng ta có thể gộp các câu
lệnh đó thành 1 như sau:
Sau khi giải nén xong và tìm tập tin INSTALL để đọc cụ thể cho phần hướng dẫn
cài đặt. Thế nhưng hầu như các gói đều tuân theo các thao tác tuần tự sau:
# ./configure
# make
# make install
Chỉ có vài gói đặc biệt sẽ có riêng cách cài đặt nhưng khi bạn đã nắm vững nguyên
tắc chung thì dù là cách thức nào bạn cũng có thể xoay xở được. Chúng ta hãy xét đến
câu lệnh đầu tiên, ./configure ... Thực chất configure là một shell script sẽ kiểm tra
những yêu cầu của hệ thống của bạn có đáp ứng đủ để cài đặt gói lên không, ví dụ
như một số gói đòi hỏi bạn phải có sẵn thư viện đồ họa Gtk 2.4 trở lên hoặc là thư
viện để giải nén nhạc Mp3..v.v... Rất nhiều gói có sự phụ thuộc như thế chứ các gói
khi tải về không hề có sẵn các gói tương ứng cần thiết cho nó. Khi bạn chạy configure
xong kết quả sẽ cho bạn biết các gói nào cần thiết để cài đặt. Nhiệm vụ của bạn không
gì hơn là phải tìm các gói phụ thuộc đó cài lên máy rồi mới tiếp tục việc cài đặt. Nếu
như hệ thống của bạn thỏa mãn đầy đủ các yêu cầu để cài đặt thì các Makefile sẽ
được tạo ra. Makefile là một file đặc biệt của tiện ích make nhằm hướng dẫn biên
dịch mã nguồn của gói ra dạng thực thi. Sau khi bạn thực thi lệnh 'make' xong thì tòan
bộmã nguồn của gói đã được biên dịch sang dạng thực thi nhưng các file thực thi vẫn
còn nằm trên thư mục hiện hành. Do đó bạn cần phải thực hiện thêm lệnh “make
install' để chép các file thực thi đó sang đúng vị trí của nó trên hệ thống. Nếu như
không có thông báo lỗi gì xảy ra thì bạn đã hòan tất việc cài đặt gói lên hệ thống của
mình.
Bạn hoàn toàn biết thư mục trên Linux thì thư mục /usr là thư mục quan trọng nhất
vì nó sẽ chứa các chương trình và hàm thư viện trên đó. Trong thư mục /usr/bin là sẽ
chứa các file thực thi cho các gói bạn đã cài đặt trên máy, các file trong thư mục này
bạn sẽ thấy các file rất quen thuộc như mozilla, gedit .v.v... Thư mục /usr/lib sẽ chứa
các hàm thư viện, bạn sẽ thấy rất nhiều files có phần mở rộng là .so (shared object) là
các hàm thư viện liên kết động hoặc .a (archive) hoặc .la đều là các hàm thư viện liên
kết tĩnh. Đặc tính căn bản của 2 dạng thư viện này là hàm thư viện liên kết tĩnh sẽ
được liên kết thẳng với files thực thi luôn trong quá trình liên kết, còn hàm thư viện
liên kết động thì sẽ được liên kết trong quá trình thực thi, cho nên sau khi chương
trình đã được biên dịch và liền kết rồi các thư viên tĩnh chúng ta có thể bỏ đi nhưng
thư viện liên kết động thì bắt buộc phải đi kèm với chương trình. Thư mục /usr/share
sẽ chứa các icon, manual hoặc info của gói.
Nếu bạn mong muốn lọai bỏ một gói đã cài đặt trên hệthống thì cách duy nhất là
bạn phải vào lại thư mục mã nguồn của gói và gõ lệnh 'make uninstall' ... thông
thường bạn sẽ có các câu lệnh sau: 'make clean' 'make distclean' ... Các câu lệnh có ý
nghĩa rất tương đối và được định nghĩa trong tập tin Makefile, nên đầu tiên bạn cứ thử
với 'make uninstall' rồi 'make clean' cái cuối cùng 'make distclean' là giúp bạn xóa hết
các tập tin đã biên dịch ở thư mục nguồn và đồng thời xóa Makefile, bạn phải chạy lại
./configure để tạo lại Makefile.
Do việc xóa bỏ một gói như trên rất là phiền phức đôi lúc bạn chẳng thể xóa
bỏđược nếu như mất đi mã nguồn, cho nên bạn có thể thay vì cài nó vào thư mục mặc
định là /usr thì bạn có thể cài vào các thư mục của riêng bạn, ví dụ như bạn có thể tạo
thư mục '/soft' ... Sau đó để cài gói gedit thì bạn tạo thêm thư mục /soft/gedit và dùng
lệnh ./configure ... bạn thêm tùy chọn sau:
./configure --prefix=/soft/gedit
thì khi bạn gõ make install sẽ copy tòan bộ sang thư mục /soft/gedit .. Khi bạn
muốn xóa tòan bộ gói thì chỉ đơn giản xóa đi thư mục đó thôi. Lưu ý là khi bạn cài
vào thư mục riêng của mình rồi bạn phải tạo 2 đường dẫn cho 2 biến mội trường
(environment variable) LD_LIBRARY_PATH và PKG_CONFIG_PATH ...
LD_LIBRARY_PATH sẽ có đường dẫn đến thư mục lib của gói vừa tạo (ví dụ như
/soft/gedit/lib) còn PKG_CONFIG_PATH sẽ có đường dẫn đến thư mục pkg_config
trong thư mục lib (ví dụ như /soft/gedit/lib/pkg_config) .. Bên cạnh đó nếu bạn muốn
chương trình gọi tự động thì bạn cũng nên thêm vào biến PATH cho gói của mình.
6.5.Lời kết
Trên mạng Internet có rất nhiều chương trình nguồn được phân phối mà không có
tập tin thực thi. Trước khi sử dụng phần mềm dạng này, ta phải tạo ra tập tin thực thi
bằng việc biên dịch theo những hướng dẫn có sẵn đi kèm.
Hầu hết các phần mềm mã nguồn mở trên mạng thường được nén để giảm bớt
dung lượng nhằm truyền tải linh hoạt hơn, các định dạng thường dùng là .tar, .tgz,
.z, .zip…
VD: giả sử ta download được gói phần mềm xvnkb-2.0.9a1.tar lưu trong thư mục
/root/Desktop/Nhan NTFS,
Giải nén tập tin dạng tar bằng dòng lệnh sau:
Chuyển đến thư mục chứa các tập tin đã được giải nén.
Đọc các tập tin như README hay INSTALL kèm theo trong các chương trình để
cài đặt chương trình.
Xây dựng phần mềm từ các tập tin nguồn. Việc cài đặt thường có 3 bước sau, lấy
ví dụ cài đặt gói chương trình gõ tiếng việt xvnkb-0.2.9a1.tar
• ./configure
Đoạn mã configure này sẽ dự tính các biến phụ thuộc hệ thống và tạo ra một
Makefile phục vụ cho việc xây dựng chương trình.
• make
Sau khi đoạn mã kịch bản configure hoàn thành, ta gõ lệnh make nhằm gọi tiện
ích GNU make, đây là tiện ích dùng để đọc Makefile đã có trước đó và bắt đầu biên
dịch các tập tin nguồn căn cứ vào thông tin có trên Makefile. Dòng lệnh make sẽ tạo
ra tập tin thực thi và các thư viện nhằm chạy chương trình. Việc này mất một khoản
thời gian, phụ thuộc vào chương trình lớn hay nhỏ.
• make install
Sau khi lệnh make thực hiện xong, ta thực hiện cài đặt
Dòng lệnh này cũng chạy tiện ích GNU make, nhưng sẽ cài đặt các đối số dựa
trên một tập hợp các dòng lệnh từ Makefile.
Như vậy là ta đã cài xong chương trình, hãy đọc các tài liệu hướng dẫn đi kèm
nhằm biết cách sử dụng hay cấu hình lại phần mềm vừa cài đặt.
Khi bộ nguồn hỏng, phần cứng bị hư bất chợt hay có những lỗi thao tác có thể làm
hỏng hệ thống tập tin, ta có những dòng lệnh để kiểm tra và khắc phục những hư
hỏng đó.
• tune2fs: điều chỉnh lại các tham số sao cho phù hợp với hệ thống tập tin.
• debugfs: gọi chương trình sửa những lỗi nghiêm trọng của hệ thống tập
tin.
• dumpe2fs: xem các thông tin về hệ thống tập tin ext2 hay ext3
Cú pháp: df <–option>
option:
Cú pháp: du –option
Option:
7.3.Mount và Umount
Đến đây, bạn đã có khái niệm khá rõ ràng về hệ thống tệp. Câu hỏi tiếp theo là bạn
làm như thế nào để thiết lập một thư mục thành một hệ thống tệp riêng biệt.
Việc mount có thể thực hiện qua dòng lệnh hay thêm dòng lệnh vào trong tập tin
/etc/fstab
Cú pháp:
option:
Tùy Mô tả
c
h
ọ
n
-f Làm cho mọi thứ diễn ra "như thật", song chỉ là thao tác giả
-v Cung cấp thêm thông tin về những gì mà mount sẽ thực hiện
-w Mount hệ thống tệp với các quyền hạn đọc và ghi
-r Mount hệ thống tệp với quyền hạn chỉ đọc mà thôi
-n Mount hệ thống tệp nhưng không ghi mục nào vào tệp /etc/mtab
-t Xác định loại hệ tệp được mount
[fstype]
-a Cố gắng mount mọi hệ thống tệp đã khai báo trong /etc/fstab
-o danh- Khi phía sau lệnh mount có một loạt các tuỳ chọn được cách nhau bằng
sách- dấu phẩy, mount sẽ áp dụng các tuỳ chọn ấy vào hệ thống tệp đang
các-tuỳ- được mount. Muốn có danh sách đầy đủ các tuỳ chọn bạn hãy xem
chọn trang man của lệnh mount.
Các fstype cơ bản như:
• minux: hệ thống tập tin dạng minux (tên bị giới hạn bởi 30 kí tự)
• ext2: hệ thống tập tin dạng ext2 (ở các phiên bản linux cũ).
• ext3: hệ thống tập tin dạng ext3 (các phiên bản linux hiện tại).
• msdos: hệ thống tập tin cho các phân vùng MSDOS(16 bits).
• vfat: hệ thống tập tin cho các phân vùng Windows 95,98 và Millennium(32 bits).
• ntfs: hệ thống tập tin của Windows NT,Windows XP và Windows 2000 trở về sau
(chỉ cho phép đọc)
• hpfs: hệ thống tập tin cho các phân vùng của các hệ điều hành đa nhiệm có hiệu
suất cao.
• nfs: tập tin được chia sẻ bằng dịch vụ network file systems.
• iso9660: tập tin dạng iso dùng cho việc mount CD-ROM, thường di kem voi tham
sô -o loop
VD1: mount tập tin FC_4 i396 ftp #1.iso vào thu mục /media/cdrom
• proc: loại tập tin được hệ điều hành dùng cho việc xử lý.
• devpts: hệ thống tập tin ttys-các cổng giao tiếp với kernel (Unix 98 Pseudo
Terminals)
• shmfs và tmpfs: truy cập vào bộ nhớ ảo Linux, bộ nhớ được chia sẻ POSIX.
VD2: mount phân vùng /dev/hda5 được định dạng là fat32 vào thư mục
/root/hda5 như sau:
VD3: mount phân vùng /dev/hda7 được định dạng là ext3 vào thư mục /root/hda7
như sau:
• defaults: sử dụng các tuỳ chọn mặc định là: rw, suid, dev, exec, auto, nouser và
async.
• kudzu: kiểm tra các thiết bị đã được cài đặt và có thể truy cập.
• noauto: không tự động mount hệ thống tập tin khi khởi động.
• exec: cho phép thực thi các tập tin nhị phân.
• nouser: cấm người dùng thông thường mount hệ thống tập tin.
• suid: cho phép đặt định danh người dùng hay định danh nhóm.
• user: cho phép người dùng mount hệ thống tập tin với các tuỳ chọn như
noexec,nosuid và nodev.
• noexec: không cho phép thực thi các tập tin nhị phân.
• nosuid: không cho phép đặt định danh người dùng hay định danh nhóm.
• -O : thường đi kèm với tham số -a, dùng để giới hạn không mount một số loại tập
tin nào đó.
=>> mount tất cả các hệ thống tập tin trong /etc/fstab ngoại trừ loại no_netdev
Khi không truy cập vào hệ thống tập tin nào đó, ta sẽ dùng lệnh unmount.
Để mount được phân vùng NTFS thì có nhiều cách ,ở đây chúng tôi xin trình
bày 2 cách đơn giản và thông dụng nhất:
Bước 1: xác định phiên bản Việt đầu tiên bạn cần làm là xác định phiên bản bạn
đang dung
#uname -r
Và
Để xác định processor (đa số dùng i686 processor (a recent Pentium computer).
hoặc i586 or i386.
2.6.11-1.1369_FC4 và i686
Đến trang:
http://linux-ntfs.sourceforge.net/rpm/fedora4.html
http://prdownloads.sourceforge.net/linux-ntfs/kernel-module-ntfs-2.6.11-
1.1369_FC4-2.1.22-0.rr.6.0.i686.rpm
/sbin/modprobe ntfs
Kiểm tra xem module ntfs đã được nạp chưa bằng dòng lệnh:
cat /proc/filesystems
Nếu thấy dòng ntfs thì module ntfs đã được nạp, ngược lại thì lệnh
/sbin/modprobe ntfs chưa thực hiện được.
Cuối cùng, mount phân vùng định dạng ntfs để dùng. Tạo tập thư mục Winxp để
mount bằng lệnh:
mkdir Winxp
/sbin/fdisk –l
Mount phân vùng ntfs vào thư mục Winxp với tham số -t ntfs.
umount /dev/hda6
Nếu muốn gỡ bỏ gói NTFS rpm, trước hết ta liệt kê tất cả các gói rpm có tên ntfs
bằng dòng lệnh:
rpm -e
Bước 1: Cài đặt fuse phiên bản lớn hơn 2.5.x ,ở đây chúng tôi cài đặt gói fuse-
2.6.0.tar, bước cài đặt thì giống như cài đặt các gói khác mà chúng tôi đã trình bày
Bước 2: sau khi cài đặt thành công chúng ta phải nạp module fuse hộ trợ đọc
NTFS bằng dòng lệnh sau:
# sbin/modprobe fuse
Bước 3: chúng ta có thể kiểm tra lại modul fuse đã được nạp hay chưa bằng dòng
lệnh:
# cat /proc/filesystems
Nếu có một dòng có tên là fuse thì chúng ta đã nạp thành công
Bước 4: đơn giản hơn chúng ta chỉ cài đặt NTFS-3G cài đặt cũng giống như các
gói phần mềm khác
Bước 5: khi cài đặt thành công chúng ta mount phân vùng NTFS bằng dòng lệnh
sau:
* chú ý: ntfs-3g chỉ được hỗ trợ bởi fuse phiên bản 2.5.x trở lên, đối với kernel
2.6.12 Trở lên đã hỗ trợ sẵn fuse.
Dùng lệnh hostname chúng ta có thể xem tên máy hoặc đổi tên máy với cú pháp
như sau:
• hostname (hình)
Lưu ý: tên máy đặt chỉ có thể tồn tại tại thời điểm đang làm, việc khi chúng ta khởi
động lại máy thì tên máy trở lại tên ban đầu.
Để lưu được tên vừa mới đặt ta cần sửa lại file /etc/sysconfig/network (hình)
Xem địa chỉ IP: Để xem địa chỉ IP ta dùng dòng lệnh ifconfig.
Eth0 là tên của card mạng, còn lo là tên của Lookback interface (hình).
Thay đổi địa chỉ IP: Để thay đổi địa chỉ IP ta có thể làm những cách sau
Dòng lệnh này chỉ thay đổi địa chỉ IP của máy tạm thời, khi khởi động lại máy
thì địa chỉ IP vừa thiết lập sẽ bị mất và trở lại như ban đầu, được lưu giữ lại sau khi
reboot hệ thống thì ta phải thêm lệnh trên vào tập tin /etc/rc.local
Thông thường phương thức tạo nhiều địa chỉ IP cho Card mạng được gọi là ip
alias. Alias này phải có tên dạng: parent-interface-name: X, trong đó X là
subinterface number.
Ifup eth0:0
Ifdown eth0:0
• Kiểm tra thông tin cấu hình alias interface dùng lệnh ifconfig:
Lệnh NETSTAT
Để kiểm tra trạng thái của tất cả các card mạng ta dùng lệnh:
# netstat -in
Ngoài ra ta còn có thể dùng lệnh netstat –rn để xem bảng routing table của router..
Về việc chỉ định địa chỉ default gateway cho hệ thống là công việc rất quan
trọng vì default gateway chính là điều rất quan trọng giúp cho hệ thống nội bộ có thể
giao tiếp với hệ thống bên ngoài và ngược lại, việc đặt địa chỉ default gateway trên
Linux ta có thể dùng lệnh router. Thông qua lệnh này ta có thể mô tả, cập nhật các
con đường đi hổ trợ việc xây dựng bản định tuyến trên router. Ta chỉ định địa chỉ
192.168.55.252 là default gateway cho hệ thống nội bộ, ta có thể dùng lệnh sau :
Ta có thể dùng lệnh router add để chỉ định nhiều default gateway:
Mặc định thì khi cài đặt, máy đã có sẵn một card mạng, bạn chỉ việc click chọn
card mạng đó và nhấn Edit.
Nếu máy chưa có thì có thể tạo mới bắng cách nhấn vào New hoặc File -> new.
Và restart lại dịch vụ mạng để thay đổi có hiệu lực bằng dòng lệnh :
2. Truy cập từ xa
Khi cấu hình hệ thống kết nối vào mạng, máy chủ sẽ cung cấp một số dịch vụ
Internet. Thông thường mỗi dịch vụ Internet gắn liền với một daemon và thực hiện
trong chế độ background. Những daemon này hoạt động bằng cách liên kết đến một
cổng nào đó và sau đó đợi những yêu cầu kết nối được gởi đến từ chương trình client.
Khi một kết nối xảy ra nó sẽ tạo ra một tiến trình con đảm nhiệm kết nối này và tiếp
tục lắng nghe những yêu cầu kết nối khác. Nếu như hệ thống có quá nhiều daemon sẽ
làm tăng xử lý của CPU. Để khắc phục điều này, Linux tạo ra một superserver gọi là
Xinetd.
2.1.Xinetd
Mỗi dịch vụ Internet đều gắn liền với một cổng chẳng hạn như: smtp - 25, pop3 -
110, dns - 53... Việc phân bổ này do một tổ chức qui định.
Xinetd là một Internet server daemon. Xinetd quản lý tập trung tất cả các dịch vụ
Internet.
Xinetd quản lý mỗi dịch vụ tương ứng với một cổng(port). Xinetd lắng nghe và khi
nhận được một yêu cầu kết nối từ các chương trình client, nó sẽ đưa yêu cầu đến dịch
vụ tương ứng xử lý. Và sau đó, Xinetd vẫn tiếp tục lắng nghe những yêu cầu kết nối
khác. Khi hệ điều hành được khởi động, Xinetd được khởi tạo ngay lúc này bởi
script /etc/rc.d/init.d/xinetd. Khi Xinetd được khởi tạo, nó sẽ đọc thông tin từ tập tin
cấu hình /etc/xinetd.conf và sẽ dẫn đến thư mục /etc/xinetd - nơi lưu tất cả những dịch
vụ mà Xinetd quản lý. Trong thư mục /etc/xinetd, thông tin cấu hình của mỗi địch
vụ được lưu trong một tập tin có tên trùng với tên dịch vụ đó. Nội dung tập tin của
dịch vụ telnet .
cụ thể như sau:
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
2.2.Tập tin /etc/services
Khi xinetd được khởi tạo nó sẽ truy cập đến tập tin /etc/services để tìm cổng tương
ứng với từng dịch vụ. Nội dung của tập tin này như sau:
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
systat 11/udp users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote
qotd 17/udp quote
msp 18/tcp# message send protocol
msp 18/udp# message send protocol
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp-data 20/udp
Khoa CNTT – 05CDTH2 Trang 141
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Sau khi chỉnh sửa tập tin cấu hình của từng dịch vụ trong thư mục /etc/xinetd, ta
thực hiện lệnh sau để đọc lại nội dung của tập tin cấu hình :
/etc/rc.d/init.d/xinetd restart
2.4.Telnet Server
Vì một lý do nào đó người dùng không thể ngồi trực tiếp trên máy Linux làm việc.
Dịch vụ telnet hỗ trợ cho người dùng trong vấn đề làm việc từ xa, . Nhưng để đảm
bảo tính bảo mật cho hệ thống, một điều cảnh báo là chúng ta không nên làm việc từ
xa bằng telnet mà nên làm việc trực tiếp tại máy Linux
Thông thường khi cài đặt Linux, dịch vụ telnet đã được cài sẵn. Nếu chưa cài bạn
có thể cài telnet server từ packet bằng dòng lệnh sau :
rpm -i telnet-server-0.17-20.i386.rpm
Có nhiều cách cấu hình telnet server, sau đây là hai cách cấu hình cơ bản nhất:
- Cách 1: Dựa vào tập tin cấu hình, Khi cài đặt xong trong thư mục /etc/xinetd.d
sẽ xuất hiện tập tin telnet. Tập tin này lưu những thông tin cấu hình về dịch vụ telnet.
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
Nếu disable là no thì TELNET server được khởi động, ngược lại nếu disable là yes
thì TELNET server không được khởi động. Sau khi chỉnh sửa tập tin cấu hình trên ta
start, stop bằng lệnh : /etc/rc.d/init.d/xinetd restart
- Cách 2: Cấu hình telnet Server bằng dòng lệnh: chkconfig telnet on
#netstat-a|grep telnet
tcp 0 0 *:telnet *:* LISTEN
Kiểm tra telnet có được đặt như dịch vụ hệ thống: # chkconfig --list | grep telnet
telnet: on
2.4.4.1. Cho phép telnet server hoạt động trên tcp port khác
Như ta đã biết telnet traffic không được mã hóa do đó nếu ta cho telnet server hoạt
động trên tcp port 23 thì không được an toàn vì thế ta có thể đặt telnet server hoạt
động trên tcp port khác 23. để làm điều này ta thực hiện các bước sau:
# Local services
stelnet 7777/tcp # "secure" telnet
- Bước 2. Chép file telnet thành file stelnet.
# cp /etc/xinetd.d/telnet /etc/xinetd.d/stelnet
- Bước 3. Thay đổi một số thông tin trong file file /etc/xinetd.d/stelnet
service stelnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
port = 7777
}
- Bước 4. Kích hoạt stelnet thông qua lệnh chkconfig
# chkconfig stelnet on
- Bước 5. Kiểm tra hoạt động stelnet thông qua lệnh netstat.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
only_from = 192.168.1.100 127.0.0.1 192.168.1.200
}
2.5.VNC Server (Virtual Network Computing)
VNC (Virtual Network Computing) là một phương pháp điều khiển từ xa máy tính
với giao diện đồ họa, nhìn chung tương tự như Remote Desktop trong Windows.
vnc-server-4.1.2-23.fc8
vnc-4.1.2-23.fc8
Giả sử ta đã có một user là duyvu721 trên máy, ta sẽ cấu hình VNC Server để truy
cập từ xa vào máy bằng user này.
Mở file /etc/sysconfig/vncservers, nơi chứa thông tin khởi tạo của VNC, chỉnh
sửa như sau
VNCSERVERS="3:duyvu721"
VNCSERVERARGS[3]="-geometry 1024x768 -depth 16"
Nghĩa là VNC server khởi động với user duyvu721 ở display 3, ngoài ra ta còn có thể
cấu hình độ phân giải (resolution) và độ sâu màu (color depth). Mỗi một instance của
VNC sẽ nghe ở cổng (5900 + display number), như vậy theo cấu hình trên VNC
server của user duyvu721 sẽ nghe cổng 5903.
Có thể tạo ra nhiều instance VNC cho các user khác nhau như ví dụ sau
Các VNC instance tương ứng với từng user sẽ nghe lần lượt ở các cổng 5901, 5902 và
5903.
# chkconfig vncserver on
Khoa CNTT – 05CDTH2 Trang 146
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
$ vncpasswd
# vncviewer 192.168.100.11:5903
• Trên Windows
- Khởi động VNC Viewer : Nhập vào địa chỉ kết nối tới server và display tương
ứng của từng USER. Click OK.
- Màn hình kế tiếp ta nhập vào password kết nối tới VNC Server tương ứng của
từng USER. Click OK.
- Màn hình sau khi đăng nhập thành công VNC Server
• Một phần vì password kết nối qua VNC không được bảo mật cũng như tất
cả lệnh, và thông tin không được mã hoá qua kết nối. Trong một mạng LAN ở
nhà, đó không phải là vấn đề lắm, nhưng tôi khuyến cáo rằng, bạn không nên
thực hiện nó qua mạng Internet. Trong bài viết này ta sẻ kết nối từ Windows
Client kết đến Fedora Server chạy vncserver.
- Không cần mở port 5900+ trên máy cần remote vì đã được tunnel qua SSH
(default: port 22) và vì vậy cũng không phát hiện được là bạn đang VNC tới máy
đích.
- Bước 2 :Cấu hình đị chỉ Host Name hay IP Address và port tương ứng với dịch vị
SSH, điền tền mô tả về Sesions Save.
- Bước 3 : Ta chọn thẻ connection SSH Tulnels : Tại đay ta điền Port và địa
chỉ IP tương ứng nhấn Add
- Bước 4 : Ta về lại thẻ Sesion Save lại lần nưa Open. Sau đó ta nhập User và
Pasword đăng nhập SSH Server.
Có rất nhiều người muốn biết mật khẩu của người dùng root để xâm nhập vào hệ
thống nhằm mục đích phá hoại hệ thống hay tìm kiếm những thông tin nào đó.
Chương trình telnet trong Linux cho phép người dùng đăng nhập vào hệ thống Linux
từ xa, như nó có khuyết điểm của chương trình này là tên người dùng và mật khẩu gởi
qua mạng không được mã hóa. Do đó, nó rất dễ bị những người khác nắm giữ và sẽ là
mối nguy hiểm cho hệ thống. Phần mềm Secure Remote Access là một sự hỗ trợ mới
của Linux nhằm khắc phục nhược điểm của telnet. Nó cho phép bạn đăng nhập vào
hệ thống Linux từ xa và mật khẩu sẽ được mã hóa. Vì thế, SSH an toàn hơn nhiều so
với telnet
Dùng lệnh rpm để cài package openssh-server. *.rpm rpm -ivh openssh-
server.*.rpm
/etc/init.d/sshd start/stop/restart
2.6.2. Sử dụng SSH Client trên Linux
Trên client(Linux hoặc Unix) dùng lệnh ssh để login vào server. Cú pháp của lệnh:
$ssh [tùy_chọn] [tên/IP_máy] [tùy_chọn] [lệnh]
Một trong các chương trình ssh client miễn phí xuất sắc là PuTTY có thể tải về từ
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html . Sau khi tải về ta
chỉ cần double click vào biểu tượng PuTTY để khởi động và nhập vào các tham số
như dưới đây:
- Thẻ Session:
Host Name (or IP address) 203.210.218.12 là địa chỉ public của remote server
Connetion type: chọn kiểu kết nối phù hợp, trong trường hợp này bạn chọn SSH.
- Thẻ Windows : bạn click vào mục Windows bên tay trái để hiệu chỉnh cửa
sổ windows sẽ xuất hiện mà bạn làm việc khi mở kết nối.
Colums : qui định số cột của cửa sổ
- Thẻ Connection.
Để sử dụng proxy cho kết nối từ xa này, bạn chọn Connection > Proxy:
Proxy hostname vào port : chỉ định tên của proxy server và port mà proxy này sử
dụng.
Username và Password : nhập tên và mật khẩu của proxy server (nếu có)
Sau khi cấu hình xong PuTTY, bạn click chọn Open để mở kết nối. Khi xuất hiện
dòng chữ “login as” , bạn nhập vào một tài khoản để đăng nhập vào hệ thống, sau đó
nhập mật khẩu tương ứng với tài khoản dùng đăng nhập, ví dụ như sau :
Giao thức NFS cho phép một máy tính nào đó truy cập một đĩa hoặc một máy tính
khác trong cùng một mạng ở chế độ trong suốt. Có nghĩa là đĩa cứng có thể bị truy
cập một cách dễ dàng nếu đĩa cứng đó thuộc một máy địa phương trong mạng. Ðể
truy cập một đĩa cứng thông qua mạng, đĩa cứng đó phải được cài đặt NFS trên máy
địa phương đó.
- Những hệ thống tệp nào muốn mount bằng NFS phải nằm trên máy có khả năng
liên lạc với nhau qua mạng TCP/IP.
- Bản thân chiếc máy có hệ thống tệp mà bạn định coi như là hệ thống tệp tại chỗ,
thì hệ thống tệp ấy phải được mount. Chiếc máy này sẽ giữ vai trò máy chủ (server)
và tiến trình làm cho hệ thống tệp của server có thể sử dụng từ xa được gọi là xuất
khẩu hệ thống tệp.
- Máy nào muốn mount bộ hệ thống tệp được xuất khẩu gọi là máy khách (client).
Máy khách phải mount hệ thống tệp dưới dạng tệp NFS qua tệp /etc/fstab lúc khởi
động, hoặc dưới dạng tương tác qua lệnh mount.
• Về phía NFS server, liệt kê một hay nhiều thư mục vào tập tin /etc/exports
và gọi dòng lệnh /usr/sbin/exportfs. Ngoài ra ta phải chạy NFS server (làm việc
này bằng cách đăng nhập bằng root, gọi dòng lệnh service nfs start)
• Trên mỗi hệ thống máy khách, sử dụng lệnh mount để nhận thấy các thư
mục đã được máy chủ đưa ra.
• Muốn sử dụng NFS, các hệ thống máy khách (client) phải hỗ trợ nó.Hầu
hết các máy tính cá nhân thường không hỗ trợ, nếu muốn chia sẻ tập tin bằng NFS
thì phải mua phần mềm NFS của hãng khác.Tuy nhiên nếu tất cả các máy tính
trong mạng LAN chạy hệ điều hành Linux hay hệ điều hành khác cùng họ với
UNIX đều đã được hỗ trợ NFS thì việc sử dụng NFS sẽ dễ dàng hơn.
Lưu ý: Độ an toàn của NFS không cao, có thể bị tấn công được, vì thế không nên
cài đặt NFS trên hệ thống có kết nối trực tiếp với Internet.
Chúng ta sẽ làm ví dụ trên 2 máy tính chạy hệ điều hành Linux trên cùng mạng
LAN.
Để mỏ tiện ích NFS Server Configuration, chọn System Setttings > Server
Settings > NFS
Click Add chọn tập tin thư mục cần chia sẻ.
• Thẻ Basic:
Directory: nhập đường dẫn của tập tin thư muc muốn chia sẻ
Allow connection from port 1024 and higher: cho phép các kết nối từ cổng 1024 và
lớn hơn.
Allow ínsecure file locking: cho phép khóa tập tin không an toàn.
Force sync of write operation immediately: bắt buộc đồng bộ các thao tác ghi dữ
liệu ngày lập tức.
• Thẻ User Access: cấu hình các tài khoản truy cập.
Treat remorte root user as local root: cho phép tài khoản root điều khiển từ xa như
tài khoản root ở cục bộ.
Treat all client users as anonymous users : đối xử tất cả các client như các người
dùng ẩn danh.
Local user ID for anonymous users: định danh người dùng cục bộ cho tài khoản
anonymous.
Local group ID for anonymous users: định danh nhóm cục bộ cho tài khoản
anonymous.
Samba là chương trình tiện ích hỗ trợ việc chia sẻ tài nguyên từ hệ thống Linux
với các hệ thống khác(Linux, Windows), nó hỗ trợ tính năng gia nhập(join) Linux với
Windows như gia nhập Linux vào PDC trên Windows, gia nhập vào Windows
Workgroup,…
Bộ Samba gồm nhiều thành phần. Daemon mang tên smbd cung cấp dịch vụ in ấn
và tập tin. Tập
tin cấu hình của Daemon này là smb.conf, còn daemon nmbd thì hỗ trợ dịch vụ tên
NETBIOS,
cho phép các máy tính khác truy cập và sử dụng các tài nguyên được cấp bởi máy chủ
Samba
Trình smbclient, một thành phần khác của bộ Samba, hoạt động như một client bình
thường giống như ftp. Trình tiện ích này dùng khi bạn truy cập những tài nguyên trên
các server tương thích khác.
Để có thể chia sẻ tài nguyên giữa các máy tính sử dụng hệ điều hành Window
và các máy tính sử dụng hệ điều hành Linux(Fedora Core),ta sẽ dùng chương trình
SAMBA (có sẵn trong các bản phân phối Linux,ở đây ta dùng RedHat Fedora Core)
để làm việc này.
Gói chương trình SAMBA gồm các thành phần chủ yếu sau:
/etc/samba/smbusers: tập tin lưu các tên người dùng Samba ứng với các tài khoản
có trên máy cục bộ Fedora Core.
• nmbd : tên server (NETBIOS),giúp cho các client tìm kiếm các máy
server.
• nmblookup : dòng lệnh trả về địa chỉ IP của PC Windows qua tên
NETBIOS của nó.
• smbadduser : chương trình thêm người dùng vào tập tin mật khẩu smb.
• smbcacls: chương trình thao tác với danh sách các điều khiển việc truy
cập (ACLs) trên các tập tin đã được chia sẻ.
• smbclient : là Windows client chạy trên Linux cho phép Linux truy cập
các tập tin, tài nguyên hay máy in được chia sẻ trên bất kì Windows server nào.
• smbcontrol :chương trình gửi các thông điệp tới smbd,nmbd hay
winbindd.
• smbd : đây là SMB server cho phép các kết nối từ Windows client và
cung cấp dịch vụ chia sẻ tập tin và máy in.
• smbmount : chương trình dùng để mount một thư mục chia sẻ bởi
Samba trên Fedora Core PC.
• smbpasswd: chương trình dùng thay đổi mật khẩu cho một người dùng
SMB.
• smbprint: đoạn mã cho phép thao tác in trên một máy in ở SMB server.
• smbstatus: dòng lệnh liệt kê các kết nối SMB hiện tại trên máy hiện tại.
• smbtar: chương trình sao lưu tập tin chia sẻ SMB trực tiếp vào ổ băng
đĩa từ trên.
• smbumount: chương trình unmount một thư mục chia sẻ SMB đã được
mount.
• testparm: chương trình dùng để kiểm tra tập tin cấu hình Samba có chính
xác hay không.
• winbindd: chương trình dùng phân giải tên của Window server.
Kiểm tra cài xem Samba đã được cài đặt hay chưa bằng dòng lệnh:
rpm –q samba
• Đăng nhập bằng tài khoản root,đưa đĩa CD hay DVD cài đặt Fedora Core vào, gõ
lệnh:
mount /mnt/cdrom
• Di chuyển đến thư mục chứa tập tin cài đặt samba:
cd /mnt/cdrom/Fedora/RPMS
• Sau khi cài đặt,ta phải cấu hình Samba trước khi sử dụng nó.
Chọn Main Menu > System Settings>Server Settings>Samba. -Nhập mật khẩu
root nếu chưa đăng nhập bằng tài khoản root.
Click vào nút Add. Hộp thoại Create Samba Share xuất hiện.
• Directory: nhập đường dẫn của tài nguyên cần chia sẻ.Click Browse để
chọn.
• Basic Permissions: chỉ định quyền trên tài nguyên được chia sẻ.
Thẻ Access: chọn các tài khoản được phép truy cập.
o Only allow access to specific users:chỉ cho phép những người dùng cụ thể
truy cập.
Các thông tin cấu hình này sẽ được lưa vào trong tập tin /etc/samba/smb.conf
Thẻ Security trong hộp thoại Server Setting: chỉ định cách
Authentication Mode: cách chứng thực khi truy cập chia sẻ bởi Samba.
• User:yêu cầu nhập username và password khi truy cập các tập tin chia sẻ bởi
Samba.
• ADS: Samba Server hoạt động như một thành viên domain trong một Active
Directory Domani(ADS).
• Domain: Samba Server dựa vào các tài khoản trên Windows Primary hay Backup
Domain Controller. Tên NetBIOS của Primary hay Backup Domain Controller
khác được nhập trong mục Authentication server.
Nếu mục này được chọn thì tuỳ chọn Encypted Passwords phải được chọn là yes.
• Server: Samba Server thử xác nhận username và password trên một Samba Server
khác, nếu không được Samba Server sẽ sử dụng cách chứng thực User.Tên
NetBIOS của Samba server khác được nhập trong mục Authentication server.
Encrypt Passwords: mã hóa mật khẩu (yes: chấp nhận, no: không cần mã hóa)
Để thêm các tài khoản được phép truy cập chia sẻ bởi Samba,chọn
Preferences>Samba Users trong công cụ Samba Server Configuration để mở hộp
thoại Samba Users.
Điền đầy đủ thông tin trong hộp thoại Create New Samba User.
Sau khi cấu hình xong các tài nguyên được chia sẻ, ta kiểm tra lại các tập tin cấu
hình đã đúng hay chưa bằng dòng lệnh: testparm
Lưu ý: để khởi động dịch vụ Samba tự động khi khởi động hệ thống, gõ dòng lệnh:
chkconfig –level 35 on
Gói phần mềm Samba có thể lấy từ đĩa CD của hệ điều hành RedHat hoặc
download từ website www.Samba.org. Phiên bản của Samba cũng được thay đổi
thường xuyên, hiện đã có phiên bản 2.2.1. Bài viết này lấy phiên bản 2.0.7 có sẵn
trên đĩa Redhat 7.1 làm ví dụ. Gói Samba trên đĩa RedHat được đóng gói theo chuẩn
RPM (Redhat Package Manager) và được lưu tại thư mục
/mnt/cdrom/Redhat/RPMS/. Các bước cài đặt như sau:
#cd /mnt/cdrom/Redhat/RPMS
Tập tin cấu hình /etc/samba/smb.conf. Đây là một tập tin có dạng text. Các thành
phần trong file cấu hình:
[homes] Chỉ định SMB chia sẻ thư mục home directory của
user.
Đoạn [global] kiểm soát tham số của toàn bộ server smb và cung cấp giá trị mặc
định cho những đoạn khác. Sau đây là những dòng (trích từ trong danh sách 15.1) có
thể cần giải thích kỹ hơn.
[global]
workgroup = LINUX
server string = Samba Server
hosts allow - 192.168.1.192.168.2.127.
include = /etc/samba/smb.conf %m
socket options = TCP_NODELAY SO_RCVBUF = 8192 SO_SNDBUF=8192
Dòng đầu tiên của đoạn [global] cho biết chiếc máy này sẽ thuộc về nhóm làm
việc LINUX. Kế đến là các thông tin về máy chủ Samba như địa chỉ IP của nó v.v.
Dòng đầu ở bên trên cho biết máy chủ của bạn cần tải nạp hệ thống in ấn lên
mạng, dòng tiếp theo cho biết vị trí của tệp cấu hình máy in, dòng cuối cho biết kiểu
in của hệ thống (một trong các giá trị: bsd, sysv, plp, lprng, aix, hpux, qnx)
- username cho một trương khoản client trên server của bạn. Trương khoản này
dùng để nhận diện những user nào được dùng các dịch vụ Samba dành cho client.
- vị trí của tệp ký sự (log file) cho từng client nào muốn truy cập dịch vụ Samba.
Biến viết tắt %m bắt server Samba tạo ra cho mỗi client một tệp log riêng biệt.
- kích cỡ tối đa cho những tệp log đã được tạo ra (giá trị tính bằng kB).
Tuỳ theo phiên bản và hệ điều hành, các biến viết tắt có thể khác nhau. Bảng sau
giới thiệu các biến số sử dụng cho Samba:
Biến Ý nghĩa
%S Tên của dịch vụ hiện hành, nếu có.
%P Thư mục gốc của dịch vụ hiện hành, nếu có.
%u Tên user của dịch vụ hiện hành, nếu có.
%g Tên của nhóm chính của %u.
%U Tên phiên làm việc của user
%G Tên của nhóm chính của %U.
%H Thư mục gốc của user (%u)
%v Phiên bản của Samba.
%h Tên của host mà samba đang chạy.
Khoa CNTT – 05CDTH2 Trang 169
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
security = user
; password server = WINDOWSNT
; password level = 8
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
; unix password sync = Yes
; passwd program = /usr/bin/passwd %u
; passwd chat = *New*UNIX*password*%n\n*ReType*new*UNIX*pass
word*%n\n*passwd:*all*authentication*tokens*updated*successfully*
share: Tương tự chế độ bảo mật của Windows 9x File/Print server. User chỉ cần
cung cấp password của tài nguyên.
server: Việc lượng giá user/password sẽ do một máy chủ password xác định (được
chọn thông qua mục password server - ở đây là có tên là WINDOWSNT).
domain: Về cơ bản, mức bảo mật này giống như mức bảo mật server trừ một việc
là máy chủ Samba phải là thành viên của một Windows NT domain.
Mục encrypt passwords cho biết cần hay không cần mã hoá các mật khẩu khi đăng
nhập vào máy chủ Samba. Từ Windows 98 SE cùng với các Security Patch, Microsoft
mã hoá mọi mật khẩu khi gửi từ một máy trạm Windows 9x/2000/NT đến một máy
chủ bất kỳ. Do đó, nếu bạn chọn giá trị “no” thì máy chủ server sẽ không chấp nhận
sự đăng nhập của bất kỳ user nào. Chú ý rằng, nếu giá trị là yes (true) thì chỉ có các
user có password trong tệp /etc/samba/smbpasswd là có thể thấy máy chủ Samba.
Tiếp theo là các tham số môi trường cho máy chủ Samba:
Các giá trị trên dùng để xác định môi trường hoạt động của máy chủ Samba:
-Có hoạt động như một máy chủ WINS không ("wins support = "),
-Chỉ rõ hay không địa chỉ IP và netmask của giao tiếp mạng ("interfaces="),
-v.v.
Các tham số preserve case và short preserve case cho server Samba biết phải
ghi lại chữ thường hoặc chữ hoa khi có thông tin được ghi vào server. Việc này quan
trọng bởi vì tên tệp của Windows không nhất thiết phải phân biệt dạng chữ thường
hay chữ hoa, trong khi Linux lại phân biệt hẳn hoi.
Đoạn [homes] giúp các client kết nối với home directory của mình trên server
mà không cần phải có mục ghi rõ ràng trong tệp smb.conf. Khi user phát đi yêu cầu
sử dụng dịch vụ, server Samba sẽ tìm trong tệp smb.conf đoạn tương ứng với dịch vụ
được yêu cầu. Nếu không tìm ra mục ghi đó, Samba kiểm tra xem có đoạn [homes]
không. Nếu có, Samba xem tên của mục được yêu cầu như là tên của user đó và tiếp
tục dò tìm trong tệp mật khẩu.
Nếu tên của user đó tồn tại và mật khẩu tương ứng là đúng, thì home directory
của user ấy sẽ được mang ra chia sẻ trên mạng dựa vào các giá trị trong đoạn[homes].
[homes]
comment = Home Directories
Khoa CNTT – 05CDTH2 Trang 172
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
path = %H
read only = No
valid users = %S
only users = yes
browseable = no
writable = yes
create mask = 0775
directory mask = 0775
Mục comment hiển thị cho client biết những phần nào họ được dùng chung (phần
chia sẻ). Mục browseable bảo Samba cách hiển thị phần chia sẻ trên danh sách duyệt
mạng. Mục read-only kiểm tra xem một user nào đó có quyền tạo ra và thay đổi tệp
trong home directory của mình khi home directory ấy đang được chia sẻ trên mạng.
Mục create mask sẽ kiểm tra xem trong số những tệp được tạo ra trong thư mục chia
sẻ, thì tệp nào được phép (quyền hạn) gì.
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user ‘guest account' to print
public = no
guest ok = no
writable = no
printable = yes
create mask = 0700
Đoạn [printers] cho biết các dịch vụ in sẽ được kiểm tra ra sao trong trường hợp
không có mục tương ứng trong tệp smb.conf. Giống như ở đoạn [homes], nếu không
có mục đặc biệt nào, Samba dùng đoạn [printers] để cho phép user kết nối với các
máy in được xác định trong tệp /etc/printcap.
Các mục ghi comment, browseable và create mask cũng cùng ý nghĩa với những gì
đã giải thích tại đoạn [homes]. Mục path cho biết vị trí của tệp spool để sử dụng khi
cung cấp dịch vụ in qua SMB.
Nếu được bật sang "yes", giá trị printable cho biết máy in sử dụng được. Mục
public cho biết trương khoản "guest" có được phép in hay không (theo phiên bản mới
bạn thay bằng mục guest ok = '').
Sau khi lập cấu hình mặc định cho server Samba, bạn có thể tạo ra nhiều thư mục
dùng chung (thư mục chia sẻ) và quyết định xem cá nhân nào, hoặc nhóm nào được
phép sử dụng chúng.
Thí dụ bạn muốn thư mục pladir chỉ dành riêng cho user leduan mà thôi. Bạn
cần viết ra một đoạn mới và ghi các thông tin cần thiết vào: khai báo user, đường
dẫn đến thư mục, cùng với thông tin cấu hình cho server SMB như sau:
[pladir]
comment = Pla's remote source code directory
path = /usr/local/src
valid users = leduan
browsable = yes
public = no
writable = yes
create mask = 0700
Đoạn trên đây đã tạo ra một thư mục chia sẻ mang tên plasdir. Đường dẫn đến
thư mục này trên server tại chỗ là /usr/local/src. Vì mục browseable được khai báo
"yes", danh sách duyệt mạng sẽ có tên là plasdir. Nhưng vì mục public lại là "no" nên
chỉ có user tên là lan_anh mới có quyền dùng Samba để vào ra thư mục. Muốn cho ai
được truy cập, bạn chỉ cần liệt kê họ tại thư mục valid users.
Sau khi tạo ra tệp cấu hình, bạn nên dùng chương trình testparm để kiểm tra lại
xem tệp có đúng đắn hay không. Nếu testparm báo cáo không vấn đề gì, bạn có thể
yên tâm rằng smbd sẽ nạp tệp cấu hình một cách đúng đắn.
Ghi chú: Chương trình testparm không bảo đảm rằng những dịch vụ đã khai báo
trong tệp cấu hình sẽ sẵn có trên mạng hoặc sẽ chạy như mong muốn.
Với tệp_cấu_hình là vị trí thực sự của tệp smb.conf nếu tệp ấy không nằm ở vị
trí mặc định (/etc/samba/smb.conf). Tham số hostname hostIP bắt testparm kiểm tra
xem máy chủ có quyền truy cập các dịch vụ được khẳng định trong tệp smb.conf hay
không.
Thí dụ sau đây trình bày những gì máy sẽ hiển thị sau khi chạy lệnh testparm. Nếu
tệp smb.conf có lỗi, chương trình sẽ cho biết đó là những lỗi gì.
Khi bạn bấm phím <Enter>, testparm sẽ bắt dầu đánh giá từng đoạn được khai báo
trong tệp cấu hình.
Chương trình smbclient cho phép các user của Linux truy cập những phần chia
sẻ SMB trên máy khác, nhất là các máy chạy Windows. Vì muốn dùng các tệp trên
những máy Linux khác, bạn có thể sử dụng nhiều phương pháp như FTP, NFS và các
lệnh r- (như rcp).
Smbclient có một giao diện giống như FTP để bạn chuyển tệp sang một máy
khác đang dùng server SMB. Điều đáng tiếc là smbclient không làm được như NFS,
nghĩa là không cho phép bạn mount một chia sẻ khác vào thư mục tại chỗ.
Để mount một thư mục cho dịch vụ Samba, bạn thường dùng smbmount hơn là
dùng mount -t smbfs.
Smbclient cung cấp các tuỳ chọn dòng lệnh để yêu cầu server chia sẻ thư mục
hoặc trao đổi tệp. Để biết thêm thông tin về các tuỳ chọn này, mời bạn xem trang man
dành cho smbclient. Lệnh sau đây sẽ hiển thị mọi phần chia sẻ trên máy
win.netwharf.com:
smbclient - L -I win.netwharf.com
Tham số -I bắt smbclient xử lý máy win.netwharf.com như là một mục ghi DNS
chứ không phải mục NetBIOS.
Muốn chuyển tệp, trước tiên bạn phải kết nối với server Samba bằng lệnh:
smb:\
Từ dòng lệnh này, bạn có thể ra bất kỳ lệnh nào được liệt kê ở bảng sau.
mput [các tệp] Sao chép mọi tệp từ máy tại chỗ vào server.
print [tệp] In tệp trên máy từ xa.
queue không có Liệt kê mọi công việc in ấn đang xếp hàng
chờ trên server từ xa.
Trong môi trường đồ hoạ Windows, bạn có thể truy cập vào các thư mục của
Samba trên máy Linux thông qua Network Neighborhood hay Windows Explorer.
Trong môi trường Linux dạng văn bản, bạn sử dụng smbclient (xem mục 15.4)
Trong môi trường X (GNOME hay KDE), bạn có thể gọi trình duyệt Nautilus. Với
GNOME, bạn chọn Main Menu Button => Programs => Applications =>
Nautilus. Khi cửa sổ của trình Nautilus hiện ra, bạn gõ smb: tại thanh địa chỉ
(location toolbar))
Trên cửa sổ bạn sẽ thấy nhiều biểu tượng mà mỗi biểu tượng biểu hiện cho một
SMB workgroup trên mạng. Bạn chỉ cần bấm đúp lên biểu tượng thích hợp để truy
cập.
Minh hoạ 15.1: Truy cập thư mục chia sẻ bởi Samba.
Nếu thư mục đó đòi phải đăng nhập như một user với mật khẩu, bạn cần nhập vào
thanh địa chỉ theo mẫu sau:
smb://user:password@servername/sharename/
Bạn cần thay user, password, servername, sharename bằng các giá trị tương ứng.
4.7.Sử dụng
Để thử truy cập vào Samba server trên hệ thống Fedora Core từ một Windows hệ
thống trong mạng LAN.
Đối với Windows 95/98/Me: doube-click vào biểu tượng Network Neighborhood
trên Desktop.
Đối với Windows XP: chọn Start>My Network Places > View Workgroup
Computer.
Nếu thấy Samba Server, doube-click vào biểu tượng của nó để mở, sau đó nhập
Samba username và Samba password đã tạo.
Nếu các thông tin trên là chính xác, ta sẽ thấy được các tài nguyên đã được chia sẻ
trên Fedora Core PC.
- Nếu bạn cảm thấy thuận tiện hơn khi cài đặt gói dùng công cụ dòng lệnh, bạn
theo các bước hướng dẫn sau ở dòng lệnh :
+ Đưa vào đĩa cdrom fedora core chứa gói swat và bảo đảm rằng đĩa CD-ROM đã
được gắn kết.
# mount /mnt/cdrom
# cd /mnt/cdrom/fedora/RPMS
- Sau khi gói swat đã được cài đặt bạn phải khởi động dịch vụ Swat trước khi bạn
có thể dùng nó để cấu hình Samba
- Dòng lệnh dùng để khởi tạo mặc định Swat khi hệ thống khởi động là :
- Bây giờ bạn có thể sử dụng được công cụ cấu hình Swat
. Trước khi cấu hình SAMBA-SWAT ta cần thiết lập một số thông số :
disable = no
only_from = 172.29.14.149 localhost
Trong file /etc/xinetd.d/swat để khởi động dịch vụ SWAT và cho phép các host
nào có quyền truy xuất SAMBA SWAT qua Web.
service swat
{
disable = no
port = 901
socket_type = stream
wait = no
only_from = 172.29.14.149 localhost
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
5.3.Khởi tạo Swat và cấu hình samba cơ bản
- Công cụ Swat chỉ có thể được truy cập từ trình duyệt web. Để khởi tạo Swat,
bạn mở trình duyệt web và chỉ thị cho nó để nạp URL :
http://localhost:901(127.0.0.1:901), bạn được yêu cầu login vào hệ thống với tài
khoản root như hình dưới .
- Sau khi bạn thực hiện việc này trang Swat chính được hiển thị như hình:
Chú ý: trình duyệt web mozilla ghi nhớ các giá trị mà bạn đã nhập gần đây trông
các hộp thoại , nếu bạn nhập mật khẩu không đúng thì bạn phải thoát ra khỏi trình
duyệt và khởi tạo lại nó trước khi cố khởi tạo lại Swat lần nữa.
- Trước khi cấu hình các cây thư mụ mà bạn muốn chia sẽ, bạn phải cấu hinh một
số tùy chon toàn cục để cho phép giao tiếp giữa máy Windows và máy linux. Nhấp
vào nút cấu hình Globals để hiển thị trang như hình sau:
- Để dùng việc cấu hình chia sẽ tập tin windows cơ bản bạn phải cấu hình một số
tùy chọn gần phía trên của trang. Đặc biệt là bạn cần thực hiện những việc sau :
+ Nhập vào tên của workgroup của windows trong hộp nập liệu của workgroup.
+ Nhập vào eth0 trong hộp thoại interfaces.
+ Chọn SHARE từ danh sách security sổ xuống.có nhiều chế đọ bảo mật khác
hiện được hổ trợ trên mạng windown. Nhưng chế độ SHARE là cách dể nhất để
quản trị và chính vì vậy nó là vấn đề được đề cập ở đây.
- Khi bạn thực hiện xong việc cấu hình các tùy chọn , bạn nhấp vào nút commit
changes để lưu trữ các thay đổi. và bây giờ bạn sẵn sàng bắt đầu chọn các cây
Filesystem mà bạn muốn chia sẽ với các máy tính windows trên hệ thống mạng.
Nhấp vào nút cấu hình SHARES ở gần phía trên của trang để nạp một trang cho
phép bạn cấu hình các cây thư mục samba như hình
- Để thêm một cây thư mục vào danh sách các chia sẻ samba, bạn nhập vào tên mà
bạn muốn dùng cho việc chia sẻ trên hệ thống mạng, bạn nhập vào tên chia sẻ ở hộp
thoại Create share và nhấp vào nút Create share. Một số cách tùy chọn mới xuất hiện
như hình trên.
- Để cấu hình việc chia sẻ mới, bạn thực hiện các bước sau:
+ Nhập vào một mô tả cho việc chia sẻ trong hộp nhập liệu Command.
+ Nhập vào cây thư mục mà bạn muốn kèm theo việc chia sẻ này trong hộp nhập
liệu path
+ Nếu chia sẻ này là chỉ đọc, chọn yes từ danh sách sổ xuống Readonly, nếu
không chọn No
+ Nếu chia sẻ này có thể được truy cập cho người dùng khách (guest) nghĩa là
người dùng windows sẽ không phải nhập vào thông tin tài khoản để truy cập chọn
Yes từ danh sách guest sổ xuống nếu không chọn No.
- Sau khi thực hiện xong việc cấu hình chia sẻ, nhấp nút Commit changes để lưu
trữ việc cấu hình của chia sẻ này. Để tạo thêm các chia sẻ khác, bạn nhập tên chia sẻ
mà bạn muốn tạo trong hộp nhập liệu Create share và lập lại toàn bộ quá trình chia
sẻ như trên.
Để khởi tạo samba sau khi bạn cấu hình nó, nhấp vào nút status một trang chứa
thông tin trạng thái được hiển thị, nhấp vào nút Restart smbd và nmbd để khởi động
lại các thay đổi cấu hình mà bạn đã tạo như hình sau:
- Nhấp vào nút password. Một trang mới được hiển thị chứa các công cụ để làm
việc với các tài khoản người dùng như hình:
- Để thêm một người dùng, bạn nhập vào tài khoản đã có của người dùng trong
linux trong hộp thoại nhập liệu server Password Management User Name. Sau đó,
bạn nhập vào một mật mã của dịch vụ tập tin windows cho người sử dụng trong hộp
thoại nhập liệu New Password và nhập nó lại lần nữa trong hộp thoại Re-type New
password. Sau đó nhấn vào nút Add New User để thêm người dùng đó vào. Người
dùng có thể dùng username Linux của họ và mật mã mới để truy cập chia sẻ non-
guest từ máy windows trên hệ thống mạng.
Chú ý : Để xóa một tài khoản người dùng, thì nhập vào tên của người dùng trong
hộp nhập liệu user name và nhấp nút delete user.
- Sau khi chúng ta cấu hình xong các chia sẽ có thể nhấp vào view để xem lại các
cấu hình của chúng ta vừa thực hiện.
• Bước 1 : dung vi để Edit file cấu hình /etc/services. Sau đó tìm dòng
• Bước 2 : dung vi để Edit file cấu hình /etc/xinetd.d/Swat sau dó sửa thành :
service swat
{
disable = no
port = port cần chuyển thành
socket_type = stream
wait = no
only_from = 172.29.14.149 localhost
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
6. Cài đặt và cấu hình dịch vụ DNS (Domain Name Systems)
6.1.Giới thiệu
DNS (Domain Name System) là một hệ cơ sở dữ liệu phân tán dùng để ánh xạ
giữa các tên miền và các địa chỉ IP. DNS đưa ra một phương pháp đặc biệt để duy trì
và liên kết các ánh xạ này trong một thể thống nhất.
Trong phạm vi lớn hơn, các máy tính kết nối với internet sử dụng DNS để tạo
địa chỉ liên kết dạng URL (Universal Resource Locators). Theo phương pháp này,
mỗi máy tính sẽ không cần sử dụng địa chỉ IP cho kết nối mà chỉ cần sử dụng tên
miền (domain name) để truy vấn đến kết nối đó. Với mô hình phân cấp như hình dưới
đây :
Root name server : Là máy chủ quản lý các nameserver ở mức top-level domain.
Khi có truy vấn về một tên miền nào đó thì Root Name Server phải cung cấp tên và
địa chỉ IP của name server quản lý top-level domain (Thực tế là hầu hết các root
server cũng chính là máy chủ quản lý toplevel domain) và đến lượt các name server
của top-level domain cung cấp danh sách các name server có quyền trên các second-
level domain mà tên miền này thuộc vào. Cứ như thế đến khi nào tìm được máy quản
lý tên miền cần truy vấn. Qua trên cho thấy vai trò rất quan trọng của root name
server trong quá trình phân giải tên miền. Nếu mọi root name server trên mạng
Internet không liên lạc được thì mọi yêu cầu phân giải đều không thực hiện được.
Hình vẽ dưới mô tả quá trình phân giải grigiri.gbrmpa.gov.au trên mạng Internet
Client sẽ gửi yêu cầu cần phân giải địa chỉ IP của máy tính có tên
girigiri.gbrmpa.gov.au đến name server cục bộ. Khi nhận yêu cầu từ resolver,
Nameserver cục bộ sẽ phân tích tên này và xét xem tên miền này có do mình quản lý
hay không. Nếu như tên miền do server cục bộ quản lý, nó sẽ trả lời địa chỉ IP của tên
máy đó ngay cho resolver. Ngược lại, server cục bộ sẽ truy vấn đến một Root Name
Server gần nhất mà nó biết được. Root Name Server sẽ trả lời địa chỉ IP của Name
Server quản lý miền au. Máy chủ name server cục bộ lại hỏi tiếp name server quản lý
miền au và được tham chiếu đến máy chủ quản lý miền gov.au. Máy chủ quản lý
gov.au chỉ dẫn máy name server cục bộ tham chiếu đến máy chủ quản lý miền
gbrmpa.gov.au. Cuối cùng máy name server cục bộ truy vấn máy chủ quản lý miền
gbrmpa.gov.au và nhận được câu trả lời. Các loại truy vấn : truy vấn có thể ở 2 dạng :
- Truy vấn đệ quy (recursive query) : Khi nameserver nhận được truy vấn dạng
này, nó bắt buộc phải trả về kết quả tìm được hoặc thông báo lỗi nếu như truy vấn này
không phân giải được. Nameserver không thể tham chiếu truy vấn đến một name
server khác. Nameserver có thể gửi truy vấn dạng đệ quy hoặc tương tác đến
nameserver khác nhưng nó phải thực hiện cho đến khi nào có kết quả mới thôi.
- Truy vấn tương tác: khi nameserver nhận được truy vấn dạng này, nó trả lời cho
resolver với thông tin tốt nhất mà nó có được vào thời điểm lúc đó. Bản thân
nameserver không thực hiện bất cứ một truy vấn nào thêm. Thông tin tốt nhất trả về
có thể lấy từ dữ liệu cục bộ (kể cả cache). Trong trường hợp nameserver không tìm
thấy trong dữ liệu cục bộ nó sẽ trả về tên miền và địa chỉ IP của nameserver gần nhất
mà nó biết.
Ánh xạ địa chỉ IP thành tên máy tính được dùng để diễn dịch các tập tin log cho dễ
đọc hơn. Nó còn dùng trong một số trường hợp chứng thực trên hệ thống UNIX
(kiểm tra các tập tin .rhost hay host.equiv). Trong không gian tên miền đã nói ở trên
dữ liệu -bao gồm cả địa chỉ IP- được lập chỉ mục theo tên miền. Do đó với một tên
miền đã cho việc tìm ra địa chỉ IP khá dễ dàng
Để có thể phân giải tên máy tính của một địa chỉ IP, trong không gian tên miền
người ta bổ sung thêm một nhánh tên miền mà được lập chỉ mục theo địa chỉ IP. Phần
không gian này có tên miền là in-addr.arpa.
Mỗi nút trong miền in-addr.arpa có một tên nhãn là chỉ số thập phân của địa chỉ IP.
Ví dụ: miền inaddr.arpa có thể có 256 subdomain, tương ứng với 256 giá trị từ 0 đến
255 của byte đầu tiên trong địa chỉ IP. Trong mỗi subdomain lại có 256 subdomain
con nữa ứng với byte thứ hai. Cứ như thế và đến byte thứ tư có các bản ghi cho biết
tên miền đầy đủ của các máy tính hoặc các mạng có địa chỉ IP tương ứng.
Lưu ý : khi đọc tên miền địa chỉ IP sẽ xuất hiện theo thứ tự ngược. Ví dụ nếu địa
chỉ IP của máy winnie.corp.hp.com là 15.16.192.152, khi ánh xạ vào miền in-
addr.arpa sẽ là 152.192.16.15.inaddr.arpa
Cơ sở dữ liệu phân tán của DNS được chỉ mục bởi domain name, về bản chất mỗi
domain name chỉ là một phần trong một hệ thống cây nghịch đảo (domain name
space), như hình vẽ bên dưới. Cấu trúc cây có thứ tự đó tương tự như hệ thống file của
UNIX. Cây có một điểm gốc root và có thể rẻ nhánh ở những điểm giao nhau (node),
chiều sâu của cây tối đa là 127 cấp.
• Domain Names:
Mỗi node trong cây có một nhãn (tối đa 63 ký tự). Tên domain name đầy đủ của
một node trong cây là một chuỗi các nhãn đi từ node đến root.
Trong DNS, những node ngang hàng với nhau có cùng một node cha phải có tên
khác nhau.
• Domains:
• Domain name của một domain tương tự như domain name của một
node ở vị trí cao nhất của domain đó, xem hình vẽ:
Tương tự trong hệ thống filesystem, ở mức cao nhất trong thư mục /usr, ta có mốt
node /usr
Một domain name có thể nằm trong nhiều nhánh, và cũng có thể trong nhiều
domain, ví dụ, domain name pa.ca.us là một phần của ca.us domain và cũng là một
phần của domain us
Một miền gồm nhiều thực thể nhỏ hơn gọi là miền con (subdomain). Ví dụ: miền
ca bao gồm nhiều miền con như ab.ca, on.ca, qc.ca,...(như hình vẽ dưới). Bạn có thể
ủy quyền một số miền con cho những DNS Server khác quản lý. Những miền và miền
con mà DNS Server được quyền quản lý gọi là zone. Như vậy, một Zone có thể gồm
một miền, một hay nhiều miền con. Hình sau mô tả sự khác nhau giữa zone và
domain.
Mỗi nút trên cây có một tên gọi(không chứa dấu chấm) dài tối đa 63 ký tự. Tên
rỗng dành riêng cho gốc (root) cao nhất và biểu diễn bởi dấu chấm. Một tên miền đầy
đủ của một nút chính là chuỗi tuần tự các tên gọi của nút hiện tại đi ngược lên nút
gốc, mỗi tên gọi cách nhau bởi dấu chấm. Tên miền có xuất hiện dấu chấm sau cùng
Khoa CNTT – 05CDTH2 Trang 192
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
được gọi là tên tuyệt đối (absolute) khác với tên tương đối là tên không kết thúc bằng
dấu chấm. Tên tuyệt đối cũng được xem là tên miền đầy đủ đã được chứng nhận
(fully qualified domain name - FQDN) .
Mỗi miền phải có một Primary Name Server. Server này được đăng ký trên
Internet để quản lý miền. Mọi người trên Internet đều biết tên máy tính và địa chỉ IP
của server này. Người quản trị DNS sẽ tổ chức những tập tin CSDL trên Primary
Name Server. Server này có nhiệm vụ phân giải tất cả các máy trong miền hay Zone.
Mỗi miền có một Primary Name Server để quản lý CSDL của miền. Nếu như
server này tạm dừng họat động vì một lý do nào đó thì việc phân giải tên máy tính
thành địa chỉ IP và ngược lại xem như bị gián đoạn. Việc gián đoạn này làm ảnh
hưởng rất lớn đến những tổ chức có nhu cầu trao đổi thông tin ra ngoài Internet cao.
Nhằm khắc phục nhược điểm này, những nhà thiết kế đã đưa ra một Server dự phòng
gọi là Secondary (hay Slave) Name Server. Server này có nhiệm vụ sao lưu tất cả
những dữ liệu trên Primary Name Server và khi Primary Name Server bị gián đoạn
thì nó sẽ đảm nhận việc phân giải tên máy tính thành địa chỉ IP và ngược lại. Trong
một miền có thể có một hay nhiều Secondary Name Server. Theo một chu kỳ,
Secondary sẽ sao chép và cập nhật CSDL từ Primary Name Server. Tên và địa chỉ IP
của Secondary Name Server cũng được mọi người trên Internet biết đến.
Caching Name Server không có bất kỳ tập tin CSDL nào. Nó có chức năng phân
giải tên máy trên những mạng ở xa thông qua những Name Server khác. Nó lưu giữ
lại những tên máy đã được phân giải trước đó đã được phân giải trước đó và được sử
dụng trong những trường hợp sau:
+ Giảm bớt gánh nặng phân giải tên máy cho các name server
Ta cấu hình nhiều file cơ sở dữ liệu (database files) trong đó một file ánh xạ tất cả
host name vào địa chỉ, và file khác ánh xạ từ địa chỉ vào host name (phân giải ngược).
và file /etc/named.conf.
Tất cả các entries trong database file được gọi là NDS resource records. Không
phân biệt in hoa.
Entry đầu tiên trong file là SOA (start of authority) resource record. Trong mỗi tập
tin CSDL phải có một và chỉ một record SOA Record SOA chỉ ra rằng máy chủ name
server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong zone.
Serial number
Refresh number
Khoa CNTT – 05CDTH2 Trang 194
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Retry number
Expire number
Time-to-live number
1 ; Serial
Tên miền linuxgroup.com. phải ở vị trí cột đầu tiên và kết thúc bằng dấu chấm.
IN là Internet.
dnsserver.linuxgroup.com. là tên của primary master name server của dữ liệu này.
root.linuxgroup.com. là địa chỉ mail của người phụ trách dữ liệu này. Lưu ý là địa
chỉ mail thay thế dấu @ bằng dấu chấm sau root
Dấu ( ) cho phép ta mở rộng ra viết thành nhiều dòng. Tất cả các tham số trong dấu
( ) được dùng cho các slave name servers
Serial : Khi một slave name server kết nối với master server để lấy dữ liệu, trước
tiên nó sẽ kiểm tra số serial, nếu số serial của master lớn hơn tức là dữ liệu đã hết hạn
sử dụng và nó sẽ load lại dữ liệu mới. vì vậy khi ta cập nhật dữ liệu trên name server
ta nên tăng số serial.
refresh : Khoảng Thời gian (giây) mà slave biết phải kiểm tra lại dữ liệu có còn sử
dụng được không.
retry : Nếu slave không thể kết nối với master name server sau một khoảng thời
gian refresh thì nó sẽ cố gắng kết nối lại sau retry giây.
expire: Nếu slave không thể kết nối với master server sau khoảng thời gian expire
giây, thì slave sẽ không trả lời cho vùng dữ liệu đó khi được truy vấn, vì nó cho rằng
dữ liệu này đã quá cũ.
TTL : Time To Live, giá trị này được dùng cho tất cả các resource record trong
file cơ sở dữ liệu. giá trị này cho phép những server khác cache lại dữ liệu trong 1
khoảng thời gian xác đĩnh TTL
Record tiếp theo cần có trong zone là NS (name server) record. Mỗi name server
cho zone sẽ có một NS record.
Cú pháp:
[ tên-domain ] IN NS [ máy-DNS-Server ]
Ví dụ 2 record NS sau:
linuxgroup.com. IN NS dnsserver.linuxgroup.com.
linuxgroup.com. IN NS server.linuxgroup.com.
Tiếp theo bạn tạo ánh xạ name-to-address (từ tên vào địa chỉ).
Record A (Address) ánh xạ tên vào địa chỉ. Record CNAME tạo tên bí danh alias
trỏ vào một tên canonical khác.
Cú pháp record A
[ tên-máy-tính ] IN A [ địa-chỉ-IP ]
; Host addresses
localhost.linuxgroup.com. IN A 127.0.0.1
dnsserver.linuxgroup.com. IN A 192.168.100.1
server.linuxgroup.com. IN A 192.168.100.2
; Multi-homed hosts
server.linuxgroup.com. IN A 192.168.100.2
server.linuxgroup.com IN A 192.168.100.3
; Aliases
Khi một name server tìm kiếm một tên và tìm thấy CNAME record thì nó sẽ thay
thế tên đó bằng canonical name và tiếp tục tìm với tên mới. ví dụ. khi name server tìm
www.linuxgroup.com, nó phát hiện một CNAME record trỏ đến
dnsserver.linuxgroup.com, sau đó dnsserver.linuxgroup.com sẽ được tìm và kết quả
trả về là cả 2.
DNS dùng record MX trong việc vận chuyển mail trên mạng Internet. Ban đầu
chức năng chuyển mail dựa trên 2 record: record MD (mail destination) và record MF
(mail forwarder). MD chỉ ra đích cuối cùng của một thông điệp mail có tên miền cụ
thể. MF chỉ ra máy chủ trung gian sẽ chuyển tiếp mail đến được máy chủ đích cuối
cùng. Tuy nhiên việc tổ chức hoạt động này không tốt. Do đó, chúng được tích hợp
lại thanh một record là MX. Khi nhận được mail, trình chuyển mail (mailer) sẽ dựa
vào record MX để quyết định đường đi của mail. Record MX chỉ ra một mail
exchanger cho một miền – mail exchanger là một máy chủ xử lý (chuyển mail đến
mailbox cục bộ hay làm gateway chuyền sang một giao thức chuyển mail khác như
UUCP) hoặc chuyển tiếp mail đến một mail exchanger khác (trung gian) gần với
mình nhất để đến tới máy chủ đích cuối cùng hơn dùng giao thức SMTP (Simple Mail
Transfer Protocol)
- Để tránh việc gửi mail bị lặp lại, record MX có thêm 1 giá trị bổ sung ngoài tên
miền của mail exchanger là 1 số thứ tự tham chiếu. Đây là giá trị nguyên không dấu
16-bit (0-65535) chỉ ra thứ tự ưu tiên của các mail exchanger
- Khai báo cho mail, tất cả các mail sẽ được chuyển đi dựa vào MX record này.
- Cú pháp:
- Ví dụ record MX sau:
linuxgroup.com. IN MX 0 mailserver.linuxgroup.com.
linuxgroup.com. IN MX 5 mail.linuxgroup.com.
- Các giá trị 0, 5 xác định độ ưu tiên của mail server. Giá trị càng nhỏ độ ưu tiên
càng cao. 2 dòng trên có nghĩa sau: mail của miền linuxgroup.com sẽ được nhận bởi
máy
- Trình chuyển thư mailer sẽ thư phân phát thư đến mail exchanger có số thứ tự
tham chiếu nhỏ nhất trước. Nuế không chuyển thư được thì mail exchanger với giá trị
kế sau sẽ được chọn. Trong trường hợp có nhiều mail exchanger có cùng số tham
chiếu thì mailer sẽ chọn ngẫu nhiên giữa chúng.
Tiếp theo ta tạo ánh xạ address-to-name (từ địa chỉ vào tên) trong tập tin
db.172.16.1 bằng cách dùng record PTR (pointer)
- Cú pháp
- Ví dụ:
Trước khi cấu hinh những Name Server chúng ta cần phải trải qua những bước
sau:
• Tạo một danh sách những tên và địa chỉ IP tương ứng.
Sau khi tạo xong file cơ sở dữ liệu, name server cần phải được hướng dẫn để đọc
file dữ liệu đó bằng cách cấu hình file /etc/named.conf. Tập tin này chứa thong tin
quan trọng được sử dụng bởi daemon named khi daemon này start. Nội dung tập tin
này như sau:
options {
directory "/var/named";
forwarders {
192.168.100.1;
};
};
• forwarders : chỉ ra những địa chỉ IP của các name server mà nó sẽ gửi yêu cầu truy
vấn khi có nhu cầu.
zone "linuxgroup.com" in {
type master;
file "db.linuxgroup.com";
};
• slave : nếu là secondary name server, server này lưu một bản
sao CSDL từ master. Nếu một tập tin được chỉ ra nó sẽ sao chép toàn bộ
zone master về.
zone "." in {
type hint;
file "db.cache";
};
Khi cấu hình Primary Name Server, bạn phải trải qua những bước sau:
• Tạo tập tin CSDL phân giải tên máy tính thành địa chỉ IP.
• Tạo tập tin CSDL phân giải tên địa chỉ IP thành tên máy tinh.
options {
directory “/var/named”;
};
zone “.” {
type hint;
file “named.ca”;
Khoa CNTT – 05CDTH2 Trang 201
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
};
zone “localhost” {
type master;
file “localhost.zone”;
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
allow-update { none; };
};
zone "linuxgroup.com" in {
type master;
file "named.hosts";
};
zone "100.168.192.in-addr.arpa" in {
type master;
file “named.rev”
};
• Tạo tập tin cơ sở dũ liệu chuyển đổi tên máy tính thành địa chỉ IP
- Tập tin này lưu danh sách tất cả những máy tính trong miền. Nó được dùng để
phân giải tên máy tính thành địa chỉ IP. Những record khác như : CNAME, MX
cũng được định nghĩa trong tập tin này.
Ví dụ:
2001112800;
10800;
1800;
36000;
86400 )
IN NS dnsserver.linuxgroup.com.
IN MX 0 mailserver.linuxgroup.com.
dnsserver IN A 192.168.100.1
server IN A 192.168.100.2
mailserver IN A 192.168.100.3
• Tạo tập tin CSDL chuyển đổi địa chỉ IP thành tên máy tính Giả sử tâp tin này có
tên named.rev Tập tin này được sử dụng để phân giải địa chỉ IP thành tên máy
2001112800;
10800;
1800;
36000;
86400 )
IN NS dnsserver.linuxgroup.com.
IN MX 0 mailserver.linuxgroup.com.
1 IN PTR dnserver.linuxgroup.com.
2 IN PTR server.linuxgroup.com.
Cấu hình Secondary Name Server tương tự như cấu hình Primary Name Server
nhưng có một số điểm khác như sau:
• Không tạo các tập tin CSDL cho zone. Những tập tin này sẽ tự động được sao chép
từ Primary Name Server về lưu tại máy một bản.
• Trong tập tin /etc/named.conf thay thế thuộc tính type là master thành slave.
Sau đây là ví dụ tập tin named.conf cấu hình Secondary Name Server.
options {
directory “/etc/DNS”;
forwarders {
192.168.20.1
};
};
zone “.” {
type hint;
file “root.cache”;
};
zone “localhost” {
type master;
file “localhost.zone”;
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0";
notify yes;
};
zone "linuxgroup.com" in {
type master;
file "named.hosts";
};
zone "100.168.192.in-addr.arpa" in {
type master;
file “named.rev”
};
zone "secgroup.net" in {
type slave;
masters {
192.168.100.1
};
};
zone "100.168.172.in-addr.arpa" in {
type slave;
file “named.rev”
master { 172.168.100.1 };
};
dnsserver.linuxgroup.com. IN A 192.168.100.1
có thể viết:
dnsserver IN A 192.168.100.1
1.100.168.192.in-addr.arpa. IN PTR dnsserver.linuxgroup.com.
có thể viết
1 IN PTR dnsserver.linuxgroup.com.
@ IN SOA dnsserver.linuxgroup.com. root.linuxgroup.com. (
1 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day
tương đương với:
linuxgroup.com. IN SOA dnsserver.linuxgroup.com. root.linuxgroup.com. (
1 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 day
Nếu field đầu của một entry trong file cơ sở dữ liệu là các khoảng trắng hay
spacebar thì nó sẽ lấy resource record ngay dòng trên của nó. Ví dụ:
server1 IN A 192.168.100.3
IN A 192.168.100.5
Tương đương với:
server1 IN A 192.168.100.3
server1 IN A 192.168.100.5
6.7.6. Khởi động Domain Name Server
BIND = Berkeley Internet Name Domain, đây là công cụ giúp ta cấu hình bind một
cách dễ dàng mà không cần thông qua dòng lệnh.
- Yêu cầu:
Trước hết kiểm tra xem bind có cài được cài đặt trên máy tính chưa:
rpm –q bind
/etc/named.conf
/etc/rndc.conf
/var/named/*
Vào Desktop > System Settings > Server Settings > Domain Name Service
# system-config-bind
6.8.2. Cài đặt các cấu hình mặc định cho BIND
Nếu bạn chưa cài đặt bất cứ tập tin cấu hình mặc định cho bind khi system-config-
bind thực thi, một hộp thoại xuất hiện nhắc nhở cho phép cài đặt các cấu hình khởi
tạo cho bind. Click chọn OK để chấp nhận
- Cấu hình:
Xét ví dụ, bạn sẽ phân giải địa chỉ IP (192.168.1.2) thành tên miền
(www.linuxgroup.com). Thao tác làm như sau :
Trong ô textbox IN, bạn nhập địa chỉ muốn phân giải, lưu ý phải có dấu “.” ở cuối
tên miền.
Ví dụ : linuxgroup.com.
• Responsible Person Email Address : nhập địa chỉ email của người quản trị website.
• Nhập các tham số phù hợp với yêu cầu của bạn.
b/ Tạo zone phân giải địa chỉ tên miền thành địa chỉ IP
Mặc định là đường mạng thuộc lớp A (192.x.x.x), để thay đổi đường mạng, nhấn
chọn nút Add.
- Responsible Person Email Address : nhập địa chỉ email của người quản trị website.
• Nhập các tham số phù hợp với yêu cầu của bạn.
• Sau khi tạo ra 2 zone như trên, giao diện bind sẽ như sau :
• Bạn tạo record PTR để ánh xạ một địa chỉ IP cụ thể trong đường mạng 192.168.1.x
thành tên miền.
• Click chọn zone 192.168.1, sau đó nhấp chọn New > PTR Reverse Address
Mapping
• Ở mục Domain Name, chọn địa chỉ IP để phân giải thành tên miền. (vd:
192.168.1.2)
Ví dụ : linuxgroup.com.
• Nhấp chọn zone linuxgroup.com, sau đó chọn New > A IPv4 Address
• Domain Name : nhập tên miền cần ánh xạ (lưu ý : kết thúc bằng dấu “.”)
ví dụ : www.linuxgroup.com.
Ví dụ : 192.168.1.2
e / Tạo record MX
• Nhấp chọn zone linuxgroup.com , sau đó chọn New > MX Mail Exchange
• Mail Server Name : nhập tên của máy tính làm mail server
Ví dụ : mail.linuxgroup.com.
• Sau đó, bạn tạo tiếp record A để phân giải tên mail server thành địa chỉ IP cụ thể.
Hình 6.21 Tạo record A phân giải tên mail server thành địa chỉ IP cụ thể
• Ipv4 Address : nhập địa chỉ IP của máy tính làm mail server.
- Chọn File > Save để lưu lại cấu hình của Bind.
-Sau khi cấu hình xong, bạn phải khởi động lại dịch vụ bind để nạp lại cấu hình
mới sử dụng được.
# /etc/init.d/named restart
- Sau khi khởi động lại dịch vụ bind, dùng chương trình nslookup để kiểm tra.
Nslookup là chương trình thường được dùng để kiểm tra dịch vụ dns xem cấu
hình có đúng hay không.
# nslookup
Tiếp theo đó, gõ các tên miền hay địa chỉ IP để xem chúng có được phân giải hay
không.
Khoa CNTT – 05CDTH2 Trang 219
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Ví dụ: kiểm tra các tên miền và địa chỉ IP mà ta đã cấu hình ở phía trên.
Hình 6.23 Test DNS server tại máy cục bộ bằng nslookup
- VSFTP sẽ phân quyền dựa trên cấu hình và File Permisson (đã được trình bày ở
trên).
Ở chế độ này, máy khách dùng 1 cổng ngẫu nhiên (cổng N>1024) kết nối vào cổng
21 của FTP server. Sau đó, máy khách lắng nghe trên cổng N+1 và gửi lệnh đến FTP
serrver và từ cổng dữ liệu của m ình, FTP server kết nối lại với cổng dữ liệu của máy
khách đã khai báo trước đó. Khi FTP server hoạt động ở chế độ chủ động, client
không tạo kết nối thật sự vào cổng dữ liệu của FTP server, mà chỉ đơn giản là thông
báo cho FTP server biết rằng nó đang lắng nghe trên cổng nào và Server phải kết nối
ngược vào cổng đó.
Ở khía cạnh Firewall, để FTP hổ trợ chế độ active các kênh truyền phải mở :
• Cổng 21 của FTP server phải được mở cho bất cứ nguồn gửi nào
( để client khởi tạo kết nối
• Cho kết nối từ cổng 20 của FTP server đến các cổng >1024
(server khởi tạo kết nối vào cổng dữ liệu của client)
• Nhận kết nối đến cổng 20 của FTP server từ các cổng >1024 .
Bước 1: Client khởi tạo kết nối vào cổng 21 của server và gửi lệnh PORT 1027.
Bước 2: server gửi xác nhận ACK về cổng lệnh của client.
Bước 3: server khởi tạo kết nối từ cổng 20 của mình đến cổng dữ liệu mà client đã
khai báo trước đó.
Ở chế độ thụ động, FTP client tạo kết nối đến server, tránh vấn đề firewall lọc
kết nối đến cổng của máy bên trong từ server. Khi kết nối FTP được mở, client sẽ mở
2 cổng dành riêng (>1024), cổng thứ nhất dùng để liên lạc với cổng 21 của FTP
server, nhưng thay v ì gửi lệnh PORT và sau đó là server kết nối ngược trở lại , thì
lệnh PASS được phát ra. Kết quả là server sẽ mở một cổng bất kỳ (>1024) và gửi lệnh
PORT P ngược trở lại cho client . Sau đó client tự kết nối từ cổng thứ hai vào cổng P
trên server để truyền dữ liệu.
Để hổ trợ cho FTP ở chế độ passive, các kênh truyền cần phải được mở là:
• Cổng 21 của FTP server nhận kết nối từ bất cứ nguồn nào (cho
client tự khởi tạo kết nối)
• Cho phép trả lời từ cổng 21 của FTP server tới bất cứ cổng nào
(>1024)
• Nhận kết nối trên cổng FTP server >1024 từ bất cứ nguồn nào
(client kết nối để truyền dữ liệu đến cổng ngẫu nhiên mà server đ ã
chỉ ra).
• Cho phép trả lời từ cổng FTP server >1024 đến các cổng >1024 của
client
Bước 2: server trả lời bằng lệnh PORT 2024, cho client biêt cổng 2024 đang được
mở để nhận kết nối dữ liệu.
Bước 3: client tạo kết nối truyền dữ liệu từ cổng dữ liệu của nó đến cổng dữ liệu
2024 của server.
Bước 4: server trả lời bằng xác nhận ACK về cho cổng dữ liệu của client.
Chú ý: Đối với FTP thụ động, cổng mà lệnh PORT mô tả chính là cổng sẽ được
mở trên server. Còn đối với FTP chủ động cổng này sẽ được mở ở client
7.2.FTP Server
FTP server là máy chủ lưu trữ những tài nguyên và hổ trợ giao thức FTP để giao
tiếp với những máy khác cho phép truyền dữ liệu trên internet.
7.3.FTP Client
Máy có thể giao tiếp được với FTP server gọi là FTP client. Khi mở một phiên làm
việc FTP server và FTP client điều dùng giao thức FTP. Để thiết lập được một phiên
làm việc ta cần phải có tài khoản trên FTP servers.
Option:
khi bạn download một file không thành bạn có thể sử dụng lại dòng lệnh mget để
download lại file này.
Trước hệt chúng ta nên kiểm tra xem Linux đang xài đã có hổ trợ VsFTP hay chưa.
Kiểm tra bằng cách vào “System Setting” “ Add/Remove Application”
Server FTP Server
Sau khi chạy xong file này thì VsFTP đã được cài đặt thành công.
Sau khi cài đặt xong thì thư mục chính của VsFTP là /etc/vsftp.
Bên trong thư mục này sẽ có 1 file cấu hình chính là vsftpd.conf . File này dạng
file text.
Khoa CNTT – 05CDTH2 Trang 226
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Bên cạnh đó còn 1 file text quan trong nữa là file user_list , chức năng của 2 file
này sẽ được trình bày tiếp theo sau:
File vsftpd.conf
Có 3 dạng biến được sử dụng trong file này để thay đổi các OPTION trong cấu
hình.
Khi tạo bên Linux 1 user mới với tên và password đầy đủ thư mục của user đó
sẽ là thư mục chính khi user đó đăng nhập vào hệ thống. Chúng ta có thể phân quyền
trên thư mục đó để phân quyền người dùng đó trên Server
BOOLEAN
+ listen : Đây là 1 option rât quan trọng dùng để bật tắt chế độ Standalone, mặc
định Option này là NO. Tuy nhiên đối với tất cả các máy chạy VsFTP đơn lẻ nhất
thiết phải thiết lấp option listen=YES , nếu không thiết lập Server VsFTP sẽ không
khởi động được.
Khoa CNTT – 05CDTH2 Trang 227
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
+ anomymous : option này nếu =YES thì cho phép đăng nhập vào server với vai
trò anomynous. Default =YES. Nếu server FTP người dùng muốn xây dựng và
không cho sự xâm nhập của người lạ thì nên set anomynous=NO.
+ local_enable : có cho phép user hiện đang ở trên local host truy xuất đến Server
FTP đang chạy local. Default = NO
+ write_enable : cho phép user có được ghi lên server hay không. Đây là 1 option
quan trọng nó cũng 1 phần quyết định và FTP server ở dạng nào : chỉ đọc, có thể
ghi, vvv. Default = NO.
+ anon_upload_enable : cho phép user anonumous có được upload file hay không.
option này phải được cấu hình chun với option write_enable ở phía trên. Nếu muốn
user upload file được thì đồng thời bật 2 option này bằng YES. Default = NO
+ anon_mkdir_enable : cho phép user anonymous tạo được thư mục trên server,
nếu bật YES thì write_enable cũng phải bật YES.
+ download_enable : cho phép User download file hay không. Nếu =NO, tất cả
các yêu cầu download đều bị từ chối hết. Default = YES.
+ userlist_deny: NO cho phép các user trong danh sách trong File user_list được
phép truy cập vào FTP (file user_list nằm cùng thư mục với File cấu hình). Nếu
YES thì ngược lại.
NUMERIC
+ max_client : khi chết độ standalone được bật tức listen=YES thì max_client này
quy định số kết nối tối đa của Client vào Server. Default = 0 . nếu =0 tức là không
giới hạn số kết nối.
+ connect_timeout: quy định thời gian timeout cho 1 connection, được tính bằng
giây. Default = 60
+ data_connection_timeout : quy định thời gian tối đa để thực hiện việc truyền dữ
liệu, quá thời gian này sẽ bị cắt khi truyền . tính bằng giây. Mặc định là 300. Để
bảo đảm việc truyền dữ liệu thì chúng ta cũng nên để option này có 1 giá trị cao.
+ file_open_mode : umask của file sẽ được user upload (nếu server cho phép
upload) . Default = 0666
+ ftp_username: đây là tên user mình sẽ sử dụng để quản lý cho các anonymous
user. Default : ftp
Sau khi chúng ta cấu hình xong thì công việc tiếp theo đó là cần phải khởi động
server .
Server có 3 lệnh chính là start, top, restart. Để gọi thực hiện 3 lệnh này thì có 2
cách.
Cách 1:
lệnh
/etc/init.d/vsftpd start
/etc/init.d/vsftpd stop
/etc/init.d/vsftpd restart
Sau đây là cách để kiểm tra xem VsFTP có đang hoạt động hay không
Ý nghĩa của lệnh là hiện ra tất cả các tiến trình đang chạy nền với bộ lọc là các tiến
trình FTP
Kết quả sau đây ta có được khi VsFTP đã được khởi động:
Ví dụ 1
cấu hình 1 Server FTP cho anonymous, có 2 thư mục 1 thư mục B có thể ghi và 1
thư mục A chỉ đọc,có thể download và không ghi được.
Bước 1:
vào user & group tạo 1 group và user có tên là ftp
Sau khi tạo xong thì có 1 thư mục /home/ftp . thư mục này là thư mục chính của
user ftp
Bước2:
vào trong /home/ftp
tạo 2 thư mục A và B bằng lệnh: mkdir
mkdir A
mkdir B
Bước 3:
Cấu hình Permission cho 2 thư mục
Đầu tiên chúng ta nên chuyển quyền sở hữu cho 1 user khác. Nên là user Admin
Chuyển quyền sở hữu bằng lệnh chown
thư mục A chỉ cho phép đọc đối với Anonymous:
chmod 774 A
thư mục B cho phép đọc và ghi vơi Anonymous:
chmod 776 B
Bước 4
Cấu hình lại File vsftpd.conf
Các cấu hình cần thiết trong File bây giờ là:
listen=YES
anonymous=YES
write_enable=YES
anon_upload_enable=YES
download_enable=YES
Bước 5:
Khởi động VsFTP
service vsftpd start
Ví dụ 2
Cấu hình 1 server FTP không cho anonymous đăng nhập.có nhiều thư mục, tất cả
các user có thể thấy và đọc tất cả các thư mục và chỉ có thư mục của mình là có thể
ghi được.
Bước 1:
Tạo 1 group chung có tên bất kỳ (ở đây lấy tên là xam)
Tạo các user thuộc group đó và lấy thư mục chung đó làm thư mục gốc luôn
Như vây thư mục đó là /home/xam
Bước2:
Tạo các thư mục cho các user và phân quyền.
Phân quyền 744 cho tất cả các thư mục
Bước 3:
Cấu hình lại File vsftpd.conf
Các cấu hình cần thiết trong File bây giờ là:
listen=YES
anonymous=NO
write_enable=YES
anon_upload_enable=NO
download_enable=YES
Bước 4:
Khởi động VsFTP
service vsftpd start
Máy ảo là máy khác các máy trạm truy nhập trên địa chỉ IP khác (địa chỉ IP ảo) và
nhận được chuyển hướng tới site FTP khác.
Tạo thêm cho máy tính một địa chỉ IP dùng để phục vụ cho các kết nối FTP. Thí
dụ, hiện tại máy tính có một địa chỉ là 192.168.1.2, người dùng tạo thêm địa chỉ
192.168.1.10.
Bước 2: tạo tài khoản người dùng và vị trí cho site ảo mới.
Để tạo tài khoản người dùng và thư mục chứa nội dung cho site, thực hiện cán lệnh
sau:
# umask 022
# mkdir /var/ftp_site2/pub
Bước 3: thay đổi nội dung site hiện có để trả lời cho địa chỉ IP chính
Bind = 192.168.1.2
Bước 4: tạo một site mới, để trả lời cho địa chỉ IP ảo
# cp /etc/xinetd.d/vsftpd /etc/xinetd.d/vsftpd2
- Bổ sung thêm dòng server_args = /etc/vsftpd_site2.conf, để gọi thi hành site FTP
này với tập tin cấu hình vsftpd khác.
# cp /etc/vsftpd.conf /etc/vsftpd_site2.conf
ftp_username=ftp_site2
# /etc/rc.d/init.d/xinetd restart
$ ftp 192.168.1.2
Name (192.168.1.2:chris):
Login failed.
ftp> quit
221 Goodbye
$ ftp 192.168.1.10
Login failed
ftp>
Để kết nối tới FTP ta có thể dùng nhiều cách khác nhau như trình duyệt web hay
phần mềm.
FTP server yêu cầu bạn nhập username và password (nếu có)
8.1.Giới thiệu
Apache: web server phổ biến nhất, chiếm 2/3 tổng số web server hiện nay (theo
thống kê của Netcraft, http://www.netcraft.com).
Apache là một phần mềm có hiều tính năng mạnh và linh hoạt dùng để làm
Webserver.
Hỗ trợ đầy đủ những giao thức HTT trước đây như HTTP/1.1.
Có thể cấu hình và mở rông với những module cảu công ty thứ 3.
Cung cấp source code đầy đủ với license không hạn chế.
Chạy trên nhiều hệ điều hành như Windows NT/9x, Netware 5.x, OS/2 và trên hầu
hết các hệ điều hành Unix.
Để sử dụng Fedora Core như một web server, bạn thực hiện theo các bước sau:
http://www.apache.org
Hình 8.1 Sử dụng công cụ cài đặt Apache bằng giao diện đồ họa
Tiếp theo cài đặt công cụ system-config-tool trong mục Server configuration tools
Chọn mục Detail ở phía bên phải của Server Configuration Tools
Hình 8.2 Cài đặt công cụ cấu hình Apache bằng giao diện
Tiếp theo chọn vào dòng system-config-tool – Apache configuration tool, sau đó
chọn Close.
Cuối cùng chọn click vào nút Update để cài đặt các gói đã chọn.
HTTP Configuration Tool cho phép tập tin cấu hình /etc/httpd/conf/httpd.conf
của Apache HTTP Server bằng giao diện
Để gọi chương trình, vào Main Menu Button => System Settings => Server
Settings => HTTP hay gọi lệnh # system-config-httpd.
Sử dụng HTTP Configuration Tool để cấu hình Apache HTTP Server thường
gồm những bước sau :
• Chọn thẻ Virtual Host và cấu hình những cài đặt mặc định.
• Cấu hình các cài đặt cho server trong thẻ Server.
• Cấu hình các cài đặt của các kết nối trong thẻ Performance Tuning.
• Sao chép tất cả các tập tin cần thiết đến thư mục DocumentRoot và cgi-bin.
• Thẻ Main
• Webmaster email address : địa chỉ email của người quản trị web server.
• Available address : chỉ định các port mà server chấp nhận khi có yêu cầu
gửi đến,
Hình 8.5 Chọn địa chỉ Ip cho phép kết nối đến Apache
• Listen to all addresses : chấp nhận tất cả các port kết nối tới.
Chọn Edit để hiệu chỉnh thông tin của port kết nối.
Click vào nút Edit Default Settings để chỉnh sửa lại cấu hình mặc định.
• Directory Page Search List : danh sách các trang sẽ được gọi khi có yêu cầu
Chọn Add để thêm tập tin sẽ được tìm kiếm khi có yêu cầu.
=> Các giá trị mặc định của Directory Page Search List và Error pages đã làm việc
tương thích với hầu hết các server. Bạn cũng có thể chỉnh sửa theo ý mình.
• Show footer with email address : hiển thị footer ở cuối của tất cả các trang
bị lỗi kèm với địa chỉ email.
• Thẻ logging:
Transfer log : chứa danh sách tất cả các kết nối tới web server. Nó ghi lại địa chỉ IP
của máy client kết nối tới, thời gian kết nối, và các tập tin trên web server mà client
đã lấy về.
Error log : chứa tất cả các lỗi xảy ra khi client kết nối tới.
=>Mặc định, server sẽ ghi thông tin truy cập vào trong tập tin log
/var/log/httpd/access_log và ghi các lỗi vào trong log /var/log/httpd/error_log
• Log to file : ghi thông tin log vào tập tin được chỉ định.
• Log to program : ghi thông tin log vào chương trình được chỉ định.
-Log Level : chọn cấp độ log. Các cấp độ có thể chọn là emerg, alert, crit, error,
warn, notice, info hoặc debug.
-Reverse DNS Lookup : chọn chế độ tìm kiếm tên miền theo hostname.
+ Double Reverse Lookup : bật chế độ phân giải tên miền 2 lần.
• Thẻ Environment
Thỉnh thoảng chúng ta cũng cần phải hiệu chỉnh các biến môi trường để thực
hiện được các mã kịch bản CGI và hay các trang SSI (server-side include).
Apache HTTP Server có thể sử dụng module mod_env để cấu hình các biến môi
trường này.
Set for CGI Scripts : đưa biến môi trường để có thể thực thi CGI scripts và các
trang SSI.
VD: để đưa biến môi trường MAXNUM có giá trị là 50 vào, ta chọn Add , trong
phần Environment Variable gõ MAXNUM, phần Value gõ 50.
Pass to CGI Scripts: đưa vào giá trị của các biến môi trường để server có thể thực
thi được các CGI script.
Unset for CGI Scripts: đưa vào tên của biến môi trường không cho phép thực thi
các CGI script hoặc các trang SSI.
• Thẻ Performance
Nhấp chọn nút Edit ở góc phải để cấu hình các tuỳ chọn mặc định cho tất cả các
thư mục ngoại trừ các thư mục trong mục Directory.
Hình 8.14 Các tùy chọn mặc định cho thư mục
• Includes: cho phép thực thi các trang SSI (server-side includes)
• IncludesNOEXEC: cho phép thực thi các trang SSI nhưng tắt các dòng lệnh
#exec và #include trong CGI script.
• Indexes: trình bày nội dung thư mục theo khuôn mẫu nếu DirectoryIndex
(vd : index.html) không có trong thư mục được yêu cầu.
• Multiview : bật tính năng hỗ trợ xem đa chiều (mặc định: tắt tính năng này)
• SymLinksIfOwnerMatch: chỉ cho phép các liên kết kèm theo nếu tập tin hay
thư mục nguồn cũng có các liên kết giống như vậy.
Để cấu hình tuỳ chọn cho một thư mục cụ thể, nhấp chọn nút Add trong mục
Directory.
Hình 8.15 Các cài đặt của thư mục mặc định
Order
• Let all host access this directory: cho phép tất cả các máy khách truy cập
thư mục này
• Process Deny list before Allow list: xử lý mục Deny list trước mục Allow
list.
• Process Allow list before Deny list: xử lý mục Allow list trước mục Deny
list.
Deny list
• Deny access from all hosts: cấm tất cả các máy khác truy cập.
Allow list
• Allow access from all hosts: cho phép tất cả các máy khác truy cập.
Khoa CNTT – 05CDTH2 Trang 249
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Các giá trị hợp lệ trong mục Deny hosts from và Allow hosts from
Ví dụ Ý nghĩa
all Tất cả kết nối tới
192.168.1.148 Từ một địa chỉ IP cụ thể
192.168.1.0/255.255.255.0 Một đường mạng
Một định tuyến liên miền lớp (classless interdomain
10.3.0.0/16
routing)
Let .htaccess files override directory options : các chỉ thị cấu hình trong tập tin
.htcacess theo một thứ tự trước sau.
Virtual hosts cho phép chạy các server khác nhau dựa vào các địa chỉ IP khác
nhau, hoặc tên khác nhau hoặc dựa vào các port (cổng) khác nhau trên cùng một máy
server. Có 2 kiểu virtual host: "IP-based" (mỗi IP cho một web-site) và "name-based"
(nhiều web-site trên một IP). Cần hiểu rõ đặc điểm của mỗi loại (xem
http://httpd.apache.org/docs-2.0/vhosts/), tùy vào điều kiện hiện có (số IP) và những
yêu cầu cụ thể (mô hình dịch vụ) để chọn cách thích hợp.
Nhấp chọn nút Edit chỉnh sửa lại một máy ảo đã có sẵn.
Mục General Options: các cài đặt trong mục này chỉ có hiệu lực với virtual host
đang cấu hình.
Basic Setup
• Document Root Directory: đường dẫn tới thư mục chứa trang chủ (vd:
index.html)
• Webmaster email address: địa chỉ email của người quản trị web server.
• IP address: nhập địa chỉ IP. Để chỉ định nhiều địa chỉ IP, mỗi địa chỉ IP cách
nhau khoảng trắng. Để cấu hình một port, sử dụng cú pháp IP Address:Port . Để
cấu hình tất cả các port cho địa chỉ IP, sử dụng IP Address:*
Name based Virtual Host : nhiều web-site trên một IP dựa vào tên ảo.
Cái điểm yếu của việc sử dụng tên ảo dựa vào tên là bạn không thể xài SSL
(https://) cho tất cả các tên vì SSL yêu cầu mỗi tên phải có riêng một IP trong khi sử
dụng tên ảo dựa vào tên thì bạn chỉ có một IP duy nhất cho nhiều tên khác nhau.
• Trong mục Alias, nhấp chọn Add để thêm một bí danh (alias) cho máy.
Default Virtual Host: các cài đặt của máy ảo mặc định được sử dụng khi yêu cầu
của địa chỉ IP không có trong các máy ảo khác. Nếu máy ảo mặc định không xác
định được thì những cài đặt trong Main server được sử dụng. (nên chỉ có một máy ảo
mặc định).
All request on port: đáp ứng tất cả các yêu cầu đến từ port.
• Thẻ SSL:
Trong hơn mười năm, giao thức SSL đã được sử dụng rộng rãi nhằm vào mục đích
đảm bảo an toàn cho các giao dịch web qua internet. Bạn có thể tưởng tượng mỗi
ngày có hàng triệu, hàng tỉ đô la giao dịch trên mạng dùng SSL. Tuy nhiên, sự thật
giản dị là chúng ta đã dùng SSL một cách không thực sự cần thiết. Các thông tin được
gửi qua giao thức này vẫn đảm bảo an toàn. Cách mã hoá yếu, không kiểm chứng
được các certificate (chứng chỉ) của web servers (trên máy chủ), những lỗ hổng an
ninh, cùng nhiều kiểu tấn công khác có thể cho phép những kẻ xâm nhập truy cập
thông tin nhạy cảm, bất chấp sự thật rằng nó đang được gửi qua SSL.
Secure Sockets Layer (SSL) là giao thức được biết đến nhiều nhất về khả năng bảo
mật và độ tin cậy trong giao dịch khách - chủ (client-server) trên mạng internet. Bản
thân SSL được dựa trên các khái niệm khá đơn giản. Nó sắp xếp các thuật toán mã
hoá và khoá giữa 2 lần gửi - nhận của một giao dịch. Sau đó thiết lập một đưòng dẫn
ảo mã hoá thông qua các giao thức khác (như HTTP). SSL cũng có thể thẩm định cả
hai chiều của giao dịch thông qua việc dùng các “chứng chỉ” (certificate).
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
Vị trí của các giao thức trên, tương ứng với mô hình TCP/IP được minh hoạ theo
biểu đồ sau:
http://img115.imageshack.us/img115/2848/ssl01ms0.jpg
Biểu đồ 1. Các giao thức con của SSL trong mô hình TCP/IP
Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc
điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà
không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang
lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security
Protocol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn
xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT
(Network Address Translation) mà không cần nguồn cung cấp.
SSL hoạt động như thế nào? Biểu đồ dưới đây sẽ chỉ ra một cách đơn giản với
từng bước quá trình thiết lập kết nối SSL giữa máy khách (client – dùng một đường
dẫn web browser) và máy chủ (server – dùng một SSL web server)
Như bạn thấy trên hình, quá trình thiết lập kết nối SSL bắt đầu bằng việc trao
đổi các tham số mã hoá và sau đó xác nhận các server một cách tuỳ ý (dùng gia thức
SSL Handshake). Nếu “bắt tay” (Handshake) thành công, cả hai chiều đều chấp nhận
bộ mã hoá chung và các khoá mã hoá, thì dữ liệu ở tầng ứng dụng (thông thường
dùng HTTP, nhưng cũng có thể là một giao thức khác) có thể được gửi thông qua
đường hầm (tunnel) mã hoá (dùng SSL Record Layer).
Trong thực tế, tiến trình trên còn phức tạp hơn một chút. Để tránh những cái “bắt
tay” không cần thiết, một số tham số mã hoá được giữ lại. Các thông báo được gửi đi.
Bộ mã hoá cũng có thể được thay đổi. Tuy nhiên, bất chấp các đặc điểm kĩ thuật đó,
cách thức phổ biến nhất của tiến trình này làm việc thực sự như trên
- SSL v2.0
Phiên bản này được tạo ra bởi Netscape Communications năm 1994. Mục đích
chính của giao thức này là cung cấp an toàn cho các giao dịch trên World Wide Web.
Thật không may, nhanh chóng sau đó người ta thấy con số yếu kém về an toàn trong
phiên bản đầu của giao thức SSL này. Do đó làm cho nó kém tin cậy hơn với cách
dùng mang tính chất thương mại.
* Cấu trúc của MAC yếu.
* Có khả năng những kẻ tấn công dùng kiểu cắt xén (truncation attack)
- PCT v1.0
Được phát triển bởi Microsoft vào năm 1995. PCT (Privacy Communication
Technology ) v1.0 địa chỉ hoá một số điểm yếu của SSL 2.0 và đặt ra mục tiêu là thay
thế SSL. Tuy nhiên giao thức này đã không bao giờ thu được kết quả phổ biến như là
SSL v3.0.
- SSL v3.0
Được phát hành vào năm 1996 bởi Netscape Communications. SSL v3.0 giải
quyết hầu hết các vấn đề của SSL v2.0 và kết hợp rất nhiều thành phần của PCT.
Nhanh chóng sau đó nó trở thành giao thức phổ biến nhất cho an toàn truyền thông
trên World Wide Web.
Được đưa ra bởi IETF vào năm 1999 (RFC 2246). Giao thức này dựa trên SSL
v3.0 và PCT. Nó cân bằng cả hai cách thức của Netscape và Microsoft. Cũng cần chú
ý rằng, mặc dù TLS dựa trên SSL, nhưng nó không phải là phiên bản sau tương thích
100% với các bản trước nó. IETF đã thực hiện môt số cải tiến về an toàn. Chẳng hạn
như dùng HMAC thay vì MAC, dùng phép tính toán khác trong bảo mật của máy chủ
và tài liệu khoá (key), thêm các bộ chỉnh sửa, không hỗ trợ bộ mã hoá Fortezza, v.v…
Kết quả của những nâng cấp này là các giao thức không hoạt động được một cách đầy
đủ. Cuối cùng TLS cũng rơi vào lãng quên so với SSL v3.0.
-WTLS
Phiên bản “di động và không dây” của giao thức TLS, sử dụng giao thức UDP như
là một hãng truyền thông. WTLS được thiết kế và tối ưu cho các băng thông thấp
hơn, các tiến trình nhỏ hơn với các thiết bị di động cho phép dùng WAP. WTLS đưa
ra cùng giao thức WAP 1.1 bởi WAP Forum. Tuy nhiên, sau khi giao thức WAP 2.0
được giới thiệu, WTLS bị thay thế bởi một phiên bản nguyên trạng của TLS với mức
an toàn cao hơn. Nó không cần phải giải mã hay mã hoá lại lưu lượng tại cổng vào
của WAP.
- Vì sao giao thức SSH lại không được dùng cho mục đích đảm bảo an ninh khi
truy cập WWW?
Khoa CNTT – 05CDTH2 Trang 256
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
+ Có một vài lí do! Đầu tiên, ngay từ khi bắt đầu, TLS và SSL đã được thiết kế cho
các phiên an ninh mạng (HTTP), trong khi SSH được lùi lại để thay thế cho Telnet và
FTP. SSL không làm gì hơn là “bắt tay” và thiết lập các “đường hầm mã hoá” . Và tại
cùng thời gian đó, SSH đưa ra cách đăng nhập giữa người - máy, truyền tải các file an
toàn, hỗ trợ cho nhiều bước kiểm tra quyền (bao gồm mật khẩu, các khoá chung,
Kerberos…). Mặt khác SSL/TLS dựa trên các chứng chỉ X.509v3 và PKT, các chứng
chỉ này tạo nên sự phân phối và quản lí khả năng thẩm định quyền hạn dễ dàng hơn
nhiều. Với những lí do này và một số lí do khác nữa làm cho SSL/TLS ngày càng phù
hợp hơn an toàn truy cập WWW và các kiểu khác tương tự trong truyền thông, bao
gồm SMTP, LDAP… trong khi SSH ngày càng thuận tiện cho việc quản lí các hệ
thống từ xa.
=>Nói tóm lại, mặc dù trong thực tế có nhiều giao thức “an toàn” nhưng ta chỉ nên
dùng hai giao thức giao dịch web (ít nhất tại thời điểm này) là: TLS v1.0 và SSL v3.0.
Cả hai đều được nhấn mạnh với cái tên đơn giản là SSL/TLS. Bởi những điểm yếu
kém đã được biết đến của SSL v2.0 và “lỗ hổng WAP” nổi tiếng của WTLS, chúng ta
nên tránh dùng các giao thức này, hoặc ít nhất là hạn chế ở mức thấp nhất.
server.crt - chứng chỉ mã hoá PEM bao gồm cả khoá public của web browser
Lưu ý : bạn không thể sử dụng máy ảo dựa vào tên cùng với giao thức SSL
Enable SSL support : kích hoạt SSL. Nếu một Apache HTTP Server không cấu
hình bật tính năng SSL thì giao tiếp giữa Apache HTTP Server và client không được
mã hóa.
Thường các giá trị mặc định đã tương thích với mọi hoàn cảnh, tuy nhiên bạn có
thể chỉnh sửa lại cho phù hợp với nhu cầu.
• Lock File: tập tin chứa các đường dẫn đến các tập tin chỉ được phép
đọc bởi tài khoản root.
• PID File: tập tin mà server ghi vào định danh tiến trình của nó.
• User: tài khoản mà máy client dùng để kết nối tới web server (mặc
định là apache)
• Group : nhóm người cho phép kết nối tới web server (mặc định là
apache)
• Max requests per connection: số lượng tối đa các yêu cầu của
mỗi kết nối (mặc định là 100)
• Allow unlimited requests per connection: cho phép mỗi kết nối
có thể gửi yêu cầu không giới hạn.
=>> cuối cùng chọn Cancel để không save cấu hình của Apache HTTP Server.
Chọn Yes để lưu lại những cài đặt này vào trong tập tin /etc/httpd/conf/httpd.conf
Khởi động lại web server để các cài đặt có hiệu lực bằng lệnh:
• Sử dụng:
Tiếp theo, bạn chép những website muốn truy cập vào /var/www/html để thực thi.
Giả sử ta có tập tin hello.html và hello.asp trong thư mục /var/www/html.
Chạy trang hello.html trên apache web server bằng cách nhập vào địa chỉ :
http://192.168.100.1/hello.html
• Cài đặt
cd ../apache_1.3.22
hared=max
make
make install
File cấu hình chính của Apache được lưu trữ trong /etc/httpd/conf/httpd.conf
Đầu tiên tốt nhất là backup lại file cấu hình bằng dòng lệnh:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup-1
Mặc định thì dịch vụ Apache chưa được kích hoạt. Để khởi động, sử dụng công
cụ hoặc dùng dòng lệnh:
Để chắc chắn là Apache sẽ khởi động mỗi lần hệ thống boot, hãy enable dịch vụ
Apache.
Khi thay đổi cấu hình của Apache, bạn phải reload lại Apache bằng dòng lệnh:
Dùng trình duyệt web có sẵn trong Linux như Firefox, truy cập vào địa chỉ
http://localhost, bạn sẽ thấy trang web hiện ra như sau:
Bạn có thể truy cập vào trang web trên server từ xa thông qua địa chỉ IP của
server (ví dụ như http://192.168.1.1/ ), hoặc nếu như dịch vụ DNS có hổ trợ thì bạn
có thể truy cập thông qua hostname của server (ví dụ như http://linuxgroup.com/)
a. Các tham số chủ yếu trong tập tin cấu hình httpd.conf:
***Global Environment
+Listen : quy định địa chỉ IP hoặc cổng mà web server nhận kết nối từclient.
Cú pháp: Listen <IP:port>
• TimeOut <time> : qui định thời gian sống của một kết nối (tính bằng
giây).
Ví du: TimeOut 300
• KeepAlive <On/Off> : cho phép hoặc không cho phép client gửi được
nhiều yêu cầu dựa trên một kết nối với web server
Ví du: KeepAlive On
• KeepAliveTimeOut <time> : qui định thời gian để chờ cho một Request
kế tiếp từ cùng một client trên cùng một kết nối (được tinh bằng giây)
Ví dụ: KeepAliveTimeOut 15
• MaxClients <number> : qui định số yêu cầu tối đa từ các client gửi
đồng thời đến server
Ví du : MaxClients 256
• BindAddress <IP/*> : qui định địa chỉ card mạng để chạy Apache trên
server. Sử dụng dấu “ * ” để có thể sử dụng tất cả các địa chỉ có trên
máy.
Ví dụ BindAddress 192.168.5.5
Mặc định là : BindAddress *
***Main' server configuration
• User apache
• Group apache
• ServerAdmin < email> : địa chỉ email của người quản trị website
Ví dụ : ServerAdmin root@linuxgroup.com
Ví dụ : DocumentRoot /var/www/html
<directory></directory>var/www/html">
Order allow,deny
<ifmodule>
# không sử dụng
UserDir disable
# UserDir public_html
</ifmodule>
DirectoryIndex <danh_sách_tập_tin> : các tập tin mặc định khi truy cập tên
website
Ví dụ : DirectoryIndex index.html index.html index.php index.cgi
• ErrorLog <vị_trí_tập_tin_log> : chỉ định tập tin để server ghi vào bất kỳ
những lỗi mà nó gặp phải.
Ví dụ : ErrorLog logs/error_log
Nếu đường dẫn không có dấu / thì vị trí tập tin log liên quan đến ServerRoot
Để giới hạn việc truy cập củangười dùng, ta có thể kết hợp với các khai báo
Directory như ví dụ sau:
• UserDir : cho phép người dùng tạo Homepage của minh lên
server
Ví dụ :
UserDir www
<Directory /home/mimi/www>
Order deny,allow
Allow from all
</Directory>
=>> trong thư mục home directory của người dùng mimi tạo thư mục www. Khi
đó cú pháp truy cập từ web browser là http://www.linuxgroup.com/~mimi
***Virtual Hosts : là tinh năng của Apache giúp ta duy trì nhiều hơn một web
server trên một máy tính.
+ Named-based Virtual Hosts : server dựa vào HTTP header của client để biết
được hostname. Sử dụng kỹ thuật này một địa chỉ IP có thể có nhiều tên miền khác
nhau. Ví dụ: bạn tạo ra 2 web server www.domain1.linuxgroup.com và
www.domain2.linuxgroup.com trên một máy tính có IP 192.168.5.5 như sau:
NameVirtualHost *:8080
<virtualhost 192.168.5.5>
ServerName www.domain1.linuxgroup.com
DocumentRoot /var/www/domain1
ServerAdmin domain1@linuxgroup.com
ErrorLog /var/log/httpd/A/error_log
<directory></directory>var/www/domain1">
</virtualhost>
<virtualhost 192.168.5.5>
ServerName www.domain2.linuxgroup.com
DocumentRoot /var/www/domain2
ServerAdmin domain2@linuxgroup.com
ErrorLog /var/log/httpd/B/error_log
<directory></directory>var/www/domain2">
</virtualhost>
=>> lưu ý: bạn phải cấu hình DNS phân giải 2 tên miền
www.domain1.linuxgroup.com và www.domain2.linuxgroup.com về cùng một
địa chỉ 192.168.5.5
NameVirtualHost 192.168.5.15:443
<virtualhost>
ServerName www.A-domain.name
DocumentRoot /var/www/html
ServerAdmin webmaster@A-domain.name
ErrorLog /var/log/httpd/A/error_log
CustomLog /var/log/httpd/access_log \
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:
+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
<files>
SSLOptions +StdEnvVars
</files>
<directory></directory>var/www/cgi-bin">
SSLOptions +StdEnvVars
SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key
</virtualhost>
Apache sử dụng đường dẫn thư mục để kiểm soát sự truy cập vào thư mục trên hệ
thống máy tình của bạn. Thư mục root được cấu hình đầu tiên:
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
Chỉ dẫn Option gồm các trạng thái: nó chỉ rõ quền của các thư mục này. Trong
trường hợp này, tất cả các sự truy cập vào thư mục root và các thư mục con, toàn bộ
hệ thống ngăn cấm truy cập vào các đường dẫn.
Thư mục chứa trong thư mục /var/www/html và các thư mục con của nó:
<Directory "/var/www/html">
AllowOverride None
Order Allow,Deny
</Directory>
Các giá trị của Option được lựa chọn trong danh sách sau:
• All: Mặc định, cho phép mọi sự truy cập cho Multiview.
• Indexes : Một trang Index.html thường được đáp ứng như một chỉ
mục cho thư mục.
Chuyển vào thư mục chứa các gói rpm trong đĩa cài đặt:
mount /mnt/cdrom/Fedora/RPMs
groupadd mysql
Đến đây việc cài Mysql đã hoàn tất . Chạy tiếp để test MySQL
/etc/init.d/mysqld start/stop/restart
Chú ý :
Kiểm tra file /etc/my.cnf và thay đổi đường dẫn chứa file mysql.sock
Bây giờ bạn hãy truy cập vào mysql thử xem bằng tài khoản root như sau:
AddModule mod_php5.c
<IfModule mod_dir.c>
</IfModule>
Tạo tập tin default.php trong thư mục /var/www/html và chạy thử như sau :
"/var/www/html/index.php”
Thư điện tử, Electronic mail, Email, là dịch vụ có thể nói là quan trọng nhất đối
với người sử dụng Internet. Do tính phổ cập của email, việc cấu hình tốt Mail server,
tạo điều kiện cho người sử dụng có thể trao đổi Email là công việc đầu tiên và quan
trọng nhất của người quản trị. Một cấu hình sai email có thể dẫn đấn tình trạng không
gửi hoặc nhận được thư, hoặc tệ hơn là mất thư mà không có phản hồi. Hoạt động của
dịch vụ mail gắn rất chặt chẽ với cầu hình của DNS.
Hệ thống Mail được xây dụng dụa trên một số giao thức sau :
Một hệ thống mail yêu cầu phải có ít nhất hai thành phần, nó có thể định vị trên 2
hệ thống khác nhau hoặc trên cùng một hệ thống, mail server và mail client. Ngoài ra,
nó còn có các thành phẩn khác như Mail Host, mail gateway.
• Mail gateway.
Một mail gateway là máy kết nối giữa các mạng dùng các giao thức truyền thông
khác nhau dùng chung giao thức. Ví dụ một mail gateway có thể kết nối một mạng
TCP/IP với một mạng chạy bộ giao thức System Network Architeture (SNA).
Một mail gateway đơn giản nhất dùng để kết nối 2 mạng dùng chung giao thức
họăc mailer. Khi đó mail gateway chuyển mail giữa domain nội bộ và các domain bên
ngoài.
• Mail Host.
Một Mail Host là máy giữ vai trò máy chủ mail chính trong hệ thống mạng. Nó
dùng như thành phần trung gian để chuyển mail giữa các vị trí không kết nối trực tiếp
được với nhau.
Mail Host phân giải địa chỉ người nhận để chuyển giữa các mail server hoặc
chuyển đến mail gateway.
Một ví dụ về Mail Host là máy trong mạng cục bộ LAN có modem được thiết lập
lêin kết PPP hoặc UUCP dùng đường dây thoại. Mail hosst cũng có thề là máy chủ
đóng vai trò router giữa mạng nội bộ và mạng Internet.
• Mail Server.
Mail server chứa mailbox của người dùng. Mail server nhận mail từ client gửi đến
và đưa vào hàng đợi đề gửi đến Mail Host.
Mail server nhận mail từ Mail Host gửi đến và đưa vào mauilbox của người dùng.
Người dùng sử dụng NFS (Network File System) đề mount thu mục chứa mailbox
trên Mail Server để đọc. Nếu NFS không được hỗ trợ thì người dùng phải login vào
Mail Server đề nhận thư.
Trong trường hợp Mail Client hỗ trợ POP/IMAP và trên Mail Server cũng hỗ trợ
POP/IMAP thì người dùng có thể đọc thư bằng POP/IMAP.
• Mail Client.
Là những chương trình hỗ trợ chức nắng đọc và soạn thảo thư, Mail Client tích hợp
2 giao thức SMTP và POP, SMTP hỗ trợ tính năng chuyển thư từ Client đến Mail
Server, POP hỗ trợ nhân thư từ Mail Server về Mail Client. Ngoài việc tích hợp giao
thức POP Mail Client còn tích hợp giao thức IMAP, HTTP đề hỗ trợ chức năng nhận
mail cho Client.
Các chương trình Mail Clinet thường sử dụng như Microsoft Outlook Express,
Microsoft Office Outlook, Eudora,…
• Cài đặt Sendmail trong quá trình cài đặt hệ điều hành.
• Sendmail-x-x.rpm.
• Sendmail-cf-x-x.rpm.
• M4-x-x.rpm.
/etc/mail/sendmail.cf
/etc/aliases
/etc/mail/access
/var/spool/mail
Tấp tin /etc/mail/sendmail.cf : đây là tập tin cấu hình chính của sendmail. Nội
dung của tập tin được chia thành 3 nhóm thong tin cấu hình chính :
+ Mô tả các luật(rule set) mà người dung có thể dung định nghĩa lại cách sử
lý của Sendmail.
• Khi cấu hình Mail Server với Sendmail, ta cần quan tâm đến các thong số
cấu hình quan trọng trong file : /etc/mail/sendmail.cf sau :
• Tập tin /etc/mail/access : chỉnh sửa nội dung tập tin này như sau
• Thực hiện các lệnh sau : để chuyển tập tin này từ dạng text sang dạng
chuẩn để Sendmail có thể đọc được.
o #cd /etc/mail
o #/etc/init.d/sendmail restart
• Sử dụng : dung trình tiện ích Mail để gửi và nhận Mail giửa những người
dung.
o Cú pháp :
o Ví dụ :
# mail –v duyvu@linuxgroup.com
- Để cho người dung có thể gửi và nhận Mail từ các chương trình Client Mail
như : Outlook Express, Eudora, Netscape… ta phải cài đặt và cấu hình Imap Server
hoặc Pop Server.
Cách 1: Ta cần phải cài đặt gói tin imap-2002d-3.i386.rpm vì trong package này
có chứa POP Server, trong các đĩa CDROM của Fedora chưa có package này do đó ta
phải download từ site: http://rpmfind.net. Khởi động POP Server ta dùng lệnh sau:
#chkconfig pop3 on
Hoặc sau khi ta cài đặt IMAP package xong ta dùng lệnh setup ->System Services
-> IPOP3, sau đó dùng lệnh #/etc/init.d/xinetd restart.
Trên linux các client đều có hỗ trợ sẵn tiện ích Kmail, để cấu hình client nhận mail
từ mail server ta tiến hành các bước sau:
Truy cập theo đương dẩn như hình bên dưới để khởi động Kmail.
Để cấu hình nhận thư cho một tài khoản ta thực chiện các bước :
Setting=>configue kmail giao diện kế tiếp xuất hiện như sau:
Quan sát giao diện trên ta thấy các thẻ khác nhau, để cấu hình nhận mail từ server
ta chọn vào thẻ account như hình bên dưới, trong thẻ account co 2 mục để ta cấu hình
là receiving và sending:
Để nhận mail ta chọn mục receiving, trên giao diện receiving ta chọn add giao diện kế
tiêp như sau:
Ta có thể chọn 1 trong 2 giao thức IMAP/POP3 để nhận thư, ở đây ta chọn giao
thức POP3, giao diện kế tiếp như sau:
Ta điền đầy đủ thông tin về tài khoản và địa chỉ mail server, ở ví dụ này ta se cấu
hình nhận thư cho tai khoản testmail và server 192.168.100.1 như hình bên dưới:
Sau khi nhập đầy đủ thông tin ta chọn OK, sau khi hoàn tất qua trình cấu hình ta sẽ
thấy giao diện như sau:
Sau khi đã hoàn tất ta chọn OK để hoàn tất việc cấu hình
• Có nhiều phần mềm dùng để gửi và nhận Mail trên Windows. Nhưng ở đây tôi xin
trình bày cách cấu hình Outlook Express. Cụ thể gồm các bước như sau :
+ Ở màn hình Your Name ta điền vào tên hiển thị khi kêt nối .
+ Ở màn hình Internet Email Address ta điền vào địa chỉ Email khi kết nối.
+ Ở màn hình Email Server Name ta điền vào địa chỉ của Pop3 Server Và SMTP
Server.
+ Ở màn hình Internet Mail Logon ta nhập vào tên User và password kết nối.
Bước 1: Ta dùng lệnh rpm -ivh package*.rpm Đối với Fedora Core ta cần các
package sau:
- perl-Compress-Zlib-1.33-6.i386.rpm
- perl-suidperl-5.8.3-18.1.i386.rpm
- perl-Text-Iconv-1.2-fc1.i386.rpm
- openwebmail-2.51-1.i386.rpm
Đối với phiên bản trước của Linux thì ta cần tham khảo thêm Website
http://openwebmail.org/openwebmail/download/ để biết rõ hơn.
Bước 2: Đối với Fedora Core yêu cầu phải có MIME-Base64-3.0 cho nên ta cần
cài thêm phần mềm này:
Bước 4: Sau đó Open Webmail yêu cầu thay đổi thông tin trong file
/var/www/cgi-bin/openwebmail/etc/defaults/dbm.conf
dbm_ext .db
dbmopen_ext .db
dbmopen_haslock no
Bước 5: Thực thi lại lệnh # /var/www/cgi-bin/openwebmail/openwebmail-
tool.pl --init
Mọi thông tin cấu hình của Open Webmail nằm trong file
/var/www/cgibin/openwebmail/etc/openwebmail.conf. Ta cần tham khảo các thông
tin cấu hình sau:
ow_cgidir /var/www/cgi-bin/openwebmail
ow_cgiurl /cgi-bin/openwebmail
ow_htmldir /var/www/data/openwebmail
ow_htmlurl /data/openwebmail
logfile /var/log/openwebmail.log
Apache Web server cho phép thực thi chương trình cgi.
- CGI.pm-3.05.tar.gz
- MIME-Base64-3.01.tar.gz
- libnet-1.19.tar.gz
- Digest-1.08.tar.gz
- Digest-MD5-2.33.tar.gz
- Text-Iconv-1.2.tar.gz
- Openwebmail-2.51.tar.gz
Tuy nhiên ta cần tham khảo địa chỉ sau để cập nhật thông tin cho hợp lệ để chọn
các gói trên tại địa chỉ: http://openwebmail.org/openwebmail/doc/readme.txt. Sau khi
ta download xong các phần mềm trên ta thực hiện các bước như sau:
tar -zxvfCGI.pm-3.05.tar.gz
cd CGI.pm-3.05
perl Makefile.PL
make
make install
perl Makefile.PL
make
make install
Bước 3: Cài phần mềm libnet
cd /tmp
make install
Bước 4: cài phần mềm Text-Iconv-1.2
cd /tmp
cd libiconv-1.9.1
./configure
Qmake
make install
cd /tmp
perl Makefile.PL
make
make test
make install
Bước 5: cài đặt OPENWEBMAIL
Phiên bản mới nhất của Open Webmail được cung cấp tại Website:
http://openwebmail.org/openwebmail/
1. cd /var/www
rmdir data
2. cd /var/www/cgi-bin/openwebmail/etc
Thay đổi auth_unix.conf từ defaults/auth_unix.conf
a. set passwdfile_encrypted to '/etc/shadow'
@@@DICTIONARY@@@ -p @@@PDICNAME@@@'
/var/log/openwebmail.log {
postrotate
}
Tới file /etc/logrotate.d/syslog để ghi nhận log của openwebmail.log
Mỗi thiết bị trên mạng có dùng bộ giao thức TCP/IP đều phải có một địa chỉ IP
hợp lệ, phân biệt. Để hỗ trợ cho vấn đề theo dõi và cấp phát các địa chỉ IP được chính
xác, tổ chức IETF (Internet Engineering Task Force) đã phát triển ra giao thức DHCP
(Dynamic Host Configuration Protocol).Giao thức này được mô tả trong các RFC
1533, 1534, 1541, 1542. Bạn có thể tìm thấy các RFC này tại địa chỉ http:// ww.ieft.
org/rfc.html. Để làm một DHCP server trên linux, máy tính cài hệ điều hành Linux
phải đáp ứng các điều kiện sau:
• Mỗi interface phải được cấu hình bằng một địa chỉ IP tĩnh.
• Đã chuẩn bị sẵn danh sách các địa chỉ IP định cấp phát cho các máy client.
Dịch vụ DHCP này cho phép chúng ta cấp động các thông số cấu hình mạng cho
các máy trạm (client). CÁc hệ điều hành của Microsoft và các hệ điều hành khác như
Unix, Linux, hoặc Macintosh đề hỗ trợ cơ chế nhân các thông số động, có nghĩa là
trên các hệ điều hành này phỉa có môt DHCP client. Cơ chế sử dụng các thông số
mạng được cấp phát động có ưu điểm hơn so với cơ chế khai báo tĩnh các thông số
mạng như:
• Khắc phục được tình trangj đụng địa chỉ IP và giảm chi phí quản trị cho hệ thống
mạng.
• Giúp cho các nhà cung cấp dịch vụ (ISP) tiết kiệm được số lượng địa chỉ IP thật
(public IP).
• Phù hợp với máy tính thường xuyên di chuyển qua lại giữa các mạng.
• Kết hợp với hệ thống mạng không dây (wireless) cung cấp các điểm Hotspot như :
nhà ga, sân bay, trường học…
Tự thu hồi lại địa chỉ IP khi client ngắt kết nối
Giao thức DHCP làm việc theo mô hình client/server. Theo đó, quá trình tương tác
giữa DHCP clent và server diễn ra theo các bước sau:
• Khi máy client khởi động, máy sẽ gửi broadcast gói tin DHCPDISCOVER , yêu
cầu một server phục vụ cho mình. Gói tin này cũng chứa địa chỉ MAC của máy
client.
• Các máy server trên mạng khi nhận được gói tin yêu cầu đó, nếu còn khả năng
cung cấp địa chỉ IP, đều gửi lại cho máy client gói tin DHCPOFFER, đề nghị cho
thuê một địa chỉ IP trong một khoản thời gian nhất định, kèm theo là một subnet
mask và địa chỉ của server. Server sẽ khong cấp phát địa chỉ IP vừa đề nghị cho
những client khác trong suốt quá trình thương thuyết.
• Máy client sẽ lựa một trong những lời đề nghị (DHCPOFFER) và gửi broadcast lại
gói tin DHCPREQUEST chấp nhận lời đề nghị đó. Điều này cho phép các lời đề
nghị không được chấp nhân sẽ được các server rút lại và dùng để cấp phát cho
client khác.
• Máy server được client chấp nhận sẽ gửi ngược lại một gói tin DHCPACK như là
một lời xác nhận, cho biết là địa chỉ IP đó, subnet mask đó và thời hạn cho sử dụng
đó sẽ chính thức được áp dụng. Ngoài ra server còn gửi kèm theo những thông tin
cấu hình bổ sung như địa chỉ gateway mặc định, địa chỉ DNS server
Bạn đưa đĩa cài đặt Fedora Core 4 vào ổ cd. Sau đó chuyển đến thư mục RPMs
chứa các gói cài đặt. Cuối cùng là gọi lệnh rpm để cài đặt gói dhcp
Khoa CNTT – 05CDTH2 Trang 295
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Khi DHCP khởi động, dhcp server sẽ đọc tập tin cấu hình /etc/dhcpd.confg. Khi
cài gói rpm của DHCP, nó không tự động tạo ra tập tin /etc/dhcpd.conf, nhưng bạn có
thể lấy tập tin /etc/dhcpd.conf mẫu kèm theo hướng dẫn trong thư mục sau :
/usr/share/doc/dhcp-<version-number>/dhcpd.conf.sample
Bạn chép tập tin dhcpd.conf mẫu này vào thư mục /etc, sau đó hiệu chỉnh nó lại
cho phù hợp.
cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample /etc/dhcpd.conf
Nội dung tập tin /etc/dhcpd.conf sau khi được cấu hình sẽ như sau:
ddns-update-style interim
ignore client-updates
default-lease-time 86400;
max-lease-time 86400;
# interfaces
host laser-printer {
fixed-address 192.168.100.222;
Ngoài ra còn rất nhiều câu lệnh và tùy chọn cấu hình DHCP, bạn có thể tham
khảo các tùy chọn đó bằng lệnh:
man dhcp-options
Lưu ý : Máy in cần được gán địa chỉ tĩnh để các user có thể in tài liệu.
Bước 1: Trước tiên, kiểm tra xem tập tin /var/lib/dhcp/dhcpd.leases có tồn tại
không, nếu không tồn tại thì dùng lệnh touch để tạo tập tin này:
touch /var/lib/dhcp/dhcpd.leases
Bước 2: Sử dụng lệnh chkconfig để cấu hình DHCP có thể khởi động cùng với lúc
hệ thống khởi động.
chkconfig dhcpd on
Bước 3: Sử dụng lệnh service để khởi động/dừng/khởi động lại dịch vụ dhcp
Nếu dhcp không khởi động được (failed), bạn sử dụng lệnh dhcp cùng với card
mạng trên máy tính như sau:
dhcp eth0
Bước 4: Luôn khởi động lại tiến trình dhcp mỗi khi bạn thay đổi tập tin cấu hình
của dịch vụ dhcp này.
Bước 5:Cuối cùng, bạn phải nhớ đặt máy tính ở chế độ lấy địa chỉ IP bằng dịch vụ
DHCP.
Để có thể cấu hình card mạng trên linux sử dụng DHCP, bạn co thể dùng công cụ
soạn thảo bất kỳ để hiệu chỉnh tập tin cấu hình /etc/sysconfig/network-scripts/ifcfg-
ethx (với x là số thứ tự card mạng, bắt đầu từ 0) theo mẫu sau:
#
# File: ifcfg-eth0
#
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Right click vào biểu tượng My Network Places > chọn Properties
Double click vào biểu tượng card mạng Local Area Connection
11. Cấu hình toàn diện Server Linux thông qua công cụ Webmin
11.1. Giới thiệu
Là ứng dụng Web hỗ trợ cho công tác quản trị hệ thống Unix/Linux qua Web, hầu
hết các chương trình ứng dụng của Webmin được Jamie Cameron phát triển. Thông
qua Webmin người dùng có thể logon vào hệ thống Unix/Linux để thực hiện các thao
tác quản trị hệ thống một cách bình thường. Webmin cho phép người quản trị có thể:
Web server port (default 10000): Login name (default admin): root Login
password:
Password again:
The Perl SSLeay library is not installed. SSL not available. Start Webmin at boot
time (y/n): n
Sau khi cài đặt hoàn tất Webmin ta truy xuất Server theo địa chỉ:
http://delilah.swell:10000
Sau khi cài xong Webmin ta có thể dùng Web Browser để truy xuất vào Webmin
Server thông qua địa chỉ http://server:10000/
Nhập username : root và mật khẩu tương ứng để logon vào hệ thống
Thay đổi mật khẩu cho Webmin Password bằng dòng lệnh:
#/usr/libexec/webmin/changepass.pl /etc/webmin root 123456
Restart Webmin bằng dòng lệnh:
#/etc/webmin/stop
#/etc/webmin/start
Tìm hiểu file cấu hình Webmin /etc/webmin/miniserv.conf cho phép ta thay đổi
một số thông tin cấu hình Webmin Server
root=/usr/libexec/webmin
#chỉ định Webmin Type
mimetypes=/usr/libexec/webmin/mime.types addtype_cgi=internal/cgi
realm=Webmin Server
pidfile=/var/webmin/miniserv.pid logtime=168
ppath=
ssl=1
#khai báo biến môi trường lưu trữ thông tin cấu hình Webmin
env_WEBMIN_CONFIG=/etc/webmin
env_WEBMIN_VAR=/var/webmin atboot=0
listen=10000
denyfile=\.pl$
log=1
blockhost_failures=5
blockhost_time=60
syslog=1
session=1
passwd_uindex=0
passwd_pindex=1
passwd_cindex=2
passwd_mindex=4
passwd_mode=0
passdelay=1
preroot=mscstyle3
Sau khi đăng nhập vào Webmin Server ta chọn biểu tượng Webmin configuration
Cho phép hay cấm truy xuất Webmin từ host nào đó trên mạng thông qua IP
Access Control
Allow from all addresses: cho phép tất cả các host khác truy xuất Webmin.
Only allow from listed addresses: Chỉ cho phép các host trong ListBox mới được sử
dụng
Webmin(ta có thể mô tả địa chỉ như sau 172.29.1.0/255.255.255.0 để chỉ định cho
network
address)
Deny from listed addresses: cho phép tất cả các host khác được truy xuất
Webmin nhưng cấm các host nằm trong ListBox.
Port and Addresses: Cho phép hiệu chỉnh Webmin hoạt động trên địa chỉ IP
và Port, nếu ta muốn Webmin hoạt động trên cổng khác thì ta có thể vào mục này để
hiệu chỉnh lại cho phù hợp
Bind to IP address và Listen on port chỉ định Webmin listen 10000 tại địa chỉ
IP(mặc định Webmin listen port 10000 trên tất cả các IP của Server)
Operating System and Environment: Chỉ định loại hệ điều hành và một số
đường dẫn chương trình
Index Page Options: Hiệu chỉnh màn hình chính của thực đơn Webmin
Chọn Webmin Themes để hiệu chỉnh giao diện sử dụng cho Webmin như icons,
colours, background, và cách trình bày Web page cho Webmin.
Tạo Webmin User thông qua mục Create a new Webmin user.
Thông qua Webmin ta có thể cấu hình các thông tin trong hệ thống như:
shutdown/reboot, disk quota, NFS, User/Groups….
Trong màn hình trên là một số các biểu tượng để ta có thể sử dụng và cấu hình hệ
thống tương ứng qua Webmin
Log File Rotation Hỗ trợ việc quản lý và chuyển đổi log file
PAM Authentication
Hỗ
trợ
quản
lý các
thông
Chứng thực cho dịch vụ hệ thống
Running Processes Theo dõi và quản lý các tiến trình hoạt động
trong hệ thống
Scheduled Commands Đặt lịch biểu thực thi lệnh
Security Sentries Thiết lập một số thông tin bảo mật hệ thống
System Documentation Tìm kiếm một số tài liệu trợ giúp có sẳn
trong hệ thống
System Logs Quản lý system log file
Công cụ Server trên Webmin cho phép quản trị Server và một số ứng dụng đang
chạy trong hệ thống.
Trong màn hình trên là một số các biểu tượng để ta có thể sử dụng và cấu hình
Server tương ứng qua Webmin :
Fetchmail Mail Retrieval Hỗ trợ việc nhận mail từ Remote mail server
thông qua
ạng TCP/IP
Frox FTP Proxy Cấu hình Frox FTP proxy
enterprise
Postfix Configuration Cấu hình Postfix mail server
ProFTPD Server
Cấu hình FTP server sử
dụng
Phần mềm ProFTPD Server
Procmail Mail Filter Thiết lập bộ lọc thư cho các hệ thống mail
Read User Mail Hỗ trợ việc đọc thư cho người dùng trong hệ
thống
SSH Server Thiết lập Server SSH để quản trị hệ thống từ
xa
Khoa CNTT – 05CDTH2 Trang 311
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
Công cụ Networking trên Webmin hỗ trợ quản lý và cấu hình mạng trên hệ thống
Unix/Linux.
hệ thống
idmapd daemon Cấu hình NFSV4 server và Client
c
PPTP VPN Client Thiết lập VPN Client
Cung cấp một số công cụ hỗ trợ việc cài đặt quản lý thông tin cấu hình phần cứng
trên hệ thống Unix/Linux
Clustering là một công nghệ máy chủ với khả năng chịu lỗi cao cung cấp những
tính năng như: tính sẵn sàng và khả năng mở rộng. Công nghệ này nhóm các server
và tài nguyên chung thành một hệ thống đơn có khả năng miễn dịch lỗi và tăng hiệu
năng hoạt động. Các máy trạm tương tác với nhóm các server như thể nhóm các
server này là một hệ thống đơn. Nếu một server trong nhóm bị hư, các server khác sẽ
đảm trách phần việc của nó. Tham khảo các chức năng cấu hình Linux Cluster
Cluster Copy File Thực thi cơ chế sao chép file gửa các
Cluster Server server
Cluster Cron Jobs Tạo Cron Jobs cho các cluster Server
s
Cluster Shell Commands Thực thi Shell Commands trên Cluster
Server
r
Cluster Software Packages Quản lý package trên các cluster server
Cluster Users and Groups Quản lý User và group trên Clusterr
Cluster Webmin Servers Quản lý Cluster Webmin Server
Configuration Engine Cấu hình một engine cho Cluster
Heartbeat Monitor Theo dõi đồng bộ giữa các Server
Các thành phần Others trên Webmin hỗ trợ một số tính năng như : Thực thi lệnh
trên Shell, điều chỉnh lệnh, Quản lý file, bảo vệ thư mục Web,…
o Gỏ grub
Khoa CNTT – 05CDTH2 Trang 316
Đề tài: Nghiên cứu & phát triển các dịch vụ mạng trên môi trường Linux
o Gỏ root (hdo,5)
o Gỏ setup (hd0)
o Quit
Như vậy chúng ta đã cài đặt thành công lại phần boot bị mất
Nếu không nhớ phân vùng boot của mình thi ta có thể dùng lệnh sau để kiểm tra
: Find /boot/grub/stage1
- Một phần không thể thiếu trong hệ thông Linux là đứng trên windows ta có thể
đọc được các phân vùng của Linux. Có rất nhiều phần mềm hổ trợ việc này ở đây
chúng tôi dùng công cụ rât gọn nhe là : explore2fs
- Chúng ta có thể đọc ghi phân vùng linux thoải mái như trên môi trường
Windows
12.3. Khắc phục mất Password User Root
Trong trường hợp ta để mất mật khẩu của user quản trị(root user), lúc có nhiều
cách để phục hồi mật khẩu cho user này:
+ Khi GRUB Screen hiển thị ta chọn phím e để edit boot loader(nếu ta có đặt mật
khẩu cho GRUB thì nhập mật khẩu vào).
+ Chọn mục kernel /boot…. Sau đó bấm phím e để edit mục này và thêm từ khóa
-s để vào runlevel 1 sau đó bẩm phím enter
+ Sau khi thực thi bước 3 ta bấm phím b để boot hệ thống vào runlevel 1 và thực
hiện lệnh passwd để thay đổi mật khẩu của user root.
Nhìn chung, mặc dù rất cố gắng nhưng nhóm chưa hoàn thành được yêu cầu là xây
dựng được các dịch vụ mạng như đề tài đã đặt ra.
Cụ thể hơn, nhóm mới chỉ tìm hiểu và nghiên cứu được một số dịch vụ như đã
trình bày ở trên, còn một số dịch vụ vẫn chưa làm được.
Những dịch vụ đã làm được nhưng tìm hiểu vẫn chưa thật sâu như: Web server….
Những dịch vụ chưa tìm hiểu được kỉ: Mail Server, SSH ….
• Ưu điểm:
- Phát triển các dịch vụ theo hướng nguồn mở (open source) hoàn toàn miễn phí.
- Tích hợp gần như đầy đủ dịch vụ cho việc quản trị hệ thống.
• Nhược điểm:
- Không cung cấp kĩ hướng dẫn cách sử dụng các lệnh trong hệ thống.
[1] Trần Thạch Tùng, Bảo mật và Tối ưu trong Red Hat Linux, 2003
[2] Tiêu Đông Nhơn, Giáo trình hệ điều hành Linux, NXB ĐH QG TP.HCM
[3] Tiêu Đông Nhơn, Giáo trình dịch vụ mạng Linux, NXB ĐH QG TP.HCM
[1] www.diendanlinux.org
[2] www.quantrimang.com