Cisco ASA: Tại sao NAT tĩnh chặn truy cập thông qua VPN? [đóng cửa]


7

TL / DR

Tôi thiết lập quy tắc tĩnh nat để tôi có thể sử dụng địa chỉ IP internet công cộng của mình để trực tiếp ssh vào một máy chuyên dụng trên mạng bên trong. Kết quả là tôi không thể ssh vào máy chuyên dụng nữa, khi được kết nối qua AnyConnect VPN. Tại sao? Làm thế nào để tôi sửa lỗi này?

Câu chuyện dài:

Tôi có ASA 5512-X mà tôi sử dụng để chấm dứt các phiên VPN AnyConnect. Điều này đã được làm việc rất tốt. Mọi người sử dụng AnyConnect để kết nối với ASA, nhận địa chỉ IP từ nhóm IP được gán đặc biệt và họ có thể truy cập mọi thứ tôi đưa vào danh sách truy cập.

Bây giờ, tôi có ý tưởng này để chuyển trực tiếp cổng 22 sang một máy chuyên dụng trong mạng của mình (tôi chỉ có giao diện bên trong và bên ngoài), để tôi có thể SSH vào địa chỉ IP công cộng của mình và kết thúc trên máy chuyên dụng mà không cần yêu cầu kết nối VPN.

Các thiết lập dường như đủ đơn giản:

object network MyEndpoint
    host 10.0.0.1
    nat (inside, outside) static interface service tcp ssh ssh
access-list from_outside_inside extended permit tcp any object MyEndpoint eq ssh
access-group from_outside_inside in interface outside

và nó thực sự hoạt động. Bây giờ tôi có thể

ssh ssh.mydomain.com

và thực sự có được một phiên ssh trên máy chuyên dụng của tôi. Tuy nhiên, thành công này đến với chi phí ssh 10.0.0.1không còn hoạt động nữa khi tôi được kết nối với ASA / mạng của mình thông qua AnyConnect như trước đây, trước khi tôi thiết lập NAT tĩnh.

Tôi chắc chắn có thể kiểm soát hành vi của ASA:

Khi tôi không có các nat (inside,outside)dòng trong cấu hình của tôi,

  • ssh 10.0.0.1 hoạt động nhưng
  • ssh ssh.mydomain.com không hoạt động.

Khi tôi những nat (inside,outside)quy tắc như là một phần của cấu hình, đó là chiều ngược lại:

  • ssh ssh.mydomain.com hoạt động nhưng
  • ssh 10.0.0.1 không hoạt động.

Để điều tra, tôi đã thiết lập một bản chụp trên ASA

capture MyEndpoint type raw-data interface inside
capture MyEndpoint type raw-data interface outside
capture MyEndpoint match tcp host 10.0.0.1 any

Khi tôi lần đầu tiên kết nối qua AnyConnect và sau đó thử ssh 10.0.0.1, bản chụp không hiển thị / chụp bất cứ thứ gì, miễn là nat (inside,outside)quy tắc được kích hoạt. Ngoài ra, các nỗ lực kết nối SSH của tôi không bao giờ đến được máy chủ.

Rõ ràng ASA đang ăn các yêu cầu kết nối có nguồn gốc từ các điểm cuối được kết nối AnyConnect, khi natquy tắc được kích hoạt.

Lúc đầu, tôi nghĩ rằng tôi cần một số bổ sung vào danh sách truy cập, nhưng tôi không thể làm cho nó hoạt động theo cách đó. Giao diện VPN nào lưu lượng truy cập VPN vào ASA nào? bên ngoài hay bên trong? Tôi cho rằng trong trường hợp này không thành vấn đề, bởi vì tôi đang sử dụng ký tự đại diện ( any) cho nguồn, trong ý kiến ​​của tôi, bao gồm cả lưu lượng VPN.

Sau đó, tôi nghĩ rằng ASA sẽ luôn áp dụng nat, điều đó có nghĩa là gói mang SYN-ACK sẽ được kết nối với IP bên ngoài của tôi để phá vỡ kết nối, vì tôi đang kết nối từ một địa chỉ VPN riêng chứ không phải Internet. Nhưng các SYN không bao giờ đến được máy chủ, do đó không có các SYN-ACK.

Tôi đã dành cả ngày để vùi đầu vào lệnh "mới" nat. Khi tôi làm show natASA, tôi nhận được

Auto NAT Policies (Section 2)
1 (inside) to (outside) source static MyEndpoint interface   service tcp ssh ssh 
    translate_hits = 0, untranslate_hits = 0

Theo như tôi nhận được hôm nay thì đây chỉ là một bản dịch địa chỉ nguồn để rời khỏi lưu lượng. Tôi không biết, làm thế nào / tại sao điều này ngụ ý một bản dịch địa chỉ đích cho lưu lượng truy cập bắt nguồn từ Internet đến ASA. Ai đó có thể giải thích cho tôi tại sao ASA lại hành xử theo cách này không?

Chỉnh sửa 1: packet-tracer

Đọc qua các tài liệu tôi đi qua lệnh ASA packet-tracer. Khi tôi làm

packet-tracer input inside tcp 10.100.0.2 31337 10.0.0.1 22

ASA cho tôi biết một luồng sẽ được tạo và gói được chấp nhận. Khi tôi làm

packet-tracer input outside tcp 10.100.0.2 31337 10.0.0.1 22

tôi có

Phase: 6
Type: WEBVPN-SVC
Subtype: in
Result: DROP
Config:
Additional Information:

Result:
input-interface: outside
input-status: up
input-line-status: up
output-interface: inside
output-status: up
output-line-status: up
Action: drop
Drop-reason: (acl-drop) Flow is denied by configured rule

Vì vậy, tôi đoán đây là một số hành vi mong muốn ngầm, ngoại trừ nếu bạn là tôi.

Chỉnh sửa 2: Tìm kiếm kẹp tóc

Tôi đã tìm thấy một số bài báo mà cuối cùng đã chỉ cho tôi bài viết đầy hứa hẹn này chứa thông tin mà tôi có thể cần một quy tắc tự nhiên dọc theo dòng

nat (outside,outside) \
    source static \
        client_vpn_pool client_vpn_pool \
    destination static \
        remote_office_net remote_office_net

nhưng nó không hoạt động. Tôi có một đối tượng mạng cho mạng con máy khách vpn của tôi và một đối tượng mạng cho mạng con 10.0.0.1. Điều chỉnh mẫu ở trên không mang lại kết quả như mong đợi.

Khi nat (inside,outside)quy tắc của tôi được áp dụng, SSH không hoạt động, nhưng tôi có thể ping 10.0.0.1 tốt. Khi tôi thêm một nat (outside,ouside)quy tắc theo đề xuất của bài viết, ping sẽ ngừng hoạt động. Tôi cũng đã thử các phiên bản của quy tắc bên ngoài với các đối tượng mạng cho máy chủ lưu trữ cụ thể và chỉ phạm vi ip local poolsử dụng cho các máy khách vpn. Tất cả chỉ làm cho ping dừng lại.

Chỉnh sửa 3: Đừng bận tâm

Nó đang làm việc bây giờ. Tôi thực sự không thay đổi bất cứ điều gì. Tôi vừa mới đi ngủ. Tôi đoán có một số trạng thái nội bộ trong ASA đã gây ra hành vi này và nó đã hết thời gian trong khi tôi đang ngủ.

Vẫn có một điều là khi tôi sử dụng packet-tracer input [inside|outside] tcp <my vpn ip> 31337 10.0.0.1 22gói theo dõi luôn nói rằng gói sẽ bị hủy.

Khi tôi đặt packet-tracer input insidenó thất bại tại:

Phase: 6
Type: WEBVPN-SVC
Subtype: in
Result: DROP
Config:
Additional Information:

[...]
Drop-reason: (acl-drop) Flow is denied by configured rule

và khi tôi đặt packet-tracer input outsidenó thất bại tại:

Phase: 6
Type: NAT
Subtype: rpf-check
Result: DROP
Config:
object network MyEndpoint
 nat (inside,outside) static interface service tcp ssh ssh 
Additional Information:

[...]
Drop-reason: (acl-drop) Flow is denied by configured rule

Tuy nhiên, tính đến ngày hôm nay, ping và SSH đến / từ Máy tính xách tay được kết nối VPN của tôi đến MyEndpoint (còn gọi là 10.0.0.1) hoạt động như một cơ duyên. Làm thế nào điều ASA này hoạt động ???


Xin chào, bạn có thể lên mạng trong Trò chuyện không? Tôi có cùng ASA và thật tuyệt khi nói về nó, nhưng không phải trong Chủ đề này bởi vì điều này là không chính đáng ;-) Sẽ rất tuyệt!
SystemCookie

Là nó? Tôi đã tự hỏi liệu Superuser có thể là nơi tốt hơn không, nhưng ở đó chúng tôi chủ yếu thảo luận về các hệ điều hành và trang web này có rất nhiều câu hỏi về ASA ... Tôi muốn nói về nó, nhưng tôi thực sự không thể. Tôi có thể nhắn tin cho bạn trong một vài ngày?
dùng1129682

Không, bài viết của bạn là hoàn toàn chính xác. Ý tôi là trò chuyện trong một câu hỏi không chính đáng ;-) Có bạn có thể nhắn tin cho tôi - nếu bạn nhấp vào trò chuyện, tôi sẽ gửi cho bạn dữ liệu nơi bạn có thể tìm thấy tôi và chúng tôi có thể nói về ASA 5512-X ;-)
SystemCookie

Có câu trả lời nào giúp bạn không? Nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

" Bây giờ nó đang hoạt động. Tôi thực sự không thay đổi bất cứ điều gì. Tôi vừa mới đi ngủ. Tôi đoán có một trạng thái nội bộ trong ASA đã gây ra hành vi này và nó đã hết thời gian trong khi tôi đang ngủ. " chấp nhận nó để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời.
Ron Maupin

Câu trả lời:


1

Vì vậy, nếu tôi hiểu chính xác, bạn không thể truy cập vào giao diện bên trong ASA của mình thông qua SSH khi được kết nối qua VPN? Bạn đã thử ban hành lệnh sau trên ASA:

quản lý truy cập bên trong

Nếu đường hầm VPN của bạn chấm dứt trên một giao diện, nhưng bạn muốn quản lý ASA bằng cách truy cập vào một giao diện khác, bạn cần xác định giao diện đó là giao diện truy cập quản lý.


Không, không có gì sai khi truy cập ASA. Khi được kết nối qua VPN, tôi không thể ssh vào máy chủ Linux (hãy gọi anh ta là Rudolph) là một phần của mạng bên trong của tôi và tôi thiết lập NAT tĩnh cho. Mọi thứ khác hoạt động tuyệt vời. Tôi có thể ssh vào Rudolph từ bất kỳ máy tính nào khác trong mạng bên trong. Tôi có thể ssh vào Rudolph từ Internet. Nhưng tôi không thể ssh vào Rudolph khi được kết nối qua VPN. Tuy nhiên, tôi có thể ping Rudolph khi được kết nối qua VPN. Tôi cũng đã management-access insidethiết lập.
dùng1129682

@ user1129682, có vẻ như bạn chỉ cần cho phép SSH trên VPN. Chỉ cần sửa đổi cấu hình ASA để cho phép SSH từ giao diện đường hầm sang giao diện bên trong.
Ron Maupin

@RonMaupin giao diện đường hầm là gì? (con trỏ tới doc rất tốt cho tôi)
user1129682

@ user1129682, Đó là những gì bạn đã tạo cho VPN của mình trên ASA.
Ron Maupin

@RonMaupin Tôi không có. Tôi tìm thấy chiếc hộp ở trạng thái hiện tại và không ai sẵn sàng tuyên bố rằng những người đã thiết lập nó thậm chí còn tồn tại. Nhưng rõ ràng ASA đang được sử dụng hiệu quả ... Ý bạn là giao diện mà webvpn được bật? Tôi có enabled outsideenabled inside. Ngoài ra, nó hiện đang hoạt động (xem Chỉnh sửa 3) mà không cần cấu hình thêm.
dùng1129682

1

Xin lưu ý rằng trong khi truy cập SSL VPN dựa trên web, NAT và PAT bị hạn chế trong CISCO ASA. Ngoài ra, luồng lưu lượng phải được chỉ định bằng ACL hai chiều, bằng cách cho phép kết nối trả lại từ máy chủ bảo mật thấp hơn đến máy chủ bảo mật cao hơn ngay cả khi đã có kết nối được thiết lập từ máy chủ cấp cao hơn đến máy chủ cấp thấp hơn (Không còn trạng thái nữa ).

Hy vọng đây là lý do NAT được cấu hình của bạn không hoạt động.

Lệnh "sysopt Connection allow-vpn" được sử dụng trong ASA để cho phép lưu lượng VPN bất kể danh sách truy cập (chính sách được miễn bằng cách cho phép toàn bộ lưu lượng VPN), tuy nhiên bạn có thể sử dụng các bộ lọc và chính sách VPN để hạn chế lưu lượng.

Giả sử lệnh đang hoạt động trên tường lửa của bạn và thuộc tính giá trị máy chủ dns không được cấu hình đúng trên các chính sách VPN của bạn.

Vui mừng khi thấy rằng nó làm việc cho bạn mà không có bất kỳ thay đổi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.