Một phần rất lớn các vụ tấn công không được thông báo vì nhiều lý do, trong đó có thể kể đến nỗi lo mất uy tín hoặc chỉ đơn giản những người quản trị dự án không hề hay biết những vụ tấn
Trang 1-o0o -
BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài: QUẢN LÝ TƯỜNG LỬA TRONG
LINUX VỚI IPTABLES
Sinh viên thực hiện : Nguyễn Tiến Dũng
Lớp : 51K2 -CNTT Giáo viên hướng dẫn: ThS Vũ Chí Cường
Nghệ An, tháng 12 năm 2014
Trang 2LỜI CẢM ƠN
Trước tiên em xin gửi lời cảm ơn chân thành sâu sắc tới các thầy, các cô trong trường Đại Học Vinh những người đã tận tình giảng dạy và cung cấp những kiến thức quý báu cho em trong suốt những năm học qua
Đặc biệt em xin chân thành cám ơn Thạc sỹ.Vũ Chí Cường Thầy đã dành nhiều thời gian vô cùng quý báu tận tình hướng dẫn em cũng như tạo mọi điều kiện thuận lợi
Trang 3LỜI MỞ ĐẦU
Với nhu cầu trao đổi thông tin, bắt buộc các cơ quan, tổ chức phải hoà mình vào mạng toàn cầu Internet An toàn và bảo mật thông tin là một trong những vấn đề quan trọng hàng đầu, khi thực hiện kết nối mạng nội bộ của các cơ quan, doanh nghiệp, tổ chức với Internet Ngày nay, các biện pháp an toàn thông tin cho máy tính cá nhân cũng như các mạng nội bộ đã được nghiên cứu và triển khai Tuy nhiên, vẫn thường xuyên có các mạng bị tấn công, có các tổ chức bị đánh cắp thông tin,… gây nên những hậu quả vô cùng nghiêm trọng
Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của các công ty lớn như AT&T, IBM, các trường đại học và các cơ quan nhà nước, các tổ chức quân sự, nhà băng,… một số vụ tấn công với quy mô khổng lồ (có tới 100.000 máy tính bị tấn công) Hơn nữa những con số này chỉ là phần nổi của tảng băng trôi Một phần rất lớn các vụ tấn công không được thông báo vì nhiều lý do, trong đó có thể kể đến nỗi lo mất uy tín hoặc chỉ đơn giản những người quản trị dự án không hề hay biết những vụ tấn công nhằm vào hệ thống của họ
Không chỉ các vụ tấn công tăng lên nhanh chóng mà các phương pháp tấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viên quản trị hệ thống ngày càng đề cao cảnh giác Vì vậy việc kết nối mạng nội bộ của cơ quan tổ chức mình vào mạng Internet mà không có các biện pháp đảm bảo an ninh thì cũng được xem là
tự sát
Từ nhu cầu phát triển, đòi hỏi các cơ quan, tổ chức phải hòa mình vào mạng toàn cầu, mạng Internet song vẫn phải đảm bảo an toàn thông tin trong quá trình kết nối Bởi vậy, em đã quyết định chọn đề tài: “Quản lý tưởng lửa trong Linux với IPTables” là đồ án tốt nghiệp của mình
Đồ án của em bao gồm 3 chương:
Chương I: An toàn thông tin trong mạng máy tính
- Trình bày tổng quan về vấn đề an ninh trong mạng máy tính, các nguy
cơ và vấn đề bảo mật hệ thống
Chương II: Tổng quan về firewall
- Trình bày các khái niệm firewall, chức năng của firewall, phân loại firewall và các kiến trúc firewall
- Đưa ra chính sách để xây dựng firewall, từ các chính sách đó ta xây
Trang 4Chương III: Iptables trên CentOS
- Tìm hiểu về iptables và các tham số của dòng lệnh thường gặp
- Các tập luật cần thiết thông dụng cho iptables
Trang 5MỤC LỤC
LỜI CẢM ƠN 0
LỜI MỞ ĐẦU 2
MỤC LỤC 3
CHƯƠNG I: AN TOÀN THÔNG TIN TRONG MẠNG MÁY TÍNH 7
1.1 An toàn và bảo mật thông tin trong mạng máy tính 7
1.2 Các chiến lược an toàn hệ thống: 8
1.2.1 Giới hạn quyền tối thiểu 8
1.2.2 Bảo vệ theo chiều sâu 8
1.2.3 Nút thắt 8
1.2.4 Điểm nối yếu nhất 8
1.2.5 Tính toàn cục 8
1.2.6 Tính đa dạng bảo vệ 9
1.3 Các mức bảo vệ trên mạng 9
1.3.1 Quyền truy nhập 9
1.3.2 Đăng ký tên/mật khẩu 9
1.3.3 Mã hóa dữ liệu 9
1.3.4 Bảo vệ vật lý 9
1.3.5 Tường lửa 9
1.3.6 Quản trị mạng 10
1.4 Các loại lỗ hổng bảo mật và phương thức tấn công mạng chủ yếu 10
1.4.1 Các loại lỗ hổng 10
1.4.2 Các hình thức tấn công mạng phổ biến 12
CHƯƠNG II TỔNG QUAN VỀ FIREWALL 15
2.1 Giới thiệu về firewall 15
2.1.1 Khái niệm firewall 15
2.1.2 Các chức năng cơ bản của firewall 15
2.1.3 Phân loại firewall 15
Trang 62.2.1 Quyền hạn tối thiểu(Least Privilege) 19
2.2.2 Bảo vệ theo chiều sâu (Defense in Depth) 19
2.2.3 Nút thắt (Choke Point) 19
2.2.4 Điểm xung yếu nhất (Weakest Link) 19
2.2.5 Hỏng trong an toàn (Fail-Safe Stance) 19
2.2.6 Sự tham gia toàn cầu 20
2.2.7 Tính đa dạng của việc bảo vệ 20
2.2.8 Đơn giản hoá 20
2.3 Cách thức xây dựng firewall 21
2.3.1 Xây dựng các nguyên tắc căn bản(Rule Base) 21
2.3.2 Xây dựng chính sách an toàn (Security Policy) 21
2.3.3 Xây dựng kiến trúc an toàn 22
2.3.4 Thứ tự các quy tắc trong bảng (Sequence of Rules Base) 22
2.3.5 Các quy tắc căn bản (Rules Base) 23
2.4 Lọc gói và cơ chế hoạt động 24
2.4.1 Bộ lọc gói (packet filtering): 24
2.4.2 Cổng ứng dụng (Application Gateway) 24
2.4.3 Bộ lọc Sesion thông minh (Smart Sesion Filtering) 25
2.4.4 Firewall hỗn hợp (Hybrid Firewall) 26
CHƯƠNG III : IPTABLES TRÊN CENTOS 27
3.1 Iptables là gì? 27
3.1.1 Tải và cài đặt trọn gói Iptables 28
3.1.2 Khởi động dịch vụ Iptables 28
3.1.3 Cơ chế xử lý parkage trong Iptables 28
3.1.4 Target và Jumps 32
3.1.5 Tùy chọn limit, limit-burst 35
3.1.6 Redirect cổng 35
3.1.7 Cách đổi địa chỉ IP động (dynamic NAT) 35
3.1.8 Cách đóng giả IP 37
3.1.9 Quá trình chuyển gói dữ liệu qua Netfilter 38
3.2 Các tham số dòng lệnh thường gặp của Iptables 38
Trang 73.2.1 Gọi trợ giúp 38
3.2.2 Các tùy chọn để thao tác với chain 38
3.2.3 Các tùy chọn để thao tác với luật 38
3.2.4 Các tùy chọn để chỉ định thông số 39
3.2.5 Sử dụng user defined chain: 42
3.2.6 Lưu lại những đoạn mã iptables: 43
3.2.7 Thiết lập những Rule cho Fedora’s iptables 43
3.2.8 Tìm lại đoạn mã bị mất: 44
3.2.9 Những modun kernel cần thiết: 44
3.2.10 Sửa lỗi bảng iptables 44
3.3 Các tập luật thường gặp: 45
3.3.1 Cấm địa chỉ IP : 45
3.3.2 Cho phép máy chủ DNS truy cập đến firewall 47
3.3.3 Cho phép WWW và SSH truy cập vào firewall 47
3.3.4 Một số ví dụ sử dụng kỹ thuật NAT 48
3.3.5 Giả mạo ( nhiều người đến một NAT) 50
3.3.6 Chống DDOS 51
KẾT LUẬN 55
TÀI LIỆU THAM KHẢO 56
Trang 8CHƯƠNG I:
AN TOÀN THÔNG TIN TRONG MẠNG MÁY TÍNH
1.1 An toàn và bảo mật thông tin trong mạng máy tính
Khi nhu cầu trảo đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể để quy tụ vào ba nhóm sau:
- Bảo vệ an toàn thông tin bằng phương pháp hành chính
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đói phương dễ xâm nhập nhất đó
là môi trường mạng và truyền tin Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán
An toàn thông tin bao gồm các nội dung sau:
- Tính bí mật : Tính kín đáo riêng tư của thông tin
- Tính xác thực của thông tin, bao gồm người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi
- Tính trách nhiệm : Đảm bào người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi
Để đảm bào an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu các thiệt hại
Có hai loại hành vi xâm nhập thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động
Trang 9- Vi phạm thụ động thì mục đích chính cuối cùng chỉ để nắm bắt được thông tin Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần đầu các gói tin Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài thông tin dữ liệu được trao đổi
Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu quả
- Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian Vi phạm chủ động có thể thêm vào một số thông tin ngoại lại dễ làm sai lệch nội dung thông tin trao đổi Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiều
1.2 Các chiến lƣợc an toàn hệ thống:
1.2.1 Giới hạn quyền tối thiểu
Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ đối tượng nào cũng chỉ có những quyền nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ được sử dụng một số tài nguyên nhất định
1.2.2 Bảo vệ theo chiều sâu
Nguyên tắc này nhắc nhở chúng ta : Không nên dựa vào một chế độ an toàn nào
dù cho chúng rất mạnh, mà nên tọa nhiều cơ chế an toàn để tương hỗ lẫn nhau
1.2.3 Nút thắt
Tạo ra một cửa hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình bằng con đường duy nhất chính là cửa này Nên phải tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi qua cửa này
1.2.4 Điểm nối yếu nhất
Chiến lược này dựa trên nguyên tắc : “ Một dây xích chi chắc tại mắt duy nhất, một bức tường lửa chỉ cứng tại điểm yếu nhất”
Kẻ phá hoại thường tìm những yếu nhất của hệ thống để tấn công, do đó ta cần phải gia cố các yếu điểm hệ thống Thông thường chúng ta chỉ quan tâm đến kẻ tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý dược coi là điểm yếu nhất trong hệ thống của chúng ta
1.2.5 Tính toàn cục
Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ Nếu
có một kẻ nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng
Trang 10cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội nộ bên trong
1.2.6 Tính đa dạng bảo vệ
Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu không có kẻ tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các hệ thống khác
1.3 Các mức bảo vệ trên mạng
Vì không thể có một giải pháp an toàn tuyệt đối nên người ta thường phải sử dụng đồng thời nhiều mức bảo vệ khác nhau tạo thành nhiều hàng rào chắn đối với các hoạt động xâm nhập Thông thường bao gồm các mức bảo vệ sau:
1.3.1 Quyền truy nhập
Lớp bảo vệ trong cùng là quyền truy nhập nhằm kiểm soát các tài nguyên mạng
và quyền hạn trên tài nguyên đó Dĩ nhiên kiểm soát được các cấu trúc dữ liệu càng chi tiết càng tốt Hiện tại việc kiểm soát thường ở mức tệp
1.3.2 Đăng ký tên/mật khẩu
Thực ra đây cũng là kiểm soát quyền truy nhập, nhưng không phải truy nhập ở mức thông tin mà ở mức hệ thống Đây là phương pháp phổ biến nhất vì nó đơn giản ít phí tổn và cũng rất hiệu quả Mỗi người sử dụng muốn được tham gia vào mạng để sử dụng tài nguyên đều phải có đăng ký tên và mật khẩu trước
1.3.3 Mã hóa dữ liệu
Để bảo mật thông tin trên đường truyền người ta sử dụng các phương pháp mã hóa Dữ liệu bị biến đổi từ dạng nhận thức được sang dạng không nhận thức được theo một thuật toán nào đó và sẽ được biến đổi ngược lại trạm nhận (giải mã) Đây là lớp bảo vệ thông tin rất quan trọng
1.3.4 Bảo vệ vật lý
Ngăn cản các truy nhâp vật lý vào hệ thống Thường dùng các biện pháp truyền thông như ngăn cấm tuyệt đối người không phận sự vào phòng đặt máy mạng, dùng ổ khóa trên máy tính hoặc cac máy trạm không có ổ mềm
1.3.5 Tường lửa
Ngăn chặn thâm nhập trái phép và lọc bỏ các gói tin không muốn gửi hoặc nhận
vì các lý do nào đó để bảo vệ một máy tính hoặc cả mạng nội bộ
Trang 11Tường lửa Bảo vệ vật lý
Mã hóa dữ liệu Đăng ký và mật khẩu Quyền truy nhập
Thông tin Hình 1: Các mức bảo vệ thông tin
1.3.6 Quản trị mạng
Trong thời đại phát triển công nghệ thông tin, mạng máy tính quyết định toàn
bộ hoạt động của một cơ quan, hay một xí nghiệp Vì vậy việc đảm bảo cho hệ thống mạng máy tính hoạt động an toàn, không xảy ra sự cố là công việc cấp thiết hàng đầu
1.4 Các loại lỗ hổng bảo mật và phương thức tấn công mạng chủ yếu
DoS là hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộ giao thức TCP/IP để làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người sử dụng hợp pháp truy nhập hay sử dụng hệ thống
Các dịch vụ có lỗ hổng cho phép các cuộc tấn công DoS có thể được nâng cấp hoặc sửa chữa bằng các phiên bản mới hơn của các nhà cung cấp dịch vụ Hiện nay chưa có một biện pháp hữu hiệu nào để khắc phục tình trạng tấn công kiểu này vì bản
Mức
Độ Bảo
Vệ
Trang 12thân thiết kế ở tầng Internet (IP) nói riêng và bộ giao thức TCP/IP nói chung đã ẩn chứa những nguy cơ tiềm tang của các lỗ hổng loại này
Lỗ hổng loại B :
Cho phép người sử dụng có thêm các quyền trên hệ thống mà không cần kiểm tra tính hợp lệ dẫn đến mất mát thông tin yêu cầu cần bảo mật Lỗ hổng này thường có trong các ứng dụng trên hệ thống Có mức độ nguy hiểm trung bình
Lỗ hổng loại B này có mức độ nguy hiểm hơn lỗ hổng loại C Cho phép người
sử dụng nội bộ có thể chiếm được quyền cao hơn hoặc truy nhập không hợp pháp.Những lỗ hổng loại này thường xuất hiện trong các dịch vụ trên hệ thống Người
sử dụng local được hiểu là người đã có quyền truy nhập vào hệ thống với một số quyền hạn nhất định
Một dạng khác của lỗ hổng loại B xảy ra với các chương trình viết bằng mã nguồn C Những chương trình viết bằng mã nguồn C thường sử dụng một vùng đệm, một vùng trong bộ nhớ sử dụng để lưu trữ dữ liệu trước khi xử lý Người lập trình thường sử dụng vùng đệm trong bộ nhớ trước khi gán một khoảng không gian bộ nhớ cho từng khối dữ liệu Ví dụ khi viết chương trình nhập trường tên người sử dụng quy định trường này dài 20 ký tự bằng khai báo:
Char first_name [20]; Khai báo này cho phép người sử dụng nhập tối đa 20 ký
tự Khi nhập dữ liệu ban đầu dữ liệu được lưu ở vùng đệm Khi người sử dụng nhập nhiều hơn 20 ký tự sẽ tràn vùng đệm Những ký tự nhập thừa sẽ nằm ngoài vùng đệm khiến ta không thể kiểm soát được Nhưng đối với những kẻ tấn công chúng có thể lợi dụng những lỗ hổng này để nhập vào những ký tự đặc biệt để thực thi một số lệnh đặc biệt trên hệ thống Thông thường những lỗ hổng này được lợi dụng bởi những người
sử dụng trên hệ thống để đạt được quyền root không hợp lệ Để hạn chế được các lỗ hổng loại B phải kiêm soát chặt chẽ cấu hình hệ thống và các chương trình
Lỗ hổng loại A:
Cho phép người ngoài hệ thống có thể truy cập bất hợp pháp vào hệ thống Có thể làm phá huỷ toàn bộ hệ thống Loại lỗ hổng này có mức độ rất nguy hiểm đe dọa tính toàn vẹn và bảo mật của hệ thống Các lỗ hổng này thường xuất hiện ở những hệ thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng Ví dụ với các web server chạy trên hệ điều hành Novell các server này có một scripst là convert.bas chạy scripst này cho phép đọc toàn bộ nội dung các file trên hệ thống
Những lỗ hổng loại này hết sức nguy hiểm vì nó đã tồn tại sẵn có trên phần mềm sử dụng, người quản trị nếu không hiểu sâu về dịch vụ và phần mềm sử dụng có thể bỏ qua điểm yếu này Vì vậy thường xuyên phải kiểm tra các thông báo của các nhóm tin về bảo mật trên mạng để phát hiện những lỗ hổng loại này Một loạt các
Trang 13chương trình phiên bản cũ thường sử dụng có những lỗ hổng loại A như: FTP, Gopher, Telnet, Sendmail, ARP, finger
1.4.2 Các hình thức tấn công mạng phổ biến
Scanner
Scanner là một trương trình tự động rà soát và phát hiện những điểm yếu về bảo mật trên một trạm làm việc cục bộ hoặc một trạm ở xa Một kẻ phá hoại sử dụng chương trình Scanner có thể phát hiện ra những lỗ hổng về bảo mật trên một Server dù
ở xa
Cơ chế hoạt động là rà soát và phát hiện những cổng TCP/UDP được sủ dụng trên hệ thống cần tấn công và các dịch vụ sử dụng trên hệ thống đó Scanner ghi lại những đáp ứng trên hệ thống từ xa tương ứng với dịch vụ mà nó phát hiện ra Từ đó nó
có thể tìm ra điêm yếu của hệ thống
Những yếu tố để một Scanner hoạt động như sau:
Yêu cầu thiết bị và hệ thống: Môi trường có hỗ trợ TCP/IP
Hệ thống phải kết nối vào mạng Internet
Các chương trình Scanner có vai trò quan trọng trong một hệ thống bảo mật, vì chúng có khả năng phát hiện ra những điểm yếu kém trên một hệ thống mạng
Password Cracker
Là một chương trình có khả năng giải mã một mật khẩu đã được mã hoá hoặc
có thể vô hiệu hoá chức năng bảo vệ mật khẩu của một hệ thống
Một số chương trình phá khoá có nguyên tắc hoạt động khác nhau Một số chương trình tạo ra danh sách các từ giới hạn, áp dụng một số thuật toán mã hoá từ kết quả so sánh với Password đã mã hoá cần bẻ khoá để tạo ra một danh sách khác theo một logic của chương trình
Khi thấy phù hợp với mật khẩu đã mã hoá, kẻ phá hoại đã có được mật khẩu dưới dạng text Mật khẩu text thông thường sẽ được ghi vào một file
Biện pháp khắc phục đối với cách thức phá hoại này là cần xây dựng một chính sách bảo vệ mật khẩu đúng đắn
Trang 14Mục đích của các chương trình sniffer đó là thiết lập chế độ promiscuous (mode dùng chung) trên các card mạng ethernet - nơi các gói tin trao đổi trong mạng - từ đó
"bắt" được thông tin
Các thiết bị sniffer có thể bắt được toàn bộ thông tin trao đổi trên mạng là dựa vào nguyên tắc broadcast (quảng bá) các gọi tin trong mạng Ethernet
Tuy nhiên việc thiết lập một hệ thống sniffer không phải đơn giản vì cần phải xâm nhập được vào hệ thống mạng đó và cài đặt các phần mềm sniffer
Đồng thời các chương trình sniffer cũng yêu cầu người sử dụng phải hiểu sâu về kiến trúc, các giao thức mạng
Việc phát hiện hệ thống bị sniffer không phải đơn giản, vì sniffer hoạt động ở tầng rất thấp, và không ảnh hưởng tới các ứng dụng cũng như các dịch vụ hệ thống đó cung cấp
Tuy nhiên việc xây dựng các biện pháp hạn chế sniffer cũng không quá khó khăn nếu
ta tuân thủ các nguyên tắc về bảo mật như:
- Không cho người lạ truy nhập vào các thiết bị trên hệ thống
Ví dụ như các chương trình virus là loại điển hình của Trojans Những chương trình virus thường che dấu các đoạn mã trong các chương trình sử dụng hợp pháp Khi những chương trình này được kích hoạt thì những đoạn mã ẩn dấu sẽ thực thi và chúng thực hiện một số chức năng mà người sử dụng không biết như: ăn cắp mật khẩu hoặc copy file mà người sử dụng như ta thường không hay biết
Một chương trình Trojans sẽ thực hiện một trong những công việc sau:
- Thực hiện một vài chức năng hoặc giúp người lập trình lên nó phát hiện những thông tin quan trọng hoặc những thông tin cá nhân trên một hệ thống hoặc chỉ trên một vài thành phần của hệ thống đó
- Che dấu một vài chức năng hoặc là giúp người lập trình phát hiện những thông tin quan trọng hoặc những thông tin cá nhân trên một hệ thống hoặc chỉ trên một vài thành phần của hệ thống
Ngoài ra còn có các chương trình Trojan có thể thực hiện đựợc cả hai chức năng này Có chương trình Trojan còn có thể phá hủy hệ thống bằng cách phá hoại các
Trang 15thông tin trên ổ cứng Nhưng ngày nay các Trojans kiểu này dễ dàng bị phát hiện và khó phát huy được tác dụng
Tuy nhiên có những trường hợp nghiêm trọng hơn những kẻ tấn công tạo ra những lỗ hổng bảo mật thông qua Trojans và kẻ tấn công lấy được quyền root trên hệ thống và lợi dụng quyền đó để phá hủy một phần hoặc toàn bộ hệ thống hoặc dùng quyền root để thay đổi logfile, cài đặt các chương trình trojans khác mà người quản trị không thể phát hiện được gây ra mức độ ảnh hưởng rất nghiêm trọng và người quản trị chỉ còn cách cài đặt lại toàn bộ hệ thống
Trang 16CHƯƠNG II TỔNG QUAN VỀ FIREWALL
Để bảo vệ mạng nội bộ Firewall là một trong những giải pháp bảo vệ mạng hữu hiệu và phổ biến hiện nay Nó giúp cho các mạng nội bộ tránh khỏi những truy nhập trái phép từ bên ngoài bằng cách điều khiển thông tin ra vào giữa các mạng nội bộ Nội dung chính của chương này em sẽ đi giới thiệu tổng quan về Firewall, khái niệm, các chức năng của Firewall, phân loại Firewall, ưu nhược điểm của từng loại Firewall, các chiến lược để xây dựng Firewall và giới thiệu về cơ chế lọc gói tin
2.1 Giới thiệu về firewall
2.1.1 Khái niệm firewall
Firewall là thiết bị nhằm ngăn chặn sự truy nhập không hợp lệ từ mạng ngoài vào mạng trong Hệ thống firewall thường bao gồm cả phần cứng và phần mềm
Firewall thường được dùng theo phương thức ngăn chặn hay tạo các luật đối với các địa chỉ khác nhau
2.1.2 Các chức năng cơ bản của firewall
Chức năng chính của Firewall là kiểm soát luồng thông tin giữa mạng cần bảo
vệ (Trusted Network) và Internet thông qua các chính sách truy nhập đã được thiết lập
- Cho phép hoặc cấm các dịch vụ truy nhập từ trong ra ngoài và từ ngoài vào trong
- Kiểm soát địa chỉ truy nhập, và dịch vụ sử dụng
- Kiểm soát khả năng truy cập người sử dụng giữa 2 mạng
- Kiểm soát nội dung thông tin truyền tải giữa 2 mạng
- Ngăn ngừa khả năng tấn công từ các mạng ngoài
Xây dựng firewalls là một biện pháp khá hữu hiệu, nó cho phép bảo vệ và kiểm soát hầu hết các dịch vụ do đó được áp dụng phổ biến nhất trong các biện pháp bảo vệ mạng
2.1.3 Phân loại firewall
Firewall có nhiều loại tuy nhiên mỗi loại có ưu và nhược điểm riêng Nhưng thông thường firewall được chia làm 2 loại chính là:
- Firewall phần cứng
- Firewall phần mềm
Firewall phần cứng
Trang 17Là một thiết bị phần cứng được tích hợp bộ định tuyến, các quy tắc cho việc lọc gói tin được thiết lập ngay trên bộ định tuyến đó Firewall phần cứng này như một chiếc máy tính chỉ thực hiện chức năng duy nhất là lọc gói tin bằng cách chạy một phần mềm đã được cứng hóa trong đó và chỉ có thể thiết lập các tập luật còn không thể thay đổi bộ định tuyến được cứng hóa và tích hợp bên trong Tùy vào từng loại firewall phần cứng của các hãng khác nhau mà cho phép người quản trị có khả năng cập nhật những quy tắc lọc gói tin khác nhau
Khi hoạt động, tường lửa sẽ dựa trên các quy tắc được thiết lập trong bộ định tuyến mà kiểm tra thông tin header của gói tin như địa chỉ nguồn (source IP address), địa chỉ đích (destination IP address), cổng (Port) Nếu mọi thông tin trong header của gói tin là hợp lệ nó sẽ được cho qua và nếu không hợp lệ nó sẽ bị bỏ qua Chính việc không mất thời gian xử lí những gói tin có địa chỉ không hợp lệ làm cho tốc độ xử lí của firewall phần cứng rất nhanh và đây chính là ưu điểm lớn nhất của hệ thống firewall phần cứng
Một điểm đáng chú là tất cả các loại firewall phần cứng trên thế giới hiện nay đều chưa thể lọc được nội dung của gói tin mà chỉ có thể lọc được phần nội dung trong header của gói tin
Dưới đây sẽ giới thiệu mô hình sử dụng firewall phần cứng đảm bảo an ninh mạng:
Mô hình sử dụng firewall phần cứng: (Thiết bị phần cứng Firewall trong mô hình này chỉ có một chức năng duy nhất là lọc gói tin mà không thể thực hiện bất kì một công việc nào khác)
Hình 2: Mô hình sử dụng Firewall phần cứng
Trong mô hình này thông tin từ mạng Internet không thể trực tiếp đi vào vùng mạng được bảo vệ và ngược lại mà nó phải thông qua Firewall phần cứng Quá trình kiểm duyệt xảy ra nếu các thông tin trong phần header của gói tin bao gồm địa chỉ nguồn (source IP address), địa chỉ đích (destination IP address), cổng (Port) được
NETWORK
Trang 18chấp nhận thì nó sẽ được chuyển tiếp vào mạng bên trong hay chuyển ra mạng internet bên ngoài
Hiện nay trên thế giới có một số hãng sản xuất firewall phần cứng rất nổi tiếng như CISCO, D-LINK, PLANET
Firewall phần mềm
Loại firewall này là một chương trình ứng dụng nguyên tắc hoạt động dựa trên trên ứng dụng proxy - là một phần mềm cho phép chuyển các gói tin mà máy chủ nhận được đến những địa điểm nhất định theo yêu cầu Và các quy tắc lọc gói tin được người sử dụng tự thiết lập Người ta thường sử dụng firewall loại này khi một mạng máy tính có máy chủ và mọi thông tin đều thông qua máy chủ này rồi mới chuyển đến máy con trong mạng hoặc dùng cho máy tính cá nhân khi tham gia mạng Firewall phần mềm này rất tiện lợi ở chỗ phần mềm có thể dễ dàng thay đổi cập nhật các phiên bản mới
Cách thức hoạt động của firewall dạng này cũng rất đơn giản Phần mềm firewall được chạy thường trú trên máy chủ hay máy tính cá nhân Máy tính này có thể đảm đương nhiều nhiệm vụ ngoài công việc là Firewall Mỗi khi có các gói tin được chuyển đến hay chuyển đi nó đều được phần mềm firewall này kiểm tra phần header của gói tin bao gồm các thông tin về địa chỉ đến, địa chỉ đi, giao thức, cổng dịch vụ Firewall phần mềm mới hiện nay còn có thể kiểm tra được nội dung của gói tin Các thông tin mà firewall kiểm tra được người dùng quy định trước trong tập luật Nếu gói tin được phần mềm firewall cho qua thì tiếp theo nó sẽ được đưa đến các máy con trong mạng hoặc là các ứng dụng chạy trực tiếp trên máy đó
Dưới đây là mô hình thường sử dụng firewall phần mềm: (Máy tính dùng làm firewall có thể đảm đương nhiều nhiệm vụ khác nhau ngoài việc là một Firewall ví dụ DNS server, Mail server, Web server )
Hình 3: Mô hình sử dụng Firewall phần mềm
Trong mô hình này máy tính chạy ứng dụng firewall có vai trò trung gian Nó
sẽ nhận các gói tin từ Internet và Protected Network sau đó thực hiện quá trình kiểm tra phần header của các gói tin đó gồm thông tin như : địa chỉ đến, địa chỉ đi, giao thức, cổng dịch vụ sau đó nếu phần mềm firewall chấp nhận cho gói tin đi qua thì
NETWORK
Trang 19gói tin sẽ tiếp tục chuyển đến đích Ngược lại nếu gói tin không được chấp nhận chuyển tiếp thì phần mềm firewall sẽ đưa ra quyết định hủy bỏ Cách hủy bỏ cũng có nhiều kiểu như hủy bỏ không cần trả lời cho máy gửi tới biết lí do (DROP), hủy bỏ nhưng vẫn trả lời cho máy gửi tới biết lí do (REJECT) Chính việc xử lí việc hủy bỏ gói tin như vậy dẫn đến tốc độ của loại firewall này bị hạn chế
Một số phần mềm firewall sử dụng nhiều và được đánh giá cao về khả năng lọc gói tin như oneAlarm Pro, SmoothWall, McAfee Personal Firewall Plus, oneAlarm Pro , Sygate Personal Firewall
Ƣu và nhƣợc điểm của firewall
Mỗi loại tường lửa có những ưu điểm, nhược điểm và được sử dụng trong những trường hợp khác nhau Tường lửa phần cứng thường được sử dụng để đảm bảo
an ninh cho các mạng lớn vì nếu không sử dụng firewall phần cứng thì sẽ cần hệ thống firewall phần mềm tức là sẽ có một tính máy chủ Máy chủ này sẽ nhận mọi gói tin và kiểm duyệt rồi chuyển tiếp cho các máy trong mạng Mà tốc độ của firewall phần mềm hoạt động chậm hơn so với firewall phần cứng nên ảnh hưởng lớn đến tốc độ của toàn
hệ thống mạng
Mặt khác hệ thống tường lửa phần mềm thường được sử dụng để đảm bảo
an ninh cho các máy tính cá nhân hoặc một mạng nhỏ Việc sử dụng hệ thống firewall phần mềm sẽ giúp giảm chi phí vì giá cả thiết bị firewall phần cứng đắt gấp nhiều lần
so với hệ thống firewall phần mềm Hơn nữa, khi ta sử dụng hệ thống firewall phần mềm trong việc đảm bảo an ninh cho máy tính cá nhân hay mạng với quy mô nhỏ thì việc ảnh hưởng đến tốc độ chuyển các gói tin trong mạng là không đáng kể
Điểm yếu khác của firewall phần mềm đó là với mỗi firewall phần mềm được chạy trên từng hệ điều hành nhất định Ví dụ oneAlarm Pro là môt hệ thống firewall phần mềm chỉ chạy trên hệ điều hành Windows Hay với phần mềm SmoothWall thì lại chỉ có thể chạy trên hệ điều hành Linux Nhưng với firewall phần cứng thì có thể chạy một các hoàn toàn độc lập không bị phụ thuộc vào hệ điều hành như firewall phần mềm
Firewall phần mềm hiện giờ đã có thể lọc được nội dung gói tin còn firewall phần cứng chỉ có thể lọc thông tin trong phần header của gói tin còn phần nội dung chính của gói tin thì firewall phần cứng không thể kiểm soát được Bởi vậy mà Firewall phần cứng không thể giúp ngăn chặn các loại virus hệ thống nhưng firewall phần mềm thì có thể
Trang 202.2 Các chiến lƣợc xây dựng firewall
Khi nghiên cứu chi tiết về Firewall, chúng ta cần hiểu một số chiến lược cơ bản được dùng xây dựng Firewall
2.2.1 Quyền hạn tối thiểu(Least Privilege)
Một nguyên tắc cơ bản nhất của an toàn (không phải chỉ áp dụng cho an toàn mạng) là trao quyền tối thiểu Về cơ bản, nguyên tắc này có nghĩa là bất kỳ một đối tượng nào (người sử dụng, người quản trị, chương trình, hệ thống….) Chỉ nên có những quyên hạn nhất định mà đối tượng đó cần phải có để thực hiện các nhiện vụ của mình và chỉ như vậy Quyền hạn tối thiểu là nguyên tắc quan trọng để tránh cho người ngoài lợi dụng đột nhập và hạn chế sự phá huỷ do các đột nhập gây ra
2.2.2 Bảo vệ theo chiều sâu (Defense in Depth)
Một nguyên tắc khác của an toàn và bảo vệ theo chiều sâu Đối với mỗi hệ thống, không nên cài đặt và chỉ sử dụng một chế độ an toàn cho dù nó có thể mạnh, mà nên lắp đặt nhiều cơ chế an toàn để chúng có thể hỗ trợ lẫn nhau Vì vậy firewall được xây dựng theo cơ chế có nhiều lớp bảo vệ
2.2.3 Nút thắt (Choke Point)
Một nút thắt bắt buộc những kẻ đột nhập phải đi qua một “cửa khẩu” hẹp mà chúng ta có thể kiểm soát và điều khiển được giống như việc muốn vào rạp xem hát, ta phải đi qua cổng kiểm soát vé
Trong cơ chế an toàn mạng, Firewall nằm giữa hệ thống của ta và mạng Internet, nó chính là một nút thắt Bất kỳ ai có ý định đột nhập hệ thống từ Internet sẽ phải qua cửa khẩu này, và ta có thể theo dõi, quản lý được
2.2.4 Điểm xung yếu nhất (Weakest Link)
Khi muốn xâm nhập vào hệ thống, kẻ đột nhập tinh ranh thường tìm các điểm yếu nhất đẻ tấn công vào đó Do vậy, đối với từng hệ thống cần phải biết điểm yếu nhất để có phương án bảo vệ an toàn hệ thống Thường ta hay quan tâm đến những kẻ đột nhập trên mạng hơn là những kẻ tiếp nhận hệ thống, cho nên an toàn về mặt vật lý được coi là điểm yếu nhất trong mọi hệ thống
2.2.5 Hỏng trong an toàn (Fail-Safe Stance)
Một nguyên tắc nền tảng khác của an toàn là “hỏng trong an toàn”; Điều này có nghĩa là nếu hệ thống đang hỏng thì nó phải được hỏng theo một cách nào đó để ngăn chặn sự truy nhập bất hợp pháp tốt hơn là để cho kẻ đột nhập lọt vào phá hệ thống Đương nhiên việc hỏng trong an toàn cũng huỷ bỏ sự truy nhập hợp pháp của người sử dụng cho đến khi hệ thống được khôi phục lại
Trang 21Dựa trên nguyên tắc này người ta đưa ra hai quy tắc cơ bản áp dụng cho các quy định và biện pháp an toàn:
Một là, Default deny Stance: Chú trọng vào những cái được phép và ngăn chặn tất cả cái gì còn lại Những gì không rõ ràng cụ thể sẽ bị ngăn cấm
Hai là, Default permit stance: Trú trọng vào những cái bị ngăn cấm và cho phép tất cả những cái còn lại, những gì không bị ngăn cấm thì đựợc phép
Hầu hết những người sử dụng và nhà quản lý quy tắc default pernmit stance cho rằng mọi thứ mặc định nghĩa là cho phép và một số dịch vụ, hành động rắc rối, không
rõ ràng sẽ bị ngăn cấm Ví dụ:
NFS không cho phép qua firewall
Truy nhập WWW bị hạn chế đối với những chuyên gia đào tạo về những vấn đề
an toàn của WWW
Người sử dụng không được cài đặt các Server không được phép Vậy vận dụng quy tắc nào thì tốt hơn? Theo quan điểm về an toàn thì nên dùng quy tắc “Default deny stance” Còn theo quan điểm của các nhà quản lý thì lại là quy tắc “Default pernmit Stance”
2.2.6 Sự tham gia toàn cầu
Để đạt hiệu quả an toàn cao, tất cả các hệ thống trên mạng phải tham gia vào giải pháp an toàn Nếu tồn tại một hệ thống có cơ chế an toàn kém, người truy nhập bất hợp pháp có thể truy nhập vào hệ thống này sau đó truy nhập các hệ thống khác từ bên trong
2.2.7 Tính đa dạng của việc bảo vệ
Do sử dụng nhiều hệ thống khác nhau, ta phải có nhiều biện pháp bảo vệ để đảm bảo chiến lược bảo vệ theo chiều sâu Bởi vì, nếu tất cả các hệ thống của ta đều như nhau và một người nào đó biết cách đột nhập vào một trong số các hệ thống thì anh ta cũng có thể đột nhập vào tất các hệ thống còn lại Sử dụng nhiều hệ thống khác nhau có thể hạn chế các các cơ hội phát sinh lỗi và an toàn hơn Song đổi lại, ta phải đối mặt với các vấn đề về giá cả và tính chất phức tạp Việc mua bán, lắp đặt nhiều hệ thống khác nhau sẽ khó hơn, tốn kém thời gian hơn các hệ thống cùng chủng loại Ngoài ra , cũng cần nhiều sự hỗ trợ và thời gian để đào tạo cán bộ vận hành, quản trị
hệ thống từ phía các nhà cung cấp
2.2.8 Đơn giản hoá
Mọi thứ đơn giản sẽ trở nên dễ hiểu Nếu ta không hiểu rõ một cái gì đó, ta
Trang 222.3 Cách thức xây dựng firewall
Trong quá trình xây dựng một tường lửa đòi hỏi bước tiến hành đều phải được nên kế hoạch trước và phối hợp chặt chẽ với nhau Và để giải quyết vấn đề lớn nhất là xây dựng thành công một tường lửa hoạt động theo hiệu quả thì ta phải xây dựng từng bước thật vững chắc, hạn chế tối đa những sai sót đáng tiếc có thể xảy ra trong quá trình xây dựng
2.3.1 Xây dựng các nguyên tắc căn bản(Rule Base)
Muốn xây dựng được một Firewall thành công thì nó phải thực hiện theo một số quy tắc căn bản nhất định (Rule base) Khi có một gói tin IP đi qua tường lửa thì nó sẽ phải dựa các quy tắc căn bản này để phân tích và lọc gói tin Vì thế chúng ta phải đưa
ra các quy tắc thật đơn giản, ngắn gọn và dễ hiểu nhầm tăng tốc độ sử lý gói tin trong tường lửa và sẽ tránh được tắc nghẽn, đồng thời nó còn giúp cho việc thay đổi và bảo trì hệ thống được dễ dàng hơn rất nhiều Thông thường thì ta nên dùng không quá 30 quy tắc căn bản và tối đa không đựoc quá 50 quy tắc vì nếu dùng quá nhiều sẽ làm cho việc lọc gói sẽ chậm hơn và cũng sẽ dễ gây ra lỗi vì các quy tắc có thể bị chồng chéo lên nhau
2.3.2 Xây dựng chính sách an toàn (Security Policy)
Một tường lửa phải có các chính sách an toàn (security policy) vì thực chất tường lửa chỉ là một công cụ thực thi các chính sách an toàn Việc quản lý và xây dựng chính sách an toàn một cách chặt chẽ sẽ tạo ra được sức mạnh cho tường lửa Vì vậy trước khi chúng ta xây dựng các quy tắc căn bản thì chúng ta phải hiểu được chính sách an toàn của tường lửa cần xây dựng là gì ?
Và đồng thời cũng phải xây dựng các chính sách an toàn sao cho dễ hiểu và đơn giản một cách tương đối và không nên xây dựng một cách quá phức tạp dẫn đến chồng chéo dễ gây nhầm lẫn và dễ kiểm tra, bảo trì Chúng ta có thể đưa ra một số chính sách
an toàn rất đơn giản như sau:
Những máy trong mạng nội bộ được truy nhập ra Internet không giới hạn Cho phép sự truy cập vào Web và Mail Server của mạng nội bộ từ Internet Tất cả các thông tin đi vào trong mạch nội bộ đều phải được xác thực và mã hoá
Từ những chính sách rất đơn giản như ví dụ trên đây chúng ta có thể phát triển
để thành những chính sách hoạt động một cách hiệu quả và phức tạp hơn rất nhiều ví
dụ giới hạn mạng nội bộ chỉ được sử dụng internet một cách hạn chế với một vài dịch
Trang 23vụ cơ bản như Mail, HTTP … mà thôi, còn lại ngăn cấm hoàn toàn dịch vụ truyền tệp FTP v.v…
2.3.3 Xây dựng kiến trúc an toàn
Các bước cần làm khi xây dựng một kiến trúc an toàn:
Đầu tiên thì ta cho phép tất cả các máy trong mạng nội bộ có thể truy cập ra Internet
Sau đó ta thực hiện cài đặt các phần thồng tin không cần bảo vệ (ví dụ: Web Server và Mail Server) vào một vùng có tên kỹ thuật là vùng “phi quân sự” (Demilitarized Zone - MDZ) DMZ là một mạng tách biệt nơi mà ta sẽ đặt các hệ thống mà chúng ta không hoàn toàn tin tưởng (vì một khi từ Internet có thể truy cập vào được trong DMZ của chúng ta nên không thể tin tưởng chúng) Bởi vậy những hệ thống trong DMZ sẽ không bao giờ kết nối trực tiếp với mạng bên trong một khi chúng chưa được tin cậy Có hai loại DMZ là: DMZ được bảo vệ và DM không được bảo vệ DM được bảo vệ là một phần tách rời ra bên ngoài của tường lửa DMZ không được bảo vệ là phần mạng nằm giữa Router và tường lửa Chúng ta nên dùng loại DM được bảo vệ, vì nơi đó là nơi chúng ta thường đặt cả Web Server và Mail Server
Con đường duy nhất có thể đi vào mạng nội bộ là phải đi qua sự kiểm soát của nhà quản trị mạng (cũng có thể cho phép thực hiện mạng từ xa)
Cái mà chúng ta có thể nói đến nữa là DNS (Domain Name Server) Chúng ta
sẽ phải thực hiện chia DNS ra làm nhiều phần Chia DNS thành nhiều phần có nghĩa là chia các thao tác của DNS sẽ thuộc hai máy chủ DNS khác nhau Chúng ta làm điều này vì ta sẽ để một máy chủ DNS sẽ lo cho chúng ta việc giải quyết thông tin tên miền của công ty với mạng bên ngoài Và một máy chủ DNS ở bên trong để giải quyết vấn
đề của mạng bên trong Máy chủ DNS ngoài sẽ nằm trong DMS có được bảo vệ cùng với Web và Mail Server Máy DNS bên trong sẽ nằm ở mạng bên trong với việc này sẽ giúp cho chúng ta không cho biết thông tin về tên miền trong màng nội bộ Vì máy chủ DNS chứa thông tin về sơ đồ của mạng bên trong nên cúng ta cần phải đặt dưới sự bảo
vệ tránh lộ thông tin về bản đồ mạng
2.3.4 Thứ tự các quy tắc trong bảng (Sequence of Rules Base)
Trước khi chúng ta xây dựng các quy tắc căn bản thì điều chúng ta cần phải quan tâm đến đó chính là thứ tự của các quy tắc (hay còn gọi là cấp độ của các quy tắc) và trong đó có một quy tắc đặc biệt, nó sẽ giữ vai trò then chốt trong chính sách
Trang 24nhưng vẫn phải đặt chúng theo một thứ tự trước/sau, việc này làm thay đổi phương thức làm việc căn bản của tường lửa Đa số các tường lửa kiểm tra các gói tin một cách tuần tự và liên tục Khi tường lửa nhận được một gói tin, nó sẽ xem xét gói tin đó có đúng với quy tắc nào trong bảng Rules base hay không bằng cách cho xét bắt đầu từ quy tắc thứ nhất, rồi quy tắc thứ hai … cho đến khi có quy tắc nào đó thoả mãn thì nó
sẽ dừng công việc kiêm trả và nó sẽ thực thi theo quy tắc đó Nếu gói tin đã được so sánh với tất cả các quy tắc trong bảng mà không có quy tắc nào thoả đáng thì gói tin
đó sẽ bị từ chối (lọc bỏ) Vấn đề then chốt là phải sớm tìm được quy tắc đầu tiên thoả mãn để khớp được với quy tắc Rules Base để cho gói tin được nhanh chóng được đi qua Và khi tìm hiểu rõ được điều này thì ta nên đặt các quy tắc đặc biệt trước tiên, rồi sau đó mới đến các quy tắc thông thường Việc này ngăn chặn việc các quy tắc thông thường cho phép gói tin đi qua nhưng trong trường hợp đắc biệt lại không cho gói tin
đi qua gây chồng chéo Chính vì vậy phải luôn chú ý và phải đặt các quy tắc đặc biệt lên trước tiên rồi tới các nguyên tắc thông thường Phải tuân thủ nguyên tắc này để tránh việc cấu hình bị sai giúp tường lửa làm việc hiệu quả, đồng thời dễ dàng trong công tác nâng cấp bảo trì và thay đổi sửa chữa
2.3.5 Các quy tắc căn bản (Rules Base)
Default properties (nguyên tắc mặc định): Phải loại trừ tất cả các trường hợp này và phải chắc chắn một điều là không có một gói tin nào có thể đi qua được, bất kể gói tin đấy là gói tin gì
Internal Outbound (đi từ mạng bên trong ra ngoài): Bước đầu tiên ta cho phép việc đi từ trong ra ngoài mà không có hạn chế nào Và tất cả các dịch vụ cơ bản như Web, Mail, FTP v.v… đều cho phép
Lockdown (): Hạn chế tất cả không cho phép một sự sâm nhập nào vào tường lửa của chúng ta Đây là quy tắc chuẩn mà quy tắc căn bản cần phải có Không có bất
kỳ sự sâm nhập nào vào tường lửa nhưng chúng ta lại cần có người quản trị tường lửa (Firewall Admins)
Admin Access (): Không ai có thể kết nối với tường lửa, bao gồm cả Admin Chúng ta cũng phải tạo ra một quy tắc để cho phép Admin truy nhập vào được tường lửa
Drop All (): Thông thường thì ta sẽ loại bỏ tất cả các gói tin mà không phù hợp với quy tắc nào Nhưng ta nên đưa gói tin này vào một bản ghi và ta sẽ thêm vào đó cuối danh sách các quy tắc Đây là một quy tắc chuẩn mà ta nên có
No Logging (): Thông thường sẽ có rất nhiều gói tin được giử đến tất cả các địa chỉ (vd: như tin quảng cáo) trên mạng Khi đến tường lửa thì nó sẽ bị loại bỏ và sau đó
Trang 25được ghi vào bản ghi, nhưng việc này sẽ làm cho bản ghi nhanh chóng bị đầy Chính
vì vậy ta phải tạo một quy tắc sao cho khi ta bỏ gói tin ấy đi mà lại không ghi lại vào bản ghi Đây cũng là một nguyên tắc căn bản mà đôi khi ta cũng phải dùng đến
DNS Access (): Mô hình và các thành phần của tường lửa
2.4 Lọc gói và cơ chế hoạt động
Khi nói đến việc chuyển thông tin dữ liệu giữa các mạng với nhau thông tin qua tường lửa thì điều đó có nghĩa rằng bức tường lửa hoạt động kết hợp chặt chẽ với giao thức TCP/IP vì giao thức này làm việc theo thuật toán chia nhỏ các dữ liệu nhận được
từ các ứng dụng trên mạng Tức là:
Dữ liệu nhận được từ các dịch vụ chạy trên các giao thức phổ cập trên mạng (ví
dụ như: telnet, SMTP, DNS, SMNP,… ) được phân thành các gói giữ liệu (data packet)
Các gói tin này được gán những địa chỉ và thông tin để có thể nhận và tái hợp lại thành dữ liệu ban đầu Chính vì vậy các loại tường lửa cũng liên quan rất nhiều đến các gói tin và các địa chỉ của chúng sau đây chúng ta sẽ cùng tìm hiểu lọc gói là gì và
cơ chế của nó như thế nào
2.4.1 Bộ lọc gói (packet filtering):
Bộ lọc gói có những chức năng thực hiện việc kiểm tra số nhận dạng địa chỉ của gói tin để kiểm tra có thể cho phép chúng đi qua tường lửa hay không Các thông tin
có thể lọc được một gói tin bao gồm :
Địa chỉ nơi xuất phát hay còn gọi là địa chỉ nguồn (source IP Address)
Địa chỉ nơi nhận hay còn gọi là địa chỉ đích (destination IP Address)
Số cổng của nơi xuất phát (source port)
Số cổng của nơi nhận (destination)
Nhờ vậy mà tường lửa có thể chặn được các kết nối từ mạng ngoài vào những máy chủ nội bộ hoặc vào trong mạng nội bộ Từ những địa chỉ không cho phép
Hơn nữa việc kiểm soát các cổng làm cho tường lửa có khả năng chỉ cho phép một số loại kết nối nhất định vào máy chủ đã được định sẵn mà phục vụ cho một số dịch vụ nào đó (Telnet, SMTP,mail………) được phép sử dụng trên mạng nội bộ
2.4.2 Cổng ứng dụng (Application Gateway)
Application Gateway được thiết kế để tăng cường chức năng kiểm soát các loại dich vụ vào giao thức được cho phép truy cập vào hệ thống mạng Cơ chế hoạt động
Trang 26Proxy Service hoạt động theo cơ chế: Một ứng dụng nào đó được quy chiếu đến (hay đại diện bởi) một proxy Service chạy trên các hệ thống máy chủ thì được quy chiếu đến ApplicationGateway của firewall Cơ chế lọc của packet filtering phối hợp kiểm soát với cơ chế “đại diện của ”Application gateway cung cấp một khả năng an toàn hơn cho firewall trong việc giao tiếp thông tin với mạng ngoài
Ví dụ một hệ thống mạng có chức năng lọc gói tin, nó sẽ ngăn các kết nối bằng Telnet vào hệ thống chỉ trừ một cổng duy nhất -Telnet Application Gateway- là được phép Một người sử dụng dịch vụ Telnet muốn kết nối vào hệ thống phải thực hiện các bước sau:
Thực hiện dịch vụ Telnet đến Telnet Application Gateway rồi cho biết tên của máy chủ bên trong cần truy cập
Gateway kiểm tra địa chỉ IP nơi xuất phát của người truy cập rồi cho phép hoặc
từ chối tuỳ theo chế độ an ninh của hệ thống
Người truy cập phải vượt qua được hệ thống kiểm tra xác định
Proxy service liên kết lưu thông giữa người truy cập với máy chủ
Cơ chế hoạt động này có ý nghĩa quan trọng trong việc thiết kế an ninh hệ thống Nó có thể cung cấp nhiều khả năng, ví dụ như:
Che dấu các thông tin: người dùng chỉ có thể nhìn thấy trực tiếp các Gateway được phép
Tăng cường kiểm tra truy cập bằng các dịch vụ xác thực (Authentication) Giảm đáng kể giá thành cho việc phát triển các hệ quản trị xác thực vì hệ thống này được thiết kế chỉ quy chiếu đến Application Gateway
Giảm thiếu các quy tắc kiểm soát của bộ lọc (Packet Filtering) Điều này làm tăng một cách đáng kể tốc độ hoạt động của Firewall
2.4.3 Bộ lọc Sesion thông minh (Smart Sesion Filtering)
Cơ chế hoạt động phối hợp giữa bộ lọc packet và cổng ứng dụng như đề cập ở trên cung cấp một chế độ an ninh cao tuy nhiên nó cũng tồn tại một vài hạn chế Vấn
đề chính hiện nay là làm sao để cung cấp đủ Proxy Service cho rất nhiều ứng dụng khác nhau đang phát triển ồ ạt Điều này có nghĩa là nguy cơ, áp lực đối với việc firewall bị đánh lừa gia tăng lên rất lớn nếu các Proxy không kịp đáp ứng
Trong khi giám sát các packet ở những mức phía trên, nếu như lớp Network đòi hỏi nhiều công sức đối với việc lọc các packet đơn giản, thì việc giám sát các giao dịch lưu thông ở mức mạng (Sesion) đòi hỏi ít công việc hơn Cách này cũng loại bỏ được các dịch vụ đặc thù cho từng loại ứng dụng khác nhau
Trang 27Cơ chế hoạt động của bộ lọc sesion thông minh chính là việc kết hợp khả năng ghi nhận thông tin về các Sesion và sử dụng nó để tạo các quy tắc cho bộ lọc
Biết rằng, một Sesion ở mức network được tạo bởi hai packet lưu thông hai chiều:
Một để kiểm soát các packet lưu thông từ host phát sinh ra nó đến máy chủ cần tới
Một để kiểm soát packet trở về từ máy chủ phát sinh
Một bộ lọc thông minh sẽ nhận biết được rằng packet trở về theo chiều ngược lại nên quy tắc thứ hai là không cần thiết Do vậy, cách tiếp nhận các packet không mong muốn sinh ra từ bên ngoài firewall sẽ khác biệt rất rõ với cách tiếp nhận cho các packet do những kết nối được phép (ra bên ngoài) Và như vậy dễ dàng nhận dạng được các packet “bất hợp pháp”
2.4.4 Firewall hỗn hợp (Hybrid Firewall)
Trong thực tế xây dựng, các firewall được sử dụng là kết hợp của nhiều kỹ thuật để tạo ra hiệu quả an ninh tối đa Ví dụ việc để lọt lưới tại các kiểm soát của bộ lọc packet có thể được thực hiện tại bộ lọc sesion thông minh ở mực ứng dụng Các giám sát của bộ lọc lót chặt chẽ bởi các dịch vụ Proxy của Application Gateway
Trang 28CHƯƠNG III : IPTABLES TRÊN LINUX
3.1 Iptables là gì?
Iptables do Netfiter Organiztion viết ra để tăng tính năng bảo mật trên Linux
Iptables cung cấp các tính năng sau:
- Tích hợp tốt với kenel(nhân) của Linux
- Có khả năng phân tích parkage hiệu quả
- Lọc parkage dựa vào Mac và một số cờ hiệu trong TCP Header
- Cung cấp các chi tiết tùy chọn để ghi nhận sự kiện hệ thống
- Cung cấp kỹ thuật NAT
- Có khả năng ngăn chặn một số cơ chế tấn công kiểu DoS Iptables là một chương trình chạy ở không gian người dùng, cho phép người
quản trị hệ thống có thể cấu hình các bảng của tường lửa trong nhân Linux ( được cài
đặt trong các modun Netfilter khác nhau ) và lưu trữ các chuỗi, luật Các modun nhân
và các chương trình khác nhau được áp dụng cho từng giao thức; iptables cho IPV4,
iptables cho IPV6, arptables cho ARP, và ebtables cho Ethernet frames
Iptables yêu cầu quyền cao nhất trong hệ thống để hoạt động và phải được
người dùng root thực thi, nếu không một số chức năng chương trình sẽ không hoạt
động Trong hầu hết các hệ thống Linux, iptables được cài đặt tại /usr/sbin/iptables và
hướng dẫn sử dụng trong trang chỉ dẫn của chương trình Người dùng có thể mở trang
chỉ dẫn bằng lệnh man iptables sau khi cài đặt
Trước iptables các gói chương trình dùng để quản lý tường lửa trên Linux là
ipchains trên Linux 2.2, ipfwadm trên linux 2.0, dựa trên chương trình ipfw trên BSD
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 Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân và Iptables ở
ngoài nhân Iptables chịu giao tiếp giữa người dùng và Netfilter để đẩy các tập luật của
người dùng vào cho Netfilter 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 độ hệ thống