Nghiên cứu và phát triển các dịch vụ bảo mật trên Linux

BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH KHOA CễNG NGHỆ THễNG TIN ---------------- ĐỒ ÁN TỐT NGHIỆP NGHIấN CỨU VÀ PHÁT TRIỂN CÁC DỊCH VỤ BẢO MẬT TRấN LINUX Giảng viờn hướng dẫn: Thạc Sỹ VŨ CHÍ CƯỜNG Sinh viờn thực hiện: ĐẶNG PHÚC VIỆT Lớp: 46K3.CNTT Thành Phố Vinh, Thỏng 4 Năm 2010 Lời Mở Đầu Chúng ta đang được sống trong một thời đại tri thức, thời đại của sự biến đổi và phát triến không ngừng của công nghệ. Công nghệ tạo nên cuộc sống và làm thay đổi cuộc sống

pdf66 trang | Chia sẻ: huyen82 | Lượt xem: 4854 | Lượt tải: 5download
Tóm tắt tài liệu Nghiên cứu và phát triển các dịch vụ bảo mật trên Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
của chúng ta. Công nghệ thông tin là những nền tảng để tạo nên công nghệ làm thay đổi cuộc sống. Như chúng ta đã biết công nghệ thông tin làm thay đổi cuộc sống của chúng ta rất nhiều, nó tác động và làm thay đổi về tất cả mọi mặt của đời sống chúng ta như quản lý, điều khiển công việc, phục vụ công việc, giải trí, viển thông, trao đổi… Đó là những gì mà công nghệ thông tin đã mang lại cho chúng ta. Và con nhiều hơn nữa nền công nghệ đó đang ngày càng phát triển và hoàn thiện hơn. Nhưng bên cạnh những lợi ích mà nó mang lại thì cũng có những khó khăn được đặt ra đó chính là phải có những con người vận hành nền công nghệ đó, các thiết bị chuyên dụng hiện đại, chi phí đầu tư cho công nghệ… Tất cả những điều đó đã làm cho việc hoạch toán chi phí ứng dụng công nghệ vào sản xuất được khai thác và tận dụng triệt để. Như chúng ta đã biết bên cạnh những lợi ích mà các thiết bị và phần mềm công nghệ mang lại phục vụ cho sản xuất thì nó có giá thành và chi phí rất cao. Vì vậy đòi hỏi người dùng cũng như các doanh nghiệp cần có một chính sách hợp lý để sử dụng được công nghệ. Điều đó đã tạo nên sự phát triển của cộng đồng mã nguồn mỡ để cho con người tiếp cận công nghệ một cách thuận lợi nhất mà không cần phải chi phí nhiều cho đầu tư công nghệ. Linux là một phần mềm hệ điều hành mã nguồn mở được cộng đồng IT thế giới phát triển liên tục và không ngừng trên internet, xét một cách toàn bộ thì Linux hơn hẳn các sản phẩm trên thị trường hiện nay, bởi tính miển phí và tính có rất nhiều ứng dụng phục vụ cho công việc, mổi ứng dụng lại có rất nhiều người viết nên dó đó hiệu năng ứng dụng và sự lựa chọn cho người dùng rất lớn. Trong đề tài này tôi sẽ tập trung giới thiệu một cách tổng quát về Linux và một số ứng dụng bảo mật của Linux giựa trên hệ điều hành Linux CentOS 5.4 phát triển trên kernel 2.6.18-164.e15. Lời Cảm Ơn Trong quá trình làm đề tài em xin chân thành cảm ơn thầy Vũ Chí Cường đã tận tình hướng dẫn, giúp đỡ em trong suốt thời gian thực hiện để ngày càng hoàn thiện để tài : “Nghiên cứu và phát triển các dịch vụ bảo mật trên Linux”. Thông qua đề tài cho em xin cảm ơn quý thầy cô giáo trong khoa công nghệ thông tin trường Đại học Vinh đã truyền đạt và giảng dảy cho em những kiến thức hết sức quý báu để em có thể hoàn thành đề tài này. Cuối cùng cho em xin cảm ơn toàn bộ cán bộ và nhân viên trong tòa soạn báo công an Nghệ An đã tạo điều kiện cho em thực tập và nghiên cứu để thực hiện đề tài này. Mặc dù em đã cố gắng hoàn thành đề tài rất nhiều trong phạm vi kiến thức cho phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót kính mong quý thầy cô và các bạn bổ sung để đề tài được hoàn thiện hơn. Vinh, ngày 07/05/2010 Sinh viên thực hiện Đặng Phúc Việt Nhận Xét (Của giảng viên hướng dẫn) ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Nhận Xét (Của giảng viên phản biện) ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… Mục Lục Chương 1. Giới Thiệu về Linux Và Hệ Điều Hành Máy Chủ Centos ................................... 1 1.1. Vài dòng về lịch sữ phát triển Linux. ............................................................................. 1 1.2. Ưu và nhược điểm của hệ điêu hành Linux.................................................................... 1 1.2.1. Ưu điểm của hệ điều hành Linux ................................................................................ 1 1.2.2. Một số khuyết điểm của Linux. ................................................................................... 2 1.3. Kiến trúc của hệ điều hành Linux.................................................................................. 2 1.4. Cấu trúc và thao tác tập tin trên Linux ......................................................................... 3 1.4.1. Cấu trúc tập tin .......................................................................................................... 3 1.4.2. Thao tác trên tập tin Linux ........................................................................................ 3 1.4.2.1. Loại tập tin.......................................................................................................... 3 1.4.2.2. Liên kết các tập tin .............................................................................................. 4 1.4.2.3. Cấu trúc cây thư mục........................................................................................... 4 1.4.2.4. Một số thao tác trên tập tin.................................................................................. 5 1.4.2.5. Thao tác trên thư mục.......................................................................................... 5 1.4.2.6. Quyền trên hạn của người dùng với tập tin........................................................... 6 1.4.2.7. Lệnh chmod......................................................................................................... 7 1.4.2.9. Lệnh chown ......................................................................................................... 7 1.4.2.10. Lệnh chgrp ........................................................................................................ 7 1.5. Cài đặt phần mềm trên Linux ........................................................................................ 7 1.5.1. Sử dụng lệnh rpm ....................................................................................................... 7 1.5.2. Cài đặt phần mềm với đuôi phần mềm mở rộng .tar, .tgz ............................................ 8 1.5.3. Sử dụng lệnh yum để cài đặt ....................................................................................... 8 1.6. Quản trị người dùng và nhóm ........................................................................................ 8 1.6.1. Thông tin về user........................................................................................................ 9 1.6.1.1. Tập tin /etc/passwd.............................................................................................. 9 1.6.1.2. Username và UserID ..........................................................................................10 1.6.1.3. Tập tin /etc/shadow ............................................................................................10 1.6.1.4. Group ID............................................................................................................10 1.6.2. Quản lý người dùng ...................................................................................................10 1.6.2.1. Tạo tài khoản người dùng ...................................................................................10 1.6.2.2. Thay đổi thông tin tài khoản ...............................................................................11 1.6.2.3. Một số lệnh thao tác với tài khoản người dùng....................................................11 1.6.3. Quản lý nhóm người dùng .........................................................................................11 1.7. Giới thiệu về hệ điều hành máy chủ Linux CentOS 5.4................................................12 Chương 2: PROXY SERVER..........................................................................................13 2.1. Giới thiệu về Proxy Server.............................................................................................13 2.2. Tìm hiểu về dịch vụ Squid Proxy ..................................................................................13 2.2.1. Giới thiệu về Squid Proxy ..........................................................................................13 2.2.2. Những giao thức hỗ trợ trên Squid Proxy...................................................................13 2.2.3. Quá trình trao đổi cache trên Squid Proxy ................................................................14 2.2.4. Thư mục cài đặt và các gói cài đặt cho Squid Proxy ..................................................14 2.2.4.1. Các thư mục mặc định của Squid ........................................................................14 2.2.4.2. Cài đặt squid từ package rpm .............................................................................14 2.3. Cấu hình Squid Proxy ...................................................................................................14 2.3.1. Tập tin cấu hình ........................................................................................................14 2.3.2. Những tùy chọn cơ bản..............................................................................................15 2.3.3. Khởi động Squid........................................................................................................17 2.4. Cài đặt và cấu hình dịch vụ Squid Proxy cho hệ thống mạng nội bộ...........................18 2.4.1. Cài đặt Squid. ...........................................................................................................18 2.4.2. Cấu hình squid..........................................................................................................19 2.4.3. Cấu hình web server Apche để test ............................................................................20 2.4.4. Cấu hình client truy cập internet thông qua proxy server ..........................................21 2.4.5. Access List Control điều khiển truy cập internet người dùng......................................21 2.4.5.1 Cấm các máy client truy cập một số trang website không cho phép: ...................21 2.4.5.2. Cấm máy client không truy cập ra internet .........................................................22 2.4.5.3. Cho phép người dùng trong hệ thống chỉ được truy cập internet ngoài giờ hành chính...............................................................................................................................22 2.4.6. Dùng NCSA kiểm định Password cho quá trình truy cập internet ..............................23 2.4.7. Giới hạn nội dung Download.....................................................................................23 2.4.8. Một số giới hạn cấu hình trên Squid proxy ................................................................24 2.4.8.1. Giới hạn truy cập theo IP....................................................................................24 2.4.8.2. Giới hạn truy cập theo giao thức.........................................................................24 2.4.8.3. Giới hạn truy cập theo cổng................................................................................25 Chương 3: Firewall Server ....................................................................................................26 3.1. Giới thiệu về Firewall.....................................................................................................26 3.2. Những chính sách yêu cầu khi thiết lập Firewall..........................................................26 3.3. Các loại Firewall và cách hoạt động..............................................................................26 3.3.1. Packet filtering (Bộ lộc gói tin)..................................................................................26 3.3.2. Application gateway..................................................................................................27 3.4. Một số Log File chứa các thông tin về việc logon, logout của người dùng hệ thống. ...27 3.5. Thiết lập firewall linux với Iptables ..............................................................................27 3.5.1. Giới thiệu về Iptables ................................................................................................27 3.5.2. Cơ chế xử lý package trong iptables ..........................................................................28 3.5.3. Cú pháp Iptables.......................................................................................................29 3.5.4. Lưu giữ Iptables và thực thi Iptales............................................................................30 3.5.5. Một số mẫu scripts phân tích, mô tả cho cú pháp Iptables.........................................31 3.6. Triển khai hệ thống Firewall cho hệ thống mạng nội bộ..............................................32 Mô hình firewall cho hệ thống mạng...........................................................................................32 3.6.1. Cài đặt và cấu hình Iptables......................................................................................32 3.6.1.1. Cài đặt Iptables..................................................................................................32 3.6.1.2. Cấu hình iptables: ..............................................................................................33 3.6.1.3. Cấu hình một số luật cho iptables.......................................................................34 3.6.1.3.1. Cấm truy cập telnet tới server firewall .........................................................34 3.6.1.3.2. Cấm các máy ping tới firewall .....................................................................35 3.6.1.3.3. Cấu hình Iptables để cho phép NAT out cho các máy trong mạng nội bộ truy cập ra internet ............................................................................................................35 3.6.1.3.4. Cấu hình hệ thống cho phép public máy tính nội bộ ra internet ....................37 Chương 4. Kết Hợp Giữa FIREWALL Và PROXY .......................................................38 4.1. Tại sao chúng ta cần kết hợp giữa Firewall và Proxy ...................................................38 4.2. Thực hiện kết hợp giữa Proxy và Firewall trên cùng một hệ thống .............................38 4.2.1. Cấu hình chế độ transparent hổ trợ tính năng trong suốt với người dùng ...................38 4.2.2. Cấu hình chuyển đổi port đích trên firewall sang squid trên proxy bằng lệnh sau......39 4.2.3. Thực hiện quá trình kiểm tra việc truy cập qua proxy mà người dùng không phải cấu hình thông tin proxy như sau:..............................................................................................39 Chương 5: Xây Dựng IDS Bằng Snort ................................................................................41 5.1. Hệ thống phát hiện xâm nhập (Intrucsion Detection System- IDS).............................41 5.1.1. Giới thiệu ..................................................................................................................41 5.1.2. Tổng quan về IDS......................................................................................................41 5.1.3. Nhiệm vụ của hệ thống phát hiện xâm nhập ..............................................................42 5.1.4. Các kỹ thuật xữ lý dữ liệu ..........................................................................................42 5.2. Các kiểu tấn công vào hệ thống.....................................................................................42 5.3. Phần mềm IDS- Snort....................................................................................................43 5.3.1. Giới thiệu về Snort.....................................................................................................43 5.3.2. Các thành phần của Snort .........................................................................................43 5.3.3. Tìm hiểu file cấu hình của Snort ................................................................................44 5.3.4. Các luật của Snort.....................................................................................................45 5.3.5. Các chế độ hoạt động của Snort ................................................................................46 5.4. Xây dựng mô hình hệ thống giám sát IDS sử dụng Snort, Apache, MySQL, PHP và ACID. ....................................................................................................................................47 5.4.1. Mô hình cho hệ thống xây dựng IDS-Snort.................................................................47 5.4.2. Cài đặt và cấu hình Snort ..........................................................................................47 5.4.2.1. Cài đặt các gói yêu cầu phụ thuộc và hổ trợ Snort ..............................................47 5.4.2.2. Cài đặt Snort ......................................................................................................48 5.4.2.3. Cấu hình Snort ...................................................................................................49 5.4.2.4. Cài đặt tập luật cho Snort...................................................................................49 5.4.2.5. Cấu hình Snort ...................................................................................................49 5.4.2.6. Thiết lập Snort khởi động cùng hệ thống .............................................................50 5.4.2.7. Tạo cơ sở dữ liệu Snort với Mysql .......................................................................50 5.4.2.8. Cài đặt BASE và ADODB ...................................................................................51 5.4.2.9. Tiến hành sử dụng phần mềm Nmap để quét cổng máy cài đặt Snort để kiểm tra 53 5.4.3. Một số chế độ hoạt động của Snort............................................................................53 5.4.3.1. Sniffer Mode.......................................................................................................53 5.4.3.2. Chế độ Packet Logger Mode...............................................................................54 5.4.3.3. Chế độ hoạt động NIDS......................................................................................54 Chương 6. Tổng Kết Và Phát Triển Đề Tài ............................................................................57 Tài Liệu Tham Khảo ................................................................................................................58 Chương 1. Giới Thiệu về Linux Và Hệ Điều Hành Máy Chủ Centos 1.1. Vài dòng về lịch sữ phát triển Linux. - Năm 1991, Linus Torvalds, sinh viên của Đại học Tổng hợp Helsinki Phần Lan bắt đầu xem xét Minix là một phiên bản của Unix với mục đích là tạo ra một hệ điều hành Unix chạy trên PC với bộ xử lý Intel 80386. - Ngày 25/8/1991, Linus cho ra đời Verision 0.01 và thông báo trên comp.os.minix về dự định của mình về Linux. - Tháng 1/1992, Linus cho ra đời phiên bản version 0.02 với shell và trình biên dịch C. Linux không cần Minix nữa để biên dịch lại hệ điều hành của mình. Linus đặt tên hệ điều hành của mình là Linux. - Năm 1994 phiên bản chính thức 1.0 được phát hành. - Linux là một hệ điều hành dạng UNIX (Unix-like Operating System) chạy trên máy PC với bộ điều khiển trung tâm CPU Intel 80386 trở lên, hay các bộ xử lý trung tâm tương thích AMD, Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Space. - Linux được viết lại từ đầu, tức là không sử dụng một lệnh nào của Unix để tránh về vấn đề bản quyền. Tuy nhiên hoạt động của Linux lại hoàn toàn dựa trên nguyên tắc hoạt động của Unix. Vì vậy nếu một người nắm vững được Linux thì sẽ nắm vững được Unix. - Linux là một hệ điều hành miễn phí, được cộng đồng IT phát triển trên mạng internet, nó được sử dụng trên máy tính cá nhân. Linux phát triển nhanh chóng và đã trở nên phổ biến trong một thời gian ngắn. Nó nhanh chóng được nhiều người sử dụng bởi vì tính miển phí, hổ trợ nhiều chức năng cũng như công cụ do được phát triển rộng rãi trên internet. Nó là một hệ điều hành có hiệu năng cao, nó chạy được trên cả máy cấu hình cao cũng như cấu hình thấp. Hệ điều hành này hỗ trợ các máy tính tính sử dụng 32 cũng như 64 bits và rất nhiều phần mềm khác nhau. Quá trình phát triển của Linux được tăng tốc bởi sự trợ giúp của GNU là chương trình hổ trợ phát triển Unix chạy trên nhiều nền tảng khác nhau. Phiên bản mới nhất của Linux Kernel là 2.6.11.3 ra đời vào năm 2001 có khả năng điều khiển các máy đa bộ xữ lý và nhiều tính năng khác nhau. 1.2. Ưu và nhược điểm của hệ điêu hành Linux 1.2.1. Ưu điểm của hệ điều hành Linux - Là hệ điều hành miển phí và được rất nhiều người phát triển nên có nhiều tính năng ứng dụng hay, cũng như nhiều người dùng. - Là hệ điều hành đa nhiệm và đa người dùng, tận dụng được sức mạnh xử lý của máy 386 và đời cao hơn. Chạy được trên nhiều loại máy khác nhau. - Có sẵn bộ giao thức TCP/IP giúp cho người dùng dễ dàng kết nối internet. - Khả năng tương thích với các hệ thống mở có nghĩa chúng ta có thể chuyển nó từ hệ điều hành này sang hệ điều hành khác mà vẫn hoạt động tốt. - Hổ trợ người dùng. Hiện nay linux có hàng ngàn ứng dụng, bao gồm các chương trình báo biểu, cơ sở dữ liệu, giải trí, đa phương tiện và rất nhiều ứng dụng khác. 2 - Lợi ích cho giới chuyên nghiệp điện toán, đến với linux giới điện toán sẽ có hàng ngàn công cụ phát triển chương trình, báo gồm các bộ biên dịch cho nhiều ngôn ngữ lập trình hàng đầu hiện nay, chẳng hạn như C, C++… 1.2.2. Một số khuyết điểm của Linux. - Mặc dù có rất nhiều ưu điểm nhưng Linux không phải không có khuyết điểm đồng thời những khuyết điểm đó ít có khã năng giải quyết vì những ưu điểm đó. - Khuyết điểm về hổ trợ kỹ thuật tức là Linux không có một công ty nào đứng ra chịu trách nhiệm phát triển hệ điều hành này. Nếu gặp trục trặc thì không có ai có thể giải quyêt miển phí cho bạn. - Khuyết điểm về phần cứng đó chính là Linux không dễ dàng cài đặt và hổ trợ nhiều thiết bị phần cứng. Các phiên bản phần cứng của Linux đều hổ trợ theo nguyên tắc phần cứng của nhà phát triển Linux. - Quá trình sử dụng với người dùng tương đối khó khăn bởi vì Linux hổ trợ việc giao tiếp bằng đồ họa ít nên chủ yếu phải dùng bằng lệnh nên dẫn đến làm cho người dùng cảm thấy kho khăn khi sử dụng. 1.3. Kiến trúc của hệ điều hành Linux - Shell: Cung cấp các tập lệnh cho người dùng thao tác với kernel để thực hiện công việc. Shell đọc các lệnh từ người dùng và xử lý. Ngoài ra shell còn cung cấp một số đặc tính khác như chuyển hướng xuất nhập, ngôn ngữ lệnh để tạo các tập tin tương tự như bat trong DOS. Có nhiều Shell được sử dụng trong Linux. Mổi shell có các bộ lệnh khác nhau. - Các tiện ích: Các tiện ích được người dùng sử dung thường xuyên. Nó dùng cho nhiều thứ như thao tác tập tin, đĩa, nén, sao lưu tập tin… Hầu hết các tiện ích sử dụng trong Linux đều là sản phẩm của GNU. Linux có nhiều tiện ích như là biên dịch, gở lổi, soạn văn bản… - Chương trình ứng dụng: Khác với các tiện ích thì các ứng dụng có độ phức tạp rất lớn được các nhà sản xuất viết ra như word, quản trị cơ sở dữ liệu… - Kernel ( hạt nhân): Là trung tâm điều khiển của hệ điều hành Linux, chứa các mã nguồn điều khiển hoạt động của toàn bộ hệ thống. Hạt nhân được phát triển không ngừng, thường có hai phiên bản đồng thời là phiên bản mới nhất và phiên bản chạy 3 ổn định nhất. Kernel được thiết kế theo dạng modul, do vậy kích thước thật sự của kernel là rất nhỏ. Chúng chỉ tải các bộ phận cần thiết lên bộ nhớ và không lảng phí bộ nhớ. Nó được xem như trái tim của Linux, kernel của Linux có thể truy xuất tới toàn bộ tính năng của phần cứng của máy. 1.4. Cấu trúc và thao tác tập tin trên Linux 1.4.1. Cấu trúc tập tin - Mổi hệ điều hành có cách tổ chức lưu trử dữ liệu riêng. ở mức vật lý, đĩa được định dạng từ các thành phần sector, track, cylinder. ở mức logic, mỗi hệ thống sử dụng cấu truc riêng, có thể dùng chỉ mục hay phân cấp có thể xác định được dữ liệu từ mức logic tới mức vật lý. Cách tổ chức đó gọi là tổ chức hệ thống tập tin. - Hệ thống tập tin Linux bao gồm đĩa mềm, cd-rom, những partition của đĩa cứng. Những hệ thống tập tin này được tạo trong quá trình cài đặt hệ điều hành. - Linux hổ trợ nhiều loại hệ thống tập tin như ext2, ext3, MS-DOS, proc. Hệ thống tập tin cơ bản của linux là ext2 và ext3. Hệ thống tập tin náy cho phép đặt tên tập tin tối đa 256 ký tự và kích thước tối đa là 4terabytes. Bên cạnh đó Linux còn hổ trợ vfat cho phép đặt tên tập tin dài đối với tập tin MS-DOS và những partition FAT32. Proc là hệ thống tập tin ảo nghĩa là không dùng dung lượng đĩa cứng phân phối cho nó. - Các thành phần của hệ thống tập tin:  Super Block: Là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin. Nó lưu trử thông tin về hệ thống tập tin như block-size, free block…  Inode(256 byte): Lưu nhưng thông tin về tập tin và thư mục được tạo ra trong hệ thống tập tin. Các thông tin bao gồm:  Loại tập tin và quyền hạn sữ dụng tập tin  Người sở hữu tập tin  Kích thước của tập tin và số hard link đến tập tin  Ngày và thời gian chinh sữa tập tin cuối cùng  Vị trí nội dung tập tin trong hệ thống tập tin  Storageblock: Là vùng lưu dữ liệu thực sự của tập tin và thư mục. Nó chia thành những Data Block. Dữ liệu lưu trử đĩa cứng trong các data block. Mổi block thường là 1024 byte. Ngay khi tập tin chỉ có 1 ký tự thì cũng phải cấp phát một block để lưu trử nó.  Data Block của tập tin thông thường lưu inode của tập tin và nội dung tập tin  Data Block thư mục lưu danh sách những entry bao gồm inode number, tên của tập tin và những thư mục con. 1.4.2. Thao tác trên tập tin Linux 1.4.2.1. Loại tập tin - Trong linux tập tin dùng cho việc lưu trử dữ liệu. Nó bao gồm cả thư mục và thiết bị lưu trử. Ngay cả bộ nhớ chính cũng được coi là một tập tin, trong linux các tập tin được chia làm ba loại chính như sau:  Tập tin dữ liệu: Đây là tập tin theo định nghĩa truyền thống. Chúng ta có thể lưu trử bất cứ loại dữ liệu nào lên đây. 4  Tập tin thư mục: Thư mục không chứa dữ liệu mà chỉ chứa các thông tin về các tập tin lưu trong nó. Thư mục chứa hai trường của một tập tin là tên tập tin và inode number.  Tập tin thiết bị: Hệ thống Linux xem các thiết bị như các tập tin. Ra vào dữ liệu cho các tập tin trên tập tin này chính là ra vào dữ liệu cho thiết bị. 1.4.2.2. Liên kết các tập tin - Liên kết tập tin được hiểu như việc tạo ra một tên tập tin thứ hai cho một tập tin. Cú pháp tạo tập tin liên kết như sau: $ln Nguyên nhân tạo tập tin là muốn nhân tập tin lên nhiều lần thuận lợi cho việc sao lưu. - Liên kết phần cứng là một liên kết trong cùng hệ thống tập tin với hai inode entry tương ứng cùng một nội dung vật lý. 1.4.2.3. Cấu trúc cây thư mục - Trong Linux không có khái niệm ổ đĩa như trong Windows, tất cả các tập tin và thư mục được bắt đầu từ thư mục gốc (/). Linux sử dụng dấu “.” Để chỉ thư mục hiện hành và sử dụng dấu “..” để chỉ định thư mục cha hiện hành. 5 1.4.2.4. Một số thao tác trên tập tin - Để mount một hệ thống tập tin vào để đọc trên linux ta dùng lệnh sau: #mount Ví dụ: mount /dev/cdrom /media/cdom - Để umount một hệ thống tập tin không sử dụng nữa ta dùng lệnh sau #umount 1.4.2.5. Thao tác trên thư mục - Đường dẫn tuyệt đối, đường dẫn tương đối: đường dẫn tuyệt đối là đường dẫn mô tả cả thư mục cha của thư mục đang hiện hành như /etc/passwd, /root/desktop/bai1.txt… Đường dẫn tương đối chính là khi ta đang ở thư mục hiện hành mà truy cập thư mục hoặc tập tin con trong đó như ở ví dụng trên khi ta đang thao tác trên /etc khi đó muốn truy cập tới /passwd ta chỉ đánh lệnh passwd… - Lệnh pwd: Cho phép xác định thư mục hiện hành. - Lệnh cd : Dùng để chuyển đến thư mục $cd - Lệnh ls: Liệt kê danh sách thư mục con và tập tin có trong thư mục hiện hành $ls Ví dụ: $ls –a/-l/-._.x /etc Với -a : hiện thì toàn bộ tất cả các tập tin kể cả tập tin ẩn -l : Hiển thị chi tiết thông tin về tập tin -x : hiển thị trên nhiều cột - Lệnh mkdir: tạo thư mục $mkdir - Lệnh rmdir: xóa thư mục rổng $rmdir - Lệnh cat :dùng để hiển thị nội dung tập tin $cat $cat >: xóa tập tin và tạo mới $cat >>: thêm dữ liệu vào tập tin đã tạo - Lệnh more: cho phép xem nội dung tập tin theo trang màn hình $more - Lệnh mv: cho phép thay đổi tên tập tin và di chuyển tập tin 6 $mv - Lệnh rm: cho phép xóa tập tin, thư mục $rm Tùy chọn: -r: xóa thư mục và tập tin con trong đó -l: xác nhận lại trước khi xóa - Lệnh find: tìm kiếm tập tin thỏa mản $find Tùy chọn: -name: tìm theo tên -size: tìm theo kích thước tập tin - Lệnh grep: Lệnh grep cho phép tìm kiếm chuổi trong tập tin $grep - Lệnh touch: tạo và thay đổi nội dung tập tin $touch - Lệnh gzip/gunzip: Cho phép nén và giải nén các tập theo dạng nén với đuôi mở rộng là .gzip $gzip $gunzip Ví dụ: $gzip /etc/passwd $gunzip /etc/passwd.gzip - Lệnh tar :dùng để gom và bung các file có đuôi mở rộng là .tar $tar Tùy chọn: -cvf: gom tập tin/thư mục -xvf: bung tập tin/thư mục Ví dụ: $tar –cvf phucviet.tar /root/desktop/phucviet $tar –xvf phucviet.tar 1.4.2.6. Quyền trên hạn của người dùng với tập tin - Chúng ta đã biết Linux là một hệ điều hành đa người dùng vì vậy quá trình quy định quyền hạn trên các tập tin đòi hỏi phải chặt chẽ và linh hoạt. Linux xác định ba quyền trên các tập tin là read (đọc), write (viết), execute (thực thi) đối với ba đối tượng là người sở hữu (the owner), nhóm sở hữu (the group owner), người khác (other users). Linux quy định quyền read cho phép chúng ta đọc nội dung tâp tin với thư mục cho ta xem các tập tin con trong đó. Quyền write bao gồm các quyền viết lên tập tin, tạo tập tin trong thư mục, xóa hay thay đổi tập tin. Quyền excute cho phép chúng ta gọi chương trình lên bộ nhớ để thực thi và chạy chương trình. Trên đây là hình vẽ mô tả quyền và ký hiệu trên tập tin  Ký tự: Cho phép xác định loại tập tin. Nếu “-“ là tập tin bình thường. Nếu c” là tập tin bàn phím, “b” tập tin block.. 7  Owner: Là 3bit cho phép xác định chủ sở hữu của tập tin. Thường là người tạo ra tập tin cũng bao gồm ba quyền.  Group owner: Là quyền cho phép nhóm nào được quản lý tập tin với 3 quyền đọc, ghi, thực thi.  Other users: Là quyền cho phép nhưng người dùng khác với tập tin. Ví dụ: Một tập tin có quyền như sau -rw-r—r— Ta thấy quyền trên file như sau: - Đây là tập tin bình thường vì “-‘ - Quyền Owner là read và write vậy ta có 0*2#####0 + 1*21+1*22=6 - Quyền group Owner là read : 0*2#####0 + 0*21+1*22=4 - Quyền trên other users là read: 0*2#####0 + 0*21+1*22=4 Như vậy ta sẽ thấy rằng quyền trên file đó sẽ có giá trị như sau: 644 1.4.2.7. Lệnh chmod - Lệnh này dùng để cấp phép quyền hạn truy cập của tập tin hay thư mục $chmod Ta có : Nhóm người dùng u-user, g-group, o-other, a-all Thao tác: +: thêm quyền, -: bớt quyền, =:gán ngang quyền Quyền hạn: r- read, w- write, x- excute Ví dụ: $chmod ug+x /xkvn $chmod 522 /xkvn 1.4.2.9. Lệnh chown - Dùng để xác định người sở hữu của tập tin $chown 1.4.2.10. Lệnh chgrp - Dùng để thay đổi nhóm sở hữu 1.5. Cài đặt phần mềm trên Linux 1.5.1. Sử dụng lệnh rpm - RedHat Package Manager (RPM) là hệ thống quản lý package được linux hổ trợ cho người dùng. Nó cung cấp cho người dùng nhiều tính năng để duy trì hệ thống của mình. Người dùng có thể cài đặt, nâng cấp, và xóa bỏ phần mềm bằng lệnh RPM trực tiếp trên hệ thống. Nó cài đặt các phần mềm có đuôi mở rông là “.rpm”. - Chúng ta phải có quyền root khi đó mới sử dụng được rpm. RPM có 5 chế độ thực hiện là cài đặt (installing), xóa (uninstalling), nâng cấp (upgrading), truy vấn (querying) và thẩm tra (verifying). - Lệnh cài đặt phần mềm bằng RPM như sau: #rpm –ivh Ngoài ra chúng có một số tùy chọn sau: replapkgs dùng cài lại, replacefiles bỏ qua xung đột file - Lệnh gở bỏ phần mềm #rpm –e - Update phần mềm #rpm –Uvh 8 - Truy vấn thông tin về gói phần mềm đã cài #rpm –qa 1.5.2. Cài đặt phần mềm với đuôi phần mềm mở rộng .tar, .tgz - Ngoài các phần mềm đóng gói dạng nhị phân “.rpm” còn có các phần mềm được cung cấp dạng file source code như *.tar hoặc *.tgz. Thông thường để cài đặt phần mềm này ta cần phải giựa vào file trợ giúp trong gói phần mềm như READ hoặc INSTALL… nó nằm trong gói phần mềm khi ta giải nén ra. Quá trình cài đặt được diển ra như sau:  Bước 1: Chúng ta tiến hành giải nén gói phần mềm #tar –xvzf  Bước 2: Chuyển tới thư mục chứa phần mềm vừa giải nén #cd  Bước 3: Liệt kê danh sách tập tin trong gói phần mềm #ls –al  Bước 4: Thực hiện quá trình cài đặt theo hướng dẫn của READ/INSTALL trong đó #cat READ/INSTALL  Quá trình cài đặt thường diển ra một số bước như sau: - Chạy script cài đặt bằng lệnh #./configure - Xây dựng gói phần mềm bằng lệnh sau #make Hoặc #make install 1.5.3. Sử dụng lệnh yum để cài đặt - Ngoài cách cài đặt như trên ta con có thể cài đặt phần mềm bằng lệnh #yum Lệnh này cho phép chúng ta cài đặt phần mềm mà không cần nguồn của gói cài đặt. Có nghĩa rằng lệnh này sẽ tải gói cài đặt từ mang internet về cài đặt cho chúng ta. Đây là một điểm rất thuận lợi vì quá trình cài đặt được thực hiện tự động, người dùng không cần phải thao tác cài đặt phức tạp, không cần phải download gói phần mềm về vì với linux có rất nhiều phiên bản và bộ cài cho một phần mềm vì vậy nó gây khó khăn cho người dùng lựa chọn phần mềm cài đặt. Thông qua lệnh này thì gói phần mềm mới nhất sẽ được cài đặt và sẽ không bị xung đột với hệ thống như trường hợp ta cài đặt bàng tay. 1.6. Quản trị người dùng và nhóm - Linux quản lý và phân quyền cho mổi người dùng, nhóm người dùng bằng cách giựa và chỉ số UserID và GroupID của mổi người dùng. Cũng giống như Windows một user sẽ được thừa hường quyền và chịu sự quản lý từ nhóm (group). Trong linux tài khoản có quyền cao nhất đối với hệ thống là root có UserID=0,Group=0… tương tự như tài khoản adminstrator trong Windows. Tài khoản root có tất cả các quyền mà hệ thống có nó có khả năng quản lý, tạo ra các tài khoàn khác kể cả tài khoàn có quyền tương đương với tài khoản root. - Chúng ta cần phân biệt người dùng hệ thống và root từ dấu nhắc hệ thống như sau: 9 [root@centos /root]# : Chúng ta đang thao tác trên tài khoảnquyền root: Với tên tài khoàn là root, máy tính có tên centos, thư mục cá nhân là /root. Chúng ta thấy dấu nhắc với tài khoản root là “#” khác với người dùng bình thường. [phucviet@centos /phucviet]$ : Chúng ta đang thao tác trên tài khoàn có quyền user hệ thống. Với tên tài khoản là phucviet, máy tính thao tác là centos, thư mục cá nhân là /phucviet. Dấu nhắc trên hệ thống là “$”. Đây là đặc điểm dễ dàng phân biệt giữa người dùng hệ thống và root. 1.6.1. Thông tin về user - Một người dùng muốn đăng nhập hệ thống phải yêu cầu có một tài khoản để đăng nhập bao gồm user và password. Tài khoản này do người quản trị root tạo ra. Khi tài khoản được tạo ra thì linux sẽ có một tập tin sẽ chuyên lưu thông tin về user hệ thống đó là tập tin /etc/passwd 1.6.1.1. Tập tin /etc/passwd - Tập tin này đóng vai trò sống còn của hệ thống linux. Mọi người có thể đọc tập tin nhưng chỉ có root mới thay đổi được nó. Tập tin được lưu dưới dạng text có nội dung như sau: - Mổi tài khoản được lưu trong 7 cột gồm các thông tin như sau 10 1.6.1.2. Username và UserID - Username là tên của một người dùng để đăng nhập hệ thống. Tên đó có duy nhất trên hệ thống. Linux phân biệt chữ hoa và chữ thường. - Thông thường để quản lý người dùng linux đưa ra một khái niệm nữa là UserID có nghĩa là định danh người dùng. Mổi người dùng có một UserID riêng. - Linux sử dụng định danh để kiểm soát hoạt động của người dùng hệ thống. Theo quy định thì UserID=0 là tài khoản root. Các định danh 1-99 sử dụng cho các tài khoản hệ thống. Người dùng bình thường thường có định danh từ 100 trở lên. 1.6.1.3. Tập tin /etc/shadow - Tập tin này mô tả thông tin password của người dùng trong hệ thống. 1.6.1.4. Group ID - Linux đưa ra định danh GroupID nhằm mục đích xác định người dùng đang ở nhóm nào để dễ dàng quản lý. Với group quản trị hệ thống có GroupID=0, root thuộc nhóm này. Các user thuộc nhóm có GroupID từ 500 trở lên. 1.6.2. Quản lý người dùng 1.6.2.1. Tạo tài khoản người dùng - Ta sử dụng lệnh sau để tạo tài khoản người dùng #useradd [-c mô-tả-user] [-d thư-mục-cá-nhân] [-g nhóm-của-người-dùng] [tên-tài-khoản] ở đây nếu chúng ta không sử dụng tham số “-d” thì mặc định linux sẽ tạo thư mục cá nhân trên linux bình thường. Ví dụ: #useradd –c “Dang Phuc Viet” –g quan_tri phucviet Nếu ta sử dụng: #useradd phucviet ; thì hệ thống sẽ tạo ra nhóm người dùng mới tương đương với người dùng là phucviet - Tạo password cho user ta sử dụng lệnh sau: #passwd 11 Ví dụ: - Để thay đổi password ta cũng dùng lệnh trên. 1.6.2.2. Thay đổi thông tin tài khoản - Để thay đổi thông tin tài khoản ta có thể thay đổi trực tiếp trong file /etc/passwd hoặc dùng bằng lệnh usermod như sau: #usermod [-c mô-tả-người-dùng] [-d thư-mục-cá-nhân] [-g nhóm] 1.6.2.3. Một số lệnh thao tác với tài khoản người dùng - Khóa tài người dùng #passwd –l - Mở tài khoản người dùng #passwd –u - Hủy tài khoản người dùng #userdel –r 1.6.3. Quản lý nhóm người dùng - Một nhóm người dùng bao gồm nhiều người dùng có cùng một chức năng trong hệ thống hoặc có quyền giống nhau trên hệ thống. Một nhóm người dùng được linux quản lý bao gồm tên nhóm và GroupID. Một nhóm có thế có nhiều thành viên và là thành viên của nhóm khác… - Thông tin về nhóm được lưu trử trong tập tin /etc/group gồm các thông tin như sau: - Tạo nhóm ta sử dụng lệnh #groupadd - Thêm user vào nhóm #usermod –g - Hủy nhóm #groupdel 12 1.7. Giới thiệu về hệ điều hành máy chủ Linux CentOS 5.4 - Như chúng ta đã biết sau khi linux ra đời và phát triển thì nó có nhiều phiên bản phát triển khác nhau nhưng đều giựa trên hạt nhân (kernel) của linux. Hiện nay trên thị trường và trên internet có rất nhiều bản cho người dùng. Bản thương mại cũng có, bản miển phí cũng có. Có một số bản như sau: Ubuntu, fedora, redhat enterpri, CentOS… Mổi bản đều có một số tính năng riêng phù hợp với người dùng. Trong quá trình phát triển nó cũng tách ra làm hai dòng chính đó là bản phục vụ cho cá nhân với nhiều ứng dụng cá nhân và hổ trợ người dùng. Xu hướng phát triển thứ hai của Linux đó chính là phục vụ cho máy chủ với nhiều trính năng ứng dụng mang tầm rộng hơn và hổ trợ người dùng không lơn như các bản cá nhân khác. - CentOS (tên viết tắt của Community ENTerprise Operating System) là một bản phân phối Linux tập trung vào lớp doanh nghiệp xây dựng máy chủ, nó được xây dựng từ nhiều nguồn miễn phí ( theo GPL và một số bản quyền tương tự) của RedHat. Hiện tại CentOS có phiên bản mới nhất là 5.4 dựa trên nền tẳng Red Hat Enterprise Linux 5, hổ trợ dòng x86 (i386 và i686), dòng x86_64( AMD64 va Intel EMT64) các cấu trúc IA64, Alpha, S390 và S390x. Và có kernel 2.6 của Linux. Nó là bản miển phí và được phát triển mạnh mẽ của cộng đồng IT trên mạng internet. - CentOS 5.4 hổ trợ và được cài đặt trên cả client và server đồng thời sử dụng các phiên bản phần mềm mới nhất. Ngoài những chức năng của một máy chủ chuyên biệt, CentOS còn hổ trợ rất nhiều tình năng và ứng dụng cho người dùng cá nhân. - Bộ cài CentOS chúng ta có thể download từ internet tại trang web Nó có hai bộ cài, bộ cài thứ nhất gồm một đĩa CD, bộ cài này chỉ hổ trợ các tính năng cơ bản của máy chủ ngoài trừ GUI (giao diện đồ họa người dùng) phù hợp với nhưng ai muốn cái đặt nhanh chóng. Bộ cài thứ hai đó chính là bộ cài đầy đủ với dung lượng 3.8GB, bộ cài này hổ trợ tất cả các tính năng và ứng dụng của một server cũng như người dùng cá nhân. 13 Chương 2: PROXY SERVER 2.1. Giới thiệu về Proxy Server - Internet là một hệ thống mở, đó là điểm mạnh đồng thời cũng là điểm yếu của nó. Chính điểm yếu này làm khả năng bảo mật thông tin nội bộ của hệ thống. Nếu chỉ là mạng LAN thì không có vấn đề gì, nhưng khi đã kết nối internet thì phát sinh nhiều vấn đề hết sức quan trọng trong việc quản lý tài nguyên quý giá vì thế việc xây dựng và bảo vệ các thông tin quý giá đó là hết sức quan trọng. Bằng cách quản lý việc truy nhập và truy xuất vào ra của hệ thống. Một proxy server, giống như firewall được thiết kế để bảo vệ tài nguyên trong các mạng cục bộ khi nối kết các mạng khác như internet. Chúng ta khó phân biệt khác nhau giữa proxy server và firewall. Chúng ta có thể nghĩ rằng proxy là dịch vụ chạy trên firewall, nơi mà firewall là một server vật lý nằm giữa internet và mạng cục bộ. Tổng quát, firewall cung cấp điều khiển mở rộng để lọc và giám sát thông tin ra vào mạng. Ví dụ, firewall có thể thực thi dịch vụ lọc gói dữ liệu ở tầng mạng đế đóng gói dữ liệu mà có địa chỉ nguồn riêng biệt hay dành cho một dịch vụ nào đó. Dịch vụ proxy là dịch vụ một chiều ngăn cản người dùng internet cố tình truy cập mạng cục bộ. Các dịch vụ này được thiết kế cho người dùng dịch vụ mạng cục bộ. Chỉ có những gói dữ liệu được yêu cầu của người dùng mạng cục bộ mới được truyền qua firewall. Vì lý do an toàn, các gói dữ liệu đi vào sẽ được kiểm tra vius hay khả năng thay đổi dữ liệ bởi những kẽ phá hoại bên ngoài. Proxy server có thể tạo một bộ mã hóa trên web server ngăn cản sự phá hoại các tài nguyên hữu dụng. Proxy server cũng có chức năng bộ đệm quan trọng. Vì nó là vị trí trung tâm để người dùng mạng cục bộ có thể truy cập internet, một proxy server có thể lưu trử các tài liệu được truy cập thường xuyên trên internet và cho phép người dùng mạng cục bộ truy cập mạng khi cần thiết. Để giảm bớt thời gian người dùng mạng cục bộ. 2.2. Tìm hiểu về dịch vụ Squid Proxy 2.2.1. Giới thiệu về Squid Proxy - Squid là một chương trình internet proxy-caching có vai trò tiếp nhận các yêu cầu từ các client và chuyển cho internet server thích hợp. Đồng thời, nó sẽ lưu lên đĩa những dữ liệu được trả về từ internet server- gọi caching. Chương trình này dùng để cấu hình proxy server. Vì vậy ưu điểm của squid là khi một dữ liệu mà được yêu cầu nhiều lần thì proxy server sẽ lấy thông tin từ cache trả về cho client. Điều này làm cho tốc độ truy xuất internet nhanh hơn và tiết kiệm băng thông. Squid dựa trên những đặc tả của giao thức HTTP nên nó chỉ là một HTTP proxy. Do đó squid chỉ có thể là một proxy cho những chương trình mà chúng dùng giao thức này để truy cập internet. 2.2.2. Những giao thức hỗ trợ trên Squid Proxy -Squid proxy hỗ trợ những giao thức sau:  Proxying and cachinh ò HTTP, FTP, and other URLs.  Proxying for SSL. 14  Cachinh hierarchies.  ICP, HTTP, CARP, Cache Digests.  Transparent caching.  WCCP- Web Cache Communication Protocol  Extensive access controls  HTTP server acceleration  SNMP  Caching of DNS lookups. 2.2.3. Quá trình trao đổi cache trên Squid Proxy - Squid có khả năng chia sẽ dữ liệu giữa những cache với nhau. Việc chia sẽ này mang lại những lợi ích như:  User Base: Nếu số lượng client truy cập internet thông qua proxy càng nhiều thì khả năng một đối tượng nào đó được yêu cầu 2 lần sẽ cao hơn.  Giảm tải truy xuất cho đường truyền.  Disk space: nếu bạn chuyển cân bằng giữa các cache với nhau sẽ tránh được việc sao lại dữ liệu đã lưu. Dó đó dung lượng đĩa cứng dành cho việc lưu trử cache sẽ giảm. 2.2.4. Thư mục cài đặt và các gói cài đặt cho Squid Proxy - Squid có thể được cài đặt bằng souce hoặc rpm từ đĩa nguồn cài đặt. 2.2.4.1. Các thư mục mặc định của Squid - /usr/local/squid: thư mục cài đặt squid - /usr/local/squid/bin: thư mục lưu binary squid và những tool được hỗ trợ. - /usr/local/squid/cache: thư mục lưu những dữ liệu được cache. Đây là thư mục mặc định, bạn có thể thay đổi vị trí thư mục này. - /usr/local/squid/etc: những tập tin cấu hình squid nằm trong thư mục này. - /usr/local/squid/src: thư mục lưu source code squid được download từ net. 2.2.4.2. Cài đặt squid từ package rpm - Chúng ta cài đặt gói package như sau: #rpm –ivh squid-version.i386.rpm - Khi cài đặt squid trong hệ điều hành linux, vị trí các thư mục mặc định có những điểm khác sau:  /usr/sbin: Lưu những thư viện của squid.  /etc/squid: Lưu các tập tin cấu hình chính squid.  /var/log/squid: Lưu các tập tin log của squid. 2.3. Cấu hình Squid Proxy 2.3.1. Tập tin cấu hình - Tất cả các tập tin cấu hình chính của Squid được lưu trử trong thư mục /etc/squid. Một tập tin cấu hình quan trong quyết định sự hoạt động của Squid là squid.conf. Trong tập tin cấu hình này có 125 tag tùy chọn, những chỉ có một số tùy chọn được cấu hình, và những dòng chú thích bắt đầu bằng “#”. Chúng ta chỉ cần thay đổi 8 tùy chọn cơ bản là squid hoạt động được. 15 2.3.2. Những tùy chọn cơ bản - Chúng ta cần phải thay đổi một số tùy chọn cơ bản để squid hoạt động. Mặc định squid cấm tất cả các browser truy cập. Sau đây là những miêu tả về tùy chọn này:  http_port: Cấu hình cổng HTTP 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 và được khai báo như sau: http_port 8080  icp_port: Cấu hình cổng để gửi và nhận ICP queries.  Cache_mem: Chỉ định bộ nhớ thích hợp cho các đối tượng.  Cache_dir: Cấu hình thư mục lưu trử dữ liệu được cache, thư mục này có kích thước mặc định là 100MB. Cache_dir ufs /usr/local/squid/cache 100 18 256 Level: 16, level 2:256  Cache_access_log: chỉ ra tập tin nơi lưu trử log.  Dead_peer_timeout 10 seconds: thời gian lắng nghe kết nối.  Cache_effective_user, cache_effective_group: người dùng và nhóm có thể thay đổi squid.  Cache_swap_low: Chỉ định kích thước thấp nhất của cache object khi thay thế (được tính bằng % với vùng nhớ cache)  Cache_swap_high: Chỉ định kích thước cao nhất của cache object khi thay thế (được tính bằng % với vùng nhớ cache)  Cache_access_log: Lưu trử các activity request của client yêu cầu đến proxy server để truy xuất Web.  Cache_store_log: Lưu trử các thông tin vầ đối tượng được cache trên proxy, thời gian lưu trử.  Cache_peer: Nếu proxy không kết nối trục tiếp đến internet hoặc proxy 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ố. Cú pháp: Cache_peer host/IP type http_port icp_port Type= parent: truy vấn đến proxy khác (cha) Sibling: chia sẽ cache giữa các proxy (ngang hàng). Ví dụ: Cache_peer 192.168.11.1 parent 8080 8082 Cache_peer 192.168.11.10 sibling 8080 8082 Cache_peer vinhuni.edu.vn parent 8080 8082 Các thành viên của trường Đại học Vinh phải khai báo như trên khi kết nối tới.  Cache_effective_user, cache_effevtive_group: người dùng và nhóm có thể đổi squid. Ví dụ: Cache_effecvive_user squid 16 Cache_effective_group squid - Access Control list và Access control Operator: Chúng ta có thể dùng Access Control List và Access Control Operators để 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 của máy hoặc mạng). Mặc định, squid từ chối phục vụ tất cả. Vì vậy, bạn phải cấu hình lại tham số này. Cú pháp định nghĩa Access List dùng tag acl. Acl aclname acltype string1… Acl aclname acltyoe “file”… - Định nghĩa alc:  acl aclname acltype string1 hoặc “file”  Aclname: Tên của acl  Acltype: src IP address/netsmask Srcdomain domain dst IP address/netmask dstdomain domain  alc aclname time [day of week] [h1:m1-h2:m2]  acl aclname port 80 70 21…  acl aclname proto HTTP FTP…  acl aclname method GET POST… - Sử dụng access list vào các tag điều khiển truy cập: http_access allow/deny aclname Ví dụ: Một số mẫu về acl - 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_acceess deny all - Cấm truy cập đến site yahoo.com Acl baddomain dstdomain yahoo.com http_access deny baddomain - Giới hạn thời gian truy xuất: Ta dùng acl type kiểu là time, trong đó MTWHF tương ứng là thư hai, thư ba, thứ tư, thư 5, thứ 6. Acl business_hours time MTWHF 9:00-17:00 http_access allow business_hours - Chỉ định hostname cho server: Visible_hostname để chỉ định hostname cho squid proxy. 17 Ví dụ: Cấu hình các tham số chính Visible_hostname server10 http_port 8080 icp_port 8082 cache_peer 192.168.10.210 parent 8080 8082 dead_peer_timeout 10 seconds cache_dir ufs /var/spool/squid 100 16 256 cache_access_log /var/log/squid/access.log 2.3.3. Khởi động Squid - Sau khi cài đặt và cấu hình squid, chúng ta phải tạo thư mục cache trước lúc khới động bằng lệnh squid –z. Nếu trong quá trình tạo tập tin cache bị lổi, chúng ta cần chú ý đến các quyền truy xuất thư mục cache được khai báo trong tham số 18 cache_dir. Có thể thư mục đó không có quyền được phép ghi. Khi đó, chúng ta cần dùng lệnh sau: Chown squid:squid /var/spool/squid Chmod 770 /var/spool/squid Sau khi tạo xong thư mục cache, khởi động squid bằng lệnh: /usr/local/squid/squid –D& Đối với môi trường linux ta cần khai báo #chkconfig squid on #service squid start/restart/stop 2.4. Cài đặt và cấu hình dịch vụ Squid Proxy cho hệ thống mạng nội bộ. 2.4.1. Cài đặt Squid. Squid là một chương trình internet proxy có vai trò tiếp nhận các yêu cầu từ các client và chuyển cho internet server thích hợp. Đồng thời, nó cũng lưu lại trên đĩa cứng những dữ liêu được trả về từ internet server gọi là caching. Những giao thức hổ trợ trên squid: HTTP, FTP, SSL,.. Mô hình proxy server - Kiểm tra Squid đã cài đặt trên hệ thống hay chưa: 19 - Cài đặt squid thừ đĩa nguồn: 2.4.2. Cấu hình squid - Truy cập vào /etc/squid/squid.conf ta đi cấu hình các tham số như sau: http_port cache_mem cache_dir acl our_networks http_access - Cấu hình http_port - Cấu hình cache_mem - Cache_dir - acl our_networks - visible_hostname là centos: - Cho phép squid khởi động cùng hệ thống và khởi động lại các thông số vừa cấu hình ta dùng các lệnh sau: - Tạo thư mục swap cho squid: 20 2.4.3. Cấu hình web server Apche để test - Cài đặt apache - Tạo thư mục gốc cho website - Tạo trang html như sau: - Sữa file cấu hình httpd.conf như sau: 21 2.4.4. Cấu hình client truy cập internet thông qua proxy server - Cấu hình client để truy cập internet thông qua proxy server - Thực hiện truy cập vào website thông qua proxy server ta được như sau: 2.4.5. Access List Control điều khiển truy cập internet người dùng 2.4.5.1 Cấm các máy client truy cập một số trang website không cho phép: - Tạo file /etc/squid/webdeny chứa các website cấm không cho client truy cập 22 - Truy cập vào /etc/squid/squid.conf tạo acl và rule cho yêu cầu - Thực hiện restart lại dịch vụ bằng lệnh #service squid restart và kiểm tra. 2.4.5.2. Cấm máy client không truy cập ra internet - Cấu hình trong file /etc/squid/squid.conf như sau - Thực hiện khởi động dịch vụ squid ta sử dụng máy client có địa chỉ là 192.168.10.20/24 ta sẽ có được kết quả như yêu cầu. 2.4.5.3. Cho phép người dùng trong hệ thống chỉ được truy cập internet ngoài giờ hành chính - Ta thực hiện đi cấu hình như sau: - Giả sử giờ làm việc hành chình là 8:00- 17:00 ta tiến hành vào file /etc/squid/squid.conf ta tạo thêm một luật ACL như sau: - Khởi động lại dịch vụ và đặt lai ngày giờ trên máy proxy server ta được yêu cầu của công việc. 23 2.4.6. Dùng NCSA kiểm định Password cho quá trình truy cập internet - Là một chương trình chứng thực user được dùng trong squid tức là hạn chế user truy cập website bằng quyền đã cho trước. - Tạo một user hệ thống dùng để test như sau - Tạo file squid_password bằng công cụ htpasswd và tạo passwd chứng thực squid cho user testcnsa. - Thực hiện cấu hình ACL chứng thực trong /etc/squid/squid.conf như sau: - Khởi động lại dịch vụ squid để cập nhật các thông tin thay đổi bằng lệnh - Kiểm tra truy cập: từ máy client ta truy cập ra internet thì hệ thống proxy sẽ yêu cầu user và passwd để chứng thực squid như sau: - Login bằng user testcnsa và pass ta được như sau: 2.4.7. Giới hạn nội dung Download - Giã sử ta giới hạn một số file anh khi người dùng tải về - Ta đi tạo file /etc/squid/acc_lock.acl chứa các file hạn chế khi người dùng download về như sau 24 - Cấu hình file /etc/squid/squid.conf với ACL như sau: - Khởi động lại squid ta cập nhật lại thông tin đã thay đổi - Từ client ta truy cập ra internet ta có kết quả như sau: - Ta nhận thấy website không có các hình ảnh và một số tính năng, do chúng ta đã cấu hình hạn chế download một số nội dung 2.4.8. Một số giới hạn cấu hình trên Squid proxy 2.4.8.1. Giới hạn truy cập theo IP - Vào file /etc/squid/squid.conf cấu hình các thông tin như sau: - Khởi động lại dịch vụ squid và sử dụng máy client có địa chỉ 192.168.10.20. 2.4.8.2. Giới hạn truy cập theo giao thức - Giả sử ta cấu hình người dùng hệ thống không được truy cập ra internet với giao thức FTP HTTP - Vào file /etc/squid/squid.conf cấu hình các thông tin như sau: 25 2.4.8.3. Giới hạn truy cập theo cổng 26 Chương 3: Firewall Server 3.1. Giới thiệu về Firewall - 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ế hỏa hoạn. Trong công nghệ 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 việc truy cập trái phép, bảo vệ các nguồn tài nguyên 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. Cụ thể hơn, có thể hiểu Firewall là một cơ chế bảo vệ giữa mạng tin tưởng (trusted network), ví dụ mạng intranet nội bộ, với các mạng không tin tưởng mà thông thường là internet. Về mặt vật lý, firewall bao gồm một hoặc nhiều hệ thống máy chủ kết nối với bộ định tuyến(router) hoặc có chức năng router. Về mặt chức năng, firewall có nhiệm vu như sau: o Tất cả các trao đổi dữ liệu từ trong ra ngoài và ngược lại đều phải thực hiện thông qua firewall. o Chỉ có những trao đổi được cho phép bởi hệ thống mạng nội bộ (trused network) mới được quyền lưu thông qua firewall. o Các phần mềm quản lý an ninh chạy trên hệ thống máy chủ bao gồm: - Quản lý xác thực (Authentication): Có chức năng ngăn cản truy cập trái phép vào hệ thống mạng nội bộ. Mỗi người sử dụng muốn truy cập hợp lệ phải có một tài khoản (account) bao gồm một tên người dùng (username) và mật khẩu (password). - Quản lý cấp quyền (Authorization): cho phép các định quyền sử dụng tài nguyên cũng như các nguồn thông tin trên mạng theo từng người, từng nhóm sử dung. - Quản lý kế toán (Accounting Management): Cho phép ghi nhận tất cả các sự kiện xẩy ra liên quan đến việc truy cập và sử dụng nguồn tài nguyên trên mạng theo từng thời điểm (ngày/giờ) và thời gian truy cập đối với vùng tài nguyên nào đã được sử dụng hoặc thay đổi bổ sung. 3.2. Những chính sách yêu cầu khi thiết lập Firewall - Bước đầu tiên trong việc cấu hình Firewall là thiết lập các chính sách:  Những dịch vụ nào cần ngăn chặn.  Những host nào cần phục vụ.  Mổi nhóm cần truy xuất những dịch vụ nào.  Mổi dịch vụ sẽ được bảo về như thế nào. 3.3. Các loại Firewall và cách hoạt động 3.3.1. Packet filtering (Bộ lộc gói tin) - Loại Firewall này thực hiện việc kiểm tra số nhận dạng địa chỉ của các packet để từ đó cấp phep cho chúng lưu thông hay ngăn chặn. Các thông số có thể lọc được của một packet như:  Địa chỉ IP nơi xuất phát (source IP address)  Địa chỉ IP nơi nhận ( destination IP address)  Cổng TCP nơi xuất phát (source TCP port)  Cổng TCP nơi nhận (destination TCP port) 27  Những thủ thục truyền tin (TCP, UDP,ICMP, IP tunnel)  Giao diện packet đến  Giao diện packet đi - Loại Firewall này cho phép kiểm soát được kết nối vào máy chủ, khóa việc truy cập vào hệ thống mạng nội bộ từ những địa chỉ không được phép. Ngoài ra, nó còn kiểm soát hiệu suất sử dụng những dịch vụ đang hoạt động trên hệ thống mạng nội bộ thông qua các cổng TCP tương ứng. 3.3.2. Application gateway - Đây là loại firewall được thiết kế để tăng cường chức năng kiểm soát các loại dịch vụ dựa trên những giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt động của nó dựa trên mô hình proxy service. Trong mô hình này phải tồn tại một hay nhiều máy tính đóng vai trò proxy server. Một ứng dụng trong mạng nội bộ yêu cầu một đối tượng nào đó trên internet, proxy server sẽ nhận yêu cầu này và chuyển đến các server trên internet. Khi server trên internet trả lời, proxy server sẽ nhận và chuyển ngược lại cho ứng dụng đã gửi yêu cầu. Cơ chế lọc packet filtering kết hợp với cơ chế “đại diện” của application gateway cung cấp khả năng an toàn và uyển chuyển hơn, đặc biệt khi kiểm soát mạng bên ngoài. 3.4. Một số Log File chứa các thông tin về việc logon, logout của người dùng hệ thống. - Một số file log chính trong hệ thống  File /var/log/messages: chứa các thông tin log của hệ thống được daemon syslogd ghi nhận.  File /var/log/secure: chứa các thông tin về login fail, add user,..  File /var/log/wtmp: Lưu các log về logon/reboot thành công vào hệ thống.  File /var/run/utmp: lưu các session hiện tại đang logon vào hệ thống  File /proc/sys/net/ipv4: Thư mục chứa các tập tin cho việc bảo mật trên linux như login, ip_forwarder… 3.5. Thiết lập firewall linux với Iptables 3.5.1. Giới thiệu về Iptables - Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miển phí và có sẵn trên linux. Iptables gồm hai phần là netfilter ở trong nhân linux và Iptables nằm ngoài nhân linux. Iptables chịu tr._.

Các file đính kèm theo tài liệu này:

  • pdfLA5848.pdf