Cấu hình NAT, PAT và Policy NAT trên tường lửa Firewall Cisco ASA

Thảo luận trong 'Firewall Cisco' bắt đầu bởi baoit, 29/12/17.

  1. baoit

    baoit New Member

    Việc sử dụng các nhóm đối tượng (network objects, service object, v.v.) đang trở nên phổ biến hơn trên tường lửa Firewall Cisco ASA, đặc biệt là với các phiên bản hệ điều hành mới. Trong các phiên bản mới hơn, các nhóm đối tượng mạng được sử dụng rộng rãi cho việc cấu hình các cơ chế NAT bên cạnh các mục đích sử dụng khác.

    Bài viết sẽ đưa ra một số ví dụ đơn giản về việc sử dụng các đối tượng mạng và đối tượng dịch vụ với danh sách truy cập, v.v.

    Ví dụ về đối tượng mạng và đối tượng dịch vụ (Network Objects and Service Objects Examples)

    Giả sử chúng ta có một vài máy chủ Web nằm trên DMZ được truy cập từ Internet. Chúng ta muốn cho phép truy cập http (80) và https (443) từ internet tới các máy chủ web này.

    Giả sử rằng chúng ta đã định cấu hình NAT tĩnh cho các máy chủ web đó và dịch các địa chỉ IP Private thực của chúng sang các địa chỉ IP public sau:

    Web Server1: Private IP (192.168.1.1) translated to Public IP (50.50.50.1)
    Web Server2: Private IP (192.168.1.2) translated to Public IP (50.50.50.2)
    Web Server3: Private IP (192.168.1.3) translated to Public IP (50.50.50.3)


    Cấu hình danh sách truy cập bằng cách sử dụng nhóm đối tượng (Configuration of access list using object groups)

    ! tạo một nhóm dịch vụ cho các giao thức http và https
    object-group service http-protocols tcp
    port-object eq 80
    port-object eq 443


    ! tạo một nhóm đối tượng mạng cho các máy chủ web
    object-group network webservers
    network-object host 50.50.50.1
    network-object host 50.50.50.2
    network-object host 50.50.50.3


    ! tạo danh sách truy cập được áp dụng trong nước trên giao diện bên ngoài
    access-list OUTSIDE-IN extended permit tcp any object-group webservers object-group http-protocols

    access-group OUTSIDE-IN in interface outside


    Chú ý (Các phiên bản ASA mới hơn 8.3):

    Trong các phiên bản ASA mới hơn sau 8.3, danh sách truy cập phải luôn tham chiếu đến địa chỉ IP thực của máy chủ lưu trữ chứ KHÔNG phải địa chỉ IP đã dịch. Vì vậy, trong ví dụ ở trên, nhóm đối tượng “máy chủ web” phải bao gồm các địa chỉ IP Thực (riêng tư) của các máy chủ chứ không phải IP công cộng đã dịch.

    ! tạo một nhóm đối tượng mạng cho các máy chủ web với IP riêng thực của chúng
    object-group network webservers
    network-object host 192.168.1.1
    network-object host 192.168.1.2
    network-object host 192.168.1.3


    ! tạo danh sách truy cập được áp dụng trên giao diện bên ngoài
    access-list OUTSIDE-IN extended permit tcp any object-group webservers object-group http-protocols

    access-group OUTSIDE-IN in interface outside

    Như bạn có thể thấy ở trên, trước tiên bạn tạo nhóm đối tượng mạng và đặt tên cho nó, sau đó thêm “network-object” của các máy chủ cụ thể vào nhóm đối tượng đã tạo ở trên. Bạn có thể thêm các máy chủ đối tượng mạng mới sau này trong cùng một nhóm đối tượng hoặc xóa các mục nhập cũ hơn (với lệnh “no network-object host x.y.z.w”)

    Cấu hình NAT sử dụng nhóm đối tượng

    Nếu bạn quản lý bất kỳ sản phẩm nào thuộc họ tường lửa Cisco ASA, một số điều cần lưu ý về sự khác biệt trong cấu hình cho phiên bản mã 8.3 và mới hơn. Một trong những thay đổi đáng chú ý nhất là NAT (Network Address Translation).

    Trong phiên bản mã Cisco ASA 8.3 và mới hơn, Cisco đã đưa ra khái niệm về các đối tượng. Trong các đối tượng được chỉ định, cấu hình NAT được áp dụng.

    Điều này có nghĩa là cấu hình NAT bây giờ hoàn toàn khác với các lệnh “global” và “static” truyền thống mà các bạn đã sử dụng trong các phiên bản trước 8.3. Chúng ta hãy xem xét kỹ hơn từng loại trong 3 loại NAT cơ bản sau.

    Dynamic NAT (NAT động): (Many to One)

    [​IMG]

    Steps/Các bước:

    1- Create object group/ Tạo nhóm đối tượng.
    2- Define object IP Address or Subnet/ Xác định đối tượng Địa chỉ IP hoặc Mạng con.
    3- Create NAT statement within object group/ Tạo câu lệnh NAT trong nhóm đối tượng.

    object network INSIDE_LAN
    subnet 192.168.2.0 255.255.255.0
    nat (inside,outside) dynamic interface


    Chúng ta hãy xem xét kỹ hơn các câu lệnh

    object network INSIDE_LAN
    Tạo một đối tượng mạng có tên “INSIDE_LAN”

    subnet 192.168.2.0 255.255.255.0
    Xác định mạng con hoặc Địa chỉ IP máy chủ cho đối tượng “INSIDE_LAN”

    nat (inside,outside) dynamic interface

    Chỉ ra rằng khi lưu lượng truy cập đang đi vào giao diện bên trong (đi vào) và thoát ra giao diện bên ngoài (đầu ra) sẽ dịch động địa chỉ IP thành địa chỉ IP của giao diện đầu ra. Trong trường hợp của này, địa chỉ IP giao diện bên ngoài 210.130.3.4 sẽ được sử dụng..

    Static NAT (NAT tĩnh): (One to One)
    [​IMG]

    Steps/Các bước:

    1- Create object group/ Tạo nhóm đối tượng.
    2- Define object IP address/ Xác định địa chỉ IP của đối tượng.
    3- Create NAT statement within object group/ Xác định địa chỉ IP của đối tượng.

    object network WEB_SERVER
    host 192.168.3.10
    nat (DMZ,outside) static 210.130.3.5


    Ý nghĩa các câu lệnh cấu hình.

    Object network WEB_SERVER
    Tạo một đối tượng mạng có tên “WEB_SERVER”.

    host 192.168.3.10
    Xác định địa chỉ IP máy chủ cho đối tượng “WEB_SERVER”.

    nat (DMZ,outside) static 210.130.3.5
    Cho biết máy chủ 192.168.3.10 nằm sau giao diện “DMZ” còn được gọi là “Giao diện thực” và phải được ánh xạ tới “Giao diện bên ngoài” được gọi là “Giao diện được ánh xạ”. Khi điều này xảy ra, máy chủ từ Internet có thể tiếp cận đối tượng WEB_SERVER bằng địa chỉ IP 210.130.3.5.

    PAT (Port Address Translation):

    [​IMG]

    Steps/Các bước:

    1- Create object group/ Tạo nhóm đối tượng.
    2- Define object IP address/ Xác định địa chỉ IP của đối tượng.
    3- Create NAT statement within object group/ Tạo câu lệnh NAT trong nhóm đối tượng.

    object group WWW_SERVER
    host 192.168.3.10
    nat (DMZ,outside) static 210.130.3.4 service tcp 80 80


    object group FTP_SERVER
    host 192.168.3.11
    nat (DMZ,outside) static 210.130.3.4 service tcp 21 21


    Hãy xem kỹ ý nghĩa câu lệnh cấu hình.

    object group WWW_SERVER
    Tạo một nhóm đối tượng cho máy chủ web của chúng tôi có tên “WWW_SERVER”.

    host 192.168.3.10
    Xác định địa chỉ IP thực cho đối tượng “WWW_SERVER”.

    nat (DMZ,outside) static 210.130.3.4 service tcp 80 80
    Các trạng thái mà lưu lượng truy cập từ bên ngoài đến 210.130.3.4 trên cổng đích 80 phải được dịch ngược trở lại địa chỉ 192.168.3.10 bằng cách sử dụng cùng một cổng đích là 80 (http).

    object group FTP_SERVER
    Tạo một nhóm đối tượng cho máy chủ FTP của chúng tôi có tên “FTP_SERVER”.

    host 192.168.3.11
    Xác định địa chỉ IP thực cho đối tượng “FTP_SERVER”.

    nat (DMZ,outside) static 210.130.3.4 service tcp 21 21
    Các trạng thái mà lưu lượng truy cập từ bên ngoài đến 210.130.3.4 trên cổng đích 21 phải được dịch ngược trở lại địa chỉ 192.168.3.11 bằng cách sử dụng cùng một cổng đích 21 (ftp).

    Lệnh xác minh (Verification Commands):

    Show object-group
    Hiển thị tất cả các nhóm đối tượng trong cấu hình đang chạy.

    Show run nat
    Hiển thị tất cả các cấu hình NAT trong cấu hình đang chạy.

    Show nat

    Hiển thị bảng NAT trong ASA. Bảng NAT sẽ được sử dụng trong quá trình xử lý lưu lượng để kiểm tra các câu lệnh NAT phù hợp. Bảng được kiểm tra theo thứ tự tuần tự từ trên xuống. Lệnh “show nat” cũng sẽ hiển thị số lần một địa chỉ “nat’ed” đã bị tấn công.

    Bài viết vế cấu hình NAT, PAT cơ bản trên thiết bị tường lữa Firewall Cisco ASA đã hoàn tất.

    Chúc các bạn thành công!
     
  2. toanle

    toanle Member

    Cấu hình Policy NAT trên Cisco Firewall

    Như chúng ta đã biết, chức năng NAT thông thường trên các thiết bị Cisco (bộ định tuyến, tường lửa ASA, v.v.) chuyển địa chỉ IP NGUỒN sang đại chỉ khác. Ngoài ra còn có cái gọi là “NAT dựa trên đích” (hoặc có thể thấy nó được gọi là “NAT ngược”) thay đổi địa chỉ IP đích. Ở đây chúng ta sẽ xử lý NAT dựa trên nguồn thông thường bằng một chính sách.

    Đôi khi chúng ta cần thay đổi địa chỉ IP nguồn thành một địa chỉ nguồn khác (hãy gọi nó là “translated-A”) khi chúng ta đang giao tiếp với “destination-A” và cũng thay đổi IP nguồn thành “translated-B” khi chúng ta đang giao tiếp với "destination-B".

    Để rõ ràng hơn, chúng ta xem xét kịch bản như sau:
    • Khi máy chủ nội bộ 192.168.1.1 muốn giao tiếp với máy chủ bên ngoài 100.100.100.1, thì máy chủ nội bộ phải được dịch sang 50.50.50.1
    • Khi máy chủ nội bộ 192.168.1.1 muốn giao tiếp với máy chủ bên ngoài 200.200.200.1, thì máy chủ nội bộ phải được dịch sang 50.50.50.2
    Chúng ta có thể đạt được chức năng trên với NAT dựa trên chính sách (Policy-Based NAT).

    Configuration Example:

    Giả sử rằng máy chủ nội bộ 192.168.1.1 được kết nối với giao diện bên trong của ASA. Giả sử dãi IP Public đang có là 50.50.50.0/24. Chúng ta sẽ sử dụng dải IP Public để dịch máy chủ nội bộ của chúng ta theo đích.

    ! Đầu tiên, hãy tạo danh sách truy cập cho Policy NAT
    ASA-TGM(config)# access-list POLICYNAT-A extended permit ip host 192.168.1.1 host 100.100.100.1
    ASA-TGM(config)# access-list POLICYNAT-B extended permit ip host 192.168.1.1 host 200.200.200.1


    ! Bây giờ hãy tạo bản dịch NAT tĩnh cho Destination-A
    ASA-TGM(config)# static(inside,outside) 50.50.50.1 access-list POLICYNAT-A

    ! Bây giờ tạo bản dịch NAT tĩnh cho Destination-B
    ASA-TGM(config)# static(inside,outside) 50.50.50.2 access-list POLICYNAT-B

    Các lệnh trên sẽ thực hiện như sau: Khi địa chỉ nguồn là 192.168.1.1 và địa chỉ đích là 100.100.100.1, thì hãy thay đổi địa chỉ nguồn thành 50.50.50.1.

    Tương tự, khi địa chỉ nguồn là 192.168.1.1 và đích là 200.200.200.1, thì hãy thay đổi địa chỉ nguồn thành 50.50.50.2.

    Các lệnh nat tĩnh ở trên sẽ chỉ có hiệu lực khi và chỉ khi lưu lượng truy cập giữa các máy chủ được tham chiếu trong danh sách truy cập (hoặc lưu lượng truy cập vào hoặc ra).
     
  3. nhatquangit

    nhatquangit Member

    Cấu hình Policy NAT trên Firewall Cisco (tiếp theo)

    Policy NAT cho phép bạn xác định địa chỉ thật để NAT bằng cách xác định địa chỉ nguồn và địa chỉ đích trong extended access list. Bạn cũng có thể tùy chỉnh port nguồn và port đích. Nat thông thường chỉ xem xét địa chỉ nguồn và không xét địa chỉ đích. Policy Nat không hỗ trợ time-based access list.

    Ta xét các ví dụ sau:


    Ví dụ 1: Dùng máy tính có địa chỉ trên mạng 10.1.2.0/24 truy cập đến hai server khác nhau. Khi máy tính truy cập đến server có địa chỉ IP 209.165.201.11 thì địa chỉ thật của máy tính sẽ được dịch sang địa chỉ 209.165.202.129. Khi máy tính truy cập đến server có địa chỉ ip 209.165.200.225 thì địa chỉ máy tính sẽ được dịch sang địa chỉ 209.165.202.130.

    [​IMG]

    Các lệnh cấu hình như sau:

    ASA-TGM(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.0 209.165.201.0 255.255.255.224
    ASA-TGM(config)# access-list NET2 permit ip 10.1.2.0 255.255.255.0 209.165.200.224 255.255.255.224
    ASA-TGM(config)# nat (inside) 1 access-list NET1
    ASA-TGM(config)# global (outside) 1 209.165.202.129
    ASA-TGM(config)# nat (inside) 2 access-list NET2
    ASA-TGM(config)# global (outside) 2 209.165.202.130

    Ví dụ 2: Máy tính trên mạng 10.1.2.0/24 truy cập một server duy nhất cho cả dịch vụ web và các dịch vụ Telnet. Khi máy tính truy cập đến server cho các dịch vụ web, địa chỉ máy tính được dịch sang địa chỉ 209.165.202.129. Khi máy tính truy cập cùng một máy chủ cho các dịch vụ Telnet, địa chỉ máy tính được dịch sang địa chỉ 209.165.202.130.
    [​IMG]

    Các lệnh cấu hình như sau:

    ASA-TGM(config)# access-list WEB permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 80
    ASA-TGM(config)# access-list TELNET permit tcp 10.1.2.0 255.255.255.0 209.165.201.11 255.255.255.255 eq 23
    ASA-TGM(config)# nat (inside) 1 access-list WEB
    ASA-TGM(config)# global (outside) 1 209.165.202.129
    ASA-TGM(config)# nat (inside) 2 access-list TELNET
    ASA-TGM(config)# global (outside) 2 209.165.202.130

    Đối với Policy static NAT, bạn có thể bắt đầu lưu lượng truy cập đến và từ máy chủ thật. Tuy nhiên, địa chỉ đích trong ACL chỉ được sử dụng cho traffic được khởi tạo bởi máy chủ thật. Đối với traffic truy cập đến máy chủ thật từ mạng đích, địa chỉ nguồn không được kiểm tra, và theo NAT rule thì địa chỉ máy chủ thật được sử dụng. Vì vậy, nếu bạn cấu hình Policy static NAT như sau:

    ASA-TGM(config)# access-list NET1 permit ip 10.1.2.0 255.255.255.224 209.165.201.0 255.255.255.224
    ASA-TGM(config)# static (inside,outside) 209.165.202.128 access-list NET1

    Khi các máy chủ trên mạng 10.1.2.0/27 truy cập đến mạng 209.165.201.0/24, chúng được dịch sang các địa chỉ tương ứng trên mạng 209.165.202.128/27. Nhưng bất kỳ máy chủ nào bên ngoài cũng có thể truy cập các địa chỉ 209.165.202.128/27, không chỉ các máy chủ trên mạng 209.165.201.0/24.

    Do địa chỉ nguồn không được kiểm tra cho lưu lượng truy cập đến máy chủ thật, vì vậy bạn không thể sử dụng Policy static NAT để dịch các địa chỉ thật khác nhau đến cùng một địa chỉ được ánh xạ. Ví dụ mô hình sau:

    [​IMG]
    ASA-TGM(config)# static (in,out) 209.165.200.225 access-list policy-nat
    ASA-TGM(config)# access-list policy-nat permit ip host 10.1.1.1 host 209.165.201.1
    ASA-TGM(config)# access-list policy-nat permit ip host 10.1.1.2 host 209.165.201.2

    Mô hình trên, cho thấy hai máy chủ bên trong là 10.1.1.1 và 10.1.1.2, mà bạn muốn được dịch sang 209.165.200.225. Khi máy chủ 209.165.201.1 bên ngoài kết nối tới địa chỉ 209.165.200.225, thì kết nối đến 10.1.1.1. Khi máy chủ 209.165.201.2 bên ngoài kết nối đến cùng một địa chỉ 209.165.200.225, nhưng bạn muốn kết nối đến 10.1.1.2. Tuy nhiên, vì địa chỉ đích trong ACL không được kiểm tra cho traffic truy cập đến máy chủ thật, thì ACL đầu tiên phù hợp với máy chủ thật được sử dụng. Vì ACL đầu tiên là cho 10.1.1.1, sau đó tất cả các kết nối gửi đến từ 209.165.201.1 và 209.165.201.2 và định tuyến tới 209.165.200.255 sẽ có địa chỉ đích được dịch sang 10.1.1.1.

    Chúc các bạn thành công!
     
  4. peheo

    peheo New Member

    thanks
     

trang này