1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp công nghệ thông tin xây dựng firewall cho hệ thống mạng lan bằng giải pháp mã nguồn mở

88 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Firewall cho hệ thống mạng LAN bằng giải pháp mã nguồn mở
Tác giả Ngơ Thanh Tồn
Người hướng dẫn ThS. Nguyễn Hữu Lộc
Trường học Trường Đại Học Võ Trường Toản
Chuyên ngành Công Nghệ Thông Tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2013
Thành phố Hậu Giang
Định dạng
Số trang 88
Dung lượng 1,27 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1 TỔNG QUAN (14)
    • 1.1 ĐẶT VẤN ĐỀ (14)
    • 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ (14)
    • 1.3 PHẠM VI ĐỀ TÀI (15)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU VÀ HƯỚNG GIẢI QUYẾT (15)
  • CHƯƠNG 2 CƠ SỞ LÝ THUYẾT (16)
    • 2.1 TỔNG QUAN AN NINH MẠNG (16)
      • 2.1.1 Tình hình thực tế (16)
      • 2.1.2 Các dạng tấn công (17)
      • 2.1.3 Một số kỹ thuật tấn công (20)
    • 2.2 TỔNG QUAN HỆ ĐIỀU HÀNH LINUX (22)
      • 2.2.1 Linux là gì ? (22)
      • 2.2.2 Lợi thế của Linux (22)
      • 2.2.3 Ưu điểm và khuyết điểm của Linux (23)
      • 2.2.4 Kiến trúc của hệ điều hành Linux (24)
      • 2.2.5 Quản trị người dùng và nhóm trên Linux (25)
      • 2.2.6 Quản lý tập tin trên Linux (32)
      • 2.2.7 Kết nối mạng trong Linux (35)
    • 2.3 TỔNG QUAN VỀ FIREWALL (38)
      • 2.3.1 Khái niệm (38)
      • 2.3.2 Phân loại, chức năng, cấu trúc Firewall (38)
      • 2.3.3 Các thành phần của Firewall (41)
      • 2.3.4 Ưu, nhược điểm của Firewall (46)
      • 2.3.5 Kiến trúc Firewall (47)
    • 2.4 NỘI DUNG NGHIÊN CỨU IPTABLES (53)
      • 2.4.1 Iptables là gì (53)
      • 2.4.2 Cài đặt trọn gói Iptables (54)
      • 2.4.3 Cơ chế xử lý package trong Iptables (54)
      • 2.4.4 Target và Jump (58)
      • 2.4.5 Tùy chọn –limit, --limit-burst (61)
      • 2.4.6 Redirect cổng (63)
      • 2.4.7 Cách đổi địa chỉ IP động ( dynamic NAT) (63)
      • 2.4.8 Cách đóng giả địa chỉ IP (masquerade) (64)
      • 2.4.9 Quá trình chuyển gói dữ liệu qua Netfilter (65)
      • 2.4.10 Các tham số dòng lệnh thường gặp của Iptables (65)
  • CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ THỰC NGHIỆM (72)
    • 3.1 PHƯƠNG PHÁP THỰC NGHIỆM (72)
    • 3.2 CÔNG CỤ MÔ PHỎNG TẤN CÔNG MẠNG (HPING3) (73)
      • 3.2.1 Khái niệm (73)
      • 3.2.2 Cài đặt và cấu trúc (73)
      • 3.2.3 Thực nghiệm cấu hình Firewall với Iptables và kết quả (74)
  • CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (86)
    • 4.1 KẾT LUẬN (86)
    • 4.2 HƯỚNG PHÁT TRIỂN (87)

Nội dung

Song với firewall Ipchains còn nhiều thiếu sót và không đủ mạnh để bảo vệ hệ thống như ngăn chặn tấn công từ chối dịch vụ kém, khả năng ghi nhận lỗi không cao… 1.3 PHẠM VI ĐỀ TÀI Phạm v

Trang 1

TRƯỜNG ĐẠI HỌC VÕ TRƯỜNG TOẢN KHOA CƠNG NGHỆ THƠNG TIN



KHĨA LUẬN TỐT NGHIỆP XÂY DỰNG FIREWALL CHO HỆ THỐNG MẠNG LAN BẰNG GIẢI PHÁP MÃ NGUỒN MỞ

Giáo viên hướng dẫn:

ThS NGUYỄN HỮU LỘC

Sinh viên thực hiện:

NGƠ THANH TỒN MSSV: 0951190716 Lớp: ĐH CNTT Khĩa: 2

Hậu Giang -

2013

Trang 2

Sinh viên thực hiện

Ngô Thanh Toàn

Trang 3

LỜI CẢM TẠ



Em xin chân thành gửi lời cảm ơn đến thầy, Thạc sĩ Nguyễn Hữu Lộc đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trình làm đề tài luận văn tốt nghiệp và giúp cho đề tài của em được hoàn thành

Em cũng xin gửi lời cảm ơn đến các thầy cô thuộc khoa công nghệ thông tin, trường Đại học Võ Trường Toản Đã tạo điều kiện cho em trong quá trình hoàn thành luận văn tốt nghiệp của mình

Trong quá trình làm luận văn em còn nhận được sự giúp đỡ và trao đổi của các bạn, em cũng xin chân thành cảm ơn sự giúp đỡ và chia sẻ đó

Em chúc các thầy cô sức khỏe và công tác tốt Chúc các bạn báo cáo luận văn thành công

Sinh viên thực hiện

Ngô Thanh Toàn

Trang 4

BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP



 Họ và tên người hướng dẫn: Nguyễn Hữu Lộc

 Học vị: Thạc sĩ

 Chuyên ngành: Công Nghệ Thông Tin

 Cơ quan công tác: Khoa Công Nghệ Thông Tin, Đại học Võ Trường Toản

 Họ và tên : Ngô Thanh Toàn

 Mã số sinh viên : 0951190716

 Chuyên ngành : Công Nghệ Thông Tin

 Tên đề tài : Xây dựng Firewall cho hệ thống mạng LAN bằng giải

pháp mã nguồn mở

Trang 5

Hậu Giang, ngày…… tháng …… năm…

(Ký và ghi rõ họ tên)

Trang 6

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN



Hậu Giang, ngày … tháng … năm …

Giáo viên phản biện

(Ký và ghi rõ họ tên)

Trang 7

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM TẠ ii

BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP iii

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN v

DANH MỤC HÌNH ẢNH viii

DANH MỤC BIỂU BẢNG ix

TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ x

TÓM TẮT xi

ABSTRACT xii

CHƯƠNG 1 TỔNG QUAN 1

1.1 ĐẶT VẤN ĐỀ 1

1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1

1.3 PHẠM VI ĐỀ TÀI 2

1.4 PHƯƠNG PHÁP NGHIÊN CỨU VÀ HƯỚNG GIẢI QUYẾT 2

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3

2.1 TỔNG QUAN AN NINH MẠNG 3

2.1.1 Tình hình thực tế 3

2.1.2 Các dạng tấn công 4

2.1.3 Một số kỹ thuật tấn công 7

2.2 TỔNG QUAN HỆ ĐIỀU HÀNH LINUX 9

2.2.1 Linux là gì ? 9

2.2.2 Lợi thế của Linux 9

2.2.3 Ưu điểm và khuyết điểm của Linux 10

2.2.4 Kiến trúc của hệ điều hành Linux 11

2.2.5 Quản trị người dùng và nhóm trên Linux 12

2.2.6 Quản lý tập tin trên Linux 19

2.2.7 Kết nối mạng trong Linux 22

2.3 TỔNG QUAN VỀ FIREWALL 25

2.3.1 Khái niệm 25

2.3.2 Phân loại, chức năng, cấu trúc Firewall 25

Trang 8

2.3.3 Các thành phần của Firewall 28

2.3.4 Ưu, nhược điểm của Firewall 33

2.3.5 Kiến trúc Firewall 34

2.4 NỘI DUNG NGHIÊN CỨU IPTABLES 40

2.4.1 Iptables là gì 40

2.4.2 Cài đặt trọn gói Iptables 41

2.4.3 Cơ chế xử lý package trong Iptables 41

2.4.4 Target và Jump 45

2.4.5 Tùy chọn –limit, limit-burst 48

2.4.6 Redirect cổng 50

2.4.7 Cách đổi địa chỉ IP động ( dynamic NAT) 50

2.4.8 Cách đóng giả địa chỉ IP (masquerade) 51

2.4.9 Quá trình chuyển gói dữ liệu qua Netfilter 52

2.4.10 Các tham số dòng lệnh thường gặp của Iptables 52

CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ THỰC NGHIỆM 59

3.1 PHƯƠNG PHÁP THỰC NGHIỆM 59

3.2 CÔNG CỤ MÔ PHỎNG TẤN CÔNG MẠNG (HPING3) 60

3.2.1 Khái niệm 60

3.2.2 Cài đặt và cấu trúc 60

3.2.3 Thực nghiệm cấu hình Firewall với Iptables và kết quả 61

CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73

4.1 KẾT LUẬN 73

4.2 HƯỚNG PHÁT TRIỂN 74

DANH MỤC TÀI LIỆU THAM KHẢO 75

Trang 9

DANH MỤC HÌNH ẢNH

Hình 1: Tấn công kiểu DoS 5

Hình 2: Tấn công kiểu DDoS 5

Hình 3: Tấn công kiểu DRDoS 6

Hình 4 : Thiết lập kết nối TCP giữa client và server 7

Hình 5 : Kiến trúc hệ điều hành Linux 11

Hình 6: Sơ đồ Netfilter hook 24

Hình 7 : Mô hình Firewall 25

Hình 8 : Mô hình Firewall cứng 26

Hình 9 : Mô hình Firewall mềm 26

Hình 10 : Các thành phần của Firewall 28

Hình 11 : Bộ lọc Packet 29

Hình 12 : Kết nối cổng vòng của Firewall 32

Hình 13: Sơ đồ kiến trúc Dual-home Host 35

Hình 14: Sơ đồ kiến trúc Sceen Host 37

Hình 15 : Kiến trúc Screen subnet 38

Hình 16 : Bảng NAT Tables 40

Hình 17 : Sơ đồ đường đi của package trong Iptables 44

Hình 18 : Cách đôỉ địa chỉ Ip động 50

Hình 19 : Cách đóng giả địa chỉ IP 51

Hình 20 : Mô hình mạng thực nghiệm 59

Hình 21: Lệnh kiểm thử chặn ngập lụt PING 63

Hình 22: Kết quả chống ngập lụt PING từ client 63

Hình 23: Lệnh kiểm thử chặn ngâp lụt SYN 66

Hình 24: Kết quả kiểm thử chống ngập lụt SYN 66

Hình 25: Kiểm thử SSH 67

Hình 26: Kết quả giới hạn truy nhập SSH cho admin 68

Hình 27: Kiểm thử giới hạn FTP cho webmaster 69

Hình 28: Kết quả kiểm thử giới hạn truy nhập FTP cho webmaster 70

Hình 29: Kiểm thử chặn ngập lục UDP 71

Hình 30: Kết quả chặn ngập lục UDP 72

Trang 10

DANH MỤC BIỂU BẢNG

Bảng 1 Các loại queues và chain cùng chức năng của nó 42

Bảng 2 Miêu tả các target mà iptables thường dùng nhất 46

Bảng 3 Các tham số chuyển mạch (switching) quan trọng của Iptables 53

Bảng 4 Các điều kiện TCP và UDP thông dụng 54

Bảng 5 Điều kiện ICMP 55

Bảng 6 Các điều kiện mở rộng thông dụng 55

Bảng 7 Danh sách các lệnh (Queues) 57

Trang 11

TỪ VIẾT TẮT VÀ CÁC THUẬT NGỮ

DDoS (Distributed Denied of Service) : Tấn công từ chối dịch vụ phân tán

DMZ (DeMilitarized Zone) : Vùng phi quân sự

DNS (Domain Name Service) : Dịch vụ tên miền

DoS (Denied of Service) : Tấn công từ chối dịch vụ

DRDoS (Distributed Reflection Denied of Service) : DoS phản xạ, phân tán

FTP (File Transfer Protocol) : Giao thức truyền file

GNU (General Public License): Giấy phép phần mềm tự do

ICMP (Internet Control Message Protocol): Giao thức điều khiển thông điệp

Internet

IP (Internet Protocol) : Giao thức Internet

LAN (Local Area Network) : Mạng nội bộ

MAC (Media Access Control) : Địa chỉ thiết bị

PPP (Point to Point Protocol): Giao thức nối các máy tính bằng điện thoại SSH ( Secure Shell ) : Dịch vụ truy cập từ xa

SLIP(Serial Line Internet Protocol): Giao thức Internet đường nối tiếp

STMP ( Simple Mail Transfer Protocol ) : Giao thức truyền thư đơn giản

TCP (Transmission Control Protocol) : Giao thức điều khiển truyền tin

TELNET : dịch vụ đăng nhập hệ thống từ xa

UDP (User Datagram Protocol) : Giao thức điều khiển truyền tin không tin cậy

Trang 12

TÓM TẮT

Bảo mật và an ninh mạng là một vấn đề quan trọng hàng đầu đối với các hệ thống của các công ty, doanh nghiệp, các hệ thống cung cấp dịch vụ như Web Server, Mail Server,…cũng như nhiều dịch vụ khác trên mạng Một trong những cách bảo vệ tối ưu nhất để đảm bảo bảo mật và an ninh mạng cho hệ thống là sử dụng Firewall Firewall là một kỹ thuật được tích hợp vào hệ thống mạng để chống sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ cũng như hạn chế sự xâm nhập vào hệ thống và lọc gói tin ra vào mạng nội bộ

Ngày nay, có rất nhiều loại Firewall được xây dựng trên những hệ điều hành khác nhau nhưng chủ yếu là hệ điều hành Windows và hệ điều hành mã nguồn mở Tuy nhiên mỗi loại có những ưu và nhược điểm khác nhau và phát triển theo những hướng khác nhau, nhưng đa phần các Firewall mạnh thường là những Firewall thương mại, người dùng phải mua và mất chi phí nhiều cho các ứng dụng kèm theo Đề xuất

để giải quyết vấn đề trên là dùng các Firewall miễn phí được xây dựng trên hệ điều hành mã nguồn mở và Iptables là một trong những Firewall miễn phí trên hệ điều hành

mã nguồn mở, được đánh giá rất cao từ cộng đồng người sử dụng Tuy miễn phí nhưng Iptables mang đầy đủ tính năng của một tường lửa thương mại

Từ những kết quả thực nghiệm cho thấy Firewall miễn phí với Iptables thực hiện tốt các mục tiêu của các Firewall thương mại khác về : tốc độ xử lý, quan sát kỹ gói dữ liệu, lọc gói dựa trên địa chỉ MAC và các cờ trong TCP header, ghi chép hệ thống, ngăn chặn các kiểu tấn công từ chối dịch vụ,

Từ khóa : Firewall, Linux server, Iptables

Trang 13

ABSTRACT

Network security is a number one problem with network system of company, business and service system such as Web sever, Mail sever, or FTP server… as well as all other service of network One of the most urgent needs to network security for system is a Firewall Firewall is a technology integrated into network system denied illicit access to protect source interal information as well as limit to break into system and fillter pack out-in-inform interal network

Today, have a lot of Firewall build on background of different Operating system but an essential is Windows of Microsoft and Open Source Operating system

of Linux However, each has advantages and disadvantages, develop follow various directional, but almost all strong Firewall is a commercial Firewall, user bought and spend more for the attached application Proposing to solve prolem is use a free Firewall, it built on Open Source Operating system and Iptables is a one of free Firewall on Open Source Operating system, it had rate very high from user community Althought it free but Iptables had all feature of a commercial Firewall

From all examine result to show a free Firewall with Iptales execute well all target of other commercial Firewall about: processing, scan hard data pack, filter pack rely on MAC address and flags in TCP header, log system, stop all attacked by denied service,…

Keywords: Firewall, Linux server, Iptables

Trang 14

CHƯƠNG 1 TỔNG QUAN

1.1 ĐẶT VẤN ĐỀ

Trong những năm gần đây, việc tổ chức và khai thác mạng Internet rất phát triển Mạng Internet cho phép các máy tính trao đổi thông tin một cách nhanh chóng, thuận tiện Mọi đối tượng đều có thể sử dụng các dịch vụ và tiện ích của Internet một cách dễ dàng như trao đổi thông tin, tham khảo các thư viện tri thức…Tại thời điểm hiện nay thì lợi ích của Internet là quá rõ ràng và không thể phủ nhận Nhưng một điều không may đi kèm với nó là nguy cơ mất an toàn thông tin trên Internet đang trở thành một vấn đề hàng đầu cản trở sự phát triển của các nhà cung cấp dịch vụ mà nó còn là nhu cầu chính đáng của mỗi người sử dụng Các thông tin nhạy cảm về quốc phòng, thương mại là vô giá và không thể để lọt vào tay đối thủ cạnh tranh

Hay nói cách khác là khi máy tính kết nối Internet hay trong 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 xem như nhà không có khóa cửa, khi đó mọi đồ đạc trong nhà sẽ như thế nào? Đương nhiên không ai nói trước được gì Nếu khu vực sống là một môi trường lành mạnh, ở đó không có sự nhòm ngó thì đồ đạc vẫn nguyên, còn ngược lại chắc chắn là đồ đạc sẽ bị lấy cắp và điều này trong xã hội hiện nay là đương nhiên khi không có sự phòng vệ thích đáng Dữ liệu trong máy tính cũng như thế, nếu người dùng không bảo vệ chúng, không có khóa bảo vệ, không có những chính sách bảo mật,

cơ hội bị mất hay thất thoát là điều không thể tránh Để hạn chế tình trạng này và để góp phấn tăng khả năng bảo mật thì việc xây dựng hệ thống tường lửa Firewall là điều kiện không thể thiếu, đặc biệt là Firewall được xây dựng trên nền hệ điều hành mã nguồn mở Linux

1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ

Trên thế giới đã có nhiều công trình nghiên cứu về lĩnh vực bảo mật, bảo vệ an toàn thông tin trên mạng và kết quả chúng đã trở thành các sản phẩm thương mại như: Vista Firewall, ZoneAlarm Firewall, VNP-1/Firewall-1, SmoothWall, … Tuy nhiên mỗi loại có những ưu nhược điểm riêng, phát triển theo những hướng khác nhau Các

Trang 15

sản phẩm này được xây dựng trên những nền hệ điều hành khác nhau nhưng chủ yếu là Windows của Microsoft và hệ điều hành mã nguồn mở Linux

Có nhiều đồ án và tiểu luận, luận văn đưa ra các giải pháp khắc phục, bảo vệ, bảo mật an ninh mạng bằng Firewall của mã nguồn mở Ban đầu các bài tiểu luận, đồ án, luận văn đưa ra phương pháp dùng firewall phổ biến nhất là gói NAT của Ipchains chạy trên Linux Song với firewall Ipchains còn nhiều thiếu sót và không đủ mạnh để bảo vệ hệ thống như ngăn chặn tấn công từ chối dịch vụ kém, khả năng ghi nhận lỗi không cao…

1.3 PHẠM VI ĐỀ TÀI

Phạm vi luận văn này chú trọng đến việc xây dựng một firewall trên hệ điều hành

mã nguồn mở, chính xác là Firewall Iptables trên hệ điều hành Linux Server để ngăn chặn các dịch vụ tấn công từ chối dịch vụ mạng và các sự tấn công bên ngoài của một

hệ thống mạng LAN Tăng cường khả năng bảo mật của một hệ thống mạng nội bộ bằng Firewall Iptables này

1.4 PHƯƠNG PHÁP NGHIÊN CỨU VÀ HƯỚNG GIẢI QUYẾT

Để xây dựng Firewall trên nền Linux nhằm ngăn chặn các loại tấn công mạng, chúng tôi lần lượt tìm hiểu về: tổng quan an ninh mạng (các khái niệm chung về an toàn an ninh mạng, tính cấp thiết của đề tài, các dạng tấn công và một số kỹ thuật tấn công phổ biến hiện nay), tổng quan hệ điều hành Linux (tổng quát về hệ điều hành Linux, cấu hình mạng cho hệ điều hành Linux), tổng quan Internet Firewall (khái niệm tổng quát về Firewall, một số loại Firewall thông dụng, các chức năng cơ bản của Firewall, cơ chế và nguyên lý hoạt động, ưu nhược điểm và các mô hình hay kiến trúc triển khai của một Firewall trong hệ thống) và giới thiệu chi tiết về Iptables

Từ những nghiên cứu lý thuyết trên, chúng tôi tiến hành xây dựng một Firewall với Iptables trên hệ điều hành Ubuntu Server và sử dụng các công cụ mô phỏng các cuộc tấn công mạng (Hping3) để kiểm tra tính năng của Firewall Iptables này

Trang 16

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

2.1 TỔNG QUAN AN NINH MẠNG

2.1.1 Tình hình thực tế

Mạng Internet ngày càng phát triển nhanh chóng với các dịch vụ như WWW, Email, tìm kiếm thông tin,… Internet đã trở thành một phần không thể thiếu trong cuộc sống hằng ngày, song song với điều đó là những sự nguy hiểm mà mạng Internet đem lại cho người sử dụng

Hiện nay, những kẻ tấn công ngày càng tinh vi hơn trong các hoạt động của chúng Thông tin về các lổ hổng bảo mật, các kiểu tấn công được trình bày công khai trên mạng Ngoài ra, còn có các kẻ tấn công không chuyên nghiệp và những người có chút hiểu biết về lập trình, về mạng khi đọc các thông tin về lổ hổng và các kiểu tấn công trên mạng thì có thể trở thành một hacker Vì vậy, số tấn công mạng ngày một tăng và có nhiều phương thức tấn công mới ra đời, khó kiểm soát và bảo vệ

Đa phần các tổ chức lớn đều triển khai các ứng dụng nền tảng, quan trọng trong mạng cục bộ LAN Khi các mạng cục bộ này kết nối với mạng Internet, các thông tin quan trọng đều có khả năng bị lấy cắp và phá hoại Mặc dù các công ty, tổ chức này có

sử dụng các biện pháp an toàn bảo mật, nhưng chưa triệt để và còn có nhiều lổ hổng bảo mật mà các kẻ tấn công có thể lợi dụng để tấn công

Trước các nguy cơ mất an toàn thông tin cho hệ thống khi kết nối Internet là một vấn đề hết sức cấp bách Để chống lại và bảo vệ hệ thống trước các nguy cơ bị tấn công từ bên ngoài khi kết nối Internet, thế giới đã xuất hiện các phần mềm bảo vệ với các tính năng khác nhau, trong đó có Firewall

Sử dụng Firewall để bảo vệ mạng nội bộ, tránh sự tấn công từ bên ngoài là một giải pháp an toàn, hữu hiệu, đảm bảo được các yếu tố:

 An toàn cho sự hoạt động của toàn bộ hệ thống mạng

 Bảo mật cao trên nhiều phương tiện

 Mềm dẻo và dễ sử dụng

 Tấn công trên mạng và chiến lược bảo vệ

Trang 17

2.1.2 Các dạng tấn công

Có nhiều dạng tấn công mạng vào hệ thống khác nhau, ở đây chúng ta xét ba dạng tấn công cơ bản là:

 Xâm nhập (Intrusion)

 Từ chối dịch vụ (Denial of Service - Dos)

 Ăn trộm thông tin (Information thieft)

2.1.2.1 Tấn công “Xâm nhập”

Hầu như các dạng tấn công vào hệ thống nói chung là dạng tấn công xâm nhập, các hacker và cracker cố gắng đột nhập vào hệ thống hoặc lạm dụng hệ thống Với các phương pháp tấn công như giả dạng người có thẩm quyền, hay tấn công suy đoán và nhiều phương pháp tấn công phức tạp khác để truy cập mà không cần biết tên người dùng và mật khẩu, kẻ tấn công có thể sử dụng được máy tính của chúng ta một cách

hợp pháp

 Chúng ta có thể chia dạng tấn công xâm nhập thành hai loại:

 Tấn công từ bên ngoài: là những người xâm nhập từ bên ngoài hệ thống

Chúng có thể vượt qua Firewall để tấn công các máy trong mạng nội bộ Dạng tấn công này có thể đến từ Internet, đường dây điện thoại hoặc từ các mạng thành viên khác được liên kết đến mạng nội bộ

 Tấn công từ bên trong: là những người được quyền truy nhập đến bên trong

hệ thống, như những người được ủy quyền, hoặc giả mạo người dùng ở mức cao,… Theo thống kê thì dạng tấn công xâm nhập từ bên trong chiếm tới 80%

 Có hai cách thực hiện hành vi xâm nhập

 Do thám: những kẻ xâm nhập có thể dùng các công cụ dò quét để tìm ra các

lổ hổng bảo mật của mạng nội bộ Các công cụ dò quét có thể là theo kiểu quét ping, quét cổng TCP/UDP, chuyển vùng DNS,…

 Lợi dụng: lợi dụng các đặc tính ẩn hoặc lỗi để truy cập vào hệ thống

2.1.2.2 Tấn công từ chối dịch vụ

Đây là kiểu tấn công trực tiếp vào hệ thống, làm hệ thống bị mất tài nguyên và

bị chiếm dụng băng thông, làm giảm khả năng đáp ứng trả lời yêu cầu đến Trong trường hợp này hệ thống có thể bị lỗi khi hệ thống cần dùng đến tài nguyên

Trang 18

Đặc điểm chính của kiểu tấn công này là người bị hại không chống lại được vì các công cụ được sử dụng trong cách tấn công này là các công cụ mà hệ thống dùng hằng ngày

 Có 3 kiểu tấn công từ chối dịch vụ chính là DoS, DdoS và DRDoS

a DoS

Hình 1: Tấn công kiểu DoS

Kẻ tấn công dùng máy có băng thông lớn hơn máy nạn nhân

b DDoS

Hình 2: Tấn công kiểu DDoS

Kẻ tấn công dùng nhiều máy tấn vào một máy nạn nhân

Trang 19

c DRDoS

Máy tấn công sẽ gửi yêu cầu kết nối đến các server có băng thông cao trên mạng, các gói tin yêu cầu kết nối này mang địa chỉ IP giả Các server sẽ gửi lại máy yêu cầu các gói SYN/ACK dẫn tới hiện tượng nhân băng thông

Nhưng kiểu tấn công này không thu thập được thông tin mà chỉ làm tê liệt hệ thống, làm cho hệ thống không hoạt động được nữa

Hình 3: Tấn công kiểu DRDoS

2.1.2.3 Ăn trộm thông tin

Đây là cách tấn công cho phép kẻ tấn công có thể lấy được thông tin và dữ liệu

mà không cần phải trực tiếp truy cập và sử dụng máy tính của nạn nhân Thường kẻ tấn công khai thác các dịch vụ Internet phân phối thông tin

Trang 20

2.1.3 Một số kỹ thuật tấn công

2.1.3.1 Giả mạo địa chỉ IP (IP Spoofing)

Đa phần giao thức sử dụng trong mạng hiện nay đều là giao thức TCP TCP là một giao thức hướng liên kết, giữa client và server muốn thực hiện trao đổi thông tin

thì phải thực hiện qua các bước sau:

 Bước 1: Client gửi gói tin SYN tới server thông báo yêu cầu kết nối Lúc này một kết nối đã được thiết lập giữa client và server

 Bước 2: Server sau khi nhận được tín hiệu SYN trên sẽ gửi lại cho client gói tin SYN/ACK xác nhận việc liên kết

 Bước 3: Client sau khi nhận được gói tin SYN/ACK trên, nó sẽ gửi tiếp cho server gói tin ACK Kết thúc bước này giữa client và server đã hoàn thành một kết nối

Hình 4 : Thiết lập kết nối TCP giữa client và server

Nếu như một client không có yêu cầu thiết lập một kết nối đến server nhưng nó lại nhận được gói tin SYN/ACK, khi đó nó sẽ gửi trả lại server gói tin RST (reset) Nhờ đó server sẽ biết được client không có yêu cầu và sẽ hủy bỏ kết nối

Dựa vào cơ chế hoạt động thiết lập kết nối trong giao thức TCP mà kẻ tấn công đưa ra kỹ thuật tấn công giả mạo địa chỉ IP:

Giả sử ta có một server A và một client B Kẻ tấn công sẽ dùng một máy C tạo ra gói tin giả mạo địa chỉ của B để gửi tới cho A, nhằm chờ đợi những thông tin mà A phản hồi lại Khi đó A nhận được yêu cầu kết nối này, server A sẽ gửi lại gói tin phản hồi cho B, trong khi đó máy B không có gửi thông tin yêu cầu cho máy A Vì vậy, máy B sẽ gửi lại gói tin RST cho máy A thông báo không có yêu cầu kết nối để máy A hủy kết nối Nhưng mục tiêu của kẻ tấn công là tạo kết nối ảo cho máy A, không muốn

Trang 21

máy A hủy kết nối, cho nên kẻ tấn công sẽ làm cho máy B không nhận được gói tin phản hồi từ máy A Như thế kết nối được duy trì và sẽ làm cho máy server tốn tài nguyên cho máy B mà không có kết nối

2.1.3.2 SYN flooding Tấn công tràn ngập gói tin SYN

Kiểu tấn công này cũng sử dụng dựa trên cơ chế bắt tay ba bước trong quá trình thiết lập kết nối giữa hai máy trong TCP Kẻ tấn công sử dụng một địa chỉ giả mạo để gửi gói tin SYN cho nạn nhân Khi đó nạn nhân nhận được gói tin này thì nó sẽ dành một phần bộ nhớ cho kết nối này

Khi nhận được gói tin SYN yêu cầu kết nối thì nó sẽ gửi trả lại gói tin SYN/ACK cho host mà bị kẻ tấn công giả mạo địa chỉ IP Nếu như gói tin trả lời gửi đến đúng host bị giả mạo thì host này sẽ gửi lại gói tin RST, kết nối được hủy bỏ, phần bộ nhớ

mà máy nạn nhân cung cấp cho kết nối sẽ được hủy bỏ Trong trường hợp này xem như tấn công thất bại

Vì vậy, kẻ tấn công sẽ giả mạo địa chỉ của những host mà máy nạn nhân không thể gửi gói tin đến được Khi đó gói tin SYN/ACK mà nạn nhân gửi trả lại sẽ không tới đích, do đó cũng sẽ không có gói tin RST gửi trả lại cho nạn nhân Như vậy, máy nạn nhân phải chờ kết nối cho đến hết thời gian kết nối hết hạn (Timeout) Do đó, máy nạn nhân đã bị chiếm dụng một phần tài nguyên hoạt động

Kẻ tấn công không chỉ gửi một gói tin SYN tới nạn nhân mà sẽ gửi nhiều gói tin SYN đến máy nạn nhân theo một khoảng thời gian nhất định Như thế, toàn bộ tài nguyên trên máy nạn nhân sẽ bị sử dụng cho việc chờ những kết nối không có thực

Ưu điểm của phương pháp tấn công này là chỉ cần một lượng băng thông nhỏ

kẻ tấn công cũng có thể làm tê liệt nạn nhân và các gói tin SYN được gửi bằng địa chỉ giả nên rất khó để phát hiện ra thủ phạm

2.1.3.3 ICMP flooding tấn công tràn ngập gói tin ICMP

Đây là kiểu tấn công chiếm dụng băng thông bằng cách ping gói tin ICMP echo request bằng IP của nạn nhân và địa chỉ đích là dạng broadcast của một mạng nào đó Khi đó các host khác sẽ nhận được gói tin ICMP từ IP của nạn nhận Kết quả là các host khác trong mạng của nạn nhân sẽ gửi trả lại hàng loạt gói tin ICMP echo receive, đây cũng chính là nguyên nhân gây ra hiện tượng bị chiếm dụng băng thông Nạn nhân sẽ không thể giao dịch được với các host khác trên mạng

Trang 22

2.2 TỔNG QUAN HỆ ĐIỀU HÀNH LINUX

2.2.1 Linux là gì ?

Linux xuất hiện như một sản phẩm nguồn mở miễn phí và đến nay có thể sánh vai với các hệ điều hành khác như Windown, Sun Solaris, Linux ra đời từ một dự án đầu những năm 1990 có mục đích tạo ra một hệ điều hành kiểu UNIX cài đặt trên máy tính cá nhân chạy với bộ vi xử lý Intel, tương hợp với họ máy tính IBM-PC (còn gọi tắt là PC) Từ lâu, UNIX đã nổi tiếng là một hệ điều hành mạnh, tin cậy và linh hoạt, nhưng vì khá đắt nên chủ yếu dùng cho các trạm tính toán hay là máy chủ cao cấp [4] Ngày nay, Linux có thể cài đặt trên nhiều họ máy tính khác nhau không chỉ riêng cho họ PC Qua Internet, Linux được hàng nghìn nhà lập trình khắp thế giới tham gia thiết kế, xây dựng và phát triển, với mục tiêu không lệ thuộc vào bất kỳ thương phẩm nào và để cho mọi người đều có thể sử dụng thoải mái

Về cơ bản, Linux bắt chước UNIX cho nên cũng có nhiều ưu điểm của UNIX Tính đa nhiệm thực sự của Linux cho phép chạy nhiều chương trình cùng một lúc Với Linux, bạn có thể đồng thời thực hiện một số thao tác : chuyển tệp tin, in ấn, sao tệp, nghe nhạc, chơi game v.v…

Linux là một hệ điều hành đa người dùng, nghĩa là cho nhiều người có thể đăng nhập và cùng lúc sử dụng một hệ thống Ưu điểm này có vẻ không phát huy mấy trên

PC ở nhà, song ở công ty hoặc trường học thì nó giúp cho việc dùng chung tài nguyên,

từ đó giảm thiểu chi phí đầu tư vào máy móc [4]

Ngay cả khi ở nhà, bạn cũng có thể đăng nhập vào Linux với nhiều tài khoản (account) khác nhau qua các terminal ảo và tổ chức lại dịch vụ trên mạng riêng cho mình bằng cách sử dụng Linux với nhiều modem

2.2.2 Lợi thế của Linux

Linux cung cấp cho bạn một môi trường học lập trình mà hiện nay chưa có hệ điều hành nào sánh được Với Linux, bạn có đầy đủ cả mã nguồn, trong khi đó các sản phẩm mang tính thương mại thường không bao giờ tiết lộ mã nguồn

Hiện nay UNIX và Linux có khả năng chạy trên bất kỳ nền nào, từ máy xách tay cho đến máy tính lớn Nhờ tính khả chuyển, các máy tính chạy UNIX và Linux trên nhiều nền khác nhau có thể liên lạc với nhau một cách chính xác và hữu hiệu Những

hệ này có thể hoạt động mà không cần phải bổ sung thêm bất kỳ giao diện liên lạc đắt tiền nào, mà thông thường bạn phải mua thêm sau khi mua những hệ điều hành khác

Trang 23

Linux đã có hàng ngàn ứng dụng, từ các chương trình bảng tính điện tử, quản trị

cơ sở dữ liệu, xử lý văn bản đến các chương trình phát triển phần mềm cho nhiều ngôn ngữ, chưa kể nhiều phần mềm viễn thông trọn gói Ngoài ra, Linux cũng có hàng loạt trò chơi giải trí trên nền ký tự hoặc đồ hoạ Phần lớn những chương trình tiện ích và ứng dụng có sẵn cho Linux lại không mất tiền mua Các bạn chỉ phải trả chi phí cho việc tải chúng từ Internet xuống hoặc trả cước phí bưu điện

Đến với Linux, giới lập trình sẽ có một loạt các công cụ phát triển chương trình, bao 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++, … Bạn cũng có thể dùng ngôn ngữ Pascal thông qua trình biên dịch FreePascal

Hai khái niệm hiện nay được đề cập rất nhiều là hệ thống mở (Open system) và tính liên tác (Interoperability) đều gắn với khả năng của những hệ điều hành có thể liên lạc với nhau Phần lớn các hệ mở đòi hỏi phải thoả mãn tương thích tiêu chuẩn IEEE POSIX (giao diện hệ điều hành khả chuyển) Linux đáp ứng những tiêu chuẩn ấy

và được lưu hành với mã nguồn mở

2.2.3 Ưu điểm và khuyết điểm của Linux

 Như đã nói ở trên, Linux có các ưu điểm sau:

 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 và ứ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

 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, bao 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++…

 Bên cạnh đó, nó cũng có những khuyết điểm :

Trang 24

 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 khó khăn khi sử dụng

2.2.4 Kiến trúc của hệ điều hành Linux

Hình 5 : Kiến trúc 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ư trong DOS 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 nhau 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… 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… [4]

Trang 25

Các tiện ích: các tiện ích được người dùng sử dụng 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… Linux có nhiều tiện ích như chương trình biên dịch, trình gỡ lỗi, trình soạn thảo văn bản… Tiện ích có thể được 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, ps,

vi … [4]

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… [4]

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 ổ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ớ Kernel được xem như hạt nhân của Linux, ban đầu phát triển các CPU Intel 80386 Điểm mạnh của CPU này là khả năng quản lý 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 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 [4]

2.2.5 Quản trị người dùng và nhóm trên Linux

2.2.5.1 Giới thiệu về tài khoản trong Linux

Cũng giống như Windows Linux cũng có các loại tài khoản khác nhau, xét về mặt tổng thể thì có 2 loại chính : tài khoản người dùng và tài khoản quản trị (còn gọi là root) [4]

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… Khi đăng nhập với tài khoản root thì tại giao diện

terminal thường có kí hiệu: “#” Các thông tin, dữ liệu về tài khoản người dùng khác

thường được lưu trữ trong thư mục home [4]

2.2.5.2 Các thao tác trên tài khoản người dùng

Thêm tài khỏan người dùng

 Để thêm một user mới ta thao tác như sau :

Trang 26

adduser [tên tài khoản] [-u uid [-o]] [-g group] [-G group ] [-d home] [-s

shell] [-c comment] [-m[-k template]] [-f inactive] [-e expire] [-p passwd] [-n] [-r] name

adduser [tên tài khoản] -D [-g group] [-b base] [-s shell] [-f inactive] [-e

expire]

 Ý nghĩa của các tùy chọn trên như sau :

 -c: (comment) tên đầy đủ của user (Full name)

Ví dụ: tạo user có tên ntt với tên đầy đủ là ngothanhtoan ta thực hiện dòng lệnh

Lưu ý: thư mục chứa thông tin user phải được tạo trước

 -e (expire_date): ngày tài khoản hết hạn (không thể sử dụng tài khoản này login vào hệ thống)

Ví dụ: tài khoản cntt được phép sử dụng đến ngày 30-08-2013, chứa trong thư

mục linuxgroup với tên đầy đủ congnghethongtin

useradd cntt –e 2013-08-30 –d /home/linuxgroup –c congnghethongtin

-f (inactive_days): với tùy chọn này ta có thể chỉ định số ngày password mất

hiệu lực trước khi tài khoản bị khóa Giá trị mặc định của tùy chọn này là -1, với giá trị này password không thể thiết lập ngày mất hiệu lực

Ví dụ: tạo thời gian hiệu lực cho password của tài khoản cntt trong 80 ngày

useradd cntt –f 80

-u (user id): với tùy chọn này ta có thể ráng số thứ tự cho tài khoản

Ví dụ: tạo tài khoản cntt với số thứ tự 100 ta thực hiện dòng lệnh sau :

useradd cntt –u 100

-p (password): tùy chọn này dùng để đặt mật khẩu cho tài khoản

Ví dụ: đặt password cho tài khoản cntt

Trang 27

useradd cntt –p 12345

-g (group): dùng để chỉ định user thuộc về nhóm nào trong hệ thống các

nhóm và nhóm đó sẽ đặt trưng về quyền cho user nếu user thuộc về nhiều

nhóm, nhóm này thường được gọi là nhóm chính (Primary group) Nếu user

mới khi tạo không được chỉ định thuộc về nhóm nào thì hệ thống tự tạo ra nhóm mới có tên trùng với tên user

Ví dụ: tạo tài khoản cntt thuộc phân nhóm root

useradd cntt –g root

-G (group): tùy chọn này cũng dùng để chỉ định user thuộc về nhóm nào

trong hệ thống nhóm, tuy nhiên với tùy chọn này ta có thể chỉ định một lúc

nhiều nhóm cho user, mỗi nhóm cách nhau bởi dấu “,” (phẩy)

Ví dụ : đưa tài khoản cntt thuộc nhóm root và linux

useradd cntt –G root,linux

Lưu ý: ta cũng có thể sử dụng tùy chọn này để chỉ định user thuộc về một

nhóm.Tuy nhiên tùy chọn này không thể chỉ định nhóm này làm primary group,

hệ thống sẽ tự tạo ra primary group trùng với tên user

-o : tùy chọn này thường được dùng chung với tùy chọn -u (user id), nếu sử

dụng ta có thể đặt trùng số id cho tài khoản ta muốn tạo trùng với tài khoản bất kỳ nào trước đó

Ví dụ : tạo tài khoản cntt1 trùng id với id của tài khoản cntt là 100

useradd cntt1 –o –u 100

-l : nếu sử dụng tùy chọn này thì tài khoản được tạo khi đăng nhập vào hệ

thống sẽ không được ghi vào file nhật ký đăng nhập hệ thống

-M : thông thường khi một tài khoản mới được tạo hệ thống sẽ tạo một thư

mục có tên giống với tên tài khoản chứa trong thư mục home, nếu ta sử dụng tùy chọn này thì hệ thống sẽ không tạo thư mục này Khi đăng nhập hệ

thống tài khoản sẽ sử dụng tập tin login.defs để tạo thư mục đăng nhập

-r : tùy chọn dùng để tạo ra tài khoản hệ thống với số id nhỏ hơn số id được

định nghĩa trong file login.defs, khi sử dụng tùy chọn này thì tài khoản được

Trang 28

tạo sẽ không có thư mục của tài khoản trong thư mục home, nếu muốn tạo

thư mục cho tài khoản hệ thống ta sử dụng thêm tùy chọn -m

-s (shell) : chỉ định nhân để phục vụ cho việc đăng nhập vào hệ thống của

tài khoản (tìm hiểu thêm phần lập trình nhân trong Linux)

Xóa tài khoản người dùng

Để xóa một tài khoản trong giao diện terminal ta sử dụng lệnh userdel với cấu trúc như sau:

userdel Tên tài khoản [option : -r]

Với tùy chọn -r kèm theo thì hệ thống sẽ thực hiện việc xóa tài khoản cùng với việc xóa tất cả các thư mục có liên quan đến tài khoản

Ví dụ: xóa tài khoản cntt và các thư mục của tài khoản cntt

userdel cntt –r

Chỉnh sửa tài khoản người dùng

 Khi ta cần chỉnh sửa thông tin về tài khoản ta sử dụng lệnh usermod với cấu trúc sau:

usermod [-u uid [-o]] [-u uid [-o]] [-G group ] [-d home] [-s shell] [-c

comment] [-m [-k template]] [-f inactive] [-e expire] [-p passwd] [-L lock|-U

unlock][tên tài khoản]

Nếu sử dụng các tùy chọn ta cần biết ý nghĩa từng tùy chọn như sau :

 -c (comment): sửa lại tên đầy đủ của user (Full name)

Ví dụ: sửa lại tài khoản có tên cntt với tên đầy đủ congnghethongtin thành tên

đầy đủ là congnghe ta thự hiện dòng lệnh sau:

usermod -c congnghe cntt

 -d (home): đổi thư mục dành cho việc login, nếu ta không đổi thư mục mới thì hệ thống sẽ lấy thư mục trước đó, xét ví dụ sau:

Ví dụ: đổi tài khoản có tên cntt với thư mục linuxgroup trong thư mục home

thành congnghethongtin, ta thực hiện dòng lệnh sau:

Trang 29

-f (inactive_days): với tùy chọn này ta có thể thay đổi ngày password mất

hiệu lực trước khi tài khoản bị khóa Giá trị mặc định của tùy chọn này là -1,

với giá trị này password không thể thiết lập ngày mất hiệu lực

Ví dụ: tạo thời gian hiệu lực cho passwosd của tài khoản cntt trong 80 ngày

thành 90 ngày

usermod -f 90 cntt

-u (user id): với tùy chọn này ta có thể thay đổi số thứ tự cho tài khoản

Ví dụ: thay đổi tài khoản cntt với số thứ tự 100 thành 500 ta thực hiện dòng lệnh

sau:

usermod -u 500 cntt

-p (password): tùy chọn này dùng để đặt lại mật khẩu cho tài khoản

Ví dụ: chuyển password 12345 thành cntt123 cho tài khoản cntt

usermod -p cntt123 cntt

-g (group): dùng để chỉ định lại user thuộc về nhóm nào trong hệ thống các

nhóm và nhóm đó sẽ đặc trưng về quyền cho user nếu user thuộc về nhiều

nhóm, nhóm này thường được gọi là nhóm chính (Primary group) Nếu user

mới khi tạo không được chỉ định thuộc về nhóm nào thì hệ thống tự tạo ra

nhóm mới có tên trùng với tên user

Ví dụ: đổi primary group của tài khoản cntt thuộc về phân nhóm root thành

linuxgroup Ta sử dụng dòng lệnh sau:

Trang 30

usermod -g linuxgroup cntt

-G (group): tùy chọn này cũng dùng để thay đổi hàng loạt nhóm mà tài khoản thuộc về, cũng giống như khi tạo mới các nhóm cách nhau bởi dấu “,” (phẩy)

Ví dụ: sử dụng dòng lệnh để đưa tài khoản cntt thuộc về phân nhóm root và

linux

usermod -G root,linux cntt

Lưu ý: cũng giống như khi tạo mới một tài khoản ta cũng có thể sử dụng tùy

chọn này để chỉ định user thuộc về một nhóm.Tuy nhiên tùy chọn này không thể chỉ định nhóm này làm primary group, hệ thống sẽ tự tạo ra primary group trùng với tên user

-o: tùy chọn này thường được dùng chung với tùy chọn -u (user id), nếu sử

dụng ta có thể đặt trùng số id cho tài khoản ta muốn tạo trùng với tài khoản

bất kỳ nào trước đó

Ví dụ: chỉnh lại tài khoản cntt1 có số id trùng với số id của tài khoản cntt (id

500)

usermod -o -u 500 cntt1

-l (login_name): dùng tùy chọn này để thay đổi tên đăng nhập vào hệ thống,

cấu trúc lệnh như sau:

usermod -l Tên đăng nhập mới Tên đăng nhập cũ

Ví dụ: đổi tên đăng nhập của tài khoản cntt thành cntt2

usermod -l cntt2 cntt

-L: với tùy chọn này ta dùng để khóa tính năng mật mã của một tài khoản,

nếu tài khoản đã được đặt password thì khi sử dụng tùy chọn này để chỉnh

sửa tài khoản, mật mã sẽ bị khóa

Ví dụ: khóa password cntt123 của tài khoản cntt

usermod -L cntt

Trang 31

-U: ngược lại với tùy chọn trên tùy chọn này có chức năng mở khóa cho password của một tài khoản

Ví dụ: mở khóa password cho tài khoản cntt

usermod -U cntt

-s (shell): thay đổi nhân đăng nhập vào hệ thống

2.2.5.3 Các thao tác trên tài khoản nhóm

Thêm mới một nhóm tài khoản

 Để tạo một nhóm người dùng mới ta sử dụng lệnh groupadd với cấu trúc như sau:

groupadd [option: -g -f -o -r ] [tên nhóm]

 Nếu sử dụng các tùy chọn ta cần biết ý nghĩa từng tùy chọn như sau :

 -g (gid): đánh số thứ tự cho nhóm với giá trị hợp lệ thường lớn hơn 500, còn khoảng giá trị từ 0 đến 499 thường dùng cho các nhóm nhằm mục đích nghiên cứu các tài khoản hệ thống

Ví dụ: thực hiện việc tạo mới nhóm có tên linux với số thứ tự 501

 -r: việc sử dụng tùy chọn này nhằm mục đích cho biết việc tạo ra nhóm này

để chứa các tài khoản hệ thống Thông thường số thứ tự của nhóm thường nhỏ hơn 499 hệ thống sẽ tự động cập nhật

 -f: khi sử dụng tùy chọn này thì dù có tạo ra một nhóm mới có tên trùng với nhóm đã có thì hệ thống cũng không cảnh báo hay báo lỗi, nói cách khác đây là tùy chọn tạo nhóm với trạng thái thành công

Xóa một nhóm

Trang 32

 Việc xóa một nhóm trong hệ thống tương đối đơn giản với lệnh groupdel có cấu trúc như sau:

groupdel < Tên nhóm cần xóa>

Ví dụ: xóa nhóm có tên linux Ta thực hiện dòng lệnh sau:

groupdel linux

Sửa thông tin của nhóm

 Để chỉnh sửa nhóm ta sử dụng lệnh groupmod với cấu trúc như sau:

groupmod -g -o -n

 Ý nghĩa các tùy chọn cũng giống như các tùy chọn khi tạo mới một nhóm

-g: với tùy chọn này cho phép đặt lại số thứ tự của nhóm, dãy số hợp lệ cũng

giống như khi tạo mới

Ví dụ: đặt lại số thứ tự cho nhóm linux (id ban đầu: 650) với id mới bằng 600

groupmod -g 600 linux

-o: cho phép đặt trùng số thứ tự của các nhóm

Ví dụ: đặt lại số thứ tự của nhóm có tên linuxgroup trùng với số thứ tự của

nhóm có tên linux (600)

2.2.6 Quản lý tập tin trên Linux

2.2.6.1 Cấu trúc và trật tự của hệ thống tập tin

 Các cấp thư mục cao nhất trong hệ thống tập tin của Linux: [4]

 /: đây là thư mục gốc (root) trong Linux.Tất cả các tập tin và thư mục khác đều nằm trong thư mục gốc này

 /bin: thư mục này chứa các chương trình có thể thực thi được trong hệ điều hành Linux, chẳng hạn như cat, cp, ls, more, tar

Trang 33

 /boot: chứa nhân (kernel) của Linux và các tập tin khác mà trình quản lý GRUB hay LILO cần để khởi động

 /dev: chứa các tập tin đặc biệt liên quan đến các thiết bị gắn trên hệ thống,

ví dụ như fd0 (đĩa A)

 /etc: chứa hầu hết các tập tin cấu hình và các đoạn mã kịch bản (script) lúc khởi động

 /home: chứa thư mục chủ của các tài khoản trên Linux, ví dụ với tài khoản cntt, ta có thư mục /home/cntt

 /lib: chứa driver của các thiết bị nạp lúc khởi động Linux và các tập tin thư viện dùng cho các chương trình trong /bin và /sbin

 /lost+found: chứa tất cả các phần bị mất Mỗi phân vùng trên đĩa cứng đều

có thư mục lost+found này

 /mnt: thư mục tạm chứa các mount-point của hệ thống tập tin như ổ ROM, hay ổ đĩa mềm

CD- /opt: cung cấp vùng lưu trữ tạm cho các gói chương trình ứng dụng lớn

 /proc: đây là thư mục đặc biệt, chứa thông tin về các tiến trình đang chạy trên hệ thống Linux

 /root: thư mục chủ của tài khoản root

 /sbin: chứa các tập tin có thể thực thi được dùng cho công việc quản trị hệ thống và chỉ được thực thi bởi root, ví dụ halt, shutdown

 /selinux: chứa các thông tin được dùng cho Security Enhanced Linux (SELinux) và các tiện ích liên quan đến bảo mật hệ thống

 /sys: chứa các thông về các thiết bị được nhận biết bởi nhân Linux kernel

 /tmp: thư mục tạm

 /usr: chứa nhiều thư mục của các chương trình quan trọng, ví dụ như:

 /usr/X11R6: chứa các tập tin của chương trình X Window System

 /usr/bin: chứa các tập tin có thể thực thi của nhiều dòng lệnh trên Linux, bao gồm cả các tiện ích thông thường có sẵn trên Linux, nhưng không liên quan đến phần lõi của hệ điều hành Linux

 /usr/game: chứa các trò chơi (games) trên Linux

Trang 34

 /usr/include: chứa các tập tin header (*.h) của C và C++, các tập tin header của X Window trong thư mục /usr/include/X11, các tập tin header của Linux kernel trong thư mục /usr/include/linux

 /usr/lib: chứa các tập tin thư viện của ngôn ngữ C, C++ và các thư viện khác như thư viện đồ họa, thư viện cơ sở dữ liệu.v.v…

 /usr/local: chứa các tập tin cục bộ, ví dụ như thư mục /usr/local/bin chứa các tập tin thực thi được phát triển trên hệ thống của bạn

 /usr/sbin: chứa nhiều dòng lệnh quản trị hệ thống, chẳng hạn như

về thư điện tử, mạng máy tính

 /usr/share: chứa các dữ liệu đã được chia sẻ, ví dụ như /usr/share/doc chứa các tập tin tài liệu của nhiều ứng dụng trên Linux

 /usr/share/man: chứa các tài liệu giúp đỡ mà có thể đọc qua lệnh

man

 /usr/src: chứa mã nguồn của Linux kernel (lõi của hệ điều hành)

 /var: chứa các tập tin hệ thống như:

 /var/cache: vùng lưu trữ dữ liệu cache của của ứng dụng

 /var/lib: chứa các thông tin liên quan đến tình trạng của các ứng dụng

 /var/lock: chứa các tập tin đã bị khóa để đảm bảo một tài nguyên chỉ có thể sử dụng bởi 1 ứng dụng

 /var/log: chứa các tập tin log của hệ thống

 /var/mail: chứa các tập tin trong hộp thư của người dùng

 /var/opt: chứa các biến dữ liệu của các gói chương trình lưu trong thư mục /opt

 /var/run: chứa thông tin mô tả hệ thống lúc khởi động

Trang 35

 /var/spool: chứa các dữ liệu đang chờ xử lý

 /var/tmp: chứa các tập tin tạm được lưu lại khi hệ thống khởi động lại

 /var/yp: chứa tập tin cơ sở dữ liệu của dịch vụ Network Information Services(NIS)

2.2.7 Kết nối mạng trong Linux

2.2.7.1 Thiết bị, trình điều khiển và giao diện mạng

Thiết bị phần cứng là một tập hợp các thiết bị điện tử, các chip điều khiển,…

được cắm vào máy tính thông qua một khe cắm mở rộng

Để truy cập vào thiết bị phần cứng thì hạt nhân phải được cài đặt một số hàm đặc biệt gọi là trình điều khiển (ví dụ như các thiết bị thuộc họ Ethernet thì có trình điều khiển Becker) Việc truyền thông giữa trình điều khiển và thiết bị thông qua một vùng nhớ vào ra (I/O) Vùng nhớ này thường được ánh xạ địa chỉ lên các thanh ghi vào ra Các lệnh cũng như dữ liệu trao đổi giữa chúng đều được truyền qua các thanh ghi trên Hạt nhân truy cập vào các trình điều khiển thiết bị thông qua các giao diện Các giao diện cung cấp các hàm vào ra giống nhau tất cả các dạng thiết bị phần cứng (ví dụ như nhận hay truyền một gói tin) Các giao diện được định danh bởi các tên Các tên này được định nghĩa bên trong hạt nhân Giao diện Ethernet có tên là eth0, eth1, … Chỉ có giao diện SLIP là được gán tên động mỗi khi kết nối SLIP được thiết lập thì một giao diện tương ứng sẽ được gán cho cổng nối tiếp

 Một số giao diện Linux:

lo: giao diện loopback, nó được sử dụng cho mục đích thử nghiệm Trong

hạt nhân này luôn luôn có một trình điều khiển cho giao diện này

ethn: là giao diện cho card mạng Ethernet thứ n + 1 Đây là tên chung cho

tất cả các card Ethernet

dln: giao diện cho bộ điều hợp D_Link DE-600, một dạng khác của thiết bị

Ethernet, nó được điều khiển thông qua các cổng song song thay vì các khe cắm ISA hay PCI của máy tính

sln: giao diện SLIP, được liên kết với một cổng nối tiếp, Linux hỗ trợ 4 giao

diện SLIP

Trang 36

pppn: giao diện PPP, giống như giao diện SLIP, một giao diện PPP được

liên kết với một cổng nối tiếp khi cổng này chuyển sang chế độ PPP

plpn: giao diện PLIP Giao diện này thực hiện truyền các gói tin IP qua cổng

song song Hạt nhân Linux hỗ trợ 3 giao diện PLIP

2.2.7.2 Thiết lập cấu hình mạng TCP/IP

Các vấn đề thiết lập cấu hình cho mạng máy tính Linux sử dụng giao thức TCP/IP bao gồm: gán địa chỉ IP, cấu hình cho kết nối qua đường nối tiếp

Hệ thống các tệp thiết lập cấu hình: hệ thống tệp proc, host, network, các tệp cấu hình cho giao thức SLIP, PPP, PLIP

Để thực hiện cấu hình mạng cho một mạng máy tính Linux ta phải thực hiện các công việc sau:

 Cấu hình giao diện cho IP: bao gồm giao diện loopback, giao diện Ethernet, chọn đường qua gateway, thiết lập cấu hình cho gateway, giao diện PLIP, giao diện Dummy Công việc này được thực hiện thông qua các câu lệnh ifconfig và route

 Lệnh ifconfig : lệnh này thường xuyên được sử dụng khi thiết lập cấu hình mạng Cú pháp như sau:

ifconfig interface [[-net | -host ] address [parameters]]

 Interface là giao diện, address là đia chỉ IP nó có thể viết dưới dạng ký pháp thập phân hay tên chỉ ra trong tệp tin hosts và networks Khi không có tham

số thì nó sẽ đưa lại các thông tin về toàn bộ các giao diện mạng

2.2.7.3 Truyền các packet

Chúng ta xem xét việc xử lý một packet IP phải truyền qua một box Linux Packet ở tầng 3 được xử lý với hàm ip_rcv Tại đây có các hook Netfilter thứ nhất Netfiter là một bộ lọc packet, bộ gây chệch packet, framework NAP của họ Linux Netfilter là một framework được tổng quát hóa của các hook trong ngăn xếp mạng Một module mức kernel bất kỳ có thể cài vào ít nhất một trong số các hook này

và sẽ nhận từng packet qua các hook này Các hook của netfilter hiện đang hoạt động trong IP v4, IP v6, DECnet Có năm loại hook trong nhân Linux như hình sau:

Trang 37

Hình 6: Sơ đồ Netfilter hook

Các hook này có thể quyết định loại bỏ hay tiếp tục truyền packet đến định tuyến không Định tuyến là việc tra cấu trúc của bảng FIB (Forwarding Information Table)

để xác định một điểm nhập định tuyến tương ứng với địa chỉ IP đích của packet Bước tiếp theo là ghép với các định tuyến

Bước này là xác định tuyến sẽ truyền packet Do việc tra trong cấu trúc bảng FIB

có chi phí khá lớn nên ta sẽ dùng một cache định tuyến lưu các tuyến đang được dùng

Trang 38

2.3.2 Phân loại, chức năng, cấu trúc Firewall

2.3.2.1 Phân loại

 Firewall được chia làm 2 loại: Firewall cứng và Firewall mềm

Firewall cứng: là những Firewall được tích hợp trên Router

Trang 39

Hình 8 : Mô hình Firewall cứng

 Đặc điểm của Firewall cứng là:

 Firewall cứng hoạt động ở tầng thấp hơn so với Firewall mềm (tầng Network và tầng Transport)

 Firewall cứng không thể kiểm tra được nội dung gói tin

 Firewall cứng không được linh hoạt như Firewall mềm (không thể thêm chức năng và quy tắc như Firewall mềm)

 Ví dụ về Firewall cứng : Cisco ASA 5500

Firewall mềm là những Firewall được cài đặt trên server

Hình 9 : Mô hình Firewall mềm

 Đặc điểm của Firewall mềm:

 Tính linh hoạt cao: Có thể thêm, bớt các chức năng và các quy tắc

 Firewall mềm hoạt động ở tầng Application (tầng ứng dụng)

 Firewall mềm có thể kiểm tra được nội dung của gói tin thông qua các từ khóa

 Ví dụ về Firewall mềm: Zone Alarm, Norton Firewall, Iptables…

2.3.2.2 Chức năng

Chức năng chính của Firewall là kiểm soát luồng thông tin từ giữa Intranet và Internet Thiết lập cơ chế điều khiển dòng thông tin giữa mạng bên trong (Intranet) và mạng Internet Cụ thể là: [12]

 Cho phép hoặc cấm những dịch vụ truy nhập ra ngoài (từ Intranet ra Internet)

Trang 40

 Cho phép hoặc cấm những dịch vụ truy nhập vào trong (từ Internet vào Intranet)

 Theo dõi luồn dữ liệu mạng giữa Internet và Intranet

 Kiểm soát địa chỉ truy nhập, cấm địa chỉ truy nhập

 Kiểm soát người sử dụng và việc truy nhập của người sử dụng

 Kiểm soát nội dung thông tin, thông tin lưu chuyển trên mạng

 Có thể nói một Firewall thực sự cần phải có ít nhất một trong các chức năng sau:

o Khả năng lọc gói (Packet Filtering): Firewall sẽ kiểm tra phần header của các gói tin và đưa ra quyết định là cho phép qua hay loại bỏ gói tin này theo tập luật đã được cấu hình

o Application Proxy: Với khả năng này thì Firewall sẽ kiểm tra kỹ lưỡng header của gói tin hơn như khả năng hiểu giao thức cụ thể mà ứng dụng sử dụng

o Chuyển đổi địa chỉ mạng (Network Address Translation – NAT): Để các máy bên ngoài chỉ thấy một hoặc hai địa chỉ mạng của Firewall còn các máy thuộc mạng trong có thể lấy các giá trị trong một khoảng bất kỳ thì các gói tin đi vào và đi ra cần được chuyên đổi địa chỉ nguồn và địa chỉ đích

o Theo dõi và ghi chép (Monitoring and Logging): Với khả năng này cung cấp cho người quản trị biết điều gì đang xảy ra tại Firewall, từ

đó đưa ra những phương án bảo vệ tốt hơn

 Ngoài ra thì một Firewall còn có thể có một số chức năng mở rộng khác như:

o Data Caching: Bởi vì có những yêu cầu về các Website là hoàn toàn giống nhau của các người dùng khác nhau nên việc Caching dữ liệu

sẽ giúp quá trình trả lời nhanh và hiệu quả hơn

o Lọc nội dung (Content Filter): Các luật của Firewall có khả năng ngăn chặn các yêu cầu trang Web mà nó chứa các từ khoá, URLs hay các dữ liệu khác như video streams, image …

Ngày đăng: 12/06/2023, 18:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Thị Điệp và Tiêu Đông Nhơn (12/2005). Giáo trình dịch vụ mạng Linux, Đại học Quốc gia Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Giáo trình dịch vụ mạng Linux
Tác giả: Nguyễn Thị Điệp, Tiêu Đông Nhơn
Nhà XB: Đại học Quốc gia Thành phố Hồ Chí Minh
Năm: 2005
2. Nguyễn Tấn Khôi (2004). Giáo trình Hệ thống mạng Linux, Đại học Bách Khoa Đà Nẵng Sách, tạp chí
Tiêu đề: Giáo trình Hệ thống mạng Linux
Tác giả: Nguyễn Tấn Khôi
Nhà XB: Đại học Bách Khoa Đà Nẵng
Năm: 2004
3. Nguyễn Hồng Thái (12/2006). Cài đặt và cấu hình Iptables, Đại học Công nghệ Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Cài đặt và cấu hình Iptables
Tác giả: Nguyễn Hồng Thái
Nhà XB: Đại học Công nghệ Thành phố Hồ Chí Minh
Năm: 2006
4. Hà Quang Thụy và Nguyễn Chí Thành (2004). Giáo trình giới thiệu Hệ điều hành Unix-Linux, Đại học Quốc gia Hà NộiTiếng anh Sách, tạp chí
Tiêu đề: Giáo trình giới thiệu Hệ điều hành Unix-Linux
Tác giả: Hà Quang Thụy, Nguyễn Chí Thành
Nhà XB: Đại học Quốc gia Hà Nội
Năm: 2004
5. D.Brent Chapman, Simon Cooper, Elizabeth D. Zwicky (2000). Building Internet Firewall, 2 nd Edition Sách, tạp chí
Tiêu đề: Building Internet Firewall
Tác giả: D.Brent Chapman, Simon Cooper, Elizabeth D. Zwicky
Năm: 2000
6. Ronald Beekelaar, Brian Komar, PhD – Wiley Publishing, Joern Wettern (2003). Firewall for Dummies – 2 nd Editon.Các trang web Sách, tạp chí
Tiêu đề: Firewall for Dummies – 2 nd Editon
Tác giả: Ronald Beekelaar, Brian Komar, Joern Wettern
Nhà XB: Wiley Publishing
Năm: 2003
11. Iptables-tutorial: http://iptables–tutorial.frozentux.net/iptables–tutorial.html 12. Tổng quan về Firewall: http://archive.saga.vn/dfincor.aspx?id=1538 Sách, tạp chí
Tiêu đề: Iptables-tutorial: http://iptables–tutorial.frozentux.net/iptables–tutorial.html" 12
10. Các lệnh iptables căn bản http://congdonglinux.vn/forum/showthread.php?128-C%C3%A1c-l%E1%BB%87nh-c%C4%83n-b%E1%BA%A3n-iptables Link
13. Tìm hiểu về Firewall: http://www.quantrimang.com.vn/tim-hieu-ve-firewall-14320 Link

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w