Khởi đầu từ hoạt động đào tạo triển khai lắp đặt, hỗ trợ các dịch vụ Internet, Truyền số liệu, Tin học của VNPT/VDC cho các khách hàng, đại lý, đối tác và các viễn thông tỉnh/thành phố,
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn
BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115
ĐỀ TÀI : TÌM HIỂU VÀ CẤU HÌNH IPTABLES TRÊN HỆ ĐIỀU
Trang 2LỜI CẢM ƠN
Trong đợt thực tập vừa qua, chúng em đã nhận được sự huớng dẫn, giúp đỡ và động viên tận tình từ nhiều phía Tất cả những điều đó đã trở thành một động lực rất lớn giúp chúng em có thể hoàn thành tốt mọi công việc được giao Với tất cả sự cảm kích và trân trọng, chúng em xin được gửi lời cảm ơn đến tất cả mọi người
Trước tiên cho chúng em được gửi lời cảm ơn đến Ban lãnh đạo Trung tâm đào tạo VDC Training Đà Nẵng đã tạo điều kiện cho chúng em được tham gia thực tập tại công ty cũng như cung cấp tất cả các cơ sở vật chất và trang thiết bị có thể cho chúng
em trong thời gian vừa qua Xin cảm ơn thầy Th.s Nguyễn Song Tùng và các anh chị trong công ty đã tận tình hướng dẫn giúp đỡ chúng em trong suốt thời gian em tham gia thực tập
Em cũng xin được gửi lời cảm ơn đến lãnh đạo trường Đại học Bách Khoa Đà Nẵng, lãnh đạo khoa Công nghệ thông tin đã tổ chức các buổi giao lưu giửa các doanh nghiệp và sinh viên thật sự bổ ích, giúp chúng em có cơ hội tìm được một đơn vị thực tập tốt
Xin được cảm ơn tất cả các sinh viên tham gia thực tập tại VDC Training Đà Nẵng trong đợt thực tập vừa qua, những người đã luôn sát cánh cùng chúng mình, chia
sẻ, ủng hộ và giúp đỡ mình trong thời gian thực tập vừa qua
Xin trân trọng cảm ơn!
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan :
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy Th.s Nguyễn Song Tùng
2 Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ,vi phạm quy chế đào tạo,hay gian trá,tôi xin chịu hoàn toàn trách nhiệm
Sinh viên,
Lã Xuân Tâm Trần Canh Ngọ
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 5
MỤC LỤC
MỞ ĐẦU 1
GIỚI THIỆU CHUNG 1
I Giới thiệu về đơn vị thực tập 1
II Bối cảnh đề tài 4
III.Mục đích và ý nghĩa của đề tài 5
IV.Nội dung của đề tài gồm 4 phần chính 6
CHƯƠNG 1 7
CÁC NHIỆM VỤ ĐƯỢC GIAO 7
I.Tìm hiểu về đơn vị thực tập 7
II Đề tài nghiên cứu 7
CHƯƠNG 2 9
CÁC CÔNG NGHỆ ĐÃ NGHIÊN CỨU 9
I.TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX 9
I.1 Giới thiệu về hệ điều hành Linux 9
I.2 Kiến trúc hệ điều hành Linux 10
I.2.1 Hạt Nhân (kernel) 10
I.2.2 Shell 11
I.2.3 Các tiện ích 12
I.2.4 Chương trình ứng dụng 12
I.3 Các đặc tính cơ bản của Linux 12
I.3.1 Đa tiến trình 12
I.3.2 Tốc độ cao 13
I.3.3 Bộ nhớ ảo 13
Trang 6I.3.4 Sử dụng chung thư viện 13
I.3.5 Sử dụng các chương trình xử lý văn bản 13
I.3.6 Sử dụng giao diện cửa sổ 13
I.3.7 Network Information Service (NIS) 14
I.3.8 Lập lịch hoạt động chương trình, ứng dụng 14
I.3.9 Các tiện ích sao lưu dữ liệu 14
I.3.10 Hỗ trợ nhiều ngôn ngữ lập trình 14
I.4 Cấu trúc hệ thống tập tin/thư mục trong Linux 15
I.5 Quản lý tài khoản và phân quyền trên Linux 15
I.5.1 Quản lý tài khoản trong Linux 15
I.5.2 Phân quyền người dùng trên hệ thống tập tin 16
I.6 Ưu và nhược điểm của hệ điều hành Linux 20
I.7 Một số bản phân phối(Distro) Linux phổ biến 21
II TỔNG QUAN VỀ FIREWALL 27
II.1 Khái niệm tường lửa(firewall) 27
II.2 Chức năng của tường lửa 27
II.3 Phân loại tường lửa 28
II.3.1 Packet Filtering ( tường lửa lọc gói tin) 28
II.3.2 Application firewall ( Tường lửa ứng dụng ) 29
II.3.3 Statefull Firewall (Tường lửa trạng thái) 31
CHƯƠNG 3 32
TÌM HIỂU VỀ IPTABLES TRÊN HỆ ĐIỀU HÀNH LINUX 32
I.Giới thiệu về Iptables 32
I.1 Khái niệm Iptables 32
Trang 7I.2 Cài đặt Iptables 33
I.3 Cú pháp Iptables 33
I.4 Cấu trúc của Iptables 34
I.5 Quá trình chuyển dữ liệu qua Netfilter 36
I.6 Target và Jumps trong iptables 39
I.7 Các tham số dòng lệnh thường dùng trong iptables 41
I.8 Sử dụng các chuỗi tự định nghĩa 44
I.9 NAT trong iptables 45
I.10 Ví dụ về một số rule trên Iptables 47
II.Triển khái iptables trên Redhat 48
II.1 Mô hình triển khai 48
II.2 Thiết lập iptables trên redhat 48
II.2.1 Cấm ssh đến firewall 48
II.2.2 Cấm Ping đến Firewall 50
KẾT LUẬN 53
TÀI LIỆU THAM KHẢO 54
Trang 8DANH MỤC HÌNH ẢNH , BẢNG BIỂU
Hình 2 1 Kiến trúc hệ điều hành linux 10
Hình 2 2 Cấu trúc thư mục hệ thống của Linux 15
Hình 2 3 Quyền trên tập tin 17
Hình 2 4 Quyền được biểu diễn dưới dạng số 18
Hình 2 5 Red Hat 22
Hình 2 6 Debian 23
Hình 2 7 Ubuntu 23
Hình 2 8 Gentoo 24
Hình 2 9 Knoppix 24
Hình 2 10 Slackware 25
Hình 2 11 Mô hình tưởng lửa cơ bản 27
Hình 2 12 Packet Filtering 29
Hình 2 13 Application firewall 30
Hình 2 14 Statefull Firewall 31
Hình 3 1 Vị trí của Iptables 33
Hình 3 2 Quá trình xử lý gói tin bảng filter 35
Hình 3 3 Quá trình xử lý gói tin trong bảng NAT 35
Hình 3 4 Quá trình xử lý gói tin trong bảng Mangle 35
Hình 3 5 Mô hình hoạt động của Iptables 36
Hình 3 6 Trình tự xử lý gói tin trên Iptables 38
Hình 3 7 Sơ đồ mạng công ty A 48
Trang 9Bảng 1 Miêu tả các target mà Iptables thường dùng nhất 39
Bảng 2 Các tham số chuyển mạch quan trọng của iptables 41
Bảng 3 Các điều kiện TCP và UDP thông dụng 41
Bảng 4 Điều kiện ICMP 42
Bảng 5 Các điều kiện mở rộng thông dụng 43
Bảng 6 Danh sách các lệnh (Queues) 45
Bảng 7 NAT trong iptables 45
Trang 10MỞ ĐẦU
GIỚI THIỆU CHUNG
I Giới thiệu về đơn vị thực tập
Tên đơn vị thực tập
Trung tâm Đào tạo VDC Training Đà Nẵng
Địa chỉ,điện thoại trung tâm VDC
Tầng 2,3 tòa nhà số 59 Trần Phú – Thành Phố Đà Nẵng
Điện thoại : 0511.3840.842 – Email: training@vdc.com.vn
Hoạt động của trung tâm
Trung tâm Đào tạo VDC Training là đơn vị thuộc VDC - công ty thành viên tập đoàn VNPT VDC là doanh nghiệp hàng đầu trong lĩnh vực cung cấp dịch vụ Internet, có nhiều kinh nghiệm trong lĩnh vực tư vấn, thiết kế, triển khai các hệ thống
hạ tầng công nghệ thông tin và chuyển giao công nghệ
VDC Training đã có hơn 7 năm kinh nghiệm trong lĩnh vực đào tạo CNTT đẳng cấp cao Khởi đầu từ hoạt động đào tạo triển khai lắp đặt, hỗ trợ các dịch vụ Internet, Truyền số liệu, Tin học của VNPT/VDC cho các khách hàng, đại lý, đối tác
và các viễn thông tỉnh/thành phố, VDC Training đã thành công trong việc phát triển thành một trung tâm đào tạo CNTT có uy tín hàng đầu ở khu vực miền Trung và Tây Nguyên nói riêng và cả nước nói chung, không ngừng khẳng định là một đơn vị đào tạo đẳng cấp chuyên nghiệp, mang đến các chương trình đào tạo theo chuẩn mực quốc
tế cũng như đáp ứng tốt các chương trình đào tạo theo yêu cầu của các tổ chức lớn, cung cấp nhiều khoá học khác nhau nhằm giúp học viên nâng cao kỹ năng làm việc cũng như mang lại lợi ích đáng kể cho các tổ chức của họ Tính đến thời điểm hiện nay, VDC Training là đối tác đào tạo ủy quyền chính thức của Cisco, CompTIA, Pearson VUE, Prometric tại Việt Nam và cũng là thành viên mạng lưới đối tác Microsoft
Trang 11SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 2
Tiếp nối thành công ở mảng đào tạo các chương trình IT quốc tế và đặc biệt là
để đáp ứng nhu cầu của khách hàng, từ năm 2011 VDC Training triển khai đào tạo các chương trình về quản trị, kỹ năng mềm và ISO 27001, ISO 20000
VDC Training tự hào có đội ngũ giảng viên là các chuyên gia có trình độ chuyên môn cao, hiểu và nắm rõ phương pháp sư phạm, nhiệt tình trong công tác đào tạo; đã được cấp các chứng chỉ Quốc tế của các tổ chức hàng đầu như Cisco, Microsoft, Oracle, Sun, CompTIA, SCP, EC Council tuy nhiên sự khác biệt cũng là tài sản quý nhất của VDC Training chính là kinh nghiệm làm việc thực tế của giảng viên trong môi trường của một đơn vị cung cấp dịch vụ IP/Internet/Tin học hàng đầu Đội ngũ giảng viên của VDC Training với nhiều năm kinh nghiệm làm việc trong môi trường thực tế không những cung cấp cho học viên đầy đủ kiến thức lý thuyết mà còn
tư vấn, hỗ trợ học viên vận dụng và giải quyết các tình huống thực tế Sau khi tốt nghiệp, học viên có khả năng đáp ứng ngay các yêu cầu công việc thực tiễn Chất lượng đào tạo thể hiện rõ qua kết quả thi của học viên: sau khi hoàn thành các chương trình đào tạo, trên 90% học viên thi đạt điểm cao các chứng chỉ quốc tế ở ngay lần thi đầu tiên
Hiện nay, đội ngũ giảng viên của VDC Training đã đạt các chứng chỉ: CCSI, CCNA, CCNP, CCSP, CCAI, CCDP, CCIE Writtten, CWNA, SCSA, MCSE, MCITP, MCTS, MCT, CCSE, CompTIA Linux+, CompTIA Security+, SCNS, SCNP, SCNA, SCPI, CEH, CEI, Oracle DBA 10g, 11g v.v Không dừng lại và không thỏa mãn với những gì đạt được, các giảng viên VDC Training vẫn thường xuyên học tập, tham dự các khóa đào tạo nâng cao, các hội thảo công nghệ chuyên sâu trong và ngoài nước để cập nhật kiến thức mới và trau dồi kỹ năng mềm, nghiệp vụ sư phạm
Đội ngũ giảng viên giỏi chuyên môn nghiệp vụ, nhiều kinh nghiệm, cơ sở vật chất đạt tiêu chuẩn quốc tế cùng với nội dung đào tạo bổ ích đã giúp cho VDC Training trở thành đối tác đào tạo nguồn nhân lực cho nhiều đơn vị hoạt động trong các lĩnh vực khác nhau như
Tập đoàn Bưu chính Viễn thông Việt Nam – VNPT
Trang 12 Trung tâm Thông tin Di động khu vực III - VMS3
Trung tâm Viễn thông Quốc tế khu vực III - VTI3
Các Viễn thông tỉnh/thành phố
Cụm cảng hàng không miền Trung
Cục Hải quan Thành phố Đà Nẵng
Viện Tin học Doanh nghiệp - CN miền Trung
Trung tâm Viễn thông Điện lực miền Trung
Công ty TNHH MTV Lọc hóa dầu Bình Sơn
Ban quản lý dự án CNTT-TT thuộc Sở Thông tin và Truyền thông Đà Nẵng
Sở Thông tin và Truyền thông Khánh Hòa
Sở Thông tin và Truyền thông tỉnh Thừa Thiên Huế
Sở Thông tin và Truyền thông Bình Định
Sở Thông tin và Truyền thông tỉnh Kon Tum
Trung tâm tích hợp dữ liệu tỉnh Phú Yên
Các tổ chức ngân hàng, khác v.v
Trang 13SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 4
Sứ mệnh
- Truyền đạt, hướng dẫn học viên/khách hàng các kiến thức, kỹ năng CNTT chuyên sâu ở đẳng cấp quốc tế về chương trình và chất lượng đào tạo Góp phần phát triển nguồn nhân lực CNTT Việt Nam đạt tiêu chuẩn quốc tế
- Xây dựng một môi trường học tập thân thiện, cởi mở với cơ sở vật chất hiện đại, đủ sức hấp dẫn để quy tụ được nhân lực CNTT trong và ngoài nước về cộng tác nghiên cứu, thử nghiệm, trao đổi học thuật, kinh nghiệm với nhau
- Tạo điều kiện cho mọi thành viên của VDC Training phát triển tối đa năng lực cá nhân, có cuộc sống sung túc về vật chất, hạnh phúc về tinh thần
II Bối cảnh đề tài
Như chúng ta đã biết, Internet cho phép chúng ta truy cập tới các nơi trên thế giới thông qua một số dịch vụ Khi máy tính kết nối với Internet từ môi trường mạng cục bộ, khi đó tất cả các giao tiếp của mạng nội bộ với thế giới bên ngoài coi như là bỏ ngỏ, mọi thông tin dữ liệu trên máy tính của mạng nội
bộ không có sự bảo vệ Điều này được ví như nhà không có khóa cửa, khi đó mọi đồ đạc trong nhà dĩ nhiên không an toàn Do vậy việc bảo vệ hệ thống là một vấn đề chúng ta đáng phải quan tâm.Khi nói đến vấn đề bảo mật, hầu hết các chuyên gia bảo mật đều chú trọng đến sự an toàn của hệ thống mạng và hệ
Trang 14điều hành Để hạn chế tình trạng này và cũng là để góp phần làm tăng khả năng bảo mật thì việc xây dựng hệ thống tường lửa là điều kiện không thể thiếu
Tường lửa có thể được tích hợp với phần cứng hoặc phần mềm giúp bạn tránh được sự tấn công của các hacker, kiểm soát truy cập Khi truy cập vào mạng Internet Nếu bạn sử dụng máy tính cá nhân tại nhà hoặc bạn là một doanh nghiệp nhỏ, sử dụng tường lửa là cách quan trọng và hiệu quả nhất để bảo vệ máy tính của bạn
III.Mục đích và ý nghĩa của đề tài
Có rất nhiều loại tường lửa khác nhau nhưng chúng em đã quyết định chọn đề tài về tìm hiểu và cấu hình Iptables trên hệ điều hành linux Bởi vì hệ điều hành Linux ngày càng trở lên phổ biến,được sử dụng nhiều trên các hệ thống máy chủ.Mặt khác 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 Nó cung cấp các tính năng sau:
Tích hợp tốt với kernel của Linux
Có khả năng phân tích gói tin hiệu quả
Lọc gói tin dựa vào địa chỉ MAC (Media Access Control) và một số cờ hiệu trong TCP Header
Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống
Cung cấp kỹ thuật NAT (Network Address Translation)
Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS
Trang 15SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 6
IV.Nội dung của đề tài gồm 4 phần chính
Tìm hiểu tổng quan về hệ điều hành linux
Tổng quan về hệ thống tường lửa
Tìm hiểu và cấu hình Iptables trên hệ điều hành linux
Kết luận
Trang 16CHƯƠNG 1
CÁC NHIỆM VỤ ĐƯỢC GIAO
I.Tìm hiểu về đơn vị thực tập
Trong ngày thực tập đầu tiên, chúng em được làm quen với các thầy, anh chị tham gia hướng dẫn chúng em trong quá trình thực tập Chúng em được
đi tham quan các phòng ban,phòng học,thực hành và các trang thiết bị máy móc ở trung tâm Trong buổi gặp gỡ, ngoài việc được giới thiệu về VDC Training/VDC - đơn vị thuộc VDC - công ty thành viên tập đoàn VNPT cũng như phổ biến một số nội quy, quy định của VDC Training - nơi chúng em sẽ thực tập tại đây Chúng em còn được giới thiệu về một số định hướng nghiên cứu, trải nghiệm trong thời gian thực tập tại VDC Training
Chúng em rất hào hứng với những xu hướng nghiên cứu khoa học mà giảng viên VDC Training giới thiệu, bởi đây là những xu hướng mới và đang được quan tâm nghiên cứu nhiều trên thế giới
Cũng trong buổi gặp gỡ, chúng em đã thoải mái trao đổi, bày tỏ mong muốn tham gia nghiên cứu những đề tài đầy mới mẻ này cũng như cơ hội tiếp cận môi trường thực tế, năng động trong lĩnh vực công nghệ thông tin - viễn
thông trong thời gian các bạn thực tập tại VDC Training
II Đề tài nghiên cứu
Sau khi được thầy Th.S Nguyễn Song Tùng giới thiệu về một số định hướng nghiên cứu đang được quan tâm hiện nay Chúng em đã chọn cho mình hướng nghiên cứu về tìm hiểu hệ điều hành linux mà cụ thể là tìm hiểu và cấu hình iptables trên hệ điều hành linux
Iptables là một phần mềm tường lửa phổ biến và cơ bản nhất trong HĐH
Linux Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh gồm 2 phần
là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân Iptables chịu trách nhiệm giao tiếp giữa người dùng và Netfilter để đẩy các luật của người dùng
Trang 17SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 8 vào cho Netfiler xử lí Netfilter tiến hành lọc các gói dữ liệu ở mức IP Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ của hệ thống
Trang 18CHƯƠNG 2
CÁC CÔNG NGHỆ ĐÃ NGHIÊN CỨU
Trong quá trình thực tập tại VDC Training Đà Nẵng, sau tuần đầu tiên được tham quan và tìm hiểu về trung tâm Sang tuần thứ hai, chúng em được giao nhiệm vụ học tập và nghiên cứu công nghệ Chúng em được phân vào các nhóm khác nhau tùy theo công nghệ đã lựa chọn Nhóm em có 2 thành viên nghiên cứu về iptables trên hệ điều hành linux
I.TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX
I.1 Giới thiệu về hệ điều hành Linux
Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành
Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan Ông làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm
1994 Bộ phận chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License Do đó mà bất cứ ai cũng có thể tải và xem
mã nguồn của Linux
Một cách chính xác, thuật ngữ ―Linux‖ được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux Thực tế thì đó là tập hợp một số lượng lớn các phần mềm như máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trường làm việc desktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng như OpenOffice hay LibreOffice
Khởi đầu, Linux được phát triển cho dòng vi xử lý i386 Intel, hiện tại hệ điều hành này hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng
Trang 19SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 10
trong nhiều ứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính
và các thiết bị nhúng như là các máy điện thoại di động
Ban đầu, Linux được phát triển và sử dụng bởi những người say mê Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả
Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows nhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được
hỗ trợ cho Linux sẽ tăng lên
I.2 Kiến trúc hệ điều hành Linux
Hình 2 1 Kiến trúc hệ điều hành linux
I.2.1 Hạt Nhân (kernel)
Trang 20Là 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ó 2 phiên bản mới nhất, một bản dạng phát triển mới nhất và một bản
ổn định mới nhất Kernel được thiết kế theo dạng module, do vậy kích thước thật sự của Kernel rất nhỏ Chúng chỉ tải những bộ phận cần thiết lên bộ nhớ, các bộ phận khác sẽ được tải nếu có yêu cầu sử dụng Nhờ vậy so với các hệ điều hành khác Linux không sử dụng lãng phí bộ nhớ nhờ không tải mọi thứ lên mà không cần quan tâm nó có sử dụng không
Kernel được xem là trái tim của hệ điều hành Linux, ban đầu nhân được phát triển cho các CPU Intel 80386 Điểm mạnh của loại CPU này là khả năng quản lý bộ nhớ Kernel của Linux có thể truy xuất tới toàn bộ tính năng phần cứng của máy Yêu cầu của các chương trình cần rất nhiều bộ nhớ, trong khi hệ
thống có ít bộ nhớ, hệ điều hành sử dụng không gian đĩa hoán đổi (swap space)
để lưu trữ các dữ liệu xử lý của chương trình Swap space cho phép ghi các
trang của bộ nhớ xuất các vị trí dành sẵn trong đĩa và xem nó như phần mở
rộng của vùng nhớ chính Bên cạnh sử dụng swap space, Linux còn hỗ trợ các
Có nhiều Shell được sử dụng trong Linux Có nhiều loại shell được dùng trong Linux Điểm quan trọng để phân biệt các shell khác nhay là bộ lệnh của mỗi shell Ví dụ , C shell thì sử dụng các lệnh tương tự ngôn ngữ C, Bourne thì dùng ngôn ngữ lệnh khác…
Trang 21SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 12
Shell sử dụng chính trong Linux là GNU Bourne Again Shell ( bash ) Shell này là shell phát triển từ Bourne Shell, là shell sử dụng chính trong các hệ thông Unix, với nhiều tính năng mới như : điều khiển các tiến trình, các lệnh history, tên tập tin dài…
sử dụng bởi người dùng hoặc hệ thống Một số tiện ích được xem là chuẩn
trong hệ thống Linux như passwd, ls, pa, vi …
I.2.4 Chương trình ứng dụng
Khác với các tiện ích, các ứng dụng như chương trình word, hệ quản trị cơ
sở dữ liệu,… là các chương trình có độ phức tạp lớn và được các nhà sản xuất viết ra
I.3 Các đặc tính cơ bản của Linux
Linux hỗ trợ các tính năng cơ bản thường thấy trong các hệ điều hành Unix và nhiều tính năng khác mà không hệ điều hành nào có được Linux cung cấp môi trường phát triển một cách đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, debug,… như bạn mong đợi ở các hệ điều hành Unix khác Hệ thống Linux trội hơn các hệ thống khác trên nhiều mặt mà người dùng quan tâm như sự phát triển tốc độ, dễ sử dụng và đặc biệt là sự phát triển và hỗ trợ mạng Một số đặc điểm của Linux chúng ta cần quan tâm:
I.3.1 Đa tiến trình
Là đặc tính cho phép người dùng thực hiện nhiều tiến trình đồng thời Ví
dụ bạn vừa in, vừa soạn văn bản, vừa nghe nhạc,… cùng một lúc Máy tính sử dụng chỉ một CPU nhưng xử lý đồng thời nhiều tiến trình cùng lúc Thực chất
Trang 22là tại một thời điểm CPU chỉ xử lý được một mệnh lệnh, việc thực hiện cùng lúc nhiều công việc là giả tạo bằng cách làm việc xen kẽ và chuyển đổi trong thời gian nhanh Do đó người dùng cứ ngỡ là thực hiện đồng thời
đĩa vào partition swap Hệ thống sẽ đưa các chương trình hoặc dữ liệu nào
chưa có yêu cầu truy xuất xuống vùng swap này, khi có nhu cầu thì hệ thống chuyển lên lại bộ nhớ chính
I.3.4 Sử dụng chung thư viện
Hệ thống Linux có rất nhiều thư viện dùng chung cho nhiều ứng dụng Điều này sẽ giúp hệ thống tiết kiệm được tài nguyên cũng như thời gian xử lý
I.3.5 Sử dụng các chương trình xử lý văn bản
Chương trình xử lý văn bản là một trong những chương trình rất cần thiết đối với người sử dụng Linux cung cấp nhiều chương trình cho phép người
dùng thao tác với văn bản như vi, emacs, nroff
I.3.6 Sử dụng giao diện cửa sổ
Giao diện cửa sổ dùng hệ thống X Window, có giao diện như hệ điều hành
Windows Với hệ thống này người dùng rất thuận tiện khi làm việc trên hệ
thống X Window System hay còn gọi tắt là X được phát triển tại viện
Massachusetts Institute of Technology Nó được phát triển để tạo ra môi trường
làm việc không phụ thuộc phần cứng X chạy dưới dạng client – server Hệ thống X Window hoạt động qua hai bộ phận:
- Phần server còn gọi là X server
Trang 23SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 14
- Phần client được gọi là X Window manager hay desktop environment
- X Server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86
Client sử dụng thường là KDE (K Desktop Environment) và GNOME (GNU
Network Object Model Environment)
Dịch vụ Samba sử dụng tài nguyên đĩa, máy in với Windows Tên Samba
xuất phát từ giao thức Server Message Block (SMB) mà Window sử dụng để
chia sẻ tập tin và máy in Samba là chương trình sử dụng giao thức SMB chạy trên Linux Sử dụng Samba bạn có thể chia sẻ tập tin và máy in với các máy Windows
I.3.7 Network Information Service (NIS)
Dịch vụ NIS cho phép chia sẻ các tập tin password và group trên mạng
NIS là một hệ thống cơ sở dữ liệu dạng client – server, chứa các thông tin của
người dùng và dùng để chứng thực người dùng NIS xuất phát từ hãng Sun
Microsystem với tên là Yellow Pages
I.3.8 Lập lịch hoạt động chương trình, ứng dụng
Chương trình lập lịch trong Linux xác định các ứng dụng, script thực thi
theo một sự sắp xếp của người dùng như: at, cron, batch
I.3.9 Các tiện ích sao lưu dữ liệu
Linux cung cấp các tiện ích như tar, cpio và dd để sao lưu và backup dữ liệu Red Hat Linux còn cung cấp tiện ích Backup and Restore System Unix
(BRU) cho phép tự động backup dữ liệu theo lịch
I.3.10 Hỗ trợ nhiều ngôn ngữ lập trình
Linux cung cấp một môi trường lập trình Unix đầy đủ bao gồm các thư viện chuẩn, các công cụ lập trình, trình biên dịch, chương trình debug mà bạn
có thể tìm thấy trong các hệ điều hành Unix khác Ngôn ngữ chủ yếu sử dụng trong các hệ điều hành Unix là C và C++ Linux dùng trình biên dịch cho C và
C++ là gcc, chương trình biên dịch này rất mạnh, hỗ trợ nhiều tính năng Ngoài
Trang 24C, Linux cũng cung cấp các trình biên dịch, thông dịch cho các ngôn ngữ khác
như Pascal, Fortan, Java, …
I.4 Cấu trúc hệ thống tập tin/thư mục trong Linux
Trong Linux không có khái niệm ổ đĩa Sau quá trình khởi động, toàn bộ các thư mục và tập tin được kết gắn và tạo thành một hệ thống tập tin thống nhất, bắt đầu từ gốc ―/‖
Hình 2 2 Cấu trúc thư mục hệ thống của Linux
I.5 Quản lý tài khoản và phân quyền trên Linux
I.5.1 Quản lý tài khoản trong Linux
a) Tài khoản người dùng
Cũng giống như Windows,Linux cũng có các loại tài khoản khác nhau, thường được chia làm 2 loại chính : tài khoản người dùng bình thường và tài khoản quản trị (root )
Root là tài khoản quản trị có ảnh hưởng rất lớn đối với an toàn của hệ thống, tài khoản root có các các quyền như: tạo tài khoản người dùng, cài đặt phần mềm, thêm, xóa, sửa đổi các tài khoản…
Mỗi người sử dụng trên hệ thống được mô tả qua các thông tin sau:
- username : tên người sử dụng
- password : mật khẩu (nếu có)
Trang 25SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 16
- uid : số nhận dạng (user identify number )
- gid : số của nhóm(group identify number )
- comment : chú thích
- Thư mục chủ của tài khoản (home directory )
- Shell đăng nhập (chương trình chạy lúc bắt đầu phiên làmviệc)
Các thông tin trên được chứa trong tập tin /etc/passwd
b) Tài khoản nhóm người dùng
Một nhóm người sử dụng được mô tả bằng các thông tin sau:
- groupname : tên của nhóm
- gid : số của nhóm (gid: group identify number)
- danh sách các tài khoản thuộc nhóm
Các thông tin trên được chứa trong tập tin /etc/group
I.5.2 Phân quyền người dùng trên hệ thống tập tin
Một trong những thành phần chính của họ *nix là hệ thống quyền hạn truy cập (Permission) cho mọi đối tượng (file (-), thư mục (d), link (l)) Hệ thống này đóng 1 vai trò quan trọng trong việc cung cấp mức an ninh cao và tính ổn định cho HDH Linux
Mỗi 1 đối tượng gắn với 3 loại quyền: read (đọc), write (ghi) và execute (thực thi) Và mỗi 1 quyền này lại được chỉ định cho 3 loại user:
+ owner: chủ sở hữu của đối tượng – mặc định ban đầu là user tạo ra đối tượng
đó
+ group: 1 nhóm các user chia sẻ chung quyền hạn truy cập - mặc định ban đầu
là group mà owner ở trên thuộc về
+ other: tất cả các user không thuộc 2 nhóm trên
Trang 26Hình 2 3 Quyền trên tập tinUser root có đủ cả 3 quyền đối với mọi đối tượng trên hệ thống Ngoài
ra, root có thể thay đổi (cấp hoặc tước) quyền hạn truy cập đối tượng cho bất
kỳ user nào và còn có thể chuyển quyền sở hữu đối tượng qua lại giữa các user
Ý nghĩa của 3 loại quyền này là:
+ đối với thư mục:
- Read: chỉ cho phép xem tên và các thuộc tính của các đối tượng mà nó chứa
- Write: cho phép tạo và xóa các đối tượng trong thư mục
- Execute: chỉ cho phép truy cập vào thư mục sử dụng lệnh cd
+ đối với file:
- Read: chỉ cho phép xem nội dung của file
- Write: cho phép chỉnh sửa nội dung, xóa file
Trang 27SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 18
- Execute: chỉ cho phép chạy file này, thường được gán các file nhị phân
thực thi (đã được biên dịch từ file mã nguồn) tương tự như file exe trong
Windows
Các quyền cho 1 đối tượng được biểu diễn như sau:
- Read: ký hiệu là r hay số 4 hệ bát phân
- Write: ký hiệu là w hay số 2 hệ bát phân
- Execute: ký hiệu là e hay số 1 hệ bát phân
Vì mỗi đối tượng có 3 loại quyền cho mỗi loại user nên có tất cả 9 bit
thông tin về quyền hạn tương ứng với mỗi đối tượng Mỗi bit trong 9 bit này
nhận 1 trong 2 giá trị: được phép (allow) hoặc bị cấm (deny)
Hình 2 4 Quyền được biểu diễn dưới dạng số Các quyền cho 1 đối tượng được biểu diễn theo 2 cách
Cách 1 gồm 1 chuỗi 10 ký tự:
- Ký tự đầu thể hiện loại file: d cho thư mục (file đặc biệt), - cho
file thông thường, l cho các link (hard link, symbolic link)
- Ba ký tự tiếp là các quyền cho owner, kế đến là 3 ký tự biểu
diễn các quyền cho group, còn lại 3 ký tự cuối dành cho other
- Quyền được phép read sẽ là r, write là w, e là execute Các
quyền bị cấm được biểu diễn bằng dấu –
Trang 28Sử dụng lệnh ls –l filename để biết thông tin về các quyền VD
-rwxrw-r
+ đây là file thông thường
+ owner có quyền read, write, execute; group có thể read, write; other chỉ read
+ 7 : read + write + execute
Để thay đổi quyền hạn truy cập cho các user sử dụng lệnh chmod (bạn phải là owner của file hặc có quyền root)
Để thay đổi owner cho đối tượng sử dụng lệnh chown (bạn phải có quyền root)
chown User_Name File_Name
Trang 29SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 20
Để thay đổi group cho đối tượng sử dụng lệnh chgrp nhưng phải thỏa 1 trong 2 điều kiện:
* chạy lệnh chgrp với quyền root
* bạn là owner + thuộc Group (có tên là Group_Name trong lệnh) mà bạn muốn thay đổi Group cho file
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 i386 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
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++…
Nhược điểm
Trang 30 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
I.7 Một số bản phân phối(Distro) Linux phổ biến
Phần mềm tự do nguồn mở cho phép người sử dụng có thể sao chép, sửa đổi, phân phối một cách tự do và không phụ thuộc vào bất kỳ nhà cung cấp công nghệ nào
Phần mềm tự do nguồn mở được phát triển từ lâu và đến nay đã xuất hiện khá phổ biến trong các tổ chức chính phủ, doanh nghiệp.Thu hút sự chú ý của cộng đồng do sự tự nguyện của những người đóng góp cho cộng đồng giúp phát hiện và thông báo các lỗi mà họ gặp phải khi trải nghiệm
Điểm sáng của phần mềm mã nguồn mở chính là khái niệm distro, có thể tạm dịch là bản phân phối phần mềm mã nguồn mở Kể từ lúc Linux ra đời, cho đến nay đã có rất nhiều distro khác nhau, một phần là do tính "mở" của nó Một số distro có thể kể đến như: Ubuntu, Fedora, LinuxMint, openSUSE, PCLinuxOS, Debian, Mandriva…
Sự khác nhau giữa các distro chủ yếu dựa vào 2 yếu tố
- Thị trường mà distro muốn nhắm đến, ví dụ dành cho máy chủ,
doanh nghiệp, siêu máy tính, người dùng đầu cuối…
- Tùy thuộc vào triết lí phần mềm của từng distro mà những
người phát triển quyết định gắn bó lâu dài với distro đó hay không
Trang 31SVTH: Lã Xuân Tâm,Trần Canh Ngọ - Lớp 11TLT Trang 22
Các distribution phổ biến
Redhat,Fedora & CentOS (Redhat, Inc): Redhat, Fedora,CentOS là
các Distro dựa trên RPM, được nhiều người biết đến nhất và rất phổ biến tại Việt Nam Chúng phù hợp với mọi mục đích, từ Desktop, Workstation, đến Server, cho những người mới dùng, đến những người đã giàu kinh nghiệm Điểm mạnh của Redhat, Fedora,CentOS là việc hỗ trợ cài đặt, đến giao diện sử dụng rất thân thiện Tuy nhiên điểm yếu chung của những Distro tựa RPM này
là cách quản lý gói tin gây không ít khó khăn cho người dùng Việc phân chia mỗi ứng dụng bao gồm nhiều gói rpm, và sự liên kết giữa chương trình với thư viên, gây cho việc cài đặt, gỡ bỏ, cập nhật bất kỳ một gói nào cũng liên quan đến nhiều gói khác Tuy nhiên, đến Distro Fedora,CentOS và Redhat Enterprise, trình quản lý gói yum được đưa vào, đã giải quyết được đáng kể vấn đề trên Fedora,CentOS là Distro xuất hiện miễn phí cho người dùng bởi Công ty Redhat từ khi phiên bản Redhat đã được thương mại hóa Redhat Enterprise thực sự là một Distro phổ biến cho dòng Máy chủ của các công ty,
doanh nghiệp lớn trên toàn thế giới
Hình 2 5 Red Hat
Debian: là Distro khá phổ biến bởi trình quản lý gói tin rất mạnh, tiện
ích APT và số lượng gói phần mềm khổng lồ (số lượng CD lưu trữ hết các gói tin khoảng 15 CD - 8000 gói), cung cấp cho người dùng rất nhiều tính năng lựa chọn Debian là lựa chọn cho sự ổn định và tin cậy Gói tin DEB trên Debian