[FIREWALL ASA] Bài 3: Network Address Translation ( NAT )

Người viết bài : Tuấn
Tham khảo ebook:
– [Ebook] Cisco ASA All-in-one Next-Generation Firewall, IPS, and VPN Services, 3rd Edition

Sơ đồ :

Mô tả:
Nếu chúng ta đã từng sử dụng các dòng PIX thì sẽ thấy rằng traffic khi đi từ vùng có security-level cao đến vùng có security-level thấp hơn sẽ dùng NAT. Tuy nhiên, với các dòng ASA hiện thời thì chúng ta có thể kiểm soát việc này bằng tinh năng NAT-control. Bài lab này sẽ hướng dẫn chúng ta thực hiện static NAT và dynamic NAT, dynamic PAT thông qua firewall ASA. Bên cạnh đó, chúng ta sẽ tìm hiểu về tính năng policy NAT/PAT qua firewall ASA.

Thực hiện:
Bước 1: Cấu hình cơ bản trên thiết bị firewall ASA
Đầu tiên chúng ta sẽ cấu hình địa chỉ IP và security-level trên 2 cổng GigabitEthernet0/0 và GigabitEthernet0/1.

ASA# configure terminal
ASA(config)# interface GigabitEthernet0/0
ASA(config-if)# ip add 192.168.1.1 255.255.255.0
ASA(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ASA(config-if)# no shutdown
ASA(config-if)# exit
ASA(config)# int GigabitEthernet0/1
ASA(config-if)# nameif dmz
INFO: Security level for "dmz" set to 0 by default.
ASA(config-if)# ip add 209.165.200.225 255.255.255.224
ASA(config-if)# no shutdown
ASA(config-if)#exit
ASA(config-if)# int GigabitEthernet0/2
ASA(config-if)# nameif outside
ASA(config-if)# ip add dhcp setroute
ASA(config-if)# no shutdown

Ở đây chúng ta sẽ phân biệt 3 vùng kết nối với firewall ASA đó là vùng thuộc về user là inside với dải IP là 192.168.1.0/24 và vùng DMZ bao gồm các server(mail server, WEB server) thuộc dải IP là 209.165.200.224/27 và vùng outside sẽ đi internet.

Tiếp theo chúng ta sẽ bật tinh năng NAT-control trên firewall ASA:

ASA(config)# nat-control

Tính năng này sẽ làm cho traffic đi từ vùng security-level cao đến vùng security-level thấp hơn bắt buộc sẽ phải NAT. Nếu chúng ta không muốn bật tính năng này có thể dùng command “no nat-control
Kiểm tra:
Đầu tiên chúng ta sẽ kiểm tra các địa chỉ IP đã được đặt lên cổng và trạng thái các cổng qua lệnh “show int ip brief”.

ASA# show interface ip brief
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.1.1 YES manual up up 
GigabitEthernet0/1 209.165.200.225 YES manual up up 
GigabitEthernet0/2 192.168.2.159 YES DHCP up up
GigabitEthernet0/3 unassigned YES unset administratively down down
Management0/0 unassigned YES unset administratively down down

Tiếp theo chúng ta sẽ kiểm tra các kết nối từ firewall ASA tới các PC1 và mail server. Đầu tiền là kết nối tới PC1.

ASA# ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Tiếp theo chúng ta sẽ kiểm tra kết nối tới mail server.

ASA# ping 209.165.200.225
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.165.200.225, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

Bước 2: Cấu hình static NAT
Thực hiện cấu hình static NAT đảm bảo yêu cầu sau:
PC1 sẽ truy cập đến mail server bằng địa chỉ 209.165.200.232.

Chúng ta sẽ cấu hình static NAT trên firewall ASA để đảm bảo yêu cầu đặt ra.

ASA(config)# static (inside,dmz) 209.165.200.232 192.168.1.2 netmask 255.255.255.255

Cấu trúc của cấu hình static NAT là:

ASA(config)# static (real_ifc,mapped_ifc) {mapped_ip} {real_ip [netmask mask]} [dns][norandomseq] [[tcp] [max_conns [emb_lim]] [udp udp_max_conns]

real_infc: tên interface kết nối với các host sẽ được nat ra bên ngoài.
mapped_infc: tên interface kết nối với các host mà ASA sẽ nat tới.
mapped_ip: các IP sau khi được nat ra.
real_ip [netmask mask] : địa chỉ sẽ được nat ra bên ngoài và subnet của IP đó.

Các option còn lại là TCP, UDP, DNS, là những option có thể tùy chọn để phù hợp với từng loại static NAT khác nhau.

Kiểm tra:
Chúng ta sẽ kiểm tra bằng cách xem bảng nat trong thiết bị firewall ASA với command “show xlate”.

ASA(config)# show xlate
1 in use, 1 most used
Global 209.165.200.229 Local 192.168.1.1

Tiếp tục kiểm tra bằng việc ping kết nối từ PC1 đến mail server:

Như vậy là chúng ta đã static NAT thành công.

Bước 3: Cấu hình dynamic NAT
Thực hiện yêu cầu sau: để các PC thuộc subnet 192.168.1.0/24 có thể truy cập cả web server và mail server.

Chúng ta sẽ cấu hình dynamic NAT cho các địa chỉ thuộc subnet 192.168.1.0/24. Đầu tiên là định ra dải địa chỉ sẽ được NAT.

ASA(config)# nat (inside) 1 192.168.1.0 255.255.255.0

Cấu trúc của 1 câu lệnh dynamic NAT:

ASA(config)# nat (real_ifc) nat_id local_ip [mask [dns] [outside] [[tcp] tcp_max_conns [emb_limit] [norandomseq]]] [udp udp_max_conns]

Chúng ta sẽ phân tích câu lệnh trên dưa vào cú pháp chuẩn của dynamic NAT:
inside : tên interface sẽ được NAT.
1 : đây là NAT ID.
192.168.1.0 255.255.255.0 : dải ip sẽ được NAT và subnet mask của IP đó.

Tiếp theo chúng ta sẽ cấu hình interface và dải địa chỉ sẽ được dịch ra tương ứng với dải địa chỉ của “real_ifc”.

ASA(config)# global (dmz) 1 209.165.200.230-209.165.200.237

Cấu trúc của câu lệnh :

ASA(conifg)# global (mapped_ifc) nat_id {global_ip [-global_ip] [netmask global_mask]}

Chúng ta hãy cùng phân tích câu lệnh vừa cấu hình:
dmz : interface sẽ dịch những địa chỉ IP của dải địa chỉ thuộc interface bên trong(inside) ra dải địa chỉ thuộc interface cần tới( ở đây là vùng DMZ).
1 : nat_id , thông số này phải khớp với lên NAT bên trên.
209.165.200.230-209.165.200.237 : dải địa chỉ sau khi được NAT.

Bước 4: Cấu hình dynamic PAT
Thực hiện yêu cầu cấu hình cho các máy thuộc dài địa chỉ 192.168.1.0/24 sẽ đi được internet.

Đầu tiên chúng ta sẽ cấu hình dải địa chỉ được phép đi internet:

ASA(config)# nat (inside) 1 192.168.1.0 255.255.255.0

Cấu trúc của câu lệnh tương tự như khi chúng ta thực hiên dynamic NAT. Dải địa chỉ thuộc vùng inside sẽ được NAT là 192.168.1.0/24.
Tiếp theo chúng ta sẽ cấu hình global interface để đi internet.

ASA(config)# global (outside) 1 interface

Tương tự như dynamic NAT thì cấu trúc câu lệnh của dynamic PAT là:

ASA(config)# global (mapped_ifc) nat_id global_ip| interface

Ở đây có thêm 1 option nữa, thay vì chúng ta sẽ sử dụng “global_ip” thì ta có thể thay thế bằng chính interface kết nối.
Kiểm tra:


Chúng ta sẽ dùng PC1 để tiến hành ping DNS GOOGLE là 8.8.8.8

Chúng ta tiếp tục kiểm tra bảng NAT trên firewall ASA bằng command “show xlate”.

ASA# show xlate 
13 in use, 180 most used
PAT Global 192.168.2.209(31224) Local 192.168.1.2(57875) 
PAT Global 192.168.2.209(57612) Local 192.168.1.2(63687) 
PAT Global 192.168.2.209(39909) Local 192.168.1.2(64253) 
PAT Global 192.168.2.209(12870) Local 192.168.1.2(53467) 
PAT Global 192.168.2.209(9871) Local 192.168.1.2(53465) 
PAT Global 192.168.2.209(60526) Local 192.168.1.2(53464) 
PAT Global 192.168.2.209(61984) Local 192.168.1.2(53463) 
PAT Global 192.168.2.209(6343) Local 192.168.1.2(53461)

Đến đây thì chúng ta đã thực hiện PAT thành công!

Bước 5: Cấu hình policy NAT/PAT
Chúng ta sẽ tiếp tục thực hiện lại cấu hình đi internet đối với các máy thuộc vùng inside, tuy nhiên lần này chúng ta chỉ cho phép máy có địa chỉ IP 192.168.1.2/24 được phép đi internet còn các máy còn lại thì không. Chúng ta sẽ thực hiện cơ chế policy PAT để hoàn thành yêu cầu này.

Đầu tiên chúng ta sẽ tạo 1 Access-list để cho phép(permit) các địa chỉ được phép đi internet.

ASA(config)# access-list policy_PAT1 extended permit ip host 192.168.1.2 any

Tiếp theo chúng ta sẽ thực hiện policy PAT để cho phép địa chỉ này đi internet.

ASA(config)# nat (inside) 1 access-list policy_PAT1
ASA(config)# global (outside) 1 interface

Chúng ta sẽ cùng điểm qua cấu trúc của 2 lệnh trên xem có sự khác biệt giữa PAT thông thường và policy PAT như sau:

ASA(config)# nat (real_ifc) nat_id access-list access_list_name [dns] [outside] [[tcp] tcp_max_conns [emb_limit] [norandomseq]]] [udp udp_max_conns]
ASA(config)# global (mapped_ifc) nat_id {global_ip[-global_ip] [netmask global_mask]} | interface

Sự khác biệt ở đây chính là việc thêm vào access-list sẽ giúp cho quá trình PAT diễn ra một cách có chọn lọc. Những địa chỉ nào nằm trong access-list được liệt kê ở trên sẽ có thể được thực hiện PAT còn lại thì sẽ không thực hiện.

Kiểm tra:
Chúng ta sẽ kiểm tra chi tiết gói tin sẽ được lọc như thế nào qua command “show xlate debug” .

ASA# show xlate debug 
9 in use, 250 most used
Flags: D - DNS, d - dump, I - identity, i - dynamic, n - no random,
 r - portmap, s - static
TCP PAT from inside:192.168.1.2/58425 to outside(policy_PAT1):192.168.2.159/19175 flags ri idle 0:02:35 timeout 0:00:30
TCP PAT from inside:192.168.1.2/58423 to outside(policy_PAT1):192.168.2.159/34377 flags ri idle 0:02:36 timeout 0:00:30
TCP PAT from inside:192.168.1.2/58422 to outside(policy_PAT1):192.168.2.159/59092 flags ri idle 0:02:36 timeout 0:00:30
TCP PAT from inside:192.168.1.2/58227 to outside:192.168.2.159/20880 flags ri idle 0:31:58 timeout 0:00:30

Đến đây là chúng ta đã cấu hình policy PAT thành công!

Previous article[cPanel] Lỗi “that username is reserved”
Next articleAdobe Shockwave Player 12.1.9.160
"Networking luôn có sức hấp dẫn và những điều mới mẻ riêng. Hãy cùng tôi chia sẻ những điều ấy" - Email: tuanmmt@gmail.com - Skype: tuanmmt . (Cộng Tác Viên mảng - Networking)