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 chỉ IP được gán bởi firewall.
• PAT có thể được sử dụng cùng với NAT.
• Một địa chỉ PAT có thể là 1 địa chỉ ảo, khác với địa chỉ global
Không sử dụng PAT khi chạy các ứng dụng multimedia qua firewall vì các ứng dụng này cần truy nhập một số cổng nhất định và điều này có thể dẫn xung đột với số hiệu cổng được cấp bởi PAT.
Trong ví dụ sau về PAT, công ty XYZ chỉ được có 6 địa chỉ được đăng kí. Một địa chỉ dành cho router nằm trên vùng biên, một dành cho firewall và một dành để ánh xạ.
Ví dụ như sau
ip address inside 10.0.0.1 255.255.255.0 ip address outside 192.168.0.2 255.255.255.0 route outside 0.0.0.0 0.0.0.0 192.168.0.1
Các địa chỉ IP được gán cho các cổng phía bên trong và bên ngoài. Một địa chỉ IP được đăng kí 192.168.0.3 được đặt vào trong giải địa chỉ dùng để ánh xạ. Và địa chỉ đó được mạng nội bộ 10.0.0.0 dùng chung để truy nhập ra bên ngoài thông qua các lệnh:
nat (inside) 1 10.0.0.0 255.255.0.0
global (outside) 1 192.168.0.3 netmask 255.255.255.255
Mỗi cổng được gán cho một máy trong mạng là duy nhất và số hiệu cổng đó phải lớn 1023.
3.4. Cơ chế điều khiển và giám sát các kết nối qua firewall
Trong các sản phẩm firewall một trong những tính năng quan trọng của nó là vận chuyển và kết nối, với giao thức IP có 2 giao thức dùng để vận chuyển các phiên trên mạng được quy định lớp vận chuyển đó là UDP và TCP:
3.4.1. Vận chuyển giao thức TCP
TCP: giao thức vận chuyển hướng kết nối tin cậy và ổn định. Nó có thể dễ dàng theo dõi , giám sát và bảo vệ.
Khi một phiên được khởi tạo từ 1 host trong vùng nội bộ có độ tin cậy cao hơn thì firewall tạo ra một nội dung trong bộ lọc trạng thái phiên. Firewall có thể loại đi những phiên từ những các lưu lượng trên mạng và tích cực xác định sự tồn tại của chúng trong thời gian thực. Bộ lọc trạng thái này duy trì trạng thái của các kết nối trên mạng và kiểm tra các giao thức tiếp theo . Khi một phiên TCP được khởi tạo qua firewall thì firewall ghi lại trạng thái lưu lượng mạng và tìm sự xác nhận từ phía thiết bị là điểm đến của lưu lượng đó. Sau đó Firewall cho phép 2 thiết bị đó trao đổi thông tin. Khi một phiên TCP được thiết lập đi qua firewall thì sẽ xảy ra quá trình sau
• Bước 1: gói tin IP đầu tiên từ các host thuộc mạng bên trong gây ra sự phát sinh một translation slot. Thông tin TCP được gắn vào sau đó được sử dụng để tạo nên 1 khe kết nối trong thiết bị firewall
• Bước 2: khe kết nối đó được đánh dấu là khởi đầu (embryonic- chưa được thiết lập)
• Bước 3: firewall ngẫu nhiên hóa số hiệu khởi tạo của kết nối, lưu giữ giá trị delta và chuyển gói tin đến đầu ra.
• Firewall bây giờ mong nhận được gói tin đồng bộ xác nhận (SYN- ACK) từ phía máy đích. Sau đó firewall sẽ ghép gói tin nhận được với khe kết nối đó, tính toán thông tin thứ tự (sequencing information) và chuyển gói tin trở về tới host ở mạng phía bên trong.
Hình 2.16 Quá trình tạo một kết nối TCP từ bên trong ra bên ngoài
Khởi tạo kết nối TCP từ bên trong ra bên ngoài:
Bước 1: máy ở phía bên trong hoàn thành việc khởi tạo kết nối, bằng cơ chế bắt tay 3 bước , với việc nhận được xác nhận đã thành công trong thiết lập kết nối
Bước 2: khe kết nối trên firewall được đánh dấu là đã được kết nối (connected), hay là được thiết lập tích cực (active-established). Sau đó bộ đếm ban đầu được reset lại cho kết nối này
3.4.2. Vận chuyển giao thức UDP
UDP là giao thức không hướng kết nối, nó là giao thức hiệu quả cho một số dịch vụ ko cần độ tin cậy cao và cũng là giao thức truyền rất khó để giám sát và bảo mật.
Firewall phải dùng các phương pháp khác để đảm bảo cho sự an toàn của nó. Các ứng dụng sử dụng UDP rất khó đảm bảo an toàn tuyệt đối vì nó không có cơ chế bắt tay hay là số hiệu liên tiếp. Rất khó để xác định được trạng thái hiện tại của việc trao đổi thông tin UDP. Và cũng rất khó để duy trì trạng thái của một phiên vì nó không có sự bắt đầu, trạng thái trao đổi và kết thúc một cách rõ ràng. Tuy nhiên các thiết bị firewall tạo ra các khe kết nối UDP khi 1 gói tin UDP được gửi từ cổng có độ an toàn cao hơn đến cổng có độ an toàn thấp hơn.
Tất cả các gói tin UDP quay trở lại lần lượt mà khớp với khe kết nối đó sẽ được chuyển đến mạng bên trong.
Khi khe kết nối UDP im lặng trong khoảng thời gian lớn hơn khoảng im lặng được quy định thì kết nối đó sẽ bị xóa khỏi bảng trạng thái kết nối, sau đây là một số đặc tính của UDP:
• UDP không đáng tin cậy nhưng là giao thức vận chuyển hiệu quả
• Việc giả mạo gói tin UDP rất dễ dàng bởi vì không có cơ chế bắt tay 3 bước hay đánh số tuần tự. Do không có kiểm tra trạng thái nên cũng rất khó xác định được trạng thái hiện tại của phiên truyền.
• UDP không có cơ chế đảm bảo giao nhận
• Không có cơ chế thiết lập và kết thúc kết nối
• UDP không có cơ chế phòng chống và kiểm soát việc tắc nghẽn
• Các dịch vụ sử dụng UDP có thể được chia thành 2 loại:
- Các dịch vụ yêu cầu-đáp ứng hay dịch vụ ping-pong, như là hệ thống phân giải tên miền (DNS)
- Các dịch vụ truyền dữ liệu như là video, VoIP, hệ thống truyền file trên mạng
3.5. Một số kĩ thuật khác được sử dụng trong firewall 3.5.1. Kỹ thuật thẩm kế an toàn
An toàn tuyệt đối là không thể có, vì thế nhất thiết phải tiến hành ghi giữ và phân tích những sự việc phát sinh trên mạng lưới, đối với một số khai thác tin tức nhạy cảm