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
66 trang |
Chia sẻ: huyen82 | Lượt xem: 4872 | Lượt tải: 5
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:
- LA5848.pdf