Trong Công nghệ mạng thông tin, Firewall là một kỹ thuật được tích hợp vào hệ thống mạng để chống lại sự truy cập trái phép nhằm bảo vệ nguồn thông tin nội bộ cũng như hạn chế sự xâm nhậ
Trang 1Lời nói đầu
Sự phát minh ra máy vi tính và sự hình thành của Mạng lưới Thông Tin Toàn Cầu (Internet) đã mở ra một kỷ nguyên mới cho việc thông tin liên lạc Từ một máy vi tính nối vào Mạng lưới Thông Tin Toàn Cầu (WWW) người sử dụng có thể gửi và nhận tin tức từ khắp nơi trên thế giới với khối lượng tin tức khổng lồ và thời gian tối thiểu thông qua một số dịch vụ sẵn có trên Internet
Ngày nay, máy tính và internet đã được phổ biến rộng rãi, các tổ chức, các nhân đều có nhu cầu sử dụng máy tính và mạng máy tính để tính toán, lưu trữ, quảng
bá thông tin hay sử dụng các giao dịch trực tuyến trên mạng Nhưng đồng thời với những cơ hội được mở ra lại có những nguy cơ khi mạng máy tính không được quản lí
sẽ dễ dàng bị tấn công, gây hậu quả nghiêm trọng Từ đây nảy sinh ra một yêu cầu đó
là cần có một giải pháp hoặc một hệ thống an ninh bảo vệ cho hệ thống mạng và luồng thông tin chạy trên nó
Một trong các giải pháp chính và tốt nhất hiện nay là đưa ra khái niệm Firewall
và xây dựng nó để giải quyết những vấn đề này
Thuật ngữ “Firewall” có nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để ngăn chặn và hạn chế hoả hoạn Trong Công nghệ mạng thông tin, Firewall là một kỹ thuật được tích hợp vào hệ thống mạng để chống lại sự truy cập trái phép nhằm bảo vệ nguồn thông tin nội bộ cũng như hạn chế sự xâm nhập vào hệ thống của một số thông tin khác không mong muốn Có hai loại kiến trúc FireWall cơ bản là: Proxy/Application FireWall và Filtering Gateway Firewall Hầu hết các hệ thống Firewall hiện đại là loại lai (hybrid) của cả hai loại trên
Nhiều công ty và nhà cung cấp dịch vụ Internet sử dụng máy chủ Linux như một Internet Gateway Những máy chủ này thường phục vụ như máy chủ Mail, Web, Ftp, hay Dialup Hơn nữa, chúng cũng thường hoạt động như các Firewall, thi hành các chính sách kiểm soát giữa Internet và mạng của công ty Khả năng uyển chuyển, tính kinh tế, và sự bảo mật cao khiến cho Linux thu hút như là một thay thế cho những
hệ điều hành thương mại
Tính năng Firewall chuẩn được cung cấp sẵn trong Kernel của Linux được xây dựng từ hai thành phần : Ipchains và IP Masquerading
Linux IP Firewalling Chains là một cơ chế lọc gói tin IP Những tính năng của
IP Chains cho phép cấu hình máy chủ Linux như một Filtering Gateway/Firewall dễ dàng Một thành phần quan trọng khác của nó trong Kernel là IP Masquerading, một tính năng chuyển đổi địa chỉ mạng (Network Address Translation- NAT) mà có thể che giấu các địa chỉ IP thực của mạng bên trong
Trang 2Ngoài ra trong Kernel của Linux 2.4x và 2.6x cũng có một Firewall ứng dụng lọc gói tin có thể cấu hình ở mức độ cao Netfilter/Iptables
Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân Netfilter cho phép cài đặt, duy trì và kiểm tra các quy tắc lọc gói tin trong Kernerl Netfilter tiến hành lọc các gói dữ liệu ở mức IP Netfilter làm việc nhanh và không làm giảm tốc độ của hệ thống Được thiết kế để thay thế cho linux 2.2.x Ipchains và linux 2.0.x Ipfwadm, có nhiều đặc tính hơn Ipchains và được xây dựng hợp lý hơn Iptables chịu trách nhiệm giao tiếp giữa người dùng và Netfilter để đẩy các luật của người dùng vào cho Netfilter xử lí Chương trình Iptables được dùng để quản lý các quy tắc lọc gói tin bên dưới cơ sở hạ tầng của Netfilter
Các ứng dụng của Iptables đó là làm IP Masquerading, IP NAT và IP Firewall Luận văn của em được viết ra nhằm đem đến cho mọi người cái nhìn rõ nét về FireWall và đặc biệt là FireWall Iptables của Linux
Trang 3Mục lục
Lời nói đầu 1
CHƯƠNG I : TỔNG QUAN VỀ AN TOÀN - AN NINH MẠNG 6
I.1 An toàn mạng là gì ? 6
I.2 Các tiêu chí bảo vệ thông tin trên mạng 7
I.2.1 Tính xác thực (Authentification): 7
I.2.2 Tính khả dụng (Availability): 7
I.2.3 Tính bảo mật (Confidentiality): 7
I.2.4 Tính toàn vẹn (Integrity): 8
I.2.5 Tính kiểm soát truy nhập (Access control): 8
I.2.6 Tính không thể chối bỏ (Nonrepudiation): 8
I.3 Đánh giá về sự đe doạ, các điểm yếu của hệ thống và các kiểu tấn công 8
I.3.1 Đánh giá về sự đe doạ 8
I.3.2 Các lỗ hổng và điểm yếu của mạng 9
I.3.3 Các kiểu tấn công 10
I.3.4 Các biện pháp phát hiện hệ thống bị tấn công 11
I.4 Bảo vệ thông tin trên mạng 11
CHƯƠNG II:TỔNG QUAN FIREWALL 14
II.1 Một số khái niệm 14
II.2.Chức năng 14
II.2.1 Khả năng của hệ thống firewall 15
II.2.2 Những hạn chế của firewall 16
II.2.3 Một số mô hình Firewall dùng cho doanh nghiệp vừa và……… 17
II.3 Phân loại bức tường lửa (Firewall) 18
II.3.1 Firewall lọc gói 19
II.3.2 Bức tường lửa ứng dụng(Application firewall) 21
II.3.3 Bức tường lửa nhiều tầng 25
II.4 Một vài kiến trúc firelwall 25
II.4.1 Screening Router 25
II.4.2 Dual-Homed Host 26
II.4.3 Bastion Host (máy chủ pháo đài) 27
II.4.4 Screened host (máy chủ sang lọc) 28
II.4.5 Mô hình Demilitarized Zone (DMZ) hay Screened Subnet Firewall 29
Trang 4CHƯƠNG III: NETFILTER/IPTABLES TRONG LINUX 32
III.1 Giới thiệu 32
III.2 Tính năng của Iptables……… 35
III.3 Cấu trúc của Iptables 36
III.4 Quá trình chuyển gói dữ liệu qua tường lửa 37
III.4.1 Xử lý gói trong Iptables 37
III.4.2 Target và Jumps 41
CHƯƠNG IV : ỨNG DỤNG FIREWALL 43
IV.1 Sử dụng Iptables 43
IV.1.1 Cài đặt Iptables – File cấu hình 43
IV.1.2 Cài đặt Iptables trong Kernel……… 42
IV.1.3 Các thao tác trong toàn bộ chuỗi luật 47
IV.1.4 Luật đơn 48
IV.1.5 Mô tả bộ lọc 48
IV.1.6 Mô tả hành động 51
IV.2 Các ứng dụng 53
IV.2.1 Một số giá trị khởi tạo của Iptables ……… ……… 53
IV.2.2 Cho phép máy chủ DNS truy cập đến Firewall.……… 54
IV.2.3 Cho phép WWW và SSH truy cập vào Firewall……….……… 54
IV.2.4 Cho phép Firewall truy cập Internet……… 55
IV.2.5 File cấu hình cho IP Masquerading……… 55
IV.2.6 NAT tĩnh (SNAT)……… … … 56
IV.3 Mô hình lab triển khai……… 58
KẾT LUẬN ……….……….…62
CÁC TỪ VIẾT TẮT - THUẬT NGỮ - ĐỊNH NGHĨA - CÂU LỆNH 63
TÀI LIỆU THAM KHẢO.……… 68
Trang 5CHƯƠNG I : TỔNG QUAN VỀ AN TOÀN THÔNG TIN TRÊN MẠNG
I.1 An toàn mạng là gì ?
Mục tiêu của việc kết nối mạng là để nhiều người sử dụng, từ những vị trí địa
lý khác nhau có thể sử dụng chung tài nguyên, trao đổi thông tin với nhau Do đặc điểm nhiều người sử dụng lại phân tán về mặt vật lý nên việc bảo vệ các tài nguyên thông tin trên mạng tránh sự mất mát, xâm phạm là cần thiết và cấp bách An toàn mạng có thể hiểu là cách bảo vệ, đảm bảo an toàn cho tất cả các thành phần mạng bao gồm : dữ liệu, thiết bị, cơ sở hạ tầng mạng và đảm bảo mọi tài nguyên mạng được sử dụng tương ứng với một chính sách hoạt động được ấn định và với chỉ những người
Một thách thức đối với an toàn mạng là xác định chính xác cấp độ an toàn cần thiết cho việc điều khiển hệ thống và các thành phần mạng Đánh giá các nguy cơ, các
lỗ hỏng khiến mạng có thể bị xâm phạm thông qua cách tiếp cận có cấu trúc Xác định những nguy cơ ăn cắp, phá hoại máy tính, thiết bị, nguy cơ virus, bọ gián điệp, nguy
cơ xoá, phá hoại CSDL, ăn cắp mật khẩu,…nguy cơ đối với sự hoạt động của hệ thống như nghẽn mạng, nhiễu điện tử Khi đánh giá được hết những nguy cơ ảnh hưởng tới an ninh mạng thì mới có thể có được những biện pháp tốt nhất để đảm bảo
an ninh mạng
Sử dụng hiệu quả các công cụ bảo mật (ví dụ như Firewall) và những biện pháp, chính sách cụ thể chặt chẽ
Về bản chất có thể phân loại vi phạm thành các vi phạm thụ động và vi phạm chủ động Thụ động và chủ động được hiểu theo nghĩa có can thiệp vào nội dung và luồng thông tin có bị trao đổi hay không Vi phạm thụ động chỉ nhằm mục đích nắm bắt được thông tin Vi phạm chủ động là thực hiện sự biến đổi, xoá bỏ hoặc thêm thông tin ngoại lai để làm sai lệch thông tin gốc nhằm mục đích phá hoại Các hành động vi phạm thụ động thường khó có thể phát hiện nhưng có thể ngăn chặn hiệu quả Trái lại, vi phạm chủ động rất dễ phát hiện nhưng lại khó ngăn chặn
Trang 6I.2 Các tiêu chí bảo vệ thông tin trên mạng
I.2.1 Tính xác thực (Authentification): Kiểm tra tính xác thực của một thực
thể giao tiếp trên mạng Một thực thể có thể là một người sử dụng, một chương trình máy tính, hoặc một thiết bị phần cứng Các hoạt động kiểm tra tính xác thực được đánh giá là quan trọng nhất trong các hoạt động của một phương thức bảo mật Một hệ thống thông thường phải thực hiện kiểm tra tính xác thực của một thực thể trước khi thực thể đó thực hiện kết nối với hệ thống Cơ chế kiểm tra tính xác thực của các phương thức bảo mật dựa vào 3 mô hình chính sau :
Đối tượng cần kiểm tra cần phải cung cấp những thông tin trước, ví dụ như password, hoặc mã số thông số cá nhân PIN
Kiểm tra dựa vào mô hình những thông tin đã có, đối tượng kiểm tra cần phải thể hiện những thông tin mà chúng sở hữu, ví dụ như Private Key, hoặc số thẻ tín dụng
Kiểm tra dựa vào mô hình những thông tin xác định tính duy nhất, đối tượng kiểm tra cần phải có những thông tin để định danh tính duy nhất của mình, ví dụ như thông qua giọng nói, dấu vân tay, chữ ký,…
Có thể phân loại bảo mật trên VPN theo các cách sau : mật khẩu truyền thống hay mật khẩu một lần; xác thực thông qua các giao thức (PAP, CHAP, ) hay phần cứng (các loại thẻ card: smart card, token card, PC card), nhận diện sinh trắc học (dấu vân tay, giọng nói, quét võng mạc…)
I.2.2 Tính khả dụng (Availability): Tính khả dụng là đặc tính mà thông tin
trên mạng được các thực thể hợp pháp tiếp cận và sử dụng theo yêu cầu khi cần thiết bất cứ khi nào, trong hoàn cảnh nào Tính khả dụng nói chung dùng tỉ lệ giữa thời gian
hệ thống được sử dụng bình thường với thời gian quá trình hoạt động để đánh giá Tính khả dụng cần đáp ứng những yêu cầu sau : Nhận biết và phân biệt thực thể, khống chế tiếp cận (bao gồm cả việc khống chế tự tiếp cận và khống chế tiếp cận cưỡng bức ), khống chế lưu lượng (chống tắc nghẽn), khống chế chọn đường (cho phép chọn đường nhánh, mạch nối ổn định, tin cậy), giám sát tung tích (tất cả các sự kiện phát sinh trong hệ thống được lưu giữ để phân tích nguyên nhân, kịp thời dùng các biện pháp tương ứng)
Ví dụ như trong 1 hệ thống công ty phải luôn sẵn sàng đáp ứng truy vấn của nhân viên (user) trong thời gian nhanh nhất có thể, phải đảm bảo rằng bất kì nhân viên (user) nào cũng được đáp ứng trong thời gian ngắn nhất có thể
I.2.3 Tính bảo mật (Confidentiality): Tính bảo mật là đặc tính tin tức không bị
tiết lộ cho các thực thể hay quá trình không đuợc uỷ quyền biết hoặc không để cho các đối tượng xấu lợi dụng Thông tin chỉ cho phép thực thể được uỷ quyền sử dụng Kỹ
Trang 7thuật bảo mật thường là phòng ngừa dò la thu thập, phòng ngừa bức xạ, tăng cường bảo mật thông tin (dưới sự khống chế của khoá mật mã), bảo mật vật lý (sử dụng các phương pháp vật lý để đảm bảo tin tức không bị tiết lộ)
Dữ liệu trên hệ thống phải được bảo mật tuyệt đối bằng nhiều phương pháp mã hóa như Ipsec hoặc các tool mã hóa dữ liệu
I.2.4 Tính toàn vẹn (Integrity): Là đặc tính khi thông tin trên mạng chưa
được uỷ quyền thì không thể tiến hành được, tức là thông tin trên mạng khi đang lưu giữ hoặc trong quá trình truyền dẫn đảm bảo không bị xoá bỏ, sửa đổi, giả mạo, làm dối loạn trật tự, phát lại, xen vào một cách ngẫu nhiên hoặc cố ý và những sự phá hoại khác Những nhân tố chủ yếu ảnh hưởng tới sự toàn vẹn thông tin trên mạng gồm : sự
cố thiết bị, sai mã, bị tác động của con người, virus máy tính
Một số phương pháp bảo đảm tính toàn vẹn thông tin trên mạng :
- Giao thức an toàn có thể kiểm tra thông tin bị sao chép, sửa đổi hay sao chép, Nếu phát hiện thì thông tin đó sẽ bị vô hiệu hoá
- Phương pháp phát hiện sai và sửa sai Phương pháp sửa sai mã hoá đơn giản nhất và thường dùng là phép kiểm tra chẵn lẻ
- Biện pháp kiểm tra mật mã ngăn ngừa hành vi xuyên tạc và cản trở truyền tin
- Chữ ký điện tử : bảo đảm tính xác thực của thông tin
- Yêu cầu cơ quan quản lý hoặc trung gian chứng minh chân thực của thông tin
I.2.5 Tính kiểm soát truy nhập (Access control): Là khả năng hạn chế và
kiểm soát truy nhập đến các hệ thống máy tính và các ứng dụng theo các đường truyền thông Mỗi thực thể muốn truy nhập đều phải định danh hay xác nhận có quyền truy nhập phù hợp
Trong hệ thống thông thường bây giờ đều lắp đặt isa để kiểm soát truy nhập và khả năng chạy các ứng dụng Ở phân quyền người sử dụng thông thường (user) thì ko thể chạy những file cài đặt, thay đổi địa chỉ IP hay truy cập đến những file không cho phép trên fileserver, những việc này chỉ có quyền quản trị mới làm được
I.2.6 Tính không thể chối bỏ (Nonrepudiation): xác nhận tính chân thực đồng
nhất của những thực thể tham gia, tức là tất cả các thực thể tham gia không thể chối bỏ hoặc phủ nhận những thao tác và cam kết đã được thực hiện
Hệ thống phải có biện pháp giám sát, đảm bảo một đối tượng khi tham gia trao đổi thông tin thì không thể từ chối, phủ nhận việc mình đã phát hành hay sửa đổi thông tin
I.3 Đánh giá về sự đe doạ, các điểm yếu của hệ thống và các kiểu tấn công
Trang 8I.3.1 Đánh giá về sự đe doạ
Về cơ bản có 4 mối đe doạ đến vấn đề bảo mật mạng như sau :
- Đe doạ không có cấu trúc (Unstructured threats)
- Đe doạ có cấu trúc (Structured threats)
- Đe doạ từ bên ngoài (External threats)
- Đe doạ từ bên trong (Internal threats)
I.3.2 Các lỗ hổng và điểm yếu của mạng
Các lỗ hổng bảo mật hệ thống là các điểm yếu có thể tạo ra sự ngưng trệ của
dịch vụ, thêm quyền đối với người sử dụng hoặc cho phép các truy nhập không hợp lệ vào hệ thống Các lỗ hổng có thể nằm ngay các dịch vụ như sendmail, Web, Ftp và ngay chính tại hệ điều hành như trong WindowsNT, Windows server, Unix hoặc trong các ứng dụng mà người sử dụng thường xuyên sử dụng như word processing, các hệ
databases…
Có nhiều tổ chức khác nhau tiến hành phân loại các dạng lỗ hổng đặc biệt Theo cách phân loại của Bộ quốc phòng Mỹ, các loại lỗ hổng bảo mật trên một hệ thống được chia như sau:
Lỗ hổng loại C: Cho phép thực hiện các phương thức tấn công theo kiểu từ
chối dịch vụ DoS (Denial of Services) Mức độ nguy hiểm thấp, chỉ ảnh hưởng chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống, không phá hỏng dữ liệu hoặc chiếm quyền truy nhập
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 thực hiện kiểm tra tính hợp lệ Mức độ nguy hiểm trung bình, những lỗ hổng loại này thường có trong các ứng dụng trên hệ thống, có thể dẫn đến lộ thông tin yêu cầu bảo mật
Lỗ hổng loại A: Cho phép người sử dụng ở ngoài có thể truy nhập vào hệ thống
bất hợp pháp Lỗ hổng loại này rất nguy hiểm, có thể làm phá huỷ toàn bộ hệ thống
Trang 9Hình 1-1: Các loại lỗ hổng bảo mật và mức độ nguy hiểm
I.3.3 Các kiểu tấn công
Tấn công trực tiếp
Những cuộc tấn công trực tiếp thường được sử dụng trong giai đoạn đầu để chiếm được quyền truy nhập bên trong Một phương pháp tấn công cổ điển là dò tìm tên người sử dụng và mật khẩu Đây là phương pháp đơn giản, dễ thực hiện và không đòi hỏi một điều kiện đặc biệt nào để bắt đầu Kẻ tấn công có thể dựa vào những thông tin mà chúng biết như tên người dùng, ngày sinh, địa chỉ, số nhà v.v để đoán mật khẩu dựa trên một chương trình tự động hoá về việc dò tìm mật khẩu Trong một
số trường hợp, khả năng thành công của phương pháp này có thể lên tới 30%
Phương pháp sử dụng các lỗi của chương trình ứng dụng và bản thân hệ điều hành đã được sử dụng từ những vụ tấn công đầu tiên và vẫn được tiếp tục để chiếm quyền truy nhập.Trong một số trường hợp phương pháp này cho phép kẻ tấn công có được quyền của người quản trị hệ thống
Nghe trộm
Việc nghe trộm thông tin trên mạng có thể đem lại những thông tin có ích như tên, mật khẩu của người sử dụng, các thông tin mật chuyển qua mạng Việc nghe trộm thường được tiến hành ngay sau khi kẻ tấn công đã chiếm được quyền truy nhập hệ thống, thông qua các chương trình cho phép Những thông tin này cũng có thể dễ dàng lấy được trên Internet
Giả mạo địa chỉ
Việc giả mạo địa chỉ IP có thể được thực hiện thông qua việc sử dụng khả năng dẫn đường trực tiếp Với cách tấn công này, kẻ tấn công gửi các gói tin IP tới mạng bên trong với một địa chỉ IP giả mạo (thông thường là địa chỉ của một mạng hoặc một máy được coi là an toàn đối với mạng bên trong), đồng thời chỉ rõ đường dẫn mà các gói tin IP phải gửi đi
Vô hiệu các chức năng của hệ thống
Đây là kểu tấn công nhằm tê liệt hệ thống, không cho nó thực hiện chức năng
mà nó thiết kế Kiểu tấn công này không thể ngăn chặn được, do những phương tiện được tổ chức tấn công cũng chính là các phương tiện để làm việc và truy nhập thông tin trên mạng
Lỗi của người quản trị hệ thống
Đây không phải là một kiểu tấn công của những kẻ đột nhập, tuy nhiên lỗi của người quản trị hệ thống thường tạo ra những lỗ hổng cho phép kẻ tấn công sử dụng để truy nhập vào mạng nội bộ
Trang 10Tấn công vào yếu tố con người
Kẻ tấn công có thể liên lạc với một người quản trị hệ thống, giả làm một người
sử dụng để yêu cầu thay đổi mật khẩu, thay đổi quyền truy nhập của mình đối với hệ thống, hoặc thậm chí thay đổi một số cấu hình của hệ thống để thực hiện các phương pháp tấn công khác Với kiểu tấn công này không một thiết bị nào có thể ngăn chặn một cách hữu hiệu, và chỉ có một cách giáo dục người sử dụng mạng nội bộ về những yêu cầu bảo mật để đề cao cảnh giác với những hiện tượng đáng nghi
Nói chung yếu tố con người là một điểm yếu trong bất kỳ một hệ thống bảo vệ nào và chỉ có sự giáo dục cộng với tinh thần hợp tác từ phía người sử dụng có thể nâng cao được độ an toàn của hệ thống bảo vệ
I.3.4 Các biện pháp phát hiện hệ thống bị tấn công
Không có một hệ thống nào có thể đảm bảo an toàn tuyệt đối, mỗi một dịch vụ đều có những lỗ hổng bảo mật tiềm tàng Người quản trị hệ thống không những nghiên cứu, xác định các lỗ hổng bảo mật mà còn phải thực hiện các biện pháp kiểm tra hệ thống có dấu hiệu tấn công hay không Một số biện pháp cụ thể :
1 Kiểm tra các dấu hiệu hệ thống bị tấn công : Hệ thống thường bị treo bằng những thông báo lỗi không rõ ràng Khó xác định nguyên nhân do thiếu thông tin liên quan Trước tiên, xác định các nguyên nhân có phải phần cứng hay không, nếu không phải hãy nghĩ đến khả năng máy tính bị tấn công
2 Kiểm tra các tài khoản người dùng mới lạ, nhất là với các tài khoản có ID bằng không
3 Kiểm tra sự xuất hiện của các tập tin lạ Người quản trị hệ thống nên có thói quen đặt tên tập theo mẫu nhất định để dễ dàng phát hiện tập tin lạ
4 Kiểm tra thời gian thay đổi trên hệ thống
5 Kiểm tra hiệu năng của hệ thống : Sử dụng các tiện ích theo dõi tài nguyên
và các tiến trình đang hoạt động trên hệ thống
6 Kiểm tra hoạt động của các dịch vụ hệ thống cung cấp
7 Kiểm tra truy nhập hệ thống bằng các tài khoản thông thường, đề phòng trường hợp các tài khoản này bị truy nhập trái phép và thay đổi quyền hạn mà người
sử dụng hợp pháp không kiểm soát được
8 Kiểm tra các file liên quan đến cấu hình mạng và dịch vụ, bỏ các dịch vụ không cần thiết
9 Kiểm tra các phiên bản của sendmaill, /bin/mail, ftp, tham gia các nhóm tin về bảo mật để có thông tin về lỗ hỏng của dịch vụ sử dụng
Các biện pháp này kết hợp với nhau tạo nên một chính sách về bảo mật đối với
hệ thống
Trang 11I.4 Bảo vệ thông tin 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 lớp “rào chắn” đối với các hoạt động xâm phạm Ngoài việc bảo vệ thông tin trên đường truyền, chúng ta còn phải bảo vệ thông tin được cất giữ trong các máy tính, đặc biệt là trong các máy chủ trên mạng Bởi thế ngoài một số biện pháp nhằm chống lại việc tấn công vào thông tin trên đường truyền, mọi cố gắng phải tập trung vào việc xây dựng các mức “rào chắn”
từ ngoài vào trong cho các hệ thống kết nối vào mạng Hình 1-2 mô tả các lớp “rào chắn” thông dụng hiện nay để bảo vệ thông tin trên mạng máy tính:
Hình 1-2: Các mức bảo vệ thông tin trên mạng máy tính
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 thông tin của mạng và quyền hạn của người sử dụng trên tài nguyên đó Hiện tại việc kiểm soát thường ở mức tệp
Lớp bảo vệ tiếp theo là đăng kí tên/ mật khẩu (login/password) Thực ra đây cũng là lớp 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 bảo vệ 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, kể cả người quản trị mạng muốn vào được mạng để sử dụng các tài nguyên của mạng đều phải đăng kí tên và mật khẩu trước Người quản trị mạng có trách nhiệm quản lí, kiểm soát mọi hoạt động của mạng
và xác định quyền truy nhập của những người sử dụng khác tùy theo thời gian và không gian, nghĩa là một người sử dụng chỉ được phép vào mạng ở những thời điểm
và từ những vị trí xác định Về lí thuyết, nếu mọi người đều giữ kín được tên và mật
Trang 12khẩu đăng kí của mình thì sẽ không xảy ra các truy nhập trái phép Song điều đó rất khó đảm bảo trong thực tế vì nhiều nguyên nhân, chẳng hạn như người sử dụng thiếu cẩn thận khi chọn mật khẩu trùng với ngày sinh, tên người thân hoặc ghi mật khẩu ra giấy…Điều đó làm giảm hiệu quả của lớp bảo vệ này Có thể khắc phục bằng nhiều cách như người quản trị có trách nhiệm đặt mật khẩu, thay đổi mật khẩu theo thời gian…
Để bảo mật thông tin truyền trên mạng, người ta sử dụng các phương pháp mã hóa Dữ liệu được 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 đó (lập mã) và sẽ được biến đổi ngược lại (dịch mã) ở nơi nhận Đây là lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng
Nhằm ngăn cản các truy nhập vật lý bất hợp pháp vào hệ thống Người ta thường dùng các biện pháp truyền thống như 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 (ngắt nguồn điện đến màn hình và bàn phím nhưng vẫn giữ liên lạc trực tuyến giữa máy tính với mạng, hoặc cài cơ chế báo động khi có truy nhập vào hệ thống) hoặc dùng các trạm không có ổ đĩa mềm…
Để bảo vệ từ xa một máy tính hoặc cho cả một mạng nội bộ, người ta thường dùng các hệ thống đặc biệt là tường lửa Chức năng của các tường lửa là ngăn chặn các thâm nhập trái phép (theo danh sách truy nhập xác định trước) và thậm chí có thể
“lọc” bỏ các gói tin mà ta không muốn gửi đi hoặc nhận vì những lí do nào đó Phương thức này được sử dụng nhiều trong môi trường mạng Internet
Trang 13CHƯƠNG II:TỔNG QUAN FIREWALL
II.1 Một số khái niệm
-Nguồn gốc từ một kỹ thuật thiết kế trong xây dựng để ngăn chặn hạn chế các hỏa hoạn, trong công nghệ thông tin, Firewall là một cơ chế đảm bảo an toàn cho mạng máy tính, nó bao gồm một hoặc nhiều những thành phần tạo lên bức tường lửa với mục đích để ngăn cản điều khiển các truy xuất giữa mạng bên ngoài với mạng nội
bộ Bức tường lửa có thể là một server proxy, filter, hoặc phần cứng, phần mềm…để hiểu chi tiết hơn về bức tường lửa ta sẽ xem xét về các chức năng của bức tường lửa
- Về mặt vật lý, thường có sự khác nhau từ nơi này qua nơi khác.Thông thường Firewall là tập phần cứng sau : một router,một Host hay một tổ hợp nào đó của routers,máy tính và mạng có các phần mềm thích hợp
- Về mặt logic, Firewall là bộ tách(Separator) vì nó phân định một bên là mạng ngoài không an toàn và bên kia là mạng nội bộ cần được bảo vệ, là bộ tách(Restricter) vì nó ngăn chặn sự tấn công từ bên ngoài, là bộ phân tích(Analyzer) vì nó xem xét các gói thông tin vào ra để quyết định cho vào ra hay không
- Về mặt tư tưởng nhằm giải quyết 2 công việc : Cửa khẩu(Gates) và chốt chặn(chokes) Cửa khẩu nhằm đảm bảo dữ liệu, dịch vụ thông suốt giữa các mạng Chốt chặn nhằm kiểm soát và ngăn chặn nguồn thông tin xác định nào đó vào ra mạng nội bộ
Tường lửa
Bộ lọc out
Các chính sách áp dụng cho người dùng nội bộ được phép ra mạng ngoài
Bộ lọc in
Các chính sách áp dụng cho người mạng ngoài Được dùng các dịch vụ của mạng nội bộ
Mạng ngoài Internet Mạng nội bộ
Hình 2-1: Mô hình tường lửa đơn giản
Trang 14-Nó kiểm soát người sử dụng truy cập giữa các mạng
-Kiểm soát theo nội dung truyền thông giữa mạng bên trong và mạng bên ngoài
-Ngăn cản, chặn những tấn công từ bên ngoài vào bên trong nội bộ
Một vài từ ngữ sử dụng trong firewall có ý nghĩa sau
- Mạng nội bộ (Internal network): bao gồm các máy tính, các thiết bị mạng Mạng máy tính thuộc các đơn vị quản lý (Trường học, Công ty, Tổ chức đoàn thể, Quốc gia,…) cùng nằm một bên với firewall
- Host bên trong (Internal Host): máy thuộc mạng nội bộ
- Host bên ngoài (External Host): máy bất kỳ kết nối vào liên mạng và không thuộc mạng nội bộ nói trên
- “Nội bộ ”hay “bên trong” chỉ rõ thuộc đơn vị cùng một bên đối với firewall của đơn vị đó
- Về vị trí: Firewall là nơi kiểm soát chặt chẽ và hạn chế về luồng thông tin vào
ra của một mạng nội bộ khi giao tiếp với các thành phần bên ngoài nó
- Về mục tiêu: nó ngăn cản đe dọa từ bên ngoài với những yêu cầu cần được bảo vệ, trong khi vẫn đảm bảo các dịch vụ thông suốt qua nó
Hình 2-2: Sơ đồ tổng quát của firewall
Trang 15II.2.1 Khả năng của hệ thống firewall
+ Một Firewall là một trung tâm quyết định những vấn đề an toàn: Firewall đóng vai trò là một chốt chặn, mọi dòng thông tin đi vào hay đi ra một mạng nội bộ đều phải qua nó theo các chính sách an toàn đã được cài đặt Tập trung kiểm soát chặt chẽ các dòng thông tin đó có lợi hơn là phân tán trên diện rộng
+ Một firewall làm cho chính sách an toàn trở nên hiệu quả thực sự: Nhiều dịch
vụ mà người sử dụng dịch vụ mong muốn vốn có những chỗ không an toàn Firewall chỉ cho đi qua sau khi đã kiểm nhận và được phép Mặt khác, firewall còn cho phép kiểm soát nghiêm ngặt mọi người sử dụng về quyền xâm nhập Internet Firewall có thể cấu hình đa dạng, nhiều mức khác nhau Do đó, Firewall có thể bảo đảm thích hợp cho một chính sách an toàn đã chọn
+ Firewall có thể ghi nhận lại các giao tiếp với Internet rất hiệu quả: Như đã nói ở trên, mọi luồng thông tin vào hay ra mạng nội bộ đều phải qua Firewall Do đó, nó cung cấp một vị trí tốt nhất để tập hợp những thông tin về hệ thống và mạng đã dùng Ghi nhận điều gì xẩy ra trong giao tiếp giữa mạng nội bộ và bên ngoài Những thông tin đó rất quý giá cho những nguời có trách nhiệm quản lý
+ Firewall có thể hạn chế được sự đổ vỡ của hệ thống bên trong: Firewall có thể tách một phần mạng nội bộ với các phần khác trong mạng nội bộ Làm điều này nhằm mục đích có những phần được ủy quyền nhiều hơn Do đó, hạn chế được những nguy hiểm xẩy ra hơn
II.2.2 Những hạn chế của firewall
Tuy có những khả năng trên, xong mô hình Firewall có những hạn chế nhất định sau:
+ Firewall không thể bảo vệ trước những kẻ phá hoại từ bên trong, đánh cắp dữ liệu làm hư hỏng phần cứng và phần mềm hay thay đổi chương trình mà không cần đến Firewall
+ Firewall không thể ngăn chặn một cuộc tấn công nếu cuộc tấn công này không
đi qua nó Một cách cụ thể, Firewall không thể chống lại một cuộc tấn công từ một đường dial-up, hoặc sự dò rỉ thông tin do dữ liệu bị sao chép bất hợp pháp lên đĩa mềm
+ Firewall không thể bảo vệ chống lại những mối đe dọa mới phát sinh vì nó không thể tự động bảo vệ trước những mối đe dọa mới phát sinh Do đó, khi có những vấn đề mới cần cấu hình lại cho Firewall
+ Firewall không thể bảo vệ chống lại virus Firewall hầu hết chỉ xem xét địa chỉ nơi gửi, nơi đến, số cổng của gói thông tin chứ không xem chi tiết phần dữ liệu ngay cả các phần mềm lọc gói thông tin Firewall không thể làm nhiệm vụ quét virus trên dữ liệu được chuyển qua nó do sự xuất hiện của các virus mới và do có rất nhiều cách để mã hóa dữ liệu thoát khỏi sự kiểm soát của Firewall Do đó, chống virus bằng
Trang 16Firewall là vấn đề không khả thi, vì có quá nhiều loại virus và có quá nhiều cách virus
ẩn trong dữ liệu
Tuy nhiên Firewall vẫn là giải pháp hữu hiệu nhất được áp dụng rộng rãi
II.2.3 Một số mô hình Firewall dùng cho doanh nghiệp vừa và nhỏ
Với các doanh nghiệp nhỏ việc trang bị một mạng tác nghiệp vừa phải đảm bảo
an ninh an toàn, vừa phải phù hợp chi phí, và dễ triển khai và bảo trì là điều rất cần thiết Ở đây chúng ta đưa ra giải pháp dùng một thiết bị PC đa chức năng làm tường lửa để bảo vệ vành đai, chạy IDS để cảnh báo tấn công, chạy NAT để che cấu trúc logic của mạng, chạy VPN để hỗ trợ kết nối xa bảo mật với các cấu hình cơ bản sau:
Hình 2-3: Firewall trong mô hình mạng cho doanh nghiệp cỡ nhỏ
Với các doanh nghiệp vừa thì sơ đồ trên phù hợp cho các chi nhánh của họ
Trang 17Còn tại trung tâm mạng có thể thực hiện sơ đồ an ninh nhiều tầng như:
Hình 2-4: Firewall trên mô hình mạng cho doanh nghiệp cỡ vừa
II.3 Phân loại bức tường lửa (Firewall)
Firewall bao gồm các loại sau :
Bức tường lửa lọc gói tin (packet-filtering router)
Bức tường lửa ứng dụng (proxy)
Bức tường lửa nhiều tầng
Mạng phòng kinh doanh
Mạng công cộng INTERNET
DMZ - Mạng ngoài cho giao dịch
Mạng trong
Tường lửa bên trong IDS,IPS VPN server Anti virus server Máy chủ web
Đoạn mạng bảo vệ 2 tầng Đảm bảo anh ninh chiều sâu
Tường lửa Tiền tiêu
Mạng chi nhánh
Router Mạng văn phòng
Trang 18II.3.1 Firewall lọc gói
Hình 2-5: Firewall lọc gói
Bức tường lửa lọc gói làm việc ở tầng 3 đối với mô hình OSI Thông tin được đưa lên tầng 3 sau đó lại tiếp tục được chuyển đi Nếu thông tin được ở dưới tầng 3 thì bức tường lửa không thể kiểm soát được, ví dụ như mạng LAN không dây dữ liệu được truyền ở dưới tầng 3 Do vậy, bức tường lửa không thể kiểm soát được mà mạng LAN không dây phải dùng một phần mềm khác để bảo vệ và kiểm soát dữ liệu
Bộ lọc gói cho phép hay từ chối mỗi gói mà nó nhận được Khi nhận được gói tin từ Internet, nó kiểm tra toàn bộ dữ liệu để quyết định xem đoạn dữ liệu đó có thỏa mãn một trong các luật lệ của gói đặt ra hay không Nó dựa trên thông tin ở đầu mỗi gói (packet header) trong một số trường hợp:
- SA (Source Address): địa chỉ IP nguồn
- DA(Destination Address): địa chỉ IP đích
(Nếu đi từ bên trong ra bên ngoài thì địa chỉ nguồn là ở bên trong mạng nội bộ còn địa chỉ đích là bên ngoài Nếu đi từ bên ngoài vào bên trong thì địa chỉ nguồn sẽ
là ở bên ngoài còn địa chỉ đích sẽ là ở bên trong mạng nội bộ)
The Internet
router
M¹ng néi bé Bªn trong
Trang 19- Port: lọc theo cổng nguồn, cổng đích của giao thức tương ứng với TCP hay UDP
- Các giao thức (UDP, TCP, ICMP…): nó có thể cấm và cho phép, ví dụ có thể cấm giao thức UDP và chỉ cho TCP và ICMP hoặc Cấm ICMP cho phép TCP và UDP…
- Dạng thông điệp ICMP (Internet control message protocol)
Nếu luật được thỏa mãn thì gói được chuyển qua firewall, nếu không thỏa mãn thì gói sẽ bị hủy đi Nhờ vậy mà firewall có thể ngăn chặn được các kết nối vào máy chủ hoặc mạng nào đó được xác định hoặc khóa việc truy nhập vào hệ thống mạng nội
bộ từ những địa chỉ không cho phép Như vậy, việc kiểm soát càng làm cho firewall có khả năng chỉ cho phép một một số loại kết nối nhất định vào máy chủ nào đó hoặc chỉ một số dịch vụ nào đó (Telnet, SMNP, FTP…) được phép mới chạy được trên hệ thống mạng cục bộ
Mặc dù firewall loại này có tốc độ kiểm tra nhanh nhưng chúng cũng tương đối
dễ bị qua mặt Một phương pháp để vượt qua firewall kiểu này là giả mạo địa chỉ IP (IP spoofing), ví dụ như trong hệ thống mạng của một công ty, khi một người nào đó
đi công tác ở xa nhưng vẫn phải truy nhập vào mạng của công ty để lấy dữ liệu Khi đó, firewall vẫn phải mở các dịch vụ để người đó vào lấy dữ liệu và nhân cơ hội này thì hacker ăn trộm địa chỉ IP và tấn công vào mạng và làm cho firewall tưởng rằng các gói của hacker đến từ nguồn thực sự
Loại router được sử dụng trong Firewall để làm Pactket Filtering được xem như là một Sreening router
- Một số khác nhau giữa router bình thường và Screening router: router bình thường thì chọn đường đi tốt nhất để gửi gói tin Screening router thì xem xét gói tin
kỹ hơn, nó xác định một gói có được gửi đi hay không bởi chính sách bảo mật của nó
Một số ưu điểm của lọc gói
- Do bức tường lửa lọc gói ở tầng 3 nên nó kiểm tra tất cả các ứng dụng đi qua nó Nó không phụ thuộc vào ứng dụng mặc dù của mail hay web
- Chi phí thấp vì cơ chế lọc gói đã được bao gồm trong mỗi phần mềm router
và nó chỉ xem xét thông tin của đầu gói tin, do đó thời gian trì hoãn thấp
- Sẵn sàng cho nhiều sản phẩm phần mềm và phần cứng, cả trong các sản phẩm thương mại và miễn phí
- Ngoài ra bộ lọc gói là trong suốt đối với người sử và các ứng dụng vì vậy nó không yêu cầu sự huấn luyện đặc biệt nào cả
- Giúp bảo vệ toàn mạng, một thuận lợi chính của nó là đơn giản và tương đối nhẹ
Một số nhược điểm của lọc gói
- Việc định nghĩa các chế độ lọc gói là một việc khá phức tạp, nó đòi hỏi người quản trị cần có các hiểu biết về các dịch vụ Internet, các dạng packet header, và
Trang 20các giá trị cụ thể mà họ có thể nhận trên mỗi trường Khi đòi hỏi sự lọc là càng lớn thì các quy tắc về lọc gói càng trở lên dài và phức tạp, rất khó để quản lý và điều khiển
- Do làm việc dựa trên header của gói tin, bộ lọc gói không kiểm soát được nội dung thông tin của gói tin Các gói tin chuyển qua vẫn có thể mang theo những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu
II.3.2 Bức tường lửa ứng dụng(Application firewall)
Hình 2-6: Bức tường lửa ứng dụng
Làm việc ở tầng 7 của mô hình OSI Nếu TCP thì nó làm việc ở tầng dịch vụ Nó không kiểm soát được thông tin ở tầng ứng dụng
Nguyên tắc hoạt động chung:
- Firewall này được thiết lập từ phần mềm ứng dụng
- Không chuyển tiếp các gói tin IP
- Tốc độ xử lí chậm
- Mỗi một dịch vụ phải có kết nối chương trình tương ứng: ví dụ đối với web thì phải có kết nối tương ứng để quản lí web và chương trình tương ứng để cho phép hay cấm, đối với mail thì cũng phải có kết nối tương ứng để quản lí mail và chương trình tương ứng để cho phép hay cấm
- Vì nó làm việc ở tầng ứng dụng do đó nó cho phép nhiều công cụ ghi lại quá trình kết nối
- Do quản lí kết nối nên các chương trình yêu cầu dịch vụ của client gốc có thể phải thay đổi để thích ứng với proxy
- Quá trình kết nối được thực hiện theo kiểu đại diện chính vì vậy firewall kiểu này người ta còn gọi là proxy
Trang 21Hình 2-7: Mô hình 1 Proxy đơn giản Proxy có hai thành phần:
- Proxy Server: là chương trình ứng sử với server bên ngoài thay mặt cho các yêu cầu của người sử dụng bên trong Nó chuyển tiếp các yêu cầu hợp lệ của mọi người sử dụng và quyết định cái nào cho qua, cái nào ngăn lại
- Proxy Client: là chương trình của người sử dụng làm việc với Proxy server thay vì với server thực
Một số ưu điểm của Proxy
- Dịch vụ Proxy có thể ghi lại nhật ký thông tin rất tốt, bởi vì nó hiểu được giao thức ứng dụng Có thể ghi lại những hoạt động theo cách hữu hiệu nhất, chỉ ghi lại những lệnh đã phát ra và nhận lại
- Dịch vụ Proxy có thể lưu trữ lại các dữ liệu đã được yêu cầu, để giảm bớt khả năng hoạt động và giảm bớt tải trên đường liên kết mạng khi có yêu cầu đến cùng
dữ liệu
- Dịch vụ Proxy có thể làm packet filtering thông minh, có khả năng lọc kiểu nội dung của dịch vụ Web (loại bỏ Javascript,…) và nhận biết virus tốt hơn hệ thống packet filtering
- Dịch vụ proxy có thể xác thực người sử dụng (packet filtering có thể nhưng khó khăn)
- Dịch vụ Proxy có thể bảo vệ các máy bên trong trước các packet nguy hiểm
- Các dịch vụ Proxy chậm hơn các dịch vụ không có Proxy, độ chậm phụ thuộc vào dịch vụ được thiết kế Ngoài ra, khi một phần mềm Proxy đang có hiệu lực
mà hệ thống cần dịch vụ mới, có thể ngoài tầm kiểm soát của nó (lỗ hổng an toàn mới), do đó cần phần mền Proxy mới
- Dịch vụ Proxy có thể đòi hỏi nhiều server khác nhau cho mỗi dịch vụ vì proxy Server phải hiểu giao thức đó để xác định cái gì được phép và cái gì không được phép
Trang 22- Dịch vụ Proxy thường đòi hỏi biến đổi ứng dụng, thủ tục, trừ khi ứng dụng được thiết kế cho proxy Hạn chế của biến đổi này là không thể luôn sử dụng dễ dàng
như bình thường
Hình 2-8: Mô hình hoạt động Firewall truyền thống
Hình vẽ trên cho chúng ta thấy rõ một vấn đề lớn của hệ thống: luồng dữ liệu kết nối Web ( sử dụng giao thức HTTP) từ bên ngoài vào bên trong,truy xuất tới hệ thống dữ liệu Database mà không có sự “giám sát nội dung” của Firewall Tìm hiểu rõ hơn về cơ chế hoạt động của Firewall truyền thống, chúng ta thấy được một điều là các thiết bị này hoạt động chủ yếu ở 4 tầng đầu tiên trong mô hình IOS, trong khi đó hầu hết các ứng dụng được xây dựng trong hệ thống mạng tuân thủ 3 lớp trên cùng Đây là nguyên nhân khiến Firewall không thể kiểm soát được nội dung của các kết nối
từ Web vào Database
WAF là giải pháp bảo mật toàn diện và mạnh mẽ dành cho các ứng dụng Web.WAF đưa ra một phương thức phòng vệ chống lại các hoạt động như tin tặc, khai thác các lỗ hổng về giao thức Bên cạnh đó, WAF còn cảnh báo cho bạn về những lỗi ứng dụng mà các hacker có thể khai thác, đánh cắp thông tin, gây lỗi từ chối dịch vụ hoặc làm thay đổi giao diện trang web của bạn
Tăng khả năng hiển thị của lưu lượng website
Xu hướng ứng dụng giải pháp WAF:
Bạn không thể bảo vệ những cái bạn không thấy
Trang 23 Bạn cần phải có một cái nhìn tốt hơn vào lưu lượng của tầng ứng dụng
Đây luôn là thành phần mà đội ngũ điều hành bảo mật không thấu hiểu
WAF sẽ giám sát và phát hiện những cuộc tấn công nhằm gây tổn hại vào hệ thống từ người dùng
WAF cung cấp một cách hiển thị tốt hơn đối với những sự kiện bảo mật trong hệ thống
Như một sản phẩm WAF hoàn chỉnh, bạn có thể mong đợi rằng WAF sẽ cập nhật những lỗ hổng theo thời gian thực bởi công cụ bảo mật ứng dụng web của bạn, nhờ đó có thể chủ động ngăn chặn những cuộc tấn công mới được phát hiện
Một phần khó vận dụng ở đây đó là bạn cần có sự giúp đỡ của những người trong ban điều hành bảo mật để bạn có thể triển khai thành công WAF vào trong môi trường kinh doanh
Hình 2-9: Mô hình ứng dụng WAF
Trang 24II.3.3 Bức tường lửa nhiều tầng
Hình 2-10: Firewall nhiều tầng
- Kết hợp từ tầng 3 với tầng ứng dụng, có thể cấm và cho phép ở tầng phiên, tầng trình, tầng giao vận Đối với bức tường lửa lọc gói ngoài những thông số kiểm soát như địa chỉ nguồn, địa chỉ đích, cổng nguồn, cổng đích, giao thức tầng trên (TCP, UDP, ICMP) thì còn có bức tường lửa phân tích chi tiết hơn về gói tin Ví dụ ACK, ACK=0 (khởi động một kết nối của gói tin đầu của kết nối), ACK=1 (là các gói theo sau).ACK=0, SYN =1 (Yêu cầu kết nối); ACK=1,SYN=1 (trả lời kết nối) Kiểm tra chi tiết về gói tin để bảo vệ hệ thống tốt hơn, chống các dịch vụ từ bên ngoài
Tất cả những điều trên đã giới thiệu sơ qua về bức tường lửa, để hiểu được chi tiết bức tường lửa nó hoạt động như thế nào, được xậy dựng như thế nào, và bức tường lửa có những loại kiến trúc nào thì chúng ta cùng đi vào phần hai “kiến trúc cơ bản và hoạt động của bức tường lửa”
II.4 Một vài kiến trúc firelwall
II.4.1 Screening Router
- Screening Router là một kiểu Firewall đơn giản, chỉ gồm một router sử dụng cơ chế packet filtering
- Screening Router bảo vệ cho toàn mạng, có giá thành thấp
- Screening Router không linh động có thể cho phép hoặc ngăn cấm các giao thức bởi số hiệu cổng
- Screening Router không cho phép phòng thủ chiều sâu khi nó bị tổn thương hay có lỗi an toàn thì toàn bộ hệ thống dễ dàng bị tổn thương
Trang 25Hình 2-11: Kiến trúc Screening Router
II.4.2 Dual-Homed Host
- Firewall kiểu kiến trúc Dual-Homed Host được xây dựng trên máy tính Dual-Homed Host Một máy tính Dual-Homed Host có tối thiểu hai giao diện, một giao diện để kết nối với bên ngoài và một giao diện để kết nối với bên trong (mạng nội bộ)
- Chức năng đầu tiên của nó hoạt động như bộ định tuyến
- Khi giữ vai trò bức tường lửa, nó không thể thực hiện được chức năng định tuyến mà thay vào đó là chức năng phân tích gói tin
- Các gói tin IP thì truyền giữa mạng trong và mạng ngoài
- Dual-Homed Host là một điểm bảo vệ không có chiều sâu, nên sự an toàn của các máy bên trong phải rất hoàn hảo Nếu Dual-Homed Host bị tổn thương thì toàn bộ mạng bên trong sẽ bị tổn thương
- Máy chủ trung gian có thể cung cấp các dịch vụ như Proxy Nó thường tốt cho những người sử dụng bên trong mạng nội bộ truy cập Internet hơn là những người
sử dụng trên Internet truy cập tài nguyên bên trong mạng nội bộ
m¸y néi bé
Trang 26Hình 2-12: Cấu trúc firewall Dual Home Host
II.4.3 Bastion Host (máy chủ pháo đài)
- Máy chủ pháo đài thuộc mạng nội bộ, nó chỉ có một giao diện để kết nối với một mạng nội bộ
- Máy tính có cấu hình bảo mật ở mức độ bảo mật cao Trên nó được cài các phần mềm bảo vệ ví dụ như Proxy trên firewall Mọi thông tin từ bên ngoài muốn đưa vào bên trong đều phải qua máy chủ pháo đài hay mọi thông tin từ bên trong ra bên ngoài cũng qua máy chủ pháo đài
- Đặt ở điểm mà mạng nội bộ kết nối với Internet: đối mặt chính với các kẻ tấn công truy nhập
m¸y néi bé
Trang 27
Hỡnh 2-13: Kiến trúc Bastion Host
II.4.4 Screened host (mỏy chủ sàng lọc)
- Cả server và router đều là thành phần của bức tường lửa
- Về cấu trúc thì mỏy chủ sàng lọc có một router và một mỏy chủ để lọc thụng tin
- Chức năng an ninh cơ bản là do bộ lọc
- Mỏy chủ nội bộ chỉ được phép kết nối Internet đối với một số dịch vụ hạn chế
- Phần lớn cỏc mỏy nội bộ phải sử dụng cỏc dịch vụ đại diện trờn cỏc mỏy chủ nội bộ
- Khi mỏy chủ có lỗ hổng an ninh thì thì mạng nộ bộ rễ bị tấn cụng
- Nếu trường hợp router bị đỏnh thủng thì server nằm ngay trong mạng nội bộ
bị tổn thương và chớnh vì vậy mạng nội bộ bị ảnh hưởng
Hỡnh 2-14: Kiến trúc Screened host
Internet
Mạng trung gian
Mạng nội bộ
Touter ngoài
Router trong
Pháo đài Host
Trang 28II.4.5 Mô hình Demilitarized Zone (DMZ – khu vực phi quân sự) hay Screened-subnet Firewall
- Screened Subnet dẫn xuất từ kiến trúc Screened host bằng cách thêm vào một tầng an toàn gọi là mạng ngoại vi (Perimeter network), nhằm cô lập mạng nội bộ
ra với mạng bên ngoài và cô lập Bastion host bằng cách đặt chúng trên mạng ngoại vi, nhằm tránh sự lay lan khi bastion bị tổn thương
- Screened Subnet có hai router
- Rrouter ngoài được cấu hình để bảo vệ các máy chủ pháo đài và bộ định tuyến trong và mạng nội bộ
- Các máy chủ pháo đài phục vụ như một điểm chính của mạng nội bộ liên hệ với các mạng Internet
- Router trong ngăn cách máy chủ pháo đài với mạng nội bộ, khi hệ thống bảo mật trên pháo đài bị tổn thương thì máy chủ pháo đài cũng không thể bị lợi dụng làm bàn đạp để tấn công vào mạng nội bộ vì trong mạng nội bộ đã có một router trong bảo vệ Như vậy Screened Subnet đã tạo nên một tầng bảo vệ lớn
- Bastion host trong mạng ngoại vi là điểm tiếp xúc của kết nối đi vào từ bên ngoài Ngoài ra nó còn phục vụ cho các máy bên trong truy cập mạng bên ngoài theo một vài hướng sau:
Có thể cài đặt cả router giao tiếp với Internet và router giao tiếp với mạng nội bộ là packet filtering, điều này cho phép mạng nội
bộ truy cập trực tiếp mạng bên ngoài
Có thể cài đặt một Proxy server trên một bastion host và mạng nội
bộ từ Internet, điều này cho phép các mạng nội bộ truy nhập mạng bên ngoài gián tiếp
- Router trong (Interior router) nó có chức năng packet filtering Các dịch vụ
mà router trong cho phép giữa Bastion host và mạng nội bộ, giữa mạng bên ngoài và mạng nội bộ không nhất thiết phải giống nhau Giới hạn giữa dịch vụ bastion host và mạng nội bộ nhằm làm giảm số lượng máy có thể bị tấn công khi bastion host bị tổn thương
Trang 29Hình 2-15 Cấu trúc firewall Screen Subnet
Trong các kiến trúc trên thì kiến trúc Screened Subnet được sử dụng nhiều nhất hiện nay Trong mỗi một cơ quan bao giờ giờ cũng có một trang web để giới thiệu với bên ngoài và phải có giao dịch với bên ngoài Do đó, họ phải dùng kiến trúc bưc tường lửa có kiểu Screened Subnet thì mới an toàn vì nếu dùng cấu trúc khác thì khi tin tặc tấn công được vào server thì mạng nội bộ sẽ bị tổn thương, có thể dẫn đến tê liệt mạng hoàn toàn Chính vì vậy, mỗi một cơ quan nên sử dụng bức tường lửa có cấu trúc Screened Subnet là hợp lí nhất
The Internet
Bªn ngoµi Packet filtering
router Bªn trong
Information server
Bastion host
DMZ
Trang 30Kết Chương
Trong Chương vừa rồi chúng ta đã tìm hiểu về Firewall, và đó là tập hợp thành phần làm nhiệm vụ ngăn cản hay điều khiển việc truy xuất giữa mạng ngoài và mạng nội bộ
FIREWALL được chia làm hai loại là Firewall ứng dụng và Firewall mức mạng Firewall mức ứng dụng kiểm tra các lưu thông chi tiết hơn Firewall mức mạng
và duy trì nhiều mô hình bảo mật hơn Firewall mức mạng nhưng lại thiếu tính trong suốt và khó hiểu
Có rất nhiều mô hình kiến trúc Firewall khác nhau mà người thiết kế mạng nên
áp dụng các mô hình đó như thế nào đối với những bài toán cụ thể được đặt ra cho những yêu cầu khác nhau về tính bảo mật của cơ quan Nhưng những thiết kế vẫn chủ yếu dựa trên các kiến trúc cơ bản đó là kiến trúc Dual Home Host, Screen Host và Screen Subnet
Trên hệ điều hành Windows có rất nhiều công cụ quản trị mạng giúp các nhà quản trị có thể bảo vệ mạng của mình rất hữu hiệu Nhưng một giải pháp cho việc xây dựng mạng truy cập Internet ổn định là dùng server chạy trên hệ điều hành Linux Hiện nay linux đang được coi là một trong những hệ điều hành tốt nhất trong môi trường mạng, giải pháp này giúp giảm chi phí đầu tư về phần cứng cho server, tăng tốc độ của mạng cục bộ và đảm bảo môi trường mạng chạy ổn định Để có thể xây dựng được các chương trình bảo vệ mạng trong Linux, trước tiên chúng ta cần thực hiện việc cài đặt và cấu hình chương trình bảo vệ mạng vào trong hệ điều hành Linux
Ở đây cụ thể là chương trình Iptables trong Linux
Trang 31CHƯƠNG III: NETFILTER/IPTABLES TRONG LINUX
III.1 Giới thiệu
Trong môi trường Linux, phần mềm Firewall phổ biến nhất là Iptables, thông qua nó chúng ta có thể dễ dàng hiểu được nguyên lý hoạt động của một hệ thống Firewall nói chung Iptables do Netfilter Organization viết ra để tăng tính năng bảo mật trên hệ thống Linux Iptables cung cấp các tính năng sau:
Tích hợp tốt với Kernel của Linux, để cải thiện sự tin cậy và tốc độ chạy Iptables
Có khả năng phân tích package hiệu quả Điều này cho phép Firewall theo dõi mỗi một kết nối thông qua nó, và dĩ nhiên là xem xét nội dung của từng luồng dữ liệu để từ đó tiên liệu hành động kế tiếp của các giao thức Việc này rất quan trọng trong việc hỗ trợ các giao thức FTP, DNS…
Lọc package dựa vào MAC và một số flag trong TCP Header Điều này giúp ngăn chặn việc tấn công bằng cách sử dụng các gói dị dạng (malformed packets) và ngăn chặn việc truy cập từ nội bộ đến một mạng khác bất chấp IP của nó
Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống
Cung cấp kĩ thuật NAT Hỗ trợ việc tích hợp các chương trình Web proxy, ví dụ như Squid
Có khả năng ngăn chặn một số cơ chế tấn công kiểu DoS
Hình 3-1: Vị trí của iptables trong một Firewall Linux Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân Iptables chịu trách nhiệm giao tiếp giữa người dùng và Netfilter để đẩy các luật của người dùng vào cho Netfiler xử lí Netfilter tiến hành lọc các gói dữ liệu ở mức IP Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ của
hệ thống Nó là một giải pháp lọc gói tin mới, cao cấp hơn so với những gì có sẵn đối với Linux Kernel trước 2.4x Netfilter cung cấp 1 số ưu điểm và hiện nay nó đã trở
Trang 32thành một giải pháp mạnh mẽ và hoàn thiện hơn để giúp bạn bảo vệ các mạng cộng tác
Tuy nhiên, Netfilter cũng không phải là một giải pháp hoàn toàn mới Nó là một khung làm việc để xử lý các gói tin khi chúng đi qua các thành phần của Kernel Netfilter bao gồm:
Xây dựng bức tường lửa dựa trên cơ chế lọc gói stateless và stateful
Dùng bảng NAT và masquerading chia sẻ sự truy cập mạng nếu không có đủ địa chỉ mạng
Dùng bảng NAT để cài đặt transparent proxy
Có khả năng theo dõ sự kết nối, có khả năng kiểm tra nhiều trạng thái của packet Nó làm việc này cho UDP và ICMP tốt nhất là kết nối TCP, thí dụ tình trạng đầy đủ của lọc ICMP chỉ cho phép hồi âm khi có yêu cầu phát đi, chứ không chặn các yêu cầu nhưng vẫn chấp nhận hồi âm với giả sử rằng chúng luôn đáp lại lệnh ping Sự hồi âm không do yêu cầu có thể là tín hiệu của sự tấn công hoặc cửa sau
Xử sự đơn giản của các packet thoả thuận trong các chains (một danh sách các nguyên tắc) INPUT, OUTPUT, FORWARD Trên các host có nhiều giao diện mạng, các packet di chuyển giữa các giao diện chỉ trên chain FORWARD hơn là trên 3 chain
Phân biệt rõ ràng giữa lọc packet và NAT (Nework Address Translation)
Có khả năng giới hạn tốc độ kết nối và ghi nhật ký Bạn có thể giới hạn kết nối và ghi nhật ký ồ ạt để tránh sự tấn công từ chối dịch vụ (Deinal of service)
Có khả năng lọc trên các cờ và địa chỉ vật lý của TCP
Là một Firewall có nhiều trạng thái, nên nó có thể theo dõi trong suốt sự kết nối, do đó nó an toàn hơn Firewall có ít trạng thái
Iptables bao gồm một vài bảng, mỗi bảng với một chính sách (police) mặc định và các nguyên tắc trong chain xây dựng sẵn
Bên cạnh Iptables chúng ta cũng có những công cụ để dựng Firwall như Shorewall, Ipcop, fwbuider…
Shoreline Firewall với tên gọi phổ biến hơn là Shorewall, là 1 công cụ cấp cao
để cấu hình Netfilter Nó mô tả những yêu cầu từ Firewall/Gateway của hệ thống bằng cách sử dụng một bộ các quy tắc trong file cấu hình Shorewall đọc những tập tin cấu hình đó với sự hỗ trợ của Iptables, Iptables-save, Ip và những tiện ích Tc; shorewall cấu hình Netfilter và hệ thống Linux nhỏ hơn để kết nối những yêu cầu của hệ thống Shorewall có thể được sử dụng trên 1 hệ thống Firewall chuyên dụng, 1 gateway/router/server đa chức năng hay trên 1 hệ thống GNU/Linux độc lập Việc dùng Shorewall cấu hình sẽ dễ dàng hơn là gõ lệnh trong Iptables và cả 2 công cụ này
Trang 33đều tác động xuống Netfilter trong Kernel Tuy nhiên Shorewall có 1 số hạn chế so với Iptables (Iptables hỗ trợ String, lọc ICMP vào,loại bỏ quét cổng TCP và UDP, phát hiện quét cổng bằng Nmap…)
Ipcop thì là 1 phần được cắt ra từ Linux và có khả năng hoạt động như 1
Firewall, và nó chỉ có khả năng hoạt động như 1 Firewall Nó có những tính năng cao
cấp của Firewall, bao gồm VPNs sử dụng Ipsec Ipcop với tính năng chính là như 1 hệ
thống Firewall cho các văn phòng nhỏ hay cho gia đình Ipcop là 1 hệ thống phần
mềm Firewall hoàn thiện, tự hoạt động trên máy tính cùng với hệ điều hành riêng của
nó được cài đặt Tuy nhiên, nó không đơn giản để đóng gói như Ipchains hay những
công cụ để quản trị qua web Nó không chỉ là 1 dịch vụ bảo mật được thêm vào hệ
thống mà nó được hoạt động riêng biệt trên 1 máy tính; là 1 hệ điều hành hoàn chỉnh
với tính năng Firewall và người dùng sử dụng nó như 1 Internet Gateway
Fwbuilder (Firewall Builder) dùng để cấu hình danh sách truy cập router
Fwbuilder là giao diện đồ họa nhằm hộ trợ quản lý và cấu hình các tường lửa diện
rộng như Linux Iptables, BSD pf, Cisco ASA/PIX
Hình 3-2: Giao diện Firewall Builder
Có rất nhiều công cụ dựng Firewall nhưng trong bài này chúng ta sẽ đi sâu
nghiên cứu về Iptables
III.2 Tính năng của Iptables
Trang 34Tiền thân của Iptables là ipchain dành cho Kernel 2.2.x Một trong những điểm cải tiến quan trọng là Iptables có thể thực hiện Stateful Packet Filtering Với khả năng này, nó có thể theo dấu các kết nối TCP đã hình thành
Kết nối TCP bao gồm 1 chuỗi các packet chứa thông tin về địa chỉ mã nguồn, địa chỉ đích, cổng nguồn, cổng đích và 1 con số (sequence number) để tập hợp packet lại mà ko mất dữ liệu TCP là giao thức hướng kết nối (connection-oriented), ngược với UDP là giao thực phi kết nối (connectionless)
Bằng cách theo dõi header của packet TCP, bộ lọc Stateful có thể xác định packet TCP nhận được có phải là một phần của kết nối đã tạo ra hay không và quyết định xem chấp nhận hay hủy bỏ packet đó
Với bộ lọc Stateless, có thể đánh lừa bộ lọc chấp nhận packet mà lẽ ra nên hủy bằng cách xử lý header của packet TCP Có thể thực hiện điều đó bằng cách điều chỉnh Syn-flag hoặc các flag khác trong header packet TCP để các packet xấu xuất hiện như một phần của kết nối (vì bộ lọc packet bản thân nó không thể theo dõi các kết nối) Với bộ lọc packet stateful, có thể hủy bỏ những packet như thế vì nó không thuộc về kết nối đã có Nó sẽ giúp chấm dứt khả năng bị “stealth scan”, một loại quét cổng và trình quét gửi các packet với flag rất ít khả năng bị log lại từ firewall so với các packet thông thường
Iptables còn cung cấp 1 số tính năng khác như NAT và rate limit Rate limit đặc biệt hữu dụng khi chống DoS như Syn flood
Kết nối TCP được thiết lập bằng cái gọi là bắt tay ba đường, Khi thiết lập kết nối TCP, phía client gửi một packet đến server mới flag Syn Khi phía server nhận được packet Syn, nó trả lời bằng cách gửi packet Syn+ack ngược lại Khi phía client nhận được Syn+ack, nó sẻ gửi trả lời bằng packet ACK để xác nhận thành lập kết nối
Hình 3-3: Quá trình “bắt tay ba đường”