3.2.1. Cơ chế lọc gói tin (packet filtering)
Cơ chế lọc gói tin của firewall cứng như dòng ASA, PIX của CISCO dựa trên hoạt động của Access Control List (ACL) hay còn gọi là danh sách điều khiển truy nhập. Vậy nguyên tắc hoạt động của ACL như thế nào.
ACL định nghĩa ra các luật được sử dụng để ngăn chặn các gói tin lưu thông trên mạng. Một ACL là tập hợp của nhiều câu lệnh (statements) liên tiếp dùng để so sánh với các thông tin điều khiển trong trường header của gói tin IP, thông qua đó mà thiết bi firewall thực hiện một trong 2 hành vi là chặn gói tin lại hoặc cho phép đi qua.
Danh sách điều khiển truy nhập IP (IP access control lists) khiến bộ định tuyến hủy bỏ những gói tin dựa trên những tiêu chí đặt ra của người quản trị mạng. Mục đích là để ngăn chặn những lưu lượng không được phép lưu thông trên mạng đó có thể là ngăn chặn kẻ phá hoại tấn công vào mạng nội bộ của công ty hay chỉ đơn giản là người sử dụng truy nhập vào tài nguyên hệ thống mà họ không nên và không được phép vào. ACL luôn đóng vai trò quan trọng trong chiến lược kiểm soát an ninh của công ty.
3.2.2. Một số đặc điểm ACL:
- Gói tin có thể bị lọc khi chúng đi vào hoặc đi vào một cổng, trước khi được định tuyến.
- Gói tin có thể bị lọc khi chúng đi ra khỏi một cổng, sau khi được định tuyến. - Từ chối (Deny) là một thuật ngữ dùng để nói rằng gói tin bị chặn lại hay bị lọc
(filtered), còn cho phép (Permit) thì có nghĩa là gói tin không bị lọc mà được phép đi qua.
- Các logic lọc hay thứ tự của các luật lọc được cấu hình trong các danh sách điều khiển truy nhập (ACLs).
- Kết thúc mỗi ACL nếu các lưu lượng đi qua không thỏa mãn một điều kiện nào trong các logic của ACL thì tất cả sẽ bị từ chối tức là sẽ không được phép đi qua cổng đó.
3.2.3. Phân loại ACL
Có 2 loại ACL cơ bản: danh sách điều khiển truy nhập cơ bản và danh sách điều khiển truy nhập mở rộng (Standard ACL và Extended ACL). Standard ACL có cấu trúc đơn giản dễ thực hiện trong khi đó Extended ACL cócấu trúc phức tạp và khó thực hiện hơn.
3.2.3.1. Danh sách điều khiển truy nhập cơ bản (Standard IP Access Control Lists) Lists)
Chỉ có ngăn chặn gói tin dựa trên thông tin về địa chỉ IP đích (IP source address) trong trường header của gói tin IP.
Hoạt động của standard ACL như sau, giả sử là ACL được đặt trên Router 1 với cổng vào của lưu lượng là cổng S1 còn cổng ra là cổng E0.
1. Khi gói tin IP vào cổng S1, địa chỉ IP nguồn của gói tin đó sẽ được so sánh với các luật đặt ra trong câu lệnh ACL, liệu rằng ứng với địa chỉ nguồn đó thì gói tin sẽ được phép đi qua hay chặn lại.
2. Nếu có một gói tin nào đó thỏa mãn (phù hợp) điều kiện của một cây lệnh được định nghĩa trong ACL, thì gói tin sẽ được cho phép đi qua hoặc bị chặn lại.
3. Nếu không có một sự phù hợp nào xảy ra ở bước 2 thì, lại quay trở lại bước 1 và 2 cho đến khi tìm được một điều kiện thỏa mãn.
4. Nếu kiểm tra xong với tất cả các câu lệnh mà vẫn không thỏa mãn với một điều kiện nào thì gói tin đó sẽ bị từ chối (deny).
3.2.3.2. Danh sách điều khiển truy nhập mở rộng (Extended IP Access Control Lists) Lists)
Extended ACL vừa có những điểm tương tự vừa khác so với Standard ACL. Cũng như Standard ACL, bạn có thể cho phép áp đặt Extended ACL lên cổng theo chiều đi vào hoặc đi ra của gói tin. IOS của firewall cũng so sánh gói tin với các lệnh theo thứ tự lần lượt của các câu lệnh đó. Nếu câu lệnh đầu tiên mà thỏa mãn thì nó sẽ dừng việc so sánh với các lệnh còn lại ở trong list và xác định ngay hành động cần tiến hành với gói tin đó. Tất cả các tính năng này cũng đều giống với cách xử sự của Standard ACL.
Điểm khác nhau chủ yếu giữa 2 loại này là extended ACL có thể sử dụng nhiều thông tin điều khiển trong trường header để so sánh hơn là standard ACL. Standard ACL chỉ kiểm tra được địa chỉ IP nguồn thì Extended còn sử dụng được thêm cả địa chỉ IP đích, địa chỉ cổng, loại ứng dụng, địa chỉ MAC, loại giao thức…Điều này làm cho Extended ACL có thể kiểm tra và lọc được nhiều lưu lượng với độ chính xác và an toàn cao hơn. Tuy nhiên nó cũng khó thực hiện hơn vì phức tạp hơn Standard ACL rất nhiều.
Loại ACL Các tham số có thể so sánh Standard ACL và Extandard ACL Địa chỉ IP nguồn
Phần địa chỉ IP nguồn sử dụng wildcard mark chỉ ra địa chỉ mạng nguồn.
Extandard ACL Địa chỉ IP đích
Phần địa chỉ IP đích sử dụng wildcard mark chỉ ra địa chỉ mạng đích
Loại giao thức (TCP, UDP, ICMP, IGRP, IGMP, và các giao thức khác) Cổng nguồn
Cổng đích
All TCP flows except the first IP TOS
IP precedence (quyền ưu tiên) Một số ví dụ về Extended ACL và logic thực hiện của nó
Câu lệnh ACL Điều kiện thỏa mãn
access-list 101 deny ip any host 10.1.1.1
Từ chối tất cả các gói tin IP có địa chỉ nguồn bất kì đi đến máy có địa chỉ là 10.1.1.1
access-list 101 deny tcp any gt 1023 host 10.1.1.1 eq 23
Từ chối bất kì gói tin đóng gói TCP có địa chỉ IP đích bất kì nhưng địa chỉ cổng lớn hơn 1023 đi đến máy
10.1.1.1 trên cổng 23. access-list 101 deny tcp any host
10.1.1.1 eq 23
Từ chối bất kì gói tin chạy giao thức TCP đi đến máy có địa chỉ 10.1.1.1 trên cổng 23
access-list 101 deny tcp any host 10.1.1.1 eq telnet
Từ chối bất kì gói tin chạy TCP telnet vào máy có địa chỉ 10.1.1.1
access-list 101 deny udp 1.0.0.0 0.255.255.255 lt 1023 any
Từ chối bất kì gói tin chạy giao thức UDP xuất phát từ mạng 1.0.0.0/24 với
địa chỉ cổng nguồn nhỏ hơn 1023 đi đến bất kì đâu
3.2.4. Ứng dụng ACL
Các phần mềm IOS trong các thiết bị định tuyến hay firewall cứng áp đặt các logic lọc của ACL khi các gói tin đi vào hoặc đi ra một cổng nào đó trên thiết bị đó. Hay nói cách khác, IOS liên kết một IOS với một cổng và dành riêng cho những lưu lượng vào hay ra trên cổng đó. Sau khi chọn được bộ định tuyến hay firewall mà ta muốn đặt ACL tiếp đó phải chọn cổng, cũng như chiều các gói tin đi ra hay đi vào cổng để áp logic lọc vào đó.
Hình 2.11. Di chuyển của gói tin giữa các vùng có độ an toàn khác nhau
Cấu hình mặc định của các thiết bị firewall là đối với cổng có chiều đi vào thì mức an toàn là 100 (đó là mức an toàn cao nhất), còn cổng có chiều đi ra thì mức an toàn là 0 (mức an toàn kém nhất ). Không có gì an toàn bằng mạng nội bộ và cũng không có gì kém an toàn hơn là mạng phía ngoài. Sau khi cấu hình cơ chế phiên dịch địa chỉ, thì mặc định tất cả các giao tiếp theo hướng đi ra còn theo chiều từ nơi có mức an toàn hơn ra đến nơi có mức an toàn kém hơn còn tất cả các lưu lượng từ nơi có mức an toàn kém hơn đi đến nơi có mức an toàn cao hơn thì đều bị cấm.
Quy tắc xử sự của ACL dựa trên một cổng theo 1 chiều, tức là ứng với một cổng theo chiều đi ra hoặc đi vào thì áp được 1 ACL.
ACL trên cổng cho phép hoặc từ chối gói tin khởi tạo theo chiều đi vào hay đi ra trên cổng đó.
ACL chỉ cần mô tả gói tin khởi tạo của ứng dụng; không cần biết đến các gói tin quay trở lại của ứng dụng đó, điều này dựa trên cơ sỏ của cơ chế bắt tay 3 bước.
Nếu không có một ACL nào được áp lên một cổng của firewall thì ở cổng đó sẽ áp dụng chính sách mặc định là:
• Các gói tin đi ra được cho phép
• Các gói tin đi vào bị cấm
• ACL sử dụng câu lệnh “ access-list” để cho phép hoặc chặn lưu lượng trên mạng. Sau đây là những quy tắc để thiết kế và thực hiện các ACL
Khi lưu lượng đi từ vùng có độ an toàn cao hơn sang vùng có độ an toàn thấp hơn thì:
• ACL được dùng để ngăn chặn lưu lượng có chiều đi ra (outbound traffic)
• Địa chỉ nguồn dùng để so sánh của ACL phải là địa chỉ thực của 1 máy trạm ở trên mạng
Khi đi từ nơi có mức an toàn thấp hơn sang nơi có mức an toàn cao hơn thì:
• ACL sẽ chặn các lưu thông có chiều đi vào (inbound traffic)
• Địa chỉ đích dùng để so sánh của câu lệnh ACL phải là địa chỉ được phiên dịch thành địa chỉ IP global tức là địa chỉ có thể sử dụng trên mạng trên Internet.
Có một điều lưu ý là: ACL luôn luôn được kiểm tra trước khi thực hiện quá trình phiên dịch địa chỉ trên các thiết bị firewall.
Hình 2.12. Chức năng phân vùng của firewall
Hoạt động của lưu lượng HTTP đi vào vùng đệm DMZ
Trên hình vẽ người quản trị mạng cần cho phép người sử dụng trên mạng Internet truy cập vào các máy chủ Web công cộng của công ty. Máy chủ Web đó được đặt trên vùng DMZ được ngăn cách với các vùng còn lại trên mạng cục bộ bởi firewall. Theo cấu hình mặc định thì tất cả các truy nhập từ Internet vào các máy chủ trên vùng này đều bị từ chối. Để cấp quyền truy nhập cho người sử dụng trên Internet, người quản trị phải thực hiện 1 số bước sau:
• Cấu hình phiên dịch địa chỉ tĩnh cho các máy chủ Web, theo cách này thì địa chỉ thật của các máy chủ Web sẽ không bị nhìn thấy từ phía người sử dụng trên Internet.
• Cấu hình một ACL theo hướng đi vào để cho nó cấp quyền truy nhập vào các máy trạm hay các giao thức nào đó của mạng nội bộ.
• Áp ACL lên các cổng thích hợp
Cơ chế phiên dịch địa chỉ NAT (Network Address Translation)
Ra đời vào năm 1994, NAT đã trở thành một kĩ thuật phổ biến để tiết kiệm địa chỉ cho các trụ sở văn phòng và cũng là cách để dấu đi topo mạng của mình khi nhìn từ Internet. Francis and Egevang đã đưa ra một số khuyến nghị sử dụng về NAT (Request For Comments about NAT) .
Ngày nay NAT là công cụ chủ đạo để làm dịu đi sự thiếu thốn địa chỉ IP trên mạng Internet. Thông thường thì mạng nội bộ sử dụng các nhóm địa chỉ IP được định nghĩa trong RFC 1918. Vì các địa chỉ này được chỉ định dùng cho mục đích nội bộ hay là các địa chỉ dùng riêng, NAT được đặt ra để thỏa mãn nhu cầu kết nối trên Internet. Đôi lúc NAT được dùng để dành các địa chỉ nội bộ cho doanh nghiệp ví dụ để phòng khi thay đổi nhà cung cấp Internet.
NAT cho phép ngăn chặn các mạng phía bên ngoài không học được địa chỉ IP trong mạng nội bộ nằm ở phía sau firewall. NAT làm được điều này bằng cách phiên dịch những địa chỉ IP không có duy nhất trên mạng Internet (địa chỉ IP cục bộ ) thành
các địa chỉ duy nhất (địa chỉ Global) được chấp nhận trên Internet trước khi các gói tin được chuyển ra mạng phía bên ngoài.
Hình 2.13 . Quá trình phiên dich địa chỉ
Khi một gói tin IP được gửi từ một thiết bị ở mạng bên trong đi ra phía ngoài thì nó sẽ phải đi qua firewall được cấu hình để phiên dịch địa chỉ NAT. Nếu như địa chỉ của thiết bị không có sẵn trong bảng thì nó sẽ được phiên dịch. Một bản ghi mới sẽ được tạo ra cho thiết bị này và nó được gán một địa chỉ IP nằm trong 1 dải địa chỉ IP được ánh xạ (gọi là Pool). Pool địa chỉ ánh xạ này là những địa chỉ global. Sau khi quá trình phiên dịch diễn ra thì bảng chuyển đổi địa chỉ sẽ được cập nhật và các gói tin IP được chuyển đổi địa chỉ sẽ được chuyển đi. Trong suốt khoảng thời gian chờ cho phép thường mặc định là 3 giờ (userconfigurable timeout period) mà không có có gói tin nào được phiên dịch cho địa chỉ IP đó thì bản ghi đó sẽ bị xóa đi khỏi bảng và địa chỉ dùng để ánh xạ sẽ lại được để trống chờ cho một thiết bị nào đó từ phía trong đi ra ngoài.
Trong hình vẽ host 10.0.0.11 khởi tạo kết nối ra bên ngoài. Firewall phiên dịch địa chỉ nguồn thành 192.168.0.20. Các gói tin từ host 10.0.0.11 được từ phía ngoài vào với địa chỉ nguồn là 192.168.0.20. các gói tin trả lời lại host đó từ máy chủ phía bên ngoài tại địa chỉ 192.168.10.11 được đánh địa chỉ ánh xạ là 192.168.0.20.
3.3. Cấu hình NAT
3.3.1. Cấu hình NAT trên nhiều cổng
Hình 2.14 . Cấu hình NAT trên nhiều cổng
Khi cấu hình trên nhiều cổng, có 1 điều cần nhớ là mức độ bảo mật chỉ rõ xem là một cổng là bên trong (đáng tin cậy) hay là bên ngoài (không đáng tin cậy) liên quan đến các cổng khác. Một cổng được xem là bên trong so với các cổng khác nếu độ bảo mật của nó là cao hơn các cổng khác, và một cổng được coi là bên ngoài với các cổng khác nếu độ bảo mật của nó là thấp hơn so với các cổng khác .
Luật đầu tiên về các mức độ bảo mật là một cổng có mức bảo mật cao hơn có thể truy nhập được vào một cổng có mức bảo mật thấp hơn. Các kết nối giữa chúng đều được cho phép trừ khi chúng bị từ chối do người quản trị. Các câu lệnh NAT và global kết hợp với nhau cho phép mạng của ta có thể sử dụng bất kì kế hoạch địa chỉ nào để có thể ẩn địa chỉ thực của mình với mạng bên ngoài.
Hình 2.15. Phiên dịch địa chỉ từ mạng trong ra mạng ngoài
Firewall hỗ trợ 2 loại phiên dịch địa chỉ như sau:
3.3.2. Phiên dịch địa chỉ động:
Phiên dich địa chỉ các host trên các cổng có mức bảo mật cao hơn sang giải địa chỉ trên các cổng có mức bảo mật thấp hơn. Điều này cho phép người sử dụng có thể chia nhau các địa chỉ được đăng kí mà dấu đi địa chỉ IP thực ở bên trong của mình,làm cho người sử dụng trên Internet không thể nhìn thấy được.
3.3.3. Phiên dịch địa chỉ tĩnh:
Đưa ra sự ánh xạ một-một, cố định giữa một địa chỉ IP trên cổng có độ bảo mật cao hơn và một địa chỉ IP trên cổng có độ bảo mật thấp hơn. Điều này cho phép một host nằm ở mạng bên trong có thế truy nhập tới một host có độ bảo mật thấp hơn mà không để lộ ra địa chỉ IP thực sự của mình ví dụ như một máy chủ nằm ngoài Internet. Những ví dụ của phiên dịch địa chỉ tĩnh là NAT tĩnh và NAT đồng nhất.
3.3.4. Cơ chế phiên dịch thông qua địa chỉ cổng (Port Address Translation)
Thông thường thì mạng của một doanh nghiệp chỉ nhận được một số lượng nhỏ địa chỉ IP từ nhà cung cấp dịch vụ Internet ISP, trong khi số lượng máy tính của trong
mạng lại rất lớn. Để giải quyết tình huống này, ta cấu hình PAT là kĩ thuật cải tiến của NAT.
Khi sử dụng PAT nhiều kết nối khác nhau xuất phát từ nhiều host khác nhau ở mạng trong có thể được sử dụng kết hợp bằng cách ánh xạ cùng một địa chỉ IP. Số hiệu kết hợp là địa chỉ cổng nguồn. Trong hình vẽ địa chỉ IP của 2 host trong mạng trong được phiên dịch sang địa chỉ phiên dịch cổng là 192.168.0.20 và địa chỉ cổng nguồn là 1024 và 1025.
Các thiết bị firewall sủ dụng các tính năng của PAT mở rộng dải địa chỉ công ty có thể dùng bởi vì:
• Một địa chỉ IP global có thể sử dụng cho gần 64000 máy trạm ở trong vùng nội bộ đi ra bên ngoài.
• PAT ánh xạ số hiệu cổng TCP, UDP cho cùng 1 địa chỉ IP để phân biệt các máy trong mạng nội bộ.
• PAT ẩn đi địa chỉ IP nguồn của máy trong mạng nội bằng cách sử dụng địa