Tài liệu Đề tài Giới thiệu về Linux: Đồ án tốt nghiệp
1
Mục lục
Ch−ơng I: Giới thiệu về Linux ...........................................................................4
1.1Sơ l−ợc về Linux................................................................................................4
1.1.1 Giới thiệu về hệ điều hành Unix............................................................4
1.1.2 Giới thiệu về hệ điều hành Linux..........................................................5
1.2 Tính năng của Linux. .......................................................................................7
1.3 Vấn đề bản quyền.............................................................................................8
1.4 So sánh Linux và các hệ điều hành khác..........................................................9
1.4.1 So sánh Linux với Windows 95, Windows 98. .....................................9
1.4.2 So sánh Linux với Windows NT. ........................................................10
1.5 Yêu cầu về ...
104 trang |
Chia sẻ: hunglv | Lượt xem: 1602 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Giới thiệu về Linux, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Đồ án tốt nghiệp
1
Mục lục
Ch−ơng I: Giới thiệu về Linux ...........................................................................4
1.1Sơ l−ợc về Linux................................................................................................4
1.1.1 Giới thiệu về hệ điều hành Unix............................................................4
1.1.2 Giới thiệu về hệ điều hành Linux..........................................................5
1.2 Tính năng của Linux. .......................................................................................7
1.3 Vấn đề bản quyền.............................................................................................8
1.4 So sánh Linux và các hệ điều hành khác..........................................................9
1.4.1 So sánh Linux với Windows 95, Windows 98. .....................................9
1.4.2 So sánh Linux với Windows NT. ........................................................10
1.5 Yêu cầu về phần cứng. ...................................................................................11
Ch−ơng II : các lệnh Linux cơ bản...................................................................14
2.1 Các ph−ơng thức hoạt động của dòng lệnh ....................................................14
2.2 Trang Man ....................................................................................................15
2.3 Các quy −ớc. ...................................................................................................16
2.4 Các lệnh cơ bản trong Linux. .........................................................................16
2.4.1 Th− mục và lệnh về th− mục. ..............................................................16
2.4.1.1 Một số th− mục đặc biệt..............................................................16
2.4.1.2 Các lệnh chính liên quan đến th− mục. .......................................18
2.4.2 Tập tin và các lệnh về tập tin...............................................................20
2.4.2.1 Các kiểu tập tin trong Linux........................................................20
2.4.2.2 Các lệnh về tập tin. ......................................................................21
2.4.3 Lệnh về Destop....................................................................................24
2.4.4 Lệnh về trình báo màn hình. ...............................................................25
2.4.5 Các lệnh liên quan đến tài khoản ng−ời dùng. ....................................25
2.4.5.1 Các lệnh liên quan đến ng−ời dùng..............................................25
2.4.5.2 Thay đổi thuộc tính ng−ời dùng. ..................................................26
2.4.5.3 Xoá bỏ một ng−ời dùng...............................................................27
2.4.6 Các lệnh liên quan đến nhóm ng−ời dùng...........................................27
2.4.7 Các lệnh khác có liên quan đến ng−ời dùng. ......................................28
2.4.8 Các lệnh liên quan đến quản lý thiết bị. ..............................................30
2.4.9 Các lệnh về phân quyền.......................................................................32
2.5 Shell. ...............................................................................................................33
Ch−ơng III: samba............................................................................................37
3.1 Giới thiệu tổng quan.......................................................................................37
3.2 Cài đặt.............................................................................................................37
3.3 cấu hình ..........................................................................................................38
3.3.1 cấu hình global setting: .......................................................................39
Đồ án tốt nghiệp
2
3.3.2 cấu hình Sharing Setting......................................................................42
3.4 Chia sẻ file......................................................................................................43
3.5 Kiểm tra cấu hình vừa thiết lập ......................................................................44
3.5.1 Kiểm tra bằng công cụ Testparm ........................................................44
3.5.2 Kiểm tra bằng công cụ smbstatus .......................................................45
3.6 Chạy samba server..........................................................................................46
3.6.1 Sử dụng câu lệnh smbclient.................................................................47
3.6.2 Truy cập từ máy Windows ..................................................................49
Ch−ơng IV: Squid proxy server........................................................................50
4.1. Tầm quan trọng và ph−ơng thức hoạt động của Squid cache........................50
4.2. Cài đặt............................................................................................................52
4.3. Tập tin cấu hình /etc/squid/squid.conf ..........................................................52
4.4. Cấu hình các tùy chọn cơ bản .......................................................................53
4.5. Access control list .........................................................................................54
4.6. Khởi động squid ............................................................................................56
Ch−ơng V: Cấu hình WEB SERVER...............................................................58
5.1 Cài đặt apache, php, mysql.............................................................................58
5.1.1 Download và cài đặt Apache...............................................................58
5.1.2 Download và cài đặt php .....................................................................59
5.1.3 Download và cài đặt Mysql.................................................................60
5.2 Cấu hình Apache cơ bản.................................................................................63
5.3 Cấu hình bảo mật apache................................................................................67
5.3.1 Giới hạn địa chỉ ip. ..............................................................................67
5.3.2 Giới hạn truy cập theo tài khoản sử dụng............................................69
Ch−ơng VI: Bảo mật với Firewall, ip tables ...................................................78
6.1 FireWall..........................................................................................................78
6.1.1 Định nghĩa...........................................................................................78
6.1.2 Chức năng............................................................................................78
6.1.3 Cấu trúc của FireWall ........................................................................78
6.1.4 Các thành phần của FireWall ..............................................................79
6.1.4.1 Bộ lọc packet (Packet filtering router) .........................................79
6.1.4.2 Cổng ứng dụng (application-level getway) .................................80
6.1.4.3 Cổng mạch (circuit-Level Gateway) ...........................................81
6.1.5 Những hạn chế của firewall.................................................................82
6.2 IpTables ..........................................................................................................82
6.2.1 Tổng quan về iptables..........................................................................82
6.2.2 Bảng filter...........................................................................................83
6.2.3 Bảng nat ...........................................................................................84
6.2.4 Bảng mangle........................................................................................85
Đồ án tốt nghiệp
3
6.2.5 Cấu hình iptables .................................................................................87
6.2.5.1 Cú pháp cơ bản của iptables........................................................87
6.2.5.2 Các lệnh của iptables....................................................................88
6.2.5.3 Các điều kiện trong luật ...............................................................90
6.2.5.3.1 Nhóm các điều kiện chung....................................................90
6.2.5.3.2 Nhóm các điều kiện ẩn..........................................................92
6.2.5.3.3 Nhóm các điều hiện hiện.......................................................93
6.2.5.4 Các hành động trong luật .................................................................95
6.2.5.4.1 user-defined-chain................................................................95
6.2.5.4.2 DROP ....................................................................................96
6.2.5.4.3 REJECT.................................................................................96
6.2.5.4.4 RETURN...............................................................................96
6.2.5.4.5 SNAT.....................................................................................96
6.2.5.4.6 MASQUERADE ...................................................................97
6.2.5.4.7 DNAT....................................................................................98
6.2.5.5 Các ví dụ.......................................................................................99
Tài liệu tham khảo..........................................................................................103
Đồ án tốt nghiệp
4
Ch−ơng I: Giới thiệu về Linux
1.1Sơ l−ợc về Linux.
1.1.1 Giới thiệu về hệ điều hành Unix.
Năm 1964, Bell Labs, MIT & General Electric phát triển một hệ điều hành
gọi là MULTICS(Multiplexed Information and Computing System). Sau đó năm
1969, Ken Thompson (một lập trình hệ thống của Bell labs) nghĩ rằng ông ta có
thể làm một hệ điều hành tốt hơn. Vì vậy, ông ta đã viết một hệ điều hành trên hệ
thông máy tính PDP-7, và hệ điều hành này đ−ợc gọi là Unix. Mục tiêu khởi đầu
là cung cấp một môi tr−ờng máy tính hoá để mô phỏng trò chơi không gian.
Nh−ng có một vấn đề xảy ra là phiên bản Unix này không thể chạy đ−ợc trên hệ
thống phần cứng khác. Do đó đến năm 1973 Ritchie và Thompson đã viết lại hệ
điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành truyền thống ghi
bằng ngôn ngữ máy, do đó Unix rất dễ cài đặt trên các hệ máy khác. Năm 1974
hệ điều hành Unix đã đ−ợc cài đặt trên các máy DEC PDP-11 ở hơn 100 tr−ờng
đại học. Mục tiêu chủ yếu là cung cấp môi tr−ờng cho các lập trình viên chuyên
nghiệp. Vì thế, Unix ngày càng thông dụng và ngày càng có thêm nhiều đặc tính
mới đ−ợc bổ xung. Sau đó chính phủ và quân đội Mỹ đã sử dụng Unix để nối
mạng toàn cầu (Internet).
Đến nay đã có hàng trăm ngàn hệ thống Unix cài đặt trên khắp thế giới. Hầu
hết các hãng sản xuất máy đều có một phiên bản cho Unix. Tuy nhiên hiện nay
để chuẩn hoá hệ điều hành Unix, ng−ời ta quy −ớc các tập lệnh chuẩn và gọi là
Unix System V Release 4. Trên máy PC hiện nay phổ biến hai hệ điều hành là
SCO Unix và SUN Solaris.
• Các đặc điểm cơ bản của hệ điều hành Unix
Đồ án tốt nghiệp
5
- Đa nhiệm (Multitasking).
- Nhiều ng−ời sử dụng (Multiuser).
- Bảo mật(security).
- Độc lập phần cứng (multi platform).
- Kết nối mở.
- Dùng chung thiết bị.
- Tổ chức tập tin phân cấp.
• Ưu điểm của hệ điều hành Unix:
- Hệ thống đ−ợc viết trên ngôn ngữ C nên dễ đọc, dễ hiểu, dễ thay
đổi để cài đặt trên loại máy mới.
- Có giao diện ng−ời dùng đơn giản, cho phép xây dựng các ch−ơng
trình phức tạp từ các ch−ơng trình đơn giản hơn.
- Đây là hệ đa ng−ời dùng đa tiến trình , mỗi ng−ời dùng có thể
thực hiện nhiều ch−ơng trình mỗi ch−ơng trình có thể có nhiều tiến
trình.
- Che đi cấu trúc máy đối với ng−ời dùng, có thể viết ch−ơng trình
chạy trên các điều kiện phần cứng khác nhau.
- Sử dụng hệ thông file có cấu trúc.
1.1.2 Giới thiệu về hệ điều hành Linux.
Linux là một trong những hệ điều hành phổ thông nhất
bởi sự phân phối và cơ sở hỗ trợ mở rộng của nó. Ban đầu,
Linux đ−ợc phát triển d−ới dạng một hệ thống đa nhiệm cho
máy tính mini và máy chủ vào giữa thập niên 70. Kể từ đó đến
nay Linux lớn mạnh và trở thành một trong những hệ điều
hành đ−ợc sử dụng rộng rãi nhất.
Đồ án tốt nghiệp
6
Linux là phiên bản của Unix đ−ợc phân phối miễn phí và ban đầu do Linus
Torvalds thực hiện và phát triển. Ông bắt đầu nghiên cứu Linux vào năm 1991
khi còn là sinh viên tr−ờng đại học Helsinki ở Phần Lan. Linux đ−ợc xây dựng và
phát triển từ hệ điều hành Minix (một phiên bản của Unix). Lúc đầu, Linus tung
ra phiên bản Linux đầu tiên trên Internet cho mọi ng−ời sử dụng miễn phí, điều
đó vô tình dấy lên một hiện t−ợng phát triển phần mềm lớn. Linux đ−ợc xác lập
và duy trì bởi một nhóm hợp tác gồm vài ngàn nhà phát triển phần mềm tình
nguyện cùng làm việc qua Internet. Các công ty cung cấp hỗ trợ Linux để phát
triển nó thành loại sản phẩm dễ cài đặt với mục đích kinh doanh các trạm làm
việc có cài sẵn phần mềm Linux.
Vào ngày 5 tháng 10 năm 1991, Linus đã công bố phiên bản Linux chính
thức đầu tiên, phiên bản 0.02. Bắt nguồn từ hệ điều hành Minix của Andrew
Tanenbaum, Linux ban đầu chỉ là một dự án mà trong đó Linux muốn xây dựng
một hệ unix đơn giản có thể chạy trên PC 386. Phiên bản này đ−ợc xác định nh−
một hệ thống của các hacker. Vấn đề chính là phát triển kernel chứ không phải
không phải nhằm mục đích hỗ trợ ng−ời dùng hay để phân phối. Nh−ng đến nay
sự hoàn thiện thực sự trong thế giới Linux đã giải quyết đ−ợc vấn đề môi tr−ờng
ng−ời sử dụng đồ hoạ, gói sản phẩm dễ dàng cài đặt và các ứng dụng cao cấp
nh−: tiện ích đồ hoạ và các bộ phiên bản sản phẩm.
Từ khi phiên bản Linux đầu tiên ra đời cho đến nay thì đã có rất nhiều
phiên bản Linux mới ra đời cùng với nhiều tính năng mới đ−ợc thêm vào nhằm
phục vụ, hỗ trợ những tiện ích ngày càng cao của ng−ời dùng.
Vì Linux đ−ợc phát triển từ hệ điều hành Minix(một phiên bản của Unix)
nên Linux cũng có những đặc tính và −u điểm của hệ điều hành Unix:
- Linux cũng đ−ợc viết bằng C.
- Linux cũng là đa ng−ời dùng, đa nhiệm, là hệ điều hành mạng.
Đồ án tốt nghiệp
7
- Linux cung cấp môi tr−ờng đầy đủ cho lập trình và phát triển.
- Linux chạy trên nhiều hệ thống phần cứng khác nhau:
Bộ xử lý 86(Celeron/PII/PIII/PIV/Pentium/80386/80486).
Máy Macintosh.
Bộ xử lý Cyrix.
Bộ xử lý AMD.
Bộ xử lý Sun Microsystems Sparc processor.
Bộ xử lý Alpha(Compaq).
1.2 Tính năng của Linux.
Linux là một hệ điều hành đa ng−ời sử dụng: Nghĩa là nhiều ng−ời có thể sử
dụng máy tính có cài Linux tại một thời điểm.
Linux là một hệ điều hành đa nhiệm: Tại một thời điểm một ng−ời sử dụng
có thể thực hiện đồng thời nhiều tác vụ. Với hệ điều hành đơn ch−ơng nh− MS-
DOS một lệnh thực hiện sẽ chiếm toàn bộ thời gian CPU xử lý, bạn chỉ có thể
thực hiện lệnh kế tiếp khi lệnh tr−ớc đó đã thực hiện xong. Còn trong Linux, bạn
có thể thực hiện cùng lúc nhiều lệnh.
Linux gần nh− t−ơng thích với nhiều chuẩn Unix ở cấp nguồn bao gồm tính
năng BSD, IEEE POSIX.1 và System V. Linux đ−ợc phát triển và rất chú trọng
tới tính khả chuyển nguồn. Do đó bạn có thể dùng chung nh−ng tính năng trong
hệ Linux qua thi hành Unix.
Linux còn hỗ trợ cho bàn phím tùy biến hoặc theo chuẩn quốc gia sử dụng
trình điều khiển bàn phím khả tải động. Linux còn hỗ trợ các console ảo, cho
phép bạn chuyển đổi giữa nhiều phiên bản đăng nhập từ console hệ thống trong
chế độ văn bản.
Linux có thể tồn tại trên hệ thống có hệ điều hành khác nh− windows 95,
Windows 98, Windows NT, Windows XP, OS/2 hoặc những phiên bản khác của
Đồ án tốt nghiệp
8
Unix. Bộ nạp khởi động Linux cho phép bạn lựa chọn hệ điều hành để bắt đầu
vào thời đIểm khởi động và Linux cũng t−ơng thích với các bộ nạp khởi động
khác.
Linux có thể chạy trên nhiều kiến trúc CPU bao gồm:
X86(Celeron/PII/PIII/PIV/Pentium/80386/80486), SPARC, Alpha, PowerPc,
MIPS và m68k.
Linux hỗ trợ nhiều kiểu file khác nhau để l−u dữ liệu.
Hỗ trợ mạng là một trong những sức mạnh lớn nhất của Linux cả về chức
năng lẫn tính năng. Linux cung cấp cài đặt hoàn hảo về mạng TCP/IP, bao gồm
các trình điều khiển thiết bị cho nhiều card Ethernet thông dụng, PPP và SLIP,
Parallel Line Internet Protocol (PLIP) và Network Fle System (NFS). Có rất
nhiều ứng dụng khách và dịch vụ TCP/IP đ−ợc hỗ trợ nh− FTP, Telnet, Simple
Mail Transfer Protocol (SMTP). Linux kernel còn hỗ trợ t−ờng lửa mạng hoàn
hảo, cho phép bạn cấu hình bất cứ máy Linux nào d−ới dạng t−ờng lửa.
1.3 Vấn đề bản quyền.
Linux đ−ợc cấp giấy phép công cộng GNU General Public Licence hay
GPL.GPL đôi khi đ−ợc gọi là giấy phép “không bản quyền”. Giấy phép này đ−a
ra các điều khoản ràng buộc việc phân phối và sửa đổi phần mềm miễn phí(free
software).
Ban đầu, Linus Torvalds tung ra Linux với giấy phép hạn chế hơn GPL. Giấy
phép này cho phép tự do phân phối và sửa đổi phần mềm nh−ng không cho phép
thay đổi giá thành đối với việc sử dụng và phân phối sản phẩm đó. GPL cho phép
bán và thu lợi từ phần mềm miễn phí nh−ng không cho phép hạn chế quyền phân
phối phần mềm của ng−ời khác d−ới bất kỳ hình thức nào.
Mọi tổ chức bán phần mềm miễn phí phải tuân theo những giới hạn nhất định
đ−a ra trong GPL:
Đồ án tốt nghiệp
9
- Thứ nhất, họ không thể hạn chế quyền của ng−ời sử dụng tức là
ng−ời mua phần mềm. Nghĩa là khi bạn mua CD_ROM với phần
mềm GPL , bạn có thể sao chép và phân phối miễn phí CD_ROM
đó hoặc cũng có thể bán lại.
- Thứ hai, nhà phân phối phải nói rõ cho ng−ời sử dụng biết rằng
phần mềm này thực sự hoạt động trong phạm vi giấy phép GPL.
- Thứ ba, nhà phân phối phải cung cấp miễn phí mã nguồn đầy đủ
cho phần mềm phân phối. Điều này giúp cho bất kì ai mua phần
mềm GPL đều có thể sửa đổi phần mềm đó.
Linux là một phần mềm thuộc GPL nên nó cũng tuân theo nh−ng quy tắc của
GPL. Vì vậy Linux đ−ợc coi nh− là phần mềm có mã nguồn mở (Open source).
Nghĩa là mã nguồn của Linux phải là mở với tất cả mọi ng−ời muốn sử dụng nó,
và có thể sửa đổi và phát triển một cách tự do. Và nếu thực hiện thay đổi tới
ch−ơng trình thì những thay đổi này cũng phải “mở” đối với mọi ng−ời dùng.
1.4 So sánh Linux và các hệ điều hành khác.
Vấn đề đầu tiên có thể nói là chúng ta có thể chạy Linux với một số hệ điều
hành khác nh− Windows 95, Windows 98, Windows NT, OS/2...mà không gặp
trục trặc gì.
1.4.1 So sánh Linux với Windows 95, Windows 98.
Không có gì lạ khi chạy cả Linux lẫn Windows 95/98 trên cùng một hệ
thống. Nhiều ng−ời sử dụng Linux dùng Windows nh− một công cụ xử lý từ.
Nghĩa là ng−ời sử dụng sẽ dùng Windows để khai thác các ứng dụng th−ơng mại
có trong Windows nh−: Microsoft Word, Microsoft Exel...mà trong Linux không
có sẵn.
Đồ án tốt nghiệp
10
Windows 95 và Windows 98 không tận dụng hết đ−ợc chức năng của bộ
xử lý X86. Mặt khác, Linux hoàn toàn chạy trong chế độ bảo vệ của bộ xử lý và
khai thác triệt để các tính năng của máy, kể cả đa bộ vi xử lý.
Có thể khẳng định rằng Windows và Linux là những thực thể hoàn toàn
khác biệt. Windows có giá cả hợp lý(so với các hệ điều hành th−ơng mại khác)
và có vị trí vững chắc trong thế giới máy tính PC. Không có hệ điều hành nào cho
PC lại đạt đ−ợc mức độ phổ cập nh− Windows. Tuy nhiên Linux lại là hệ điều
hành miễn phí và chính điều đó cũng làm cho nó ngày càng trở nên thông dụng.
1.4.2 So sánh Linux với Windows NT.
Cũng nh− Linux, Windows NT(và các phiên bản Windows phát triển từ
Windows NT) là hệ điều hành đa nhiệm đầy đủ, hộ trợ máy đa bộ xử lý, kiến trúc
CPU, bộ nhớ ảo, nối mạng, bảo mật... Tuy nhiên, khác biệt giữa Linux và
Windows NT là Linux là phiên bản của Unix. Có nhiều cài đặt từ phía công ty
cung cấp nh−ng có một vấn đề nan giải là việc chuẩn hoá d−ới dạng hệ thống mở,
nh−ng không một công ty nào có thể kiểm soát đ−ợc thiết kế này. Mặt khác,
Windows NT là một hệ thống đặc quyền. Giao diện và thiết kế là do một công ty
kiểm soát, đó là Microsoft và chỉ công ty đó mới cài đặt thiết kế. Về một ý nghĩa
nào đó thì hình thức tổ chức này là có lợi: nó thiết lập tiêu chuẩn nghiêm ngặt
cho việc lập trình và giao diện ng−ời sử dụng không giống nh− trong cộng đồng
hệ thống mở.
Windows NT là cả sức mạnh đầy đủ của bộ máy tiếp thị Microsoft, trong
khi đó Linux có cộng đồng hàng nghìn nhà lập trình đang góp phần cải tiến hệ
thống này qua mẫu Open Source. Những điểm quy chuẩn của Linux so với
Windows NT đã chứng minh rằng mỗi hệ thống có điểm mạnh và điểm yếu
riêng. Linux v−ợt xa Windows NT trong lĩnh vực mạng. Linux cũng nhỏ hơn NT
nh−ng lại th−ờng ổn định hơn.
Đồ án tốt nghiệp
11
1.5 Yêu cầu về phần cứng.
Một đặc điểm v−ợt trội của Linux chính là nó chạy đ−ợc trên hầu hết các
loại máy tính cơ bản.
Máy desktop: Bao gồm các phần cứng của Intel và Intel t−ơng thích, các
chip PowerPC, Sun Sparcs, DEC Alpha và nhiều loại khác. Bạn cũng không cần
thiết phải có đời máy hiện đại nhất, mới nhất, LINUX có tính môdun cao, nếu
loại bớt các thứ "phụ tùng", LINUX có thể chạy trên máy 386 và chỉ cần 150 MB
đĩa trống, 2MB RAM. Một số nhà phát triển còn viết LINUX chạy từ một đĩa
mềm duy nhất !
Máy laptop: Linux cũng hoạt động tốt trên nhiều laptop nh− Apple
PowerBooks, IBM ThinkPad, Toshiba Tecras. Điều kỳ diệu là LINUX có thể
chạy cả trên Intel và Mac, ít nhất là với các phần cứng cơ bản (bo mạch chính, bộ
vi xử lý, bộ nhớ).
Có rất nhiều các loại phần cứng khác nhau, các ký hiệu khác nhau (nh−
SCSI, IDE, BIOS ... ). Hầu hết, các thông tin về máy tính đều đ−ợc chứa trong
BIOS và bạn có thể thấy đ−ợc khi khởi động khi ấn các phím đặc biệt (F1, Del,
...). Nếu bạn đang dùng Win95 hay WinNT thì các thông tin đó có thể tìm thấy
trong mục system properties của Control Panel.
Sau đây là danh sách các thiết bị cần tìm hiểu:
• CD-ROM: Do Linux hỗ trợ hầu hết các trình điều khiển CD-ROM nên
cách đơn giản nhất để cài đặt là nối ổ CD-ROM với card SCSI hay IDE
bus. Nếu CD-ROM nối với IDE bus thì nó phải là loại t−ơng thích với
ATAPI.
• ổ mềm: Phải là loại 3,5 in 1,44MB.
Đồ án tốt nghiệp
12
• ổ cứng: Giống nh− CD-ROM, nó có thể đ−ợc nối với IDE hay SCSI bus.
Bạn nên ghi lại số cylinders của ổ cứng - đ−ợc chỉ ra trong BIOS (ý nghĩa
của cylinder sẽ đ−ợc giải thích sau).
• Bus nội bộ: Linux hiện tại không hỗ trợ bus với kiến trúc Micro-Chanel.
Các bus đ−ợc hỗ trợ là PCI, ISA, EISA, VL Bus. Hầu hết các máy sản
xuất sau năm 1995 đều có PCI bus.
• Bộ nhớ: Linux cần tối thiểu 8MB RAM để có thể chạy đ−ợc.
• Sound card: Không cần thiết cho quá trình cài đặt, song nếu bạn có
Creative Labs Sound Blaster hay card sound t−ơng thích, bạn sẽ dễ dàng
có đ−ợc âm thanh trong quá trình cài đặt.
• Video card: Thông tin cần thiết ở đây là loại chip và dung l−ợng bộ nhớ.
Nếu là loại card PCI thì thông tin này có thể tự động nhận biết trong quá
trình cài đặt (thông tin này chỉ thực sự cần thiết nếu bạn có ý định dùng
Xwindow).
Việc tiếp theo là so sánh danh sách phần cứng bạn có với danh sách đ−ợc
Linux hỗ trợ:
Thiết bị Các thiết bị t−ơng thích
CD-Rom Drive IDE ATAPI-compliant, SCSI CD-Rom
Hard Drive Các loại IDE, EIDE, SCSI. Một số loại Ultra
DMA không làm việc đ−ợc vì không t−ơng thích
với chuẩn EIDE
SCSI Controller Hầu hết các điều khiển SCSI thông dụng nh−
BusLogic và Adaptec
Video card Các loại card ATI, Cirrus và Matrox, S3...
Đồ án tốt nghiệp
13
Nếu phần cứng của bạn không đ−ợc hỗ trợ thì chỉ còn cách:
Thay đổi phần cứng sao cho t−ơng thích.
Chờ cho đến khi Linux hỗ trợ phần cứng của bạn.
Tốt hơn là nên tránh các thiết bị mang nhãn Plug&Play. Bởi vì Linux mới chỉ
đang bắt đầu hỗ trợ các thiết bị này, do đó sẽ rất phức tạp khi cài đặt. Bạn cũng
nên thận trọng với các phần cứng đ−ợc liệt vào loại Win-item (nh− Winmodem
và Winprinter) vì chúng chỉ hoạt động trong môi tr−ờng Window.
*Các thông tin về mạng
Trong tr−ờng hợp máy tính có nối mạng Lan sử dụng giao thức TCP/IP,
bạn có thể phải có những thông tin sau:
Hostname
Domain Name
IP Address
Netmask
Default Gateway
Primary Namesever
Secondary Nameserver
NFS Server (optional)
FTP Server (optional)
Đồ án tốt nghiệp
14
Ch−ơng II : các lệnh Linux cơ bản
2.1 Các ph−ơng thức hoạt động của dòng lệnh
Các lệnh trong Linux đ−ợc chia làm hai loại là câu lệnh và ch−ơng trình.
Điểm khác nhau giữa câu lệnh và ch−ơng trình là: đối với các câu lệnh Linux đã
có cài sẵn các phản ứng và khi bạn gõ lệnh, Linux sẽ đáp ứng các câu lệnh đó.
Còn đối với ch−ơng trình, nó sẽ tìm ch−ơng trình có tên thích hợp rồi thực hiện
ch−ơng trình đó.
Nhiều lệnh trong Linux cho phép đầu ra của một lệnh này là đầu vào của
lệnh khác. Để làm đ−ợc điều đó bạn chỉ cần đánh dấu “|” ngăn cách giữa hai
lệnh. Còn nếu câu lệnh dài quá bạn có thể ngắt xuống dòng bằng cách thêm dấu
“\” tại cuối dòng (dấu “\” phải là kí tự cuối cùng của dòng lệnh). Khi bạn muốn
đánh nhiều lệnh một lúc thì bạn chỉ cần đánh dấu “,” giữa các câu lệnh, từ đó các
câu lệnh sẽ đ−ợc thực hiện một cách tuần tự.
Linux còn cung cấp nhiều sự tiện lợi khi sử dụng các lệnh, đặc biệt là khả
năng hoàn chỉnh lệnh bằng việc sử dụng phím tab. Bạn cũng có thể sử dụng mũi
tên lên/xuống trên bàn phím để nhận đ−ợc các câu lệnh đã sử dụng lúc tr−ớc.
Một số phím tắt để thực hiện lệnh các thao tác đơn giản khi nhập lệnh.
- Nhấn phím ESC +BACKSPACE để xoá một từ bên trái con
trỏ.
- Nhấn phím ESC +D để xoá một từ bên phải con trỏ.
- Nhấn phím ESC +F để di chuyển con trỏ sang phải một từ.
- Nhấn phím ESC +B để di chuyển con trỏ sang trái một từ.
- Nhấn phím CTRL +A di chuyển con trỏ về đầu dòng lệnh.
- Nhấn phím CTRL +E di chuyển con trỏ về cuối dòng lệnh.
- Nhấn phím CTRL +U để xoá dòng lệnh hiện tại.
Đồ án tốt nghiệp
15
Bạn có thể nhấn phím ALT thay cho phím ESC.
2.2 Trang Man
Linux là một hệ điều hành rất phức tạp với rất nhiều câu lệnh có thể kết
hợp với nhau để thực hiện hàng nghìn các thao tác khác nhau. Hầu hết các câu
lệnh đều có kèm theo một số các tuỳ chọn lệnh hay những thông tin quan trọng.
Trong Linux có tới hơn 1000 lệnh và chắc chắn rằng chúng ta không thể nhớ hết
đ−ợc. Sử dụng trang Man sẽ giúp chúng ta giải quyết đ−ợc đIều đó.
Trang Man (Manual page), là một tài liệu trực tuyến trong Linux l−u trữ
toàn bộ các lệnh có sẵn với các thông tin tham khảo đầy đủ.
Để mở trang Man của một lệnh, bạn hãy gõ:
man
Cách trình bày chung của một trang Man sẽ nh− sau:
NAME
Tên lệnh và khái quát tác dụng của lệnh.
SYNOPSIS
Cú pháp của lệnh.
DESCRIPTION
Mô tả cụ thể hơn về tác dụng của lệnh.
OPTIONS
Liệt kê các tuỳ chọn lệnh và tác dụng của chúng.
FILES
Liệt kê các tập tin mà lệnh sử dụng hoặc tham chiếu đến.
SEE ALSO
Liệt kê các lệnh, các tài liệu có liên quan đến lệnh.
REPORTING BUGS
Địa chỉ liên hệ nếu gặp lỗi khi sử dụng lệnh.
Đồ án tốt nghiệp
16
AUTHOR
Tên tác giả của lệnh.
2.3 Các quy −ớc.
Có một bộ quy −ớc mô tả chính xác và nhất quán cú pháp lệnh trong
Linux. Bộ quy −ớc này quy định tuỳ chọn hay tham số nào buộc phải dùng, tuỳ
chọn hay tham số nào không nhất thiết phải dùng...
- Bất cứ từ nào đứng một mình hay không ở trong các dấu [], {}, thì phải
gõ y nh− vậy.
- Từ nằm trong dấu ngoặc vuông ( [] ) là tuỳ ý có thể gõ hoặc không.
- Từ nào nằm trong dấu là bắt buộc phải có và đ−ợc thay thế bằng từ
thích hợp.
- Từ nào nằm trong dấu {} là chọn một trong các giá trị trong ngoặc đó.
- Dấu ... th−ờng đ−ợc dùng với các tham số nh− tên tập tin.
- Khi cần có thể kết hợp các dấu ngoặc với nhau để tạo ra cách sử dụng
tham số mới.
Ngoài những quy −ớc trên, có một điều cần l−u ý nữa là trong dòng lệnh
Linux có phân biệt chữ hoa và chữ th−ờng.
Trong Linux có hai ký tự đại diện phổ biến là “* “ và “?”. “*” là ký tự đại
diện thông dụng nhất, nó thay cho một hay nhiều kí tự. Và “?” là ký tự đại diện
cho một ký tự duy nhất.
2.4 Các lệnh cơ bản trong Linux.
2.4.1 Th− mục và lệnh về th− mục.
2.4.1.1 Một số th− mục đặc biệt.
- Th− mục / : Đây là th− mục gốc chứa đựng tất cả các th− mục con có
trong hệ thống.
Đồ án tốt nghiệp
17
- Th− mục /root : Đ−ợc sử dụng để l−u trữ các tập tin tạm thời, nhân
Linux và các hình ảnh khởi động, các tập tin nhị phân quan trọng, các
tập tin đăng nhập....
- Th− mục /bin : Một ch−ơng trình đ−ợc coi là khả thi nếu nó có thể thực
hiện đ−ợc và khi biên dịch nó có dạng là tâp tin nhị phân. Nghĩa là một
ch−ơng trình ứng dụng trong Linux là một tập tin nhị phân khả thi. Và
th− mục /bin chính là nơi l−u trữ các tập tin nhị phân khả thi đó. Nh−ng
theo thời gian ngày càng có nhiều tập tin nhị phân khả thi nên có thêm
các th− mục nh− /sbin, /usr/bin đ−ợc sử dụng để l−u trữ các tập tin đó.
- Th− mục /dev : L−u trữ tất cả các trình điều khiển thiết bị.
- Th− mục /etc :L−u trữ tất cả các thông tin hay tệp tin cấu hình hệ
thống.
- Th− mục /lib : L−u trữ các th− viện hàm và thủ tục.
- Th− mục /lost+ found : Một tập tin đ−ợc khôi phục sau khi có bất kỳ
một vấn đề hay một trục trặc nào trên hệ thống đều đ−ợc l−u vào tập tin
này.
- Th− mục /mnt : Là nơi để kết nối các thiết bị (đĩa cứng, đĩa mềm,…)
vào hệ thống tệp tin chính.
- Th− mục /tmp : Th− mục này đ−ợc rất nhiều ch−ơng trình trong Linux
sử dụng nh− một nơi l−u các tập tin tạm thời. Ví dụ nh− bạn soạn thảo
một tệp tin, ch−ơng trình sẽ tạo ra một tập tin là bản sao của tệp tin đó
và l−u vào trong th− mục /tmp. Bạn sẽ soạn thảo trực tiếp trên tập tin
tạm thời này và sau khi soạn thảo xong, tập tin sẽ đ−ợc ghi đè lên tập
tin gốc của bạn.
Đồ án tốt nghiệp
18
- Th− mục /usr : Thông th−ờng th− mục này là trung tâm l−u tất cả các
câu lệnh h−ớng đến ng−ời dùng. Tuy nhiên ngày nay thì hầu hết các tập
tin nhị phân của Linux đều đ−ợc l−u trữ tại th− mục này.
- Th− mục /home : L−u trữ các th− mục cá nhân của ng−ời dùng.
- Th− mục /var : Đ−ợc sử dụng để l−u trữ các thông tin luôn luôn thay
đổi.
- Th− mục /boot : Là th− mục chứa nhân của hệ thống, system.map (tập
tin ánh xạ đến các driver để nạp các hệ thống tập tin khác),....Th− mục
này cho phép khởi động và nạp lại bất kỳ trình điều khiển nào đ−ợc yêu
cầu để đọc các hệ thống tập tin khác.
- Th− mục /proc : Là th− mục dành cho nhân hệ thống (kernel).
- Th− mục /mise và th− mục /opt : Bạn có thể l−u trữ mọi thứ bạn thích
vào th− mục này.
- Th− mục /sbin : L−u các tập tin hệ thống th−ờng tự động chạy.
Ngoài ra còn hai th− mục đặc biệt tồn tại trong Linux, đó là hai th− mục
đ−ợc biểu hiện bởi dấu “.” và “..”.
- Dấu “.” biểu hiện cho th− mục hiện hành.
- Dấu “..” biểu hiện cho th− mục cha của th− mục hiện hành.
2.4.1.2 Các lệnh chính liên quan đến th− mục.
• Xác định th− mục hiện thời với lệnh pwd
Cú pháp lệnh:
pwd
Lệnh này cho bạn biết hiện bạn đang ở trong th− mục nào.
Mặc định, Linux luôn đặt bạn vào th− mục các nhân của bạn khi đăng nhập.
• Xem thông tin về th− mục với lệnh ls
Cú pháp lệnh :
Đồ án tốt nghiệp
19
ls [tuỳ chọn lệnh]...[th− mục]...
Lệnh này đ−a ra thông tin về th− mục, nếu không có thì mặc định là thông
tin hiện thời đ−ợc hiển thị.
• Lệnh tạo th− mục mkdir
Cú pháp lệnh :
mkdir [tuỳ chọn lệnh]
Lệnh này sẽ tạo một th− mục mới nếu nó ch−a thực sự tồn tại. Nếu th−
mục đã tồn tại, hệ thống sẽ thông báo cho bạn biết.
• Lệnh loại bỏ th− mục rmdir.
Cú pháp lệnh :
rmdir [tuỳ chọn lệnh]...
Với lệnh này bạn chỉ xoá đ−ợc những th− mục rỗng, tức là không tồn tại
tập tin hoặc th− mục con nào trong nó. Th− mục đã xoá rồi thì không có cách nào
khôi phục đ−ợc, vì vậy bạn nên cân nhắc kĩ tr−ớc khi xoá một th− mục nào đó.
• Lệnh đổi th− mục cd.
Tên cd có nghĩa là change directory. Bạn có thể chuyển trực tiếp đến th−
mục nào đó hoặc chuyển một cách t−ơng đối.
Muốn chuyển lên th− mục cha : #cd .. hoặc #cd ../..
Chuyển về th− mục gốc : #cd \
Chuyển về th− mục home thì dùng lệnh: #cd hoặc #cd ~
• Lệnh sao chép th− mục cp.
Cú pháp lệnh:
cp [tuỳ chọn lệnh] ......
Lệnh này cho phép bạn sao th− mục nguồn đến th− mục đích hoặc sao chép từ
nhiều th− mục nguồn vào th− mục đích.
Đồ án tốt nghiệp
20
2.4.2 Tập tin và các lệnh về tập tin.
2.4.2.1 Các kiểu tập tin trong Linux.
Có rất nhiều tập tin khác nhau trong Linux, nh−ng bao giờ cũng tồn tại một số
kiểu tập tin cần thiết cho hệ đIều hành và ng−ời dùng. D−ới đây là một số các
kiểu tập tin cơ bản.
- Tập tin ng−ời dùng(user data file): Là các tập tin tạo ra do hoạt động của
ng−ời dùng khi kích hoạt các ch−ơng trình ứng dụng t−ơng ứng. Ví dụ nh−
các tập tin thuần văn bản, các tập tin cơ sở dữ liệu hay các tập tin bảng
tính.
- Tập tin hệ thống(system data file): Là các tập tin l−u trữ thông tin của hệ
thống nh−: cấu hình cho khởi động, tài khoản của ng−ời dùng, thông tin
thiết bị...th−ờng đ−ợc cất trong các tập dạng văn bản để ng−ời dùng có thể
can thiệp, sửa đổi theo ý mình.
- Tập tin thực hiện(executable file): Là các tập tin chứa mã lệnh hay chỉ thị
cho máy tính thực hiện. Tập tin thực hiện l−u trữ d−ới dạng mã máy. Tập
tin thực hiên đ−ợc bắt đầu bởi dấu(*) và th−ờng có màu xanh lục.
- Tập tin bao hàm(directory: Là tập tin bao hàm trong nó các tập tin khác .
Trong mc, tập tin bao hàm th−ờng có màu trắng và bắt đầu bằng dấu ngã
(~) hoặc dấu chia (/). Ví dụ: /, /home, /bin, /usr, /usr/man, /dev...
- Tập tin thiết bị (device file): Là tập tin mô tả thiết bị dùng nh− là định
danh để chỉ ra thiết bị cần thao tác.Theo quy −ớc, tập tin thiết bị đ−ợc l−u
trữ trong th− mục /dev. Các tập tin thiết bị hay gặp trong mục này là
tty(teletype-thiết bị truyền thông), ttyS(teletype serial- thiết bị truyền thông
nối tiếp)... Trong mc, tập tin thiết bị có màu tím và bắt đầu bằng dấu
cộng(+).
Đồ án tốt nghiệp
21
- Tập tin liên kết (linked file): Là những tập tin chứa tham chiếu đến các tập
tin khác trong hệ thống tệp tin của Linux. Tham chiếu này cho phép ng−ời
dùng tìm nhanh tới tập tin thay vì tới vị trí nguyên thuỷ của nó. Ta thấy
loại tập tin này giống nh− khái niệm shortcut trong windows.
Linux quản lý thời gian của tệp tin qua các thông số thời gian truy nhập
(accessed time), thời gian kiến tạo (created time) và thời gian sửa đổi (modified
time).
2.4.2.2 Các lệnh về tập tin.
• Lệnh tạo tệp tin.
+ Tạo tập tin với lệnh touch.
Cú pháp lệnh:
touch
Thực chất lệnh này có tác dụng dùng để cập nhật thời gian truy nhập
và sửa chữa lần cuối của một tập tin. Vì lí do này các tập tin đ−ợc tạo bằng lệnh
touch đều đ−ợc sắp xếp theo thời gian sửa đổi. Nếu bạn sử dụng lệnh touch đối
với tập tin ch−a tồn tại, ch−ơng trình sẽ tạo tập tin đó.
+Tạo tệp tin bằng cách đổi h−ớng đầu ra của lệnh.
Cách này rất hữu ích nếu bạn muốn l−u kết quả của một lệnh bạn đã
thực hiện. Để gửi kết quả của một lệnh ls -l /bin vào tập tin /home/thu/lenh bằng
cách gõ.
#ls -l /bin > /home/thu/lenh
Linux tự động tạo nếu tập tin lenh ch−a có, trong tr−ờng hợp đã có
tập tin lenh thì nội dung tập tin cũ sẽ bị thế chỗ bởi kết quả của lệnh :
#ls l /bin > /home/thu/lenh
Muốn bổ sung thêm kết quả vào cuối tập tin thay vì thế chỗ nội
dung tập tin, bạn sử dụng dấu “>>”.
Đồ án tốt nghiệp
22
+ Tạo tập tin bằng lệnh cat.
cat >
Mặc định, lệnh này cho phép bạn lấy thông tin đầu vào từ bàn phím
rồi xuất ra màn hình. Bạn có thể tuỳ ý gõ nội dung của tập tin ngay tại dấu nhắc
lệnh và gõ CTRL + d để kết thúc việc soạn thảo.
• Sao chép tập tin với lệnh cp.
Cú pháp :
cp[tuỳ chọn lệnh]......<tập tin đích hoặc th− mục
đích>
Tác dụng lệnh và các tuỳ chọn lệnh giống với sao chép th− mục ở mục
trên.
• Đổi tên tập tin với lệnh mv.
Cú pháp lệnh :
mv
Lệnh này cho phép bạn đổi tên tập từ tin cũ thành tên mới.
• Xoá tập tin với lệnh rm.
Cú pháp lệnh:
rm[tuỳ chọn lệnh]......
Bạn có thể sử dụng lệnh này để xoá bỏ một tập tin hoặc nhiều tập tin.
• Đếm từ và dòng trong tập tin với lệnh wc.
Cú pháp lệnh:
wc [tùy chon lệnh]...[tên tập tin]
Đ−a ra số dòng, số từ, số ký tự có trong mỗi tập tin và một dòng tính
tổng. Nếu không có tuỳ chọn nào thì mặc định đ−a ra cả số dòng, số từ và số ký
tự. Không có tên tập tin thì mặc định sẽ đọc và đếm trên thiết bị vào chuẩn.
Đồ án tốt nghiệp
23
• Sắp xếp nội dung tập tin với lệnh sort
Cú pháp lệnh:
sort [tuỳ chọn lệnh]...[tên tập tin]...
Hiển thị nội dung sau khi sắp xếp của một hoặc nhiều tập tin ra thiết bị ra
chuẩn là tác dụng của lệnh sort. Mặc định thứ tự sắp xếp là [0-9, A-Z, a-z]
• Xác định kiểu tập tin với lệnh file.
Cú pháp lệnh:
file [tuỳ chọn lệnh] [-f namefile] [-m magicfile] tập tin...
Lệnh file cho phép bạn xác định và in ra kiểu thông tin chứa trong tập tin.
+ text: dạng tập tin văn bản thông th−ờng, chỉ chứa các mã ký tự
ASCII.
+ Executable: dạng tập tin nhị phân khả thi.
+ Data: th−ờng là dạng tập tin chứa mã nhị phân và không thể in ra
đ−ợc.
• Xem nội dung tập tin với lệnh cat.
Cú pháp lệnh và các tuỳ chọn:
cat [tuỳ chọn lệnh]
• Xem nội dung tập tin lớn với lệnh more.
Cú pháp lệnh và tuỳ chọn :
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file...]
Lệnh more hiển thị nội dung của tập tin theo từng trang màn hình.
• Xem nội dung tập tin với lệnh head.
Cú pháp lệnh:
head [tuỳ chọn lệnh]...[tên file]...
Đồ án tốt nghiệp
24
Lệnh này sẽ đ−a ra màn hình 10 dòng đầu tiên của mỗi tập tin. Nếu có
nhiều tập tin thì lần l−ợt tên các tập tin và 10 dòng đầu tiên sẽ đ−ợc hiển thị. Nếu
không có tên file, hoặc tên file là dấu “-“ mặc định sẽ đọc từ thiết bị chuẩn.
• Xem qua tập tin với lệnh tail.
Cú pháp lệnh:
tail [tuỳ chọn lệnh]...[tên file]...
Lệnh này sẽ đ−a ra 10 dòng cuối của nội dung file. Nếu có nhiều tập tin
thì lần l−ợt tên các tập tin và 10 dòng cuối sẽ đ−ợc hiển thị. Nếu không có tên
file, hoặc tên file là dấu “-“ mặc định sẽ đọc từ thiết bị chuẩn.
• Tìm theo nội dung tập tin bằng lệnh grep.
Cú pháp lệnh:
grep[tuỳ chọn lệnh]
Lệnh grep sẽ hiển thị tất cả các dòng có chứa mẫu lọc trong tập tin đ−ợc
đ−a ra (hoặc từ thiết bị vào chuẩn nếu không có tên tập tin hoặc tên tập tin có
dạng là dấu “-").
• Tìm theo các đặc tính của tập tin bằng lệnh find.
Cú pháp lệnh:
find [đ−ờng dẫn] [biểu thức]
Lệnh find thực hiện việc tìm kiếm tập tin trên cây th− mục theo biểu thức
đ−ợc đ−a ra. Mặc định đ−ờng dẫn là th− mục hiện thời, biểu thức là - print.
2.4.3 Lệnh về Destop.
• Lệnh tính biểu thức số học với lệnh bc.
Cú pháp lệnh:
bc [-lwsqv] [các tuỳ chọn dài] [file...]
Đồ án tốt nghiệp
25
• Lệnh xem lịch trên hệ thống bằng lệnh cal.
Cú pháp lệnh:
cal [-mjy] [month [year]]
Nếu không có tham số, lịch của tháng hiện tại sẽ đ−ợc hiển thị.
• Lệnh xem ngày, giờ.
Cú pháp lệnh:
date [tuỳ chọn lệnh] ... [+ định dạng]
và
date [tuỳ chọn lệnh] [MMDDhhmm] [CC [YY]]
• Lệnh xem tin hệ thống uname.
Cú pháp lệnh:
uname [các tuỳ chọn]...
Lệnh uname cho phép bạn xem thông tin hệ thống. Nếu không có tuỳ chọn
thì hiện tên hệ điều hành.
2.4.4 Lệnh về trình báo màn hình.
• Lệnh echo.
Cú pháp lệnh:
echo [các tuỳ chọn]...[xâu ký tự]...
2.4.5 Các lệnh liên quan đến tài khoản ng−ời dùng.
2.4.5.1 Các lệnh liên quan đến ng−ời dùng.
Khi cài đặt hệ điều hành Linux, đăng nhập chính sẽ đ−ợc tự động tạo ra.
Đăng nhập này gọi là root và đ−ợc xem là ng−ời dùng cấp cao. Khi đăng nhập
với t− cách là ng−ời dùng root thì bạn có thể làm bất cứ điều gì bạn muốn trên hệ
thống ( tạo một ng−ời dùng mới, thay đổi thuộc tính của một ng−ời dùng, xoá bỏ
ng−ời dùng... ).
Đồ án tốt nghiệp
26
Danh sách ng−ời dùng cũng nh− thông tin t−ơng ứng đ−ợc l−u trữ trong tập
tin /etc/passwd. Nội dung của tập tin /etc/passwd chứa các thông tin sau:
• Tên ng−ời dùng (user name).
• Mật khẩu ng−ời dùng (passwd -đ−ợc mã hoá).
• Chỉ số ng−ời dùng (user id).
• Tên đầy đủ hoặc các thông tin khác về tài khoản ng−ời dùng (comment).
• Th− mục để ng−ời dùng đăng nhập.
• Shell đăng nhập (ch−ơng trình chạy lúc đăng nhập).
Bất kỳ ng−ời sử dụng nào trên hệ thống đều có thể đọc đ−ợc nội dung tập
tin /etc/passwd và có thể đăng nhập với t− cách ng−ời dùng khác nếu họ biết
đ−ợc mật khẩu. Đây chính là lí do mật khẩu đăng nhập của ng−ời sử dụng không
hiển thị nội dung tập tin.
* Thêm ng−ời dùng với lệnh useradd.
Cú pháp lệnh:
useradd [tuỳ chọn lệnh]
hoặc
useradd -D [tuỳ chọn lệnh]
Nếu không có tuỳ chọn -D lệnh useradd sẽ tạo tài khoản ng−ời dùng mới
sử dụng các giá trị đ−ợc chỉ ra trên dòng lệnh và các giá trị mặc định của hệ
thống.
2.4.5.2 Thay đổi thuộc tính ng−ời dùng.
Cú pháp lệnh:
usermod [tuỳ chọn lệnh]
Lệnh usermod sẽ sửa đổi các tập tin tài khoản hệ thống theo thuộc tính mà
bạn xác định trên dòng lệnh.
Đồ án tốt nghiệp
27
Lệnh usermod sẽ không cho phép thay đổi tên ng−ời dùng đăng nhập. Phải
đảm bảo rằng ng−ời dùng đó không thực hiện bất kỳ tiến trình nào trong khi lệnh
usermod đang thực hiện thay đổi các thuộc tính của ng−ời dùng đó.
2.4.5.3 Xoá bỏ một ng−ời dùng.
Cú pháp lệnh:
userdel [-r]
Lệnh này sẽ thay đổi nội dung của các tập tin tài khoản hệ thống bằng
cách xoá bỏ các thông tin về ng−ời dùng đ−ợc đ−a ra trên dòng lệnh. Ng−ời dùng
này phải thực sự tồn tại.
Lệnh userdel sẽ không cho phép xoá bỏ ng−ời dùng khi họ đang đăng nhập
vào hệ thống. Phải huỷ bỏ mọi tiến trình có liên quan đến ng−ời dùng muốn xoá
bỏ.
2.4.6 Các lệnh liên quan đến nhóm ng−ời dùng.
Thông tin về nhóm ng−ời dùng đ−ợc l−u trong tập tin /etc/group, tập tin
này có cách bố trí t−ơng tự nh− tập tin /etc/passwd. Nội dung của tập tin có chứa
:
• Tên nhóm ng−ời dùng(groupname).
• Mật khẩu nhóm ng−ời dùng (passwd-đ−ợc mã hoá), nếu
tr−ờng này rỗng tức là nhóm không yêu cầu mật khẩu.
• Chỉ số nhóm ng−ời dùng (group id).
• Danh sách ng−ời dùng thuộc nhóm đó.
• Thêm nhóm ng−ời dùng.
Cú pháp lệnh:
groupadd [tuỳ chọn lệnh]
Đồ án tốt nghiệp
28
• Sửa đổi thuộc tính của một nhóm ng−ời dùng.
Cú pháp lệnh và các tuỳ chọn:
groupmod [tuỳ chọn lệnh]
• Xoá một nhóm ng−ời dùng.
Chỉ xoá đ−ợc một nhóm ng−ời dùng khi không còn ng−ời nào thuộc nhóm
đó nữa.
Cú pháp lệnh:
groupdel
Lệnh này sẽ sửa đổi cá tập tin tài khoản hệ thống xoá tất cả các thực thể
liên quan đến nhóm. Tên nhóm phải thực sự tồn tại.
2.4.7 Các lệnh khác có liên quan đến ng−ời dùng.
• Đăng nhập với t− cách một ng−ời dùng khác với lệnh su.
Cú pháp lệnh:
su
Dùng lệnh su sẽ giúp bạn thay đổi tên ng−ời dùng một cách hiệu quả và
cấp cho bạn các quyền truy nhập nh− ng−ời dùng.
Nếu bạn đăng nhập với t− cách ng−ời sử dụng bình th−ờng và muốn trở
thành ng−ời dùng cấp cao (root) thì dùng lệnh sau:
#su root
Khi đó hệ thống sẽ yêu cầu bạn nhập mật khẩu của ng−ời dùng cấp cao.
Nếu cung cấp đúng mật mã thì bạn sẽ là ng−ời dùng root cho tới khi dùng CTRL
+d để thoát ra khỏi tài khoản và trở về đăng nhập của ng−ời dùng ban đầu. Còn
nếu bạn đăng nhập với t− cách ng−ời dùng cao cấp và muốn trở thành ng−ời dùng
bình th−ờng thì cũng dùng lệnh:
su
Đồ án tốt nghiệp
29
Bạn sẽ không bị hỏi về mật khẩu khi thay đổi từ ng−ời dùng cấp cao sang
ng−ời khác. Tuy nhiên nếu bạn đăng nhập với t− cách ng−ời dùng bình th−ờng và
muốn chuyển sang một đăng nhập khác thì bạn phải cung cấp mật mã của ng−ời
dùng đó.
• Xác định ng−ời dùng đang đăng nhập
+ Lệnh who
Cú pháp lệnh:
who [tuỳ chọn lệnh]
Lệnh who cho bạn biết đ−ợc hiện tại có những ai đang đăng nhập trên hệ
thống.
Lệnh who hiển thị ba cột thông tin cho từng ng−ời dùng trên hệ thống. Cột
đầu là tên của ng−ời dùng, cột hai là tên thiết bị đầu cuối mà ng−ời dùng đó đang
sử dụng, cột ba hiển thị ngày giờ ng−ời dùng đăng nhập.
Ngoài lệnh who thì bạn có thể sử dụng lệnh users để xác định ng−ời dùng
đang đăng nhập trên hệ thống.
#users
Khi nào đó bạn quen mình đang đăng nhập với tên ng−ời dùng là gì, lúc đó
bạn hãy dùng lệnh:
who am i
Hoặc
whoami
Lệnh who am i sẽ hiện kết quả đầy đủ hơn với tên máy bạn đăng nhập, tên
ng−ời dùng bạn đang đăng nhập, tên thiết bị và ngày giờ bạn đang đăng nhập.
+ Lệnh id.
Cú pháp lệnh:
id [tuỳ chọn lệnh] [tên ng−ời dùng]
Đồ án tốt nghiệp
30
Lệnh này sẽ đ−a ra cho bạn thông tin về ng−ời dùng đ−ợc đ−a ra trên dòng
lệnh hoặc thông tin về ng−ời dùng hiện thời.
+ Xác định công việc mà những ng−ời dùng đăng nhập trên hệ thống
đang thực hiện, ta sử dụng lệnh w.
Cú pháp lệnh:
w [tên ng−ời dùng]
Lệnh w sẽ đ−a ra thông tin về ng−ời dùng hiện thời trên hệ thống và tiến
trình họ đang thực hiện.
2.4.8 Các lệnh liên quan đến quản lý thiết bị.
Linux có cách điều khiển các thiết bị rất khác so với các hệ điều hành
khác. Sẽ không có các tên thiết bị l−u trữ vật lý nh− ổ A hay ổ C..., mà lúc đó các
thiết bị l−u trữ này sẽ trở thành một phần của hệ thống tập tin cục bộ thông qua
một số thao tác đ−ợc gọi là “kết gắn mounting”. Khi bạn đang sử dụng thiết bị
l−u trữ đó, muốn tháo bỏ bạn phải “tháo bỏ kết gắn umount” thiết bị.
• Để sử dụng bất kỳ một thiết bị l−u trữ vật lý nào trên Linux, bạn cần
phải sử dụng đến lệnh mount. Điểm gắn kết là th− mục /mnt.
Cú pháp lệnh:
mount
Dòng này sẽ thông báo cho nhân hệ thống để kết gắn hệ thống tập tin có
trên device thiết bị này có dạng là type vào th− mục điểm gắn kết dir.
Ví dụ: Nếu muốn sử dụng đĩa mềm và đĩa CD. Bạn hãy gắn chúng vào hai
th− mục /mnt/floppy và mnt/cdrom bằng hai câu lệnh.
#mount -t msdos /dev/fd0 mnt/floppy
#mount /dev/cdrom /mnt/cdrom
Đồ án tốt nghiệp
31
• Bạn có thể tháo bỏ kết gắn của một hệ thống tập tin trên hệ thống bằng
lệnh umount .
Cú pháp lệnh:
umount
Dòng lệnh này sẽ tháo bỏ kết gắn của hệ thống tập tin có trên device ra
khỏi hệ thống tập tin chính. L−u ý rằng không thể tháo bỏ kết gắn của một hệ
thống tập tin khi có một tiến trình đang hoạt động truy cập đến các tập tin trên hệ
thống tập tin đó.
Khi một hệ thống tập tin đ−ợc kết gắn(dùng lệnh mount), những thông tin
quan trọng về sơ đồ các tập tin trên hệ thống tập tin đó đ−ợc l−u trong nhân . Nếu
loại bỏ các thiết bị vật lý chứa hệ thống tập tin mà không tháo bỏ kết gắn (dùng
lệnh umount) có thể dẫn tới thông tin l−u về hệ thống tập tin bị thất lạc. Mục đích
củâ lệnh umount là xoá bỏ mọi thông tin đó ra khỏi bộ nhớ khi không dùng đến
nữa.
Ví dụ: Không dùng đến đĩa mềm, bạn có thể dùng câu lệnh:
#umount /dev/fd0
• Xem dung l−ợng đĩa đJ sử dụng với lệnh du.
Cú pháp lệnh:
du [tuỳ chọn lệnh ] ...[file]...
Lệnh du sẽ liệt kê kích th−ớc (tính theo kilobytes) của mỗi tập tin có trong
hệ thống tập tin có chứa file. L−u ý rằng, lệnh du không cho phép có nhiều tuỳ
chọn trên cùng một dòng lệnh.
• kiểm tra dung l−ợng đĩa trống với lệnh df.
Cú pháp lệnh:
df [tuỳ chọn lệnh]...[file]...
Đồ án tốt nghiệp
32
Lệnh này sẽ hiển thị dung l−ợng mà còn trống trên hệ thống tập tin chứa
đựng tập tin file. Nếu không có tên tập tin thì lệnh này sẽ hiển thị dung l−ợng đĩa
còn thống trên tất cả các hệ thống tập tin đ−ợc kết nối.
Lệnh df chỉ cho biết dung l−ợng đĩa đã sử dụng và dung l−ợng đĩa còn
trống của từng hệ thống tập tin. Nếu bạn muốn biết tổng dung l−ợng đĩa còn
trống là bao nhiêu, bạn sẽ phải cộng dồn dung l−ợng đĩa còn trống của từng hệ
thống tập tin.
2.4.9 Các lệnh về phân quyền.
• Thay đổi quyền sở hữu tập tin với lệnh chown.
Cú pháp lệnh:
chown [tuỳ chọn lệnh]... [.[group]]
Lệnh này cho phép ng−ời dùng owner sở hữu tập tin. Nếu chỉ có tham số
owner, thì ng−ời dùng owner sẽ sở hữu tập tin và nhóm sở hữu không thay đổi.
Nếu theo sau tên ng−ời dùng là dấu “.” và tên của một nhóm group thì nhóm đó
sẽ sở hữu tập tin. Nếu chỉ có dấu “.” và tên nhóm mà không có tên ng−ời sở hữu
thì chỉ có quyền sở hữu nhóm của tập tin thay đổi.
• Thay đổi quyền sở hữu nhóm với lệnh chgrp.
Khi đăng nhập, mặc định bạn sẽ là thành viên của một nhóm đ−ợc thiết lập
khi ng−ời dùng cao cấp root tạo tài khoản ng−ời dùng. Bạn có thể thuộc nhiều
nhóm khác nhau nh−ng mỗi lần đăng nhập bạn chỉ là thành viên của một nhóm.
Để thay đổi quyền sở hữu nhóm đối với một hoặc nhiều tập tin, bạn hãy sử dụng
lệnh chgrp.
Cú pháp lệnh:
chgrp [tuỳ chọn lệnh] ...
Lệnh này cho phép nhóm group sở hữu tập tin tập tin
• Thay đổi quyền truy cập tập tin với lệnh chmod.
Đồ án tốt nghiệp
33
Cú pháp lệnh:
chmod [tuỳ chọn lệnh] ...
Lệnh này cho phép bạn xác lập quyền truy nhập kiểu mode trên tập tin file.
2.5 Shell.
Shell là ch−ơng trình giao diện giữa ng−ời dùng và Linux hay nói chính xác
hơn là ng−ời dùng và nhân Linux. Mỗi lệnh bạn gõ tại dấu nhắc trên màn hình sẽ
đ−ợc shell diễn dịch rồi chuyển tới nhân Linux.
Shell là bộ diễn dịch ngôn ngữ lệnh, nó có cài sẵn bộ lệnh riêng. Một số lệnh
nh− pwd cài sẵn trong shell bash còn những lệnh nh− cp và rm là những ch−ơng
trình thi hành hiện diện trên th− mục hệ thống tệp tin. Với t− cách là ng−ời dùng,
bạn không biết (hay không bận tâm) lệnh nào cài vào shell hay ch−ơng trình. Khi
bạn nhập một lệnh thì đầu tiên shell sẽ kiểm tra lệnh này có phải là lệnh cài sẵn
hay không. Nếu không phải là lệnh cài sẵn, shell sẽ kiểm tra xem nó có đúng là
ch−ơng trình ứng dụng hay không. Nếu nhập lệnh chẳng phải là lệnh shell hay
cũng chẳng phải tập tin thi hành thì sẽ có một thông báo lỗi hiển thị nh− sau:
$doit
doit: not found
B−ớc cuối cùng, các lệnh cài sẵn và ch−ơng trình ứng dụng đ−ợc phân thành
system call (gọi hệ thống) rồi chuyển tới nhân Linux.
Shell khởi động sau khi bạn đăng nhập thành công vào hệ thống, và tiếp tục
là ph−ơng pháp t−ơng tác chính giữa ng−ời dùng và nhân Linux cho đến khi bạn
đăng xuất. Mỗi ng−ời dùng trên hệ thống có một shell mặc định và đ−ợc l−u
trong tập tin mật mã hệ thống /etc/passwd. Tập tin mật mã hệ thống chứa User ID
của mỗi ng−ời, mật mã đã mã hoá, và tên ch−ơng trình chạy ngay sau khi ng−ời
dùng đăng nhập vào hệ thống.
Đồ án tốt nghiệp
34
Trên Linux có cài sẵn một số loại shell khác nhau, mỗi shell có những −u
nh−ợc điểm riêng:
• Shell Bourne Again (bash) là shell đ−ợc sử dụng phổ biến nhất (và
mạnh nhất) trong Linux. Bash là mở rộng của shell Bourne và nó t−ơng thích
hoàn toàn với shell Bourne. Bash đ−ợc tạo ra và đ−ợc phân phối bởi dự án GNU
(tổ chức phần mềm miễn phí ). Đ−a ra các soạn thảo dòng lệnh, các lựa chọn thay
thế quan trọng.
Một số lệnh cài sẵn trong shell bash:
Lệnh Công dụng
alias Lập bí danh (biệt danh lệnh cho ng−ời dùng quy định).
Bg Lệnh background (hậu cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở hậu cảnh
cd Chuyển th− mục làm việc. Lệnh này sẽ chuyển th− mục làm việc
hiện hành vào th− mục đã định.
exit Chấm dứt Shell.
export Làm cho giá trị biến sẽ lập khả dụng đối với tất cả tiến trình con
thuộc shell hiện hành.
fc Lệnh fix. Hiệu chỉnh lệnh trong danh sách history hiện hành.
fg Lệnh foreground (tiền cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở tiền cảnh.
help Hiển thị thông tin trợ giúp về lệnh cài sẵn trong bash.
history Đ−a ra danh sách n lệnh vừa nhập tại dấu nhắc lệnh. n là biến quy
định số lệnh sẽ ghi nhớ.
kill Chấm dứt tiến trình khác.
pwd In th− mục hiện ng−ời dùng đang làm việc trên đó.
Đồ án tốt nghiệp
35
unalias Xoá các bí danh đã định bằng lệnh alias.
Bash còn nhiều lệnh nữa, nh−ng đây là những lệnh thông dụng nhất. Muốn
xem bash giới thiệu thêm lệnh nào và muốn biết rõ hơn về những lệnh nêu trên,
bạn hãy tham khảo trang Man (gõ man bash ).
• Shell Bourne (sh) do Steven Bourne viết. Đó là shell Unix nguyên thuỷ
có mặt trên mọi hệ thống Unix, nó không xử lý t−ơng tác ng−ời dùng nh− một số
shell khác cho phép. Nó không đ−a ra soản thảo dòng lệnh.
• Shell C (csh) do Bill Joy viết, shell C đáp ứng t−ơng tác ng−ời dùng. Nó
chấp nhận các đặc tính vốn không có trong shell Bourne, chẳng hạn nh− hoàn
thành dòng lệnh. Vì ngôn ngữ lập trình shell C gần giống nh− ngôn ngữ C, đó là
lí do ng−ời ta đặt tên cho nó là shell C.
• Shell korn (ksh) do David Korn viết. Ông lấy các đặc tính −u việt của
shell C và shell Bourne rồi kết hợp thành một shell t−ơng thích hoàn toàn với
shell Bourne và đ−a ra soạn thảo dòng lệnh.
• Public Domain Korn Shell (pdksh) không chấp nhân các đặc tính trong
phiên bản shell Korn. Thế nh−ng nó chấp nhận hầu hết đặc tính chủ yếu và bổ
sung vài đặc tính mới vào.
Một số lệnh trong shell pdksh:
+ alias : Lập bí danh , biệt danh lệnh cho ng−ời dùng đặt.
+ bg : Lệnh background (hậu cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở hậu cảnh.
+ cd : Chuyển th− mục làm việc. Lệnh này sẽ chuyển th− mục làm việc
hiện hành vào th− mục đã định.
+ exit : Chấm dứt Shell.
+ export : Làm cho giá trị biến sẽ lập khả dụng đối với tất cả tiến trình con
thuộc shell hiện hành.
Đồ án tốt nghiệp
36
+ fc : Lệnh fix. Hiệu chỉnh lệnh trong danh sách history hiện hành
+ fg : Lệnh foreground (tiền cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở tiền cảnh.
+ kill : Chấm dứt tiến trình khác.
+ pdw : (Print working directory) in th− mục hiện hành lên màn hình.
+ unalias : Xoá các bí danh đã định bằng lệnh alias.
• tcsh là phiên bản sửa đổi của shell C (csh). Nó t−ơng thích hoàn toàn với
csh nh−ng lại mang nhiều đặc tính mới giúp t−ơng tác ng−ời dùng dễ dàng hơn.
Một số lệnh tcsh hữu ích:
+ alias : Lập bí danh , biệt danh lệnh cho ng−ời dùng đặt.
+ bg : Lệnh background (hậu cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở hậu cảnh.
+ bindkey : Cho phép ng−ời dùng thay đổi các thao tác hiệu chỉnh vốn gắn
liền với một tổ hợp phím.
+ cd : Chuyển th− mục làm việc. Lệnh này sẽ chuyển th− mục làm việc
hiện hành vào th− mục đã định.
+ fg : Lệnh foreground (tiền cảnh). Buộc tiến trình bị ng−ng tiếp tục thi
hành ở tiền cảnh.
+ history: Cho phép ng−ời dùng hiển thị và sửa đổi nội dung danh sách
history và tập tin history.
+ kill : Chấm dứt tiến trình khác.
+ logout : Chấm dứt shell đăng nhập.
+ set : Lập giá trị biến tcsh.
+ source : Đọc và thi hành nội dung tập tin.
+ unalias : Xoá các bí danh đã định bằng lệnh alias.
Đồ án tốt nghiệp
37
Ch−ơng III: samba
3.1 Giới thiệu tổng quan.
Các tổ chức kinh doanh lớn th−ờng xử lý thông tin trên nhiều loại hệ điều
hành khác nhau và có nhu cầu l−u trữ chúng trong một môi tr−ờng mạng trong
việc chia sẻ các tập tin và máy in. Các nhân viên có thể làm việc trên các máy
trạm nh− Linux, Microsoft Windows 95/98/NT, OS/2 hay Novel và vẫn cần phải
truy cập máy server trong các công việc th−ờng ngày của họ.
Samba là một dịch vụ mạng rất mạnh trong việc chia sẻ tập tin và máy in,
nó làm việc tốt trên các hệ điều hành chủ yếu hiện nay. Khi đã đ−ợc thực hiện tốt
bởi ng−ời quản trị, nó sẽ nhanh hơn và bảo mật hơn các dịch vụ chia sẻ tập tin tự
nhiên đã có sẵn trên các máy Microsoft Windows.
Samba là một giao thức có nhiều máy PC kết nối với nhau cùng chia sẻ các
tập tin, các máy in, và các thông tin khác, chẳng hạn nh− liệt kê danh sách các
tập tin và máy in. Các HĐH mà nó hỗ trợ dịch vụ này một cách tự nhiên gồm có
Windows 95/98/NT, OS/2 và Linux.
ở đây chúng ta sẽ tìm hiểu Samba với tính năng nh− một cây cầu nối giữa
Linux và Windows, samba cho phép các máy tính chạy Linux có thể hoạt động
và giao tiếp trên cùng một giao thức mạng với máy Windows.
3.2 Cài đặt
Có hai cách cài đặt Samba:
• Cách 1: cài đặt từ tập tin samba-2.2.7a-7.9.0.i386.rpm có sẵn trong CD
cài đặt Redhat 9.0.
• Cách 2: cài đặt từ tập tin samba-2.2.7a-7.9.0.i386.tar.gz.
Phần này chỉ tập trung cho việc cài đặt và cấu hình samba từ tập tin samba-
2.2.7a-7.9.0.i386.rpm.
Đồ án tốt nghiệp
38
Trong Redhat 9.0 tr−ớc khi cài đặt, chúng ta kiểm tra xem samba có cài
đặt trên hệ thống của bạn hay ch−a với lệnh:
[root@localhost root]#rpm –q samba
Nếu samba ch−a đ−ợc cài đặt trên hệ thống thì chúng ta tiến hành cài đặt
theo những lệnh sau:
[root@ localhost root]# mount /mnt/cdrom
[root@ localhost root]#cd /mnt/cdrom/redhat/RPMS
[root@ localhost root]#rpm –ivh samba-2.2.7a-7.9.0.i386.rpm
Lệnh đầu tiên kết gắn ổ CD vào hệ thống, lệnh thứ hai chuyển vào th− mục
chứa ch−ơng trình nguồn samba-2.2.7a-7.9.0.i386.rpm và lệnh thứ ba sẽ cài đặt
package samba-2.2.7a-7.9.0.i386.rpm vào hệ thống của bạn. Sau khi cài đặt thành
công samba vào hệ thống, tập tin cấu hình smb.conf sẽ nằm trong th− mục
/etc/samba/smb.conf và tất cả những gì chúng ta cấu hình về samba sẽ đ−ợc thực
hiện từ tập tin này.
3.3 cấu hình
File cấu hình chính của Samba là smb.conf đ−ợc cất trong th− mục
/etc/Samba. Trong file này có hai kiểu chú thích đ−ợc xác định bằng dấu (;) và
(#) đặt ở đầu các dòng. Dấu (#) là dấu chú thích thực và bạn không thể bỏ dấu
này đi đ−ợc nh−ng dấu (;) là dấu chú thích xác định thuộc tính ở hàng t−ơng ứng
có đ−ợc chọn hay không, kiểu chú thích này có thể bỏ đi đ−ợc.
Ví dụ trong file này có đoạn:
;encrypt password =yes
Nếu bỏ dấu (;) đi thì Samba sẽ hiểu rằng mật khẩu sẽ đ−ợc mã hóa
(encrypt), ng−ợc lại mật khẩu khi truyền đi sẽ đ−ợc để ở dạng không mã hoá
(clear text).
Đồ án tốt nghiệp
39
Để việc thay đổi thông số trong file smb.conf an toàn, chúng ta sao l−u file
smb.conf đến một th− mục khác, đồng thời đảm bảo rằng kết nối giữa máy
Linux và Windows vẫn ở trạng thái tốt (Kiểm tra bằng lệnh ping 2 máy với
nhau).
File smb.conf đ−ợc chia làm 2 phần: global setting và sharing setting.
Trong mỗi phần lại có nhiều tham số khác nhau.
Để thiết lập cấu hình file smb.conf bạn có thể mở file này bằng một trình soạn
thảo có sẵn trên hệ thống nh− vi, mc, pico:
#vi /etc/Samba/smb.conf
3.3.1 cấu hình global setting:
Phần này sẽ chứa thông số điều khiển Samba server.
Giá trị đầu tiên cần thiết lập là giá trị của thẻ workgroup :
[global]
# workgroup = NT-Domain-Name or Workgroup-Name
workgroup = MYGROUP
Là tham số xác định tên workgroup của Windows mà máy Linux đăng
nhập, nhóm này phải tồn tại tr−ớc khi chúng ta cấu hình Samba.
L−u ý: Nên nhập tên workgroup ở dạng chữ in hoa.
# server string is the equivalent of the NT Description field
server string =Samba Server
Tham số server string là tham số gán mô tả về tên máy Linux trên mạng.
Mặc định tham số này đ−ợc gán bằng Samba Server, tuỳ theo chức năng của máy
Linux mà bạn có thể đặt các tên khác nhau. Việc gán giá trị cho tham số này
không gây ảnh h−ởng lớn đến việc cấu hình Samba.
;hosts allow = 192.168.1. 192.168.2.
Đồ án tốt nghiệp
40
Nếu bỏ dấu (;) thì các máy có địa chỉ IP không thuộc lớp mạng đã liệt kê
không thể truy nhập vào máy Linux. ở đây lấy ví dụ với lớp mạng C, nh− vậy các
máy có địa chỉ IP bắt đầu bằng 192.168.1. và 192.168.2. đều có thể truy nhập tài
nguyên trên máy Linux.
# this tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/Samba/%m.log
Tham số logfile sẽ xác định tên file log cho từng máy khi truy cập, %m có nghĩa
là tên máy trên mạng.
Ví dụ: Nếu trên mạng có máy tên là nampt truy cập vào máy Linux thì Samba sẽ
tạo ra một file là nampt.log l−u trong th− mục /var/log/Samba. Kích th−ớc của
file này đ−ợc xác định bằng tham số max log size:
# Put a capping on the size of the log files (in Kb).
max log size = 150
Samba hỗ trợ 4 kiểu bảo mật trong việc chia sẻ dữ liệu: USER, SHARE,
DOMAIN và SERVER. Để biết thêm chi tiết từng kiểu bạn có thể đọc file
security_level.txt. Mặc định khi cài Samba để ở mode USER
# Security mode. Most people will want user level security. See
# security_level.txt for details.
security = share
# Use password server option only with security = server or
# security = domain
;password server=MyServer
Nếu bạn chọn kiểu USER và SHARE thì nên đặt dấu (;) vào đầu dòng:
;password server =
Đồ án tốt nghiệp
41
Nếu bạn muốn sử dụng tài khoản (account) và mật khẩu (password) trên
máy chủ điều khiển vùng để truy nhập vào máy Linux thì phải đặt tham số:
security = domain
và điền tên máy điều khiển vùng vào vùng password server nh− d−ới đây:
password server = tên domain
# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
#documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes
smb passwd file = /etc/Samba/smbpasswd
Với các hệ điều hành từ Win95 OME service release 2 hoặc cao hơn, mật khẩu
đ−ợc mã hoá mặc định, cũng nh− vậy đối với hệ điều hành Windows NT4 service
pack 3 mật khẩu đ−ợc chuyển từ không mã hoá (Clear text) thành mã hoá
(Encrypted). Để mật khẩu mã hoá của Windows làm việc đ−ợc với Samba thì hai
dòng trên phải bỏ dấu chú thích và nhập tên tài khoản và mật khẩu cho máy
Linux bằng lệnh smbpasswd.
Ví dụ:
#smbpasswd -a nampt
L−u ý: user nampt phải tồn tại là user của hệ điều hành. Nếu bạn định thiết
lập security mode= domain hoặc server thì nên đặt mật khẩu trùng với mật khẩu
trên server hay domain t−ơng ứng.
# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
domain logons = yes
Đồ án tốt nghiệp
42
Nếu để tham số domain logons =yes sẽ làm cho máy Linux trở thành
domain để các máy Windows95 có thể đăng nhập (logon) vào . Kịch bản đăng
nhập cho các máy trạm và user sẽ đ−ợc hai tham số logon script d−ới đây xác
định:
# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
logon script = %m.bat
# run a specific logon batch file per username
logon script = %U.bat
3.3.2 cấu hình Sharing Setting.
Khi có yêu cầu truy xuất dữ liệu từ máy trạm, Samba sẽ tìm các th− mục
này trong phần Sharing Setting. Nếu th− mục tồn tại nó sẽ kiểm tra mật khẩu mà
máy trạm cung cấp với mật khẩu của Samba, nó sẽ chia sẻ th− mục này qua mạng
nếu mật khẩu thoả mãn.
Trong phần này có nhiều tham số khác nhau, ở đây chúng ta chỉ trích ra
một th− mục để làm ví dụ và giới thiệu những tham số thông dụng:
[chi]
comment = Thu muc cua user chi
browseable = no
read only=no
path=/home/chi
valid users=chi
Tham số comment cũng gần giống nh− tham số server string mà chúng ta
đã đề cập ở phần tr−ớc nh−ng chỉ khác đây là chú thích cho th− mục.
Đồ án tốt nghiệp
43
Nếu bỏ dấu chú thích ở dòng browseable = no thì Samba sẽ không chỉ thị
th− mục này trên trình duyệt mạng (ví dụ Windows Explorer), mặc dù nó vẫn
đ−ợc chia sẻ, việc này giống nh− chia sẻ th− mục trên Windows với dấu $. Tham
số read only sẽ cho phép ng−ời dùng trên máy trạm có thể thay đổi nội dung file
hay không. Nếu bỏ dấu chú thích tại dòng:
;read only=no
thì ng−ời dùng có thể thay đổi nội dung của file hay tạo file mới, ng−ợc lại nếu
để dấu (;) ở đầu dòng, ng−ời dùng chỉ có thể đọc nội dung th− mục và không
đ−ợc phép tạo bất cứ thay đổi nào trong th− mục.
Trong file smb.conf có một số thông số không thể gán giá trị bằng “yes”.
Ví dụ: nếu viết:
read only=yes
thì smbd không hiểu giá trị và phát sinh lỗi cấu hình. Thực chất giá trị read
only=yes chính là ; read only=no.
Tham số path xác định đ−ờng dẫn đến th− mục cần đ−ợc chia sẻ trên
server. Tham số valid users=chi xác định quyền hạn truy cập vào th− mục chi - ở
ví dụ này chỉ có user chi mới đọc đ−ợc nội dung của th− mục đó.
3.4 Chia sẻ file
Sau khi cấu hình phần global setting, chúng ta có thể tự tạo ra một th− mục
chia sẻ và giới hạn truy cập theo nhóm hoặc ng−ời dùng có trên hệ thống.
Ví dụ: Để tạo th− mục chia sẻ huong trên máy Linux, chúng ta làm nh−
sau:
Thêm vào vùng Sharing Setting những dòng d−ới đây:
[huong]
comment= thu muc cua huong
path=/home/huong
Đồ án tốt nghiệp
44
valid users =huong
browseable=yes
public=no
writeable=yes
Nh− vậy Samba sẽ tạo ra một th− mục chia sẻ huong trên máy chủ, do
tham số browseable=yes nên th− mục này sẽ đ−ợc nhìn thấy khi ng−ời dùng mở
Windows Explorer, tuy nhiên do public=no và valid users =huong nên chỉ có user
huong có thể đăng nhập. Ngoài việc phân cấp theo user Samba cũng có thể phân
quyền truy cập cho cả nhóm ng−ời dùng, với nhóm chúng ta sử dụng dấu @ tr−ớc
tên nhóm.
Ví dụ:
Valid users=huong,@Tin5
3.5 Kiểm tra cấu hình vừa thiết lập
Sau khi thiết lập file cấu hình chúng ta nên kiểm tra lại, Samba cung cấp 2
công cụ là testparm và smbstatus. Để kiểm tra chính xác bạn phải đảm bảo máy
trạm và máy chủ phải nối đ−ợc với nhau (Kiểm tra bằng lệnh ping).
3.5.1 Kiểm tra bằng công cụ Testparm
Testparm là ch−ơng trình cho phép kiểm tra giá trị của thông số trong file
cấu hình. Cấu trúc của câu lệnh này là:
Testparm configfile [hostname hostIP]
Configfile là đ−ờng dẫn và tên file cấu hình, mặc định nó lấy file smb.conf
cất trong th− mục /etc/Samba/smb.conf (từ Redhat 9.0)
Hostname và HostIP là hai thông số không nhất thiết phải có, nó h−ớng
dẫn Samba kiểm tra cả các dịch vụ đã liệt kê trong file smb.conf trên máy xác
định bởi Hostname và HostIP.
Đồ án tốt nghiệp
45
Ví dụ:
[root@localhost root]# testparm /etc/Samba/smb.conf thuong 10.0.0.2
3.5.2 Kiểm tra bằng công cụ smbstatus
Smbtatus là ch−ơng trình thông báo các kết nối hiện tại, cấu trúc của câu
lệnh này nh− sau:
Smbstatus [-d][-p][-s config file]
Tham số configfile mặc định đ−ợc gán là /etc/Samba/smb.conf. Tham số –
d cho ra kết quả đầy đủ.
Ví dụ: [root@localhost root]# smbstatus –d –s /etc/samba/smb.conf
Đồ án tốt nghiệp
46
3.6 Chạy samba server
Samba server có hai tiến trình là smbd và nmbd. Tiến trình smbd cung cấp
dịch vụ chia sẻ file và dữ liệu, tiến trình nmbd cung cấp khả năng hỗ trợ NetBIOS
name. Cũng nh− các dịch vụ khác, trên mạng Samba có 3 câu lệnh điều khiển là
stop, start, restart. Cú pháp của chúng là:
/etc/init.d/smb start| stop| restart
Sau khi cấu hình file smb.conf bạn phải khởi động dịch vụ Samba để máy
Linux đăng nhập vào workgroup, câu lệnh khởi động là:
#/etc/init.d/smb start
Sau khi khởi động dịch vụ máy Windows có thể truy cập đến máy Linux
thông qua NetworkNeighborhood hoặc Windows Explorer, máy Linux có thể
dùng 2 câu lệnh smbclient hoặc smbmount để truy cập đến máy Windows và
trên cả máy Linux khác có cài Samba.
#smbclient -L 10.0.0.2
Đồ án tốt nghiệp
47
3.6.1 Sử dụng câu lệnh smbclient
Smbclient cung cấp giao diện dòng lệnh gần giống nh− giao diện của FTP
để truyền file qua mạng. Chi tiết về câu lệnh smbclient bạn có thể tham khảo nhờ
câu lệnh:
#man smbclient
Để liệt kê các th− mục chia sẻ có trên máy 10.0.0.2 bạn dùng smbclient
với tham số –L:
#smbclient -L 10.0.0.2
Kết quả sẽ cho ra một số th− mục có trên máy 10.0.0.2, để vào một trong
các th− mục trên bạn dùng lệnh smbclient với tham số -U tên user (tên user có
quyền truy cập vào th− mục t−ơng ứng).
#smbclient //10.0.0.2/tên_th−_mục -U tên_user
Sau khi gõ vào mật khẩu bạn sẽ nhận đ−ợc dấu nhắc:
smb:\>
Tại dấu nhắc này bạn có thể dùng các câu lệnh nh− sau:
Ví dụ : Dùng smbclient nối đến máy Windows có địa chỉ IP là 10.0.0.2, để lấy
file trên máy này ta phải làm lần l−ợt các b−ớc sau:
Xác định các th− mục đ−ợc chỉa sẻ trên máy 10.0.0.2:
#smbclient -L 10.0.0.2 -U thuong
added interface ip=10.0.0.1 bcast=10.255.255.255 nmask=255.0.0.0
session request to 10.0.0.2 failed (Called name not present)
session request to 10 failed (Called name not present)
Password:
Sau khi nhập mật khẩu của tài khoản thuong (trên Windows) ta nhận đ−ợc
danh sách các th− mục share trên máy 10.0.0.2 nh− hình d−ới đây:
Đồ án tốt nghiệp
48
Sau khi biết đ−ợc các th− mục trên máy, bạn phải dùng câu lệnh:
[root@localhost root]# smbclient //10.0.0.2/SETUP -U thuong
Can’t find include file /etc/Samba/smb.conf.
added interface ip=10.0.0.1 bcast=10.255.255.255 nmask=255.0.0.0
session request to 10.0.0.2 failed (Called name not present)
session request to 10 failed (Called name not present)
Password:
Domain=[GROUP] OS=[Windows 5.1] Server=[Windows 2000 LAN
Manager]
smb: \>
Đồ án tốt nghiệp
49
Tại dấu nhắc này bạn có thể xem các file bên trong th− mục tienna bằng
lệnh ls, lấy nó về máy Linux bằng lệnh get hoặc mget:
3.6.2 Truy cập từ máy Windows
Với máy Windows việc truy cập dễ dàng hơn nhiều, bạn chỉ cần mở
Windows Explore và tìm đến domain mà máy Linux đăng nhập, nhấn chuột lên
tên máy Linux sau đó nhập vào tên tài khoản và mật khẩu t−ơng ứng, bạn sẽ nhìn
thấy các th− mục chia sẻ (sharing) hiện ra. Tại đây bạn cũng có thể thực hiện các
tính năng nh− map ổ đĩa, đồng bộ th− mục, sao chép file nh− ở các máy
Windows thông th−ờng.
Đồ án tốt nghiệp
50
CHƯƠNG iV: Squid proxy server
4.1. Tầm quan trọng và ph−ơng thức hoạt động của Squid cache
Squid là một ch−ơng trình cache proxy chạy trên nền tảng Unix và Linux.
Nó chuyển tiếp các yêu cầu từ máy khách (trong tr−ờng hợp này là web
browsers) tới server. Khi mà đối t−ợng yêu cầu trả về tới squid server nó sẽ
chuyển về cho client và giữ một bản copy ở cache. Một trong những lợi ích của
cache là khi vài client yêu cầu cùng một đối t−ợng thì nó sẽ đợc lấy từ trong
cache giúp cho các client nhận đ−ợc dữ liệu nhanh hơn là từ Internet. Việc này
cũng giảm các traffic trên mạng.
Cùng với caching squid còn có các đặc tính nh− chia tải bằng cách liên kết
các proxy server, định nghĩa chặt chẽ các danh sách điều khiển truy cập cho các
client truy cập proxy, cho phép hay từ chối truy cập tới các trang web đặc biệt.
Squid không phải là proxy chung mà nó thông th−ờng là proxy cho kết nối
HTTP. Nó cũng hỗ trợ các giao thức FTP, Gopher, SSL, và WAIS nh−ng nó lại
không hỗ trợ các giao thức internet khác nh Real Audio, news hoặc hội thảo trực
tuyến bởi vì Squid chỉ hỗ trợ giao thức UDP để liên kết giữa các cache nhiều
ch−ơng trình multimedia khác cũng không đợc hỗ trợ.
Proxy caches
Là một Proxy caches Squid có thể đ−ợc sử dụng theo một vài cách. Khi mà
kết hợp với Firewall nó có thể giúp cho việc bảo mật. Nhiều Proxy có thể đ−ợc sử
dụng với nhau và có thể xác định loại đối tợng nào cần l−u trong cache và l−u
trong bao lâu.
Squid và bảo mật
Chúng ta có thể sử dụng squid cùng với Firewall để bảovệ mạng nội bộ từ
bên ngoài sử dụng proxy cache. Fireawall từ chối tất cả client truy cập tới dịch vụ
Đồ án tốt nghiệp
51
bên ngoài ngoại trừ squid. Mọi kết nối tới web phải đ−ợc thiết lập theo cách của
proxy.
Nếu cấu hình Firewall bao gồm một DMZ proxy có thể vận hành trong vùng
này. Trong tr−ờng hợp này tất cả máy tính trong DMZ gửi các file log tới máy
trong mạng bảo mật là rất quan trọng.
Multiple caches
Vài proxy có thể đ−ợc cấu hình theo cách mà các đối t−ợng có thể trao đổi
giữa chúng. Việc này làm giảm tải toàn bộ hệ thống và tăng khả năng tìm một
đối t−ợng đã tồn tại trên mạng cục bộ. Còn có khả năng để cấu hình cache thứ
bậc để một cache có thể đa ra yêu cầu tới một cache cấp thấp hơn hay cao hơn.
Việc chọn đ−ợc mô hình thích hợp cho cache thứ bậc là rất quan trọng. Bởi vì
chúng ta không muốn tăng các traffic trên mạng. Với mạng rất lớn chúng ta có
thể cấu hình proxy server cho tất cả các mạng con và kết nối nó tới một proxy
cha mà nó kết nối tới proxy của ISP.
Tất cả các giao tiếp đó đ−ợc thực hiện bởi ICP ( Internet cache protocol)
chạy trên giao thức UDP. Dữ liệu l−u thông giữa các cache thì sử dụng HTTP dựa
trên giao thức TCP.
Tìm server thích hợp nhất để nhận các đối t−ợng thì một cache gửi một gói
tin ICP yêu cầu tới tất cả các proxy ngang hàng. Gói tin ICP trả lời sẽ kèm theo
mã HIT nếu đối t−ợng đ−ợc tìm thấy hoặc mã MISS nếu không thấy. Nếu nhiều
gói tin trả lời với mã HIT thì proxy server sẽ quyết định server để tải về dựa vào
các nhân tố nh−: cache nào gửi gói tin trả lời sớm nhất hoặc cái nào gần nhất.
Trong tr−ờng hợp nhận đợc tín hiệu trả lời với mã MISS thì yêu cầu sẽ gửi tới
cache cha.
Chú ý: Để tránh sự trùng hợp dữ liệu giữa các cache trong một mạng thì
giao thức ICP khác đợc sử dụng nh−: CARP (cache array routing protocol) hoặc
Đồ án tốt nghiệp
52
HTCP (hyper text cache protocol). Càng nhiều đối t−ợng l−u trong mạng thì càng
nhiều khả năng tìm thấy dữ liệu mong muốn.
Caching Internet
Không phải tất cả các đối t−ợng có trên mạng đều là tĩnh mà có rất nhiều
các trang động đợc tạo bởi CGI nh− đếm l−ợng khách truy nhập và nội dung tài
liệu SSL đ−ợc mã hóa. Các đối t−ợng nh− vậy không đ−ợc cache bởi vì nó thay
đổi mỗi khi chúng đ−ợc truy cập.
Câu hỏi l−u trữ các đối t−ợng trong bao lâu ở cache vẫn còn khó có lời giải
thích hợp. Để xác định điều này tất cả các đối t−ợng trong cache đ−ợc gán một
trong các tình trạng: “Last modified” hoặc “Expires” vào header. Server sử dụng
thuật toán LRU (last recently used) để thay thế các đối t−ợng trong cache nhằm
tăng dung l−ợng đĩa đơn giản là server sẽ loại bỏ các đối t−ợng mà lâu không có
yêu cầu truy cập.
4.2. Cài đặt
Vào trang www.squid-cache.org để load phần mềm squid về máy
Sử dụng lệnh sau để cài squid:
[root@home]#rpm -i squid-version.i386.rpm
Sau khi cài sẽ có các th− mục liên quan:
/usr/bin: L−u những th− viện của squid.
/ect/squid : L−u các file cấu hình squid.
/var/log/squid :L−u các tập tin log của squid.
4.3. Tập tin cấu hình /etc/squid/squid.conf
Tất cả những điều chỉnh đối với proxy server Squid đợc tạo trong
/etc/squid/squid.conf. Để chạy squid lần đầu tiên không cần phải thay đổi nội
dung của file này nh−ng tất cả các yêu cầu của client bên ngoài sẽ bị từ chối theo
mặc định. Nó chỉ có cho loccalhost. Cổng mặc định là 3128. Sau khi cài thì
Đồ án tốt nghiệp
53
/etc/squid/squid.conf cung cấp thông tin chi tiết về các tùy chọn và nhiều ví dụ.
Gần nh− tất cả các khóa đều bắt đầu với “ # ” ( Các dòng chú thích). Các đặc tả
có liên quan có thể tìm thấy ở cuối dòng. Các giá trị đ−a ra hầu hết là các giá trị
t−ơng quan với giá trị mặc định do vậy loại bỏ dấu chú thích mà không thay đổi
các tham số thì sẽ có một ít thay đổi trong hầu hết tr−ờng hợp.
4.4. Cấu hình các tùy chọn cơ bản
- http_port :Cấu hình port mà squid sẽ lắng nghe những yêu cầu đ−ợc gửi
đến.
Cú pháp:
http_port
Mặc định: http_port 3128
Ta th−ờng thay đổi cổng này là : 8080
http_port 8080
- Cache_peer: Nếu proxy không kết nối trực tiếp đến Internet hoặc nằm sau
một firewall thì ta phải cấu hình proxy này truy vấn đến proxy khác bằng tham số
cache_peer:
Cú pháp:
cache_peer
là tên hay địa chỉ IP của proxy truy vấn đến.
= “parent” , “sibling” hay “multicast”
là port mà đợc thiết lập bởi parent proxy thờng là 8080
là port mà icp chạy.
Ví dụ: để truy vấn đến proxy của ISP.
cache_peer www.vdc.com.vn parent 8080 8082
Ngoài ra trong cùng một mạng nếu có nhiều proxy thì có thể cấu hình để
các proxy này truy vấn lẫn nhau:
Đồ án tốt nghiệp
54
cache_peer proxy1.vdc.com.vn sibling 8080 8082
cache_peer proxy2.vdc.com.vn sibling 8080 8082
sibling có nghĩa la ngang hàng
- Những tùy chọn ảnh h−ởng đến cache
cache_mem : khóa này định nghĩa l−ợng bộ nhớ dùng cho cache.
cache_mem 8 MB
cache_dir: cấu hình th− mục l−u trữ dữ liệu đ−ợc cache
cache_dir /usr/local/squid/cache 100 16 256
có nghĩa là th− mục cache nằm ở /usr/local/squid/cache có dung l−ợng là
100 MB có 16 th− mục con trong nó mỗi th− mục con có 256 th− mục con nữa.
Nếu có vài đĩa mà chia sẽ cache thì có thể thêm vài dòng cache_dir
cache_access_log
cache_access_log /var/log/squid/access.log
cache_log
cache_log /var/log/squid/cache.log
cache_store_log
cache_store_log /var/log/squid/store.log
- Ng−ời dùng và nhóm có thể thay đổi squid. Cache_efactive_user,
Cache_efactive_group
cache_efactive_user chi
cache_efactive_group chi
- access control list và access control operator
4.5. Access control list
Bạn có thể dùng access control list để ngăn chặn, giới hạn việc truy xuất
dựa vào tên miền, địa chỉ IP đích (IP máy hoặc mạng). Mặc định squid từ chối
phục vụ tất cả vì vậy phải cấu hình tham số này.
Đồ án tốt nghiệp
55
Định nghĩa access list dùng thẻ acl
cú pháp:
acl ...
acl ...
acl src /
acl src -
/
acl srcdomain
acl dst /
acl dstdomain
acl port ..
acl port -
acl proto
acl method [GET] [POST]
Sử dụng acl với các thể điều khiển
Thẻ điều khiển truy xuất HTTP
http_access allow/deny [!]
Thẻ điều khiển truy xuất cache_peer
cache_peer_access cache host allow/deny [!]
Các ví du:
- Chỉ cho phép mạng 172.16.1.0/24 đ−ợc dùng proxy server bằng từ khóa
src trong acl
acl MyNetwork src 172.16.1.0/255.255.255.0
http_access allow MyNetwork
http_access deny all
Đồ án tốt nghiệp
56
- Cấm các máy truy xuất đến site www.mail.yahoo.com
acl BadDomain srcdomainwww.mail.yahoo.com
http_access deny BadDomain
http_access deny all
Nếu danh sách site cấm truy xuất quá dài thì có thể lu chúng cào tập tin văn
bản. Nội dung của danh sách này là các địa chỉ mà ta cấm. Mỗi địa chỉ ghi trên 1
dòng.
[root@home]#cat >/etc/squid/cam
nội dung file cấm:
www.mail.yahoo.com
www.gmail.com
www.vnexpress.net
acl BadDomain srcdomain “/etc/squid/cam”
http_access deny BadDomain
http_access deny all
Nếu có nhiều acl thì ứng với mỗi acl có một http_access
- Cấm các máy truy xuất đến site www.mail.yahoo.com. Chỉ có mạng
172.16.1.0/24 là đ−ợc phép dùng proxy
acl MyNetwork src 172.16.1.0/255.255.255.0
acl BadDomain srcdomain www.mail.yahoo.com
http_access deny BadDomain
http_access allow MyNetwork
http_access deny all
4.6. Khởi động squid
Để khởi động squid ta dùng lệnh:
Đồ án tốt nghiệp
57
[root@home]# /etc/init.d/squid start
Để dừng squid ta dùng lệnh:
[root@home]# /etc/init.d/squid stop
Để khởi động lại squid ta dùng lệnh:
[root@home]# /etc/init.d/squid restart
Đồ án tốt nghiệp
58
Ch−ơng V: Cấu hình WEB SERVER
5.1 Cài đặt apache, php, mysql.
Apache là một Web server rất mạnh và cũng là một phần mềm đ−ợc chọn
làm web server để chạy trên hầu hết các server Linux. Do đáp ứng đ−ợc nhiều
yêu cầu của ng−ời dùng nh− phát triển ứng dụng, kết nối với các hệ cơ sở dữ liệu
thông dụng, khả năng bảo mật, chạy trên nhiều hệ điều hành khác nhau và một
điều mà chúng ta đều biết là nó miễn phí.
ở đây chúng ta lấy ví dụ máy chủ có địa chỉ IP là 10.0.0.1 cài apache
còn máy trạm có địa chỉ IP còn lại của lớp A
5.1.1 Download và cài đặt Apache
Chúng ta có thể download apache ở địa chỉ:
Để đơn giản hơn có thể copy tập tin apache-2.0.15.i386.rpm trên đĩa cài
đặt RedHat 9.0
Sau khi đã có file apache-2.0.15.i386.rpm thì copy nó vào th− mục nào đó
rồi chạy lệnh rpm với tham số ivh chẳng hạn ta copy vào th− mục /var/apache
#cp apache-2.0.15.i386.rpm /var/apache
chuyển vào th− mục /var/apache
#cd /var/apache
cài đặt
#rpm -ivh apache-2.0.15.i386.rpm
sau khi thực hiện các lệnh trên thì apache đã đ−ợc cài đặt trên Linux.
để khởi động dịch vụ ta gõ lệnh:
#/etc/rc.d/init.d/httpd start
Đồ án tốt nghiệp
59
Có thể vào trình duyệt để kiểm tra. Vào trình duyệt gõ nếu
thấy màn hình nh− sau thì apache đã hoạt động.
5.1.2 Download và cài đặt php
Chúng ta có thể download php ở địa chỉ:
Sau khi đã có file php.rpm thì copy nó vào th− mục nào đó rồi chạy lệnh
rpm với tham số ivh chẳng hạn ta copy vào th− mục /var/php
#cp php.rpm /var/php
chuyển vào th− mục /var/php
#cd /var/php
cài đặt
#rpm -ivh php.rpm
Đồ án tốt nghiệp
60
Sau khi thực hiện các lệnh trên thì php đã đ−ợc cài đặt trên Linux để hỗ trợ
cho apache.
Để kiểm tra xem php đã hoạt động trên apache ch−a ta tao file php để chạy
thử:
#echo “Tin5-k5 vui ve”>/var/www/html/thu.php
Vào trình duyệt gõ nếu thấy màn hình nh− sau thì
php đã hoạt động:
5.1.3 Download và cài đặt Mysql
Chúng ta có thể download Mysql ở địa chỉ:
Đồ án tốt nghiệp
61
Sau khi đã có file mysql.rpm thì copy nó vào th− mục nào đó rồi chạy lệnh
rpm với tham số ivh chẳng hạn ta copy vào th− mục /var/mysql
#cp mysql.rpm /var/mysql
chuyển vào th− mục /var/mysql
#cd /var/mysql
cài đặt
#rpm -ivh mysql.rpm
Sau khi thực hiện các lệnh trên thì php đã đ−ợc cài đặt trên Linux để hỗ trợ
cho apache.
Để kiểm tra xem Mysql đã hoạt động trên apache ch−a ta tao file php có
truy cập cơ sở dữ liệu để chạy thử:
Gõ lệnh: mysql -u root
Lúc này sẽ xuất hiện dấu nhắc mysql>, bạn gõ lần l−ợt các lệnh:
use test;
CREATE TABLE books (
id int(3) not null auto_increment,
name char(50) not null,
unique(id),
primary key(id)
);
INSERT INTO books (name) values('PHP 4 Newbies');
INSERT INTO books (name) values('Red Hat Linux Server');
exit
Lệnh exit sẽ thoát khỏi dấu nhắc của mysql.
Đồ án tốt nghiệp
62
Tạo file mysql.php trong th− mục /var/www/html/ nội dung file mysql.php
nh− sau:
<?
$UserNameSQL="root";
$PassSQL="";
$DataBase="test";
$link=mysql_connect("localhost","$UserNameSQL","$PassSQL")
or die("khong ket noi duoc");
mysql_select_db("$DataBase",$link);
$sql="select * from books ";
$result=mysql_query($sql,$link);
if($result!=0)
{
while($row=mysql_fetch_array($result))
{
$id=$row[0];
$sach=$row[1];
echo " $id";
echo " $sach";
}
}
?>
Rồi sang browser chạy thử nếu thấy hình nh−
sau là đã thành công.
Đồ án tốt nghiệp
63
5.2 Cấu hình Apache cơ bản
Để cấu hình Apache thì phải sửa thông tin trong tập tin
/etc/httpd/conf/httpd.conf
Tập tin cấu hình của /etc/ httpd/conf/httpd.conf
Tập tin “httpd.conf” là tập tin cấu hình chính của web server
Apache. Tập tin httpd.conf tự thiết đặt chính nó cho việc cài đặt cấu hình quen
thuộc với:
ServerType standalone: Tùy chọn “Server root” chỉ rõ Apache phải
chạy trên hệ thống nh− thế nào. Có thể chạy nó từ super-server inetd, hoặc nh−
standalone deamon. Nó đ−ợc đề nghị chạy theo kiểu standalone để thi hành và có
tốc độ tốt hơn.
Đồ án tốt nghiệp
64
ServerRoot “/etc/httpd”: Tùy chọn “ServerRoot” chỉ rõ th− mục ở
đó l−u những tập tin đang sử dụng của máy chủ Apache. Nó chỉ cho Apache biết
nơi nào có thể tìm thấy những tập tin khi nó khởi động.
PidFile /var/run/httpd.pid: Tùy chọn “PidFile” chỉ rõ nơi mà ở đó
máy chủ sẽ ghi lại id của tiến trình của deamon khi nó khởi động. Tùy chọn này
chỉ đ−ợc yêu cầu khi cấu hình Apache kiểu standalone.
ResourceConfig /dev/null: Tùy chọn “ResourceConfig” chỉ rõ nơi
l−u trữ tập tin cũ “srm.conf” nơi này Apache đọc sau khi nó đã đọc xong tập tin
“httpd.conf”. Khi bạn đặt đ−ờng dẫn đến “/dev/null”, Apache cho phép bạn đ−a
vào nội dung của tập tin này trong tập tin “httpd.conf”, và theo cách này thì sẽ có
một tập tin kiểm soát tất cả những tham số cấu hình cho đơn giản.
AccessConfig /dev/null: Tùy chọn “AccessConfig” chỉ rõ nơi l−u
trữ tập tin cũ “access.conf” nơi này Apache đọc sau khi nó đã đọc xong tập tin
“srm.conf”. Khi bạn đặt đ−ờng dẫn đến “/dev/null”, Apache cho phép đ−a vào
nội dung của tập tin này trong tập tin “httpd.conf”, và theo cách này ta vừa có
một tập tin kiểm soát tất cả những tham số cấu hình cho đơn giản.
Timeout 300: Tùy chọn “Timeout” chỉ rõ khoảng thời gian Apache
sẽ chờ cho một yêu cầu GET, POST, PUT và phát hiện tín hiệu ACKs. Có thể an
toàn bỏ đi tùy chọn trên giá trị mặc định của nó.
KeepAlive On: Tùy chọn “KeepAlive”, nếu mở “On”, cho phép duy
trì kết nối liên tục trên web server. Để thực hiện tốt hơn, nên chọn “On”, và cho
phép nhiều hơn một yêu cầu trên kết nối.
Max KeepAliveRequests 0: Tùy chọn “Max KeepAliveRequests”
chỉ rõ số yêu cầu cho phép trên kết nối tùy chọn “KeepAlive” ở trên đ−ợc để
“On”. Khi giá trị bằng 0 thì không có giới hạn yêu cầu đ−ợc phép trên máy chủ.
Đồ án tốt nghiệp
65
Tăng khả năng thực hiện cho máy chủ nên cho phép không giới hạn những yêu
cầu.
KeepAliveTimeout 15: Tùy chọn “KeepAliveTimeout” chỉ rõ
khoảng thời gian đ−ợc tính bằng giây, Apache sẽ chờ yêu cầu đến sau tr−ớc khi
ngắt kết nối. “15” là một giới hạn tốt cho máy chủ thực hiện.
MinSpareServers 16: tùy chọn “MinSpareServers” chỉ rõ số nhỏ
nhất của idle child server processes cho Apache, điều này không giải quyết một
yêu cầu. Đây là tham số điều chỉnh quan trọng đối với sự thực hiện của web
server Apache. Sự hoạt động với trọng tải cao, “16” là một giá trị đề nghị bởi
những điểm chuẩn khác nhau trên Internet.
MaxSpareServers 64: Tùy chọn “MaxSpareServers 64” chỉ rõ số lớn
nhất của idle child server processes cho Apache, điều này không giải quyết một
yêu cầu. Đây là tham số điều chỉnh quan trọng đối với sự thực hiện của web
server Apache. Sự hoạt động với trọng tải cao, “16” là một giá trị đề nghị bởi
những điểm chuẩn khác nhau trên Internet.
StartServers 16: Tùy chọn “StartServers” chỉ rõ số của child server
processes nó sẽ đ−ợc tạo bởi Apache lúc khởi động. Đây là tham số điều chỉnh
quan trọng đối với sự thực hiện của web server Apache. Sự hoạt động với trọng tải
cao, “16” là một giá trị đề nghị bởi những điểm chuẩn khác nhau trên Internet.
MaxClient 512: Tùy chọn “MaxClient” chỉ rõ những yêu cầu xảy ra
cùng một thời điểm nó có thể đ−ợc hỗ trợ bởi Apache. Đây là tham số điều chỉnh
quan trọng đối với sự thực hiện của web server Apache. Sự hoạt động với trọng tải
cao, “512” là một giá trị đề nghị bởi những điểm chuẩn khác nhau trên Internet.
MaxRequestsPerChild 100000: Tùy chọn “MaxRequestsPerChild”
chỉ rõ số những yêu cầu của một child server processes riêng lẻ sẽ xử lý. Đây
Đồ án tốt nghiệp
66
cũng là tham số điều chỉnh quan trọng đối với sự thực hiện của web server
Apache.
User www: Tùy chọn “User” chỉ rõ UID mà máy chủ Apache sẽ
chạy. Điều quan trọng để tạo mới một nhóm ng−ời dùng có quyền tối thiểu truy
cập hệ thống, và những chức năng chạy đ−ợc web server deamon.
Group www: Tùy chọn “Group” chỉ rõ GID mà máy chủ Apache sẽ
chạy. Điều quan trọng để tạo mới một nhóm ng−ời dùng có quyền tối thiểu truy
cập hệ thống, và những chức năng chạy đ−ợc web server deamon.
DirectoryIndex index.htm index.html index.php index.php3
default.html index.cgi: Tùy chọn “DirectoryIndex” chỉ rõ những tập tin ng−ời
dùng bởi Apache nh− là một th− mục index HTML viết sẵn. Nói cách khác, nếu
Apache không thấy trang index mặc định để hiển thị, nó sẽ cố tìm danh sách kế
tiếp trong tham số này (nếu có sẵn). Để tăng tốc độ cho web server nên có danh
sách chứa hầu hết những trang index mặc định để hiển thị những trang web đầu
tiên.
Include /conf/mmap.conf: Tùy chọn “Include” chỉ rõ nơi l−u trữ
những tập tin khác mà bạn có thể đ−a vào từ bên trong những tập tin cấu
hình(httpd.conf). Tr−ờng hợp này đ−a vào tập tin “mmap.conf” đ−ợc l−u trữ trong
th− mục “/etc/httpd.conf”. Tập tin(“mmap.conf”) sắp xếp các tập tin vào trong bộ
nhớ để truy xuất nhanh hơn.
HostnameLookups Off: Tùy chọn “HostnameLookups”, nếu chọn
“Off” định rõ không cho DNS tra cứu. Nên chọn “Off” để giảm thời gian l−u
thông trên mạng, cải thiện tốc độ của web server Apache.
Đồ án tốt nghiệp
67
5.3 Cấu hình bảo mật apache
5.3.1 Giới hạn địa chỉ ip.
Theo thống kê thực tế, 70% các cuộc tấn công xuất phát từ các máy tính
trong mạng nội bộ, 30% số còn lại đến từ các máy mạng bên ngoài. Vì vậy, việc
giới hạn đ−ợc các máy tính trong mạng 'dòm ngó' những tài nguyên quan trọng
và nhạy cảm trên máy chủ càng nhiều càng tốt. Module mod_access của Apache
có khả năng xác định đ−ợc địa chỉ IP của máy trạm có yêu cầu sử dụng dịch vụ
Web, dựa trên đó nó áp dụng các chính sách (policy) mà ng−ời quản trị đã khai
báo để quyết định máy tính có địa chỉ IP đó có đ−ợc phép sử dụng dịch vụ hay
không.
Việc khai báo các chính sách đ−ợc thực hiện bằng việc sửa đổi file cấu
hình của Apache (mặc định sẽ đ−ợc l−u vào file /etc/httpd/conf/httpd.conf) và
thêm vào các thẻ.
Để ngăn hay cho phép một địa chỉ, dải địa chỉ IP xác định, Apache có thẻ
Allow và Deny. Cú pháp của hai thẻ này nh− sau:
Allow from host-or-network #Cho phép host hoặc một giải IP truy cập
Deny from host-or-network # Cấm host hoặc một giải IP truy cập
host-or-network có thể là:
• Tên host hoặc tên domain (ví dụ: www.foo.com)
• Một địa chỉ IP xác định (ví dụ: 10.0.0.2)
• Một địa chỉ IP và địa chỉ mạng con (ví dụ: 10.0.0.0/255.0.0.0 - xác định
tất cả các máy tính có địa chỉ IP có byte đầu là 10, bất kể 3 byte sau là
gì).
Với hai thẻ trên, Apache khuyến cáo sử dụng địa chỉ IP thay cho tên
domain, bởi nếu khai theo tên domain thì Apache phải tốn thời gian chuyển đổi
Đồ án tốt nghiệp
68
từ domain name sang IP và sau đó mới áp dụng các chính sách giới hạn cho địa
chỉ này. Việc này dẫn đến sự tiêu tốn tài nguyên của máy chủ.
Nếu muốn dùng cả hai thẻ Allow và Deny thì thứ tự của chúng đ−ợc xác
định bằng thẻ Order.
Ví dụ: Để cấu hình chỉ cho các máy có địa chỉ IP có byte đầu tiên là 10 đ−ợc
xem nội dung file .html thì khai báo nh− sau:
Order Deny,Allow #không có khoảng trống giữa hai từ khoá
Deny from All
Allow from 10.0.0.0/255.0.0.0
Sau khi thay đổi nội dung file cấu hình (/etc/httpd/conf/httpd.conf), để thay
đổi này có hiệu lực phải khởi động lại dịch vụ Web (httpd) bằng lệnh:
[root@localhost root]# /etc/rc.d/init.d/httpd restart
Apache sẽ thực thi thẻ Deny tr−ớc và thẻ Allow sau. Cách làm này đ−ợc
tiến hành t−ơng tự đối với th− mục.
Ví dụ: Có một diễn đàn (forum) đặt tại th− mục vật lý là
/var/www/html/forum . Và muốn giới hạn cho các máy tính thuộc dải địa chỉ từ
10.0.0.1 đến 10.0.0.15 , hoặc máy có địa chỉ 10.0.0.91 thì có thể khai báo nh−
sau:
Order Deny,Allow
Deny from All
Allow from 10.0.0.1/ 28
Allow from 10.0.0.91
Đồ án tốt nghiệp
69
Khi đã khai báo nh− vậy thì chỉ có các máy tính có địa chỉ IP thoả mãn
điều kiện trên mới có thể truy cập vào diễn đàn này. Tất cả các máy tính có địa
chỉ
IP nằm ngoài dải trên sẽ nhận đ−ợc thông báo 'Access forbidden!' nh− hình
d−ới đây.
5.3.2 Giới hạn truy cập theo tài khoản sử dụng
Nếu muốn bảo vệ các trang thông tin của mình trên Website bằng cách
yêu cầu ng−ời dùng phải nhập vào tên tài khoản (username) và mật khẩu
(password) thì Apache cũng có sẵn module mod_auth để đáp ứng yêu cầu này.
Apache cung cấp 2 khả năng xác thực ng−ời dùng là Basic authentication và
Digest authentication. Trong đó, Digest authentication đ−ợc đánh giá là an toàn
Đồ án tốt nghiệp
70
hơn nh−ng lại ít đ−ợc phát triển. Cách xác thực đ−ợc sử dụng phổ biến với các
Web server Apache hiện nay là basic authentication, cách xác thực này sử dụng
64 bit để mã hóa tên tài khoản và mật khẩu tr−ớc khi gửi đến server. Điều này
còn có nghĩa là việc chặn thông tin trên đ−ờng truyền để giải mã lấy tên tài
khoản và mật khẩu là công việc hết sức khó khăn.
Các thông tin về tên tài khoản và mật khẩu đ−ợc tạo bằng ch−ơng trình
htpasswd. Các thông tin này sẽ đ−ợc l−u vào một file text với truờng mật khẩu đã
đ−ợc mã hoá và khi cần xác thực ng−ời dùng Apache sẽ giải mã mật khẩu mà
ng−ời dùng cung cấp sau đó mang so sánh với mật khẩu l−u trữ. Cú pháp của câu
lệnh htpasswd nh− sau (các thông tin trong dấu ngoặc vuông '[]' là tuỳ chọn) :
htpasswd [options] pwfile username [password]
options bao gồm:
m: Chọn thuật toán mã hoá mật khẩu là MD5.
d: Dùng thuật toán mã hoá của hệ thống để mã hóa mật khẩu.
s: Mã hóa mật khẩu theo thuật toán SHA.
b: Nhập mật khẩu trực tiếp vào dòng lệnh.
Thuật toán mã hóa có thể đ−ợc áp dụng cho từng bản ghi khác nhau trong
một file, điều này có nghĩa là các tài khoản khác nhau có thể có mật khẩu
đ−ợc mã hóa theo các thuật toán khác nhau.
c: Mặc định htpasswd hiểu rằng file chứa tài khoản và mật khẩu (pwfile)
đã tồn tại. Vì vậy để tạo một file mới bạn phải sử dụng tuỳ chọn -c.
pwfile: Là tên file l−u trữ tên tài khoản và mật khẩu.
username: Tên tài khoản cần tạo.
password: Mật khẩu của tài khoản t−ơng ứng (chỉ sử dụng khi có option là
'-b').
Đồ án tốt nghiệp
71
Ví dụ: Để tạo ra tài khoản là chi với mật khẩu là 123456 vào một file mới là
/etc/http/conf/passwd thì câu lệnh đầy đủ là:
#htpasswd -cb /etc/httpd/conf/passwd chi 123456
hoặc:
#htpasswd -c /etc/http/conf/passwd chi
Sau khi tạo đ−ợc file chứa tài khoản và mật khẩu của ng−ời dùng thì ng−ời
quản trị sẽ phải sử dụng các thẻ AuthName, AuthType, AuthUserFile và Require
để khai báo trong file cấu hình http.conf.
Ví dụ: Muốn đ−a lên một trang sách điện tử có địa chỉ URL là
và yêu cầu mọi ng−ời vào trang này đều phải có tên tài
khoản và mật khẩu đã đ−ợc gán định tr−ớc. File cấu hình
/etc/httpd/conf/http.conf phải thêm vào các dòng sau:
AuthName 'Insiders Only'
AuthType Basic
AuthUserFile /etc/httpd/conf/passwd
Require valid-user
Khi ng−ời dùng yêu cầu tran web đó thì apache sẽ yêu cầu nhập username
và password
Đồ án tốt nghiệp
72
L−u ý: Mặc định dịch vụ Web (httpd) sẽ sử dụng account Apache để khởi
động cũng nh− xác định các quyền hạn đọc/ghi cho các file và th− mục trên hệ
thống. Vì vậy, tài khoản này phải có quyền đọc file /etc/httpd/conf/passwd để
biết đ−ợc mật khẩu ng−ời sử dụng và tài khoản t−ơng ứng. Để làm việc này ta có
thể dùng một trong hai lệnh sau:
[root@localhost root]# chmod ugo+r /etc/httpd/conf/passwd
hoặc
[root@localhost root]# chown apache /etc/httpd/conf/passwd
Cũng giống nh− việc khai báo chính sách cho địa chỉ IP, sau khi khai báo
lại file cấu hình cho các thẻ AuthName, AuthType, AuthUserFile và Require
Apache, httpd yêu cầu phải đ−ợc khởi động lại để xác nhận sự thay đổi này. Vì
vậy, sau mỗi lần thay đổi phải dùng lệnh:
[root@localhost root]# /etc/initd.d/httpd restart
Đồ án tốt nghiệp
73
Với cấu hình nh− trên, chỉ ng−ời sử dụng nào có tài khoản và mật khẩu
trong file /etc/httpd/conf/passwd mới có quyền đăng nhập vào trang Web
Thẻ Require có các giá trị sau:
• valid-user: chỉ những ng−ời có tài khoản hợp lệ.
• user userid: chỉ cho phép các tài khoản này đăng nhập nếu cung cấp
đúng mật khẩu.
• group groupid: chỉ có tài khoản thuộc các các nhóm xác định mới có
quyền đăng nhập.
Ví dụ: Có 4 ng−ời dùng khai báo trong file /etc/ httpd/conf/passwd là
'thuong', 'huong', 'chi', 'bidao'. Trong số 4 ng−ời này bạn chỉ cho phép 3 ng−ời là
'thuong', 'huong', 'chi' đ−ợc đăng nhập vào địa chỉ
Alias /secure/ '/var/www/secure/'
# thẻ này để ánh xạ th− mục '/var/www/secure/ lên
AuthType Basic
AuthName '3 Member Only'
AuthUserFile /etc/httpd/conf/passwd
Require user thuong huong chi
Thẻ AuthUserFile: Chỉ cho phép xác định từng ng−ời dùng. Khi muốn xác
định cho một nhóm ng−ời dùng phải dùng thẻ AuthGroupFile, cú pháp của thẻ
này nh− sau:
AuthGroupFile Filepath
Đồ án tốt nghiệp
74
Filepath là đ−ờng dẫn tới file text chứa tên nhóm và ng−ời dùng. Mỗi dòng
của file này bao gồm tên nhóm, dấu phân cách hai chấm (:) và ng−ời sử dụng
trong nhóm đó.
Ví dụ: Có file /etc/httpd/conf/groups chứa tài khoản 4 ng−ời dùng thuộc 2
nhóm Admin và User nh− sau:
[root@localhost root]# cat /etc/httpd/conf/groups
Admin: huong chi
User: thuong bidao
Và để giới hạn chỉ xác thực mật khẩu của các tài khoản trong nhóm Admin
khi đăng nhập vào thì file cấu hình
/etc/httpd/conf/httpd.conf đ−ợc sửa lại t−ơng ứng nh− sau:
Alias /book/ '/var/www/book/'
AuthName 'Admin group Only'
AuthType Basic
AuthUserFile /etc/httpd/conf/passwd
AuthGroupFile /etc/httpd/conf/groups
Require group Admin
Với cách cấu hình này bất kỳ ai dùng trình duyệt để mở trang
đều nhận đ−ợc yêu cầu nhập tên tài khoản và mật khẩu nh−
hình sau:
Đồ án tốt nghiệp
75
Những tài khoản không thuộc nhóm Admin sẽ không thể đăng nhập đ−ợc vào
nếu cố đăng nhập sau 3 lần sẽ nhận đ−ợc thông báo
'Authentication required!'
Đồ án tốt nghiệp
76
Đôi khi nhiều ng−ời muốn kết hợp cả giới hạn theo địa chỉ IP và ng−ời
dùng, việc này hoàn toàn có thể triển khai đ−ợc với Apache, d−ới đây là một
đoạn file cấu hình ví dụ:
Order Deny,Allow
Deny from All
Allow from 10.0.0.0/255.0.0.0
AuthName 'Insiders Only'
AuthType Basic
AuthUserFile /etc/httpd/conf/passwd
Require valid-user
Đồ án tốt nghiệp
77
Nh− vậy, để truy cập đ−ợc file phpinfo.php ng−ời sử dụng phải qua đ−ợc 2
vòng kiểm tra, lần thứ nhất Apache sẽ kiểm tra địa chỉ IP của máy ng−ời dùng
yêu cầu có nằm trong dải 10.0.0.0/255.0.0.0 hay không, nếu điều kiện này thoả,
nó tiếp tục kiểm tra mật khẩu và tài khoản ng−ời dùng cung cấp có t−ơng ứng với
thông tin l−u trong file /etc/httpd/conf/passwd hay không, nếu cả hai đều thoả thì
ng−ời dùng sẽ đọc đ−ợc nội dung file này.
Đồ án tốt nghiệp
78
Ch−ơng vI: Bảo mật với Firewall, ip tables
6.1 FireWall
6.1.1 Định nghĩa
Thuật ngữ FireWall có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để
ngăn chặn, hạn chế hoả hoạn. Trong Công nghệ mạng thông tin, FireWall là một
kỹ thuật đ−ợc tích hợp vào hệ thống mạng để chống lại sự truy cập trái phép
nhằm bảo vệ các nguồn thông tin nội bộ cũng nh− hạn chế sự xâm nhập vào hệ
thông của một số thông tin khác không mong muốn.
Internet FireWall là một thiết bị (bao gồm phần cứng và phần mềm) giữa
mạng của một tổ chức, một công ty, hay một quốc gia (Intranet) và Internet.
6.1.2 Chức năng
FireWall quyết định những dịch vụ nào từ bên trong đ−ợc phép truy cập từ
bên ngoài, những ng−ời nào từ bên ngoài đ−ợcphép truy cập đến các dịch vụ bên
trong, và cả những dịch vụ nào bên ngoài đ−ợc phép truy cập bởi những ng−ời
bên trong.
6.1.3 Cấu trúc của FireWall
FireWall bao gồm :
Intranet
FireWall
Internet
Đồ án tốt nghiệp
79
Một hoặc nhiều hệ thống máy chủ kết nối với các bộ định tuyến (router)
hoặc có chức năng router.
Các phần mềm quản lí an ninh chạy trên hệ thống máy chủ. Thông th−ờng
là các hệ quản trị xác thực (Authentication), cấp quyền (Authorization) và kế
toán (Accounting).
6.1.4 Các thành phần của FireWall
Một FireWall bao gồm một hay nhiều thành phần sau :
+ Bộ lọc packet (packet- filtering router).
+ Cổng ứng dụng (Application-level gateway hay proxy server).
+ Cổng mạch (Circuite level gateway).
6.1.4.1 Bộ lọc packet (Packet filtering router)
Khi nói đến việc l−u thông dữ liệu giữa các mạng với nhau thông qua Firewall
thì điều đó có nghĩa rằng Firewall hoạt động chặt chẽ với giao thức TCI/IP. Vì
giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận đ−ợc từ các ứng
dụng trên mạng, hay nói chính xác hơn là các dịch vụ chạy trên các giao thức
(Telnet, SMTP, DNS, SNMP, NFS...) thành các gói dữ liệu (data packets) rồi gán
cho các packet này những địa chỉ để có thể nhận dạng, tái lập lại ở đích cần gửi
đến, do đó các loại Firewall cũng liên quan rất nhiều đến các packet và những
con số địa chỉ của chúng.
Bộ lọc packet cho phép hay từ chối mỗi packet mà nó nhận đ−ợc. Nó kiểm tra
toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thoả mãn một trong
số các luật lệ của lọc packet hay không. Các luật lệ lọc packet này là dựa trên các
thông tin ở đầu mỗi packet (packet header), dùng để cho phép truyền các packet
đó ở trên mạng. Đó là:
• Địa chỉ IP nơi xuất phát ( IP Source address)
• Địa chỉ IP nơi nhận (IP Destination address)
Đồ án tốt nghiệp
80
• Những thủ tục truyền tin (TCP, UDP, ICMP, IP tunnel)
• Cổng TCP/UDP nơi xuất phát (TCP/UDP source port)
• Cổng TCP/UDP nơi nhận (TCP/UDP destination port)
• Dạng thông báo ICMP ( ICMP message type)
• Giao diện packet đến ( incomming interface of packet)
• Giao diện packet đi ( outcomming interface of packet)
Nếu luật lệ lọc packet đ−ợc thoả mãn thì packet đ−ợc chuyển qua firewall.
Nếu không packet sẽ bị bỏ đi. Nhờ vậy mà Firewall có thể ngăn cản đ−ợc các kết
nối vào các máy chủ hoặc mạng nào đó đ−ợc xác định, hoặc khoá việc truy cập
vào hệ thống mạng nội bộ từ những địa chỉ
Các file đính kèm theo tài liệu này:
- DoanTNHuongdancobanLinux.pdf