Cách mở một cổng cụ thể trong Firewall OS X 10.9.4


15

Làm cách nào để mở một cổng cụ thể trong tường lửa? Tôi không thể sử dụng "cho phép kết nối từ ứng dụng" vì tôi muốn mở cổng cho Jenkins, điều đó không có trong danh sách ...


Cổng nào và giao thức nào bạn muốn Jenkins có thể nghe? Bài đăng này sẽ giúp bạn xem cổng nào được định cấu hình trên ... stackoverflow.com/a/10106086/485228
bmike

Trên cổng proto Tcp 8080
Guy

Bài đăng này ipfwsẽ có liên quan? apple.stackexchange.com/questions/33871/...
bmike

Câu trả lời:


7

OS X Mavericks của Apple chứa ba tường lửa. Trước hết, Tường lửa cấp ứng dụng có thể được cấu hình bằng cài đặt hệ thống. Nhưng cũng có ipfw, một tường lửa lọc gói như netfilter / iptables trên GNU / Linux và pf (FreeBSD / OpenBSD).

Bạn có thể định cấu hình ipfw bằng dòng lệnh hoặc sử dụng giao diện đồ họa như WaterRoust miễn phí / libre .

Bạn có thể bắt đầu với một lệnh ipfw như:

sudo ipfw add 31010 allow tcp from any to any dst-port 8080

7
ipfw không được dùng nữa và biến mất trong El Capitan
slashdottir

21

Tôi gặp vấn đề tương tự theo OS X Yosemite (10.10.3). Tìm thấy bài viết blog này cung cấp hướng dẫn rõ ràng. Chúng tôi không thể sử dụng ipfw nữa, vì nó không dùng nữa. Thay vào đó, sử dụng pfctl, không may thiếu một cách dòng lệnh hay để bảo nó mở một cổng. Thay vào đó, bạn cần phải:

  1. Mở /etc/pf.conf trong trình soạn thảo văn bản.
  2. Thêm một dòng như thế này:

# Mở cổng 8080 cho TCP trên tất cả các giao diện

vượt qua proto tcp từ bất kỳ đến bất kỳ cổng 8080 nào

  1. Lưu các tập tin.
  2. Tải các thay đổi với:

sudo pfctl -f /etc/pf.conf

Nếu bạn cần mở một cổng udp, hãy đổi tcpthành udp, nếu bạn cần cả hai, hãy thêm một dòng thứ hai. Chi tiết bổ sung có thể được tìm thấy trong man pf.conf.

Đồng thời đảm bảo rằng máy chủ của bạn đang lắng nghe trên giao diện thực tế mà bạn muốn nó có thể truy cập qua (hoặc tất cả các giao diện, sử dụng 0.0.0.0hoặc ::0), chứ không phải localhost ( 127.0.0.1hoặc ::1).


3
Whoa, khởi động lại? Bạn có thực sự phải khởi động lại để mở một cổng?
jcollum

1
chuyển -nđến pfctl để xác minh các quy tắc và không tải chúng. Sử dụng chỉ -f /etc/pf.confđể tải các quy tắc. Xác nhận chúng được tải với pfctl -sr. Tuy nhiên, trong khi các quy tắc pfctl là cần thiết, bản thân nó không xuất hiện đủ để cho phép truy cập vào El Capitan trên một cổng nhất định.
Brian M. Hunt

... Người ta cũng phải đảm bảo ứng dụng được liên kết với tên máy chủ (không localhost); người ta có được tên máy chủ với $ hostnametrên dòng lệnh. Ngoài ra, người ta có thể khởi động lại tường lửa, thay vì khởi động lại, bằng cách đi tới Tùy chọn hệ thống -> Bảo mật & quyền riêng tư -> Tường lửa -> Tắt Tường lửa và sau đó Bật Tường lửa.
Brian M. Hunt

@Keen avatar tuyệt vời - những kỷ niệm tuyệt vời!
Dónal

6

ipfw bị Apple phản đối. Sư tử núi và sau đó sử dụng pfctl.

http://support.apple.com/kb/ht5413


6
bạn có thể gửi lệnh cụ thể để mở một cổng?
thias

Nếu bạn muốn thêm một cổng cụ thể, thì tôi nghĩ bạn cần chỉnh sửa tệp cấu hình (xem krypted.com/mac-security/ trộm và tìm kiếm phần với 192.168). Mặt khác, nếu bạn muốn đảm bảo ứng dụng không bị chặn, jamfnation.jamfsoftware.com/discussion.html?id=6566 có một bản tóm tắt khá hay trong bình luận cuối cùng. Tôi vẫn chủ yếu sử dụng 10.6, vì vậy tôi chưa làm việc với pfctl nhiều.
Kent

1

Đây là một lớp lót thay vì yêu cầu người dùng phải loay hoay với Vim. Hữu ích cho tự động hóa.

sed -i '' -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Hoặc một sự thay thế cho người dùng Linux

sed -i -e '$a\pass in proto tcp from any to any port 8080' /etc/pf.conf; pfctl -vnf /etc/pf.conf

Chỉ cần chắc chắn rằng bạn thay đổi 8080trong ví dụ thành bất cứ điều gì bạn có trong tâm trí. Trao đổi tcp với udp nếu bạn thích.

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.