Chương 2: GIỚI THIỆU VỀ IPTABLE
2.2. Các chiến lược xây dựng Firewall
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.
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
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
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
Khi muốn xâm nhập vào hệ thống, kẻ đột nhập 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
Một nguyên tắc nền tảng khác của an toàn là “hỏng trong an toàn”, 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.
Dự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:
- 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.
- Default Permit Stance: Chú 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ý sử dụng quy tắc cho phép mặc định 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 permit stance”.
2.2.6. Tính đa dạng
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. Xong đổ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.3. Cách thức xây dựng Firewall
Trong quá trình xây dựng một firewall đò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
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. 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 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
Một tường lửa phải có các chính sách an toàn 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 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, 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 vụ cơ bản như Mail, HTTP,… còn lại ngăn cấm hoàn toàn dịch vụ truyền tệp FTP.
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 - DMZ). DMZ là một mạng tách biệt nơi mà ta sẽ đặt các hệ thống các máy chủ như: DNS Server, Web Server, Mail Server… Nhằm nâng cao tính bảo mật cho các máy chủ trong hệ thống mạ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à DMZ không được bảo vệ. DMZ đượ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 DMZ được bảo vệ, vì nơi đó là nơi chúng ta thường đặt cả Web Server và Mail Server.
2.3.4. Thứ tự các quy tắc trong bảng
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 bảo mật ở tường lửa của chúng ta. Có nhiều quy tắc có cấp độ tương tự như nhau như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à
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 đó thỏa 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 thỏa đáng thì gói tin đó sẽ bị từ chối. 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
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… đều cho phép.
Lockdown (): Hạn chế tất cả không cho phép một sự xâ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ự xâ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.
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.
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 đó đượ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.
DNS Access (): Mô hình và các thành phần của tường lửa.