Đề tài Giới thiệu về Linux

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ề ...

pdf104 trang | Chia sẻ: hunglv | Lượt xem: 1530 | Lượt tải: 0download
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:

  • pdfDoanTNHuongdancobanLinux.pdf
Tài liệu liên quan