Cara membuka port tertentu di Firewall OS X 10.9.4

15

Bagaimana cara membuka port tertentu di firewall? Saya tidak dapat menggunakan "izinkan koneksi dari aplikasi" karena saya ingin membuka port untuk Jenkins, yang tidak ada dalam daftar ...

Orang
sumber
Port dan protokol apa yang Anda inginkan agar Jenkins dapat dengarkan? Posting ini akan membantu Anda melihat port apa yang dikonfigurasikan pada ... stackoverflow.com/a/10106086/475228
bmike
Pada proto port Tcp 8080
Guy
Apakah liputan pos ini ipfwrelevan? apple.stackexchange.com/questions/33871/...
bmike

Jawaban:

7

OS X Mavericks Apple berisi tiga firewall. Pertama-tama, Application Level Firewall yang dapat dikonfigurasi menggunakan pengaturan sistem. Tetapi ada juga ipfw, firewall packet filtering seperti netfilter / iptables di GNU / Linux dan pf (FreeBSD / OpenBSD).

Anda dapat mengkonfigurasi ipfw menggunakan baris perintah, atau menggunakan front-end grafis seperti WaterRoof gratis / gratis .

Anda bisa mulai dengan perintah ipfw seperti:

sudo ipfw add 31010 allow tcp from any to any dst-port 8080
Malte Bublitz
sumber
7
ipfw sudah usang dan hilang di El Capitan
slashdottir
21

Saya memiliki masalah yang sama di bawah OS X Yosemite (10.10.3). Ditemukan posting blog ini yang memberikan instruksi jelas. Kami tidak dapat menggunakan ipfw lagi, karena sudah usang. Sebagai gantinya, gunakan pfctl, yang sayangnya tidak memiliki cara baris perintah yang bagus untuk mengatakannya untuk membuka port. Sebaliknya, Anda perlu:

  1. Buka /etc/pf.conf di editor teks.
  2. Tambahkan baris seperti ini:

# Buka port 8080 untuk TCP pada semua antarmuka

lewat proto tcp dari sembarang ke port 8080

  1. Simpan file.
  2. Muat perubahan dengan:

sudo pfctl -f /etc/pf.conf

Jika Anda perlu membuka port udp, ubah tcpke udp, jika Anda membutuhkan keduanya, tambahkan baris kedua. Detail tambahan dapat ditemukan di man pf.conf.

Pastikan juga server Anda mendengarkan pada antarmuka aktual yang Anda inginkan dapat diakses melalui (atau semua antarmuka, menggunakan 0.0.0.0atau ::0), bukan localhost ( 127.0.0.1atau ::1).

Tajam
sumber
3
Whoa, reboot? Apakah Anda benar-benar harus reboot untuk membuka port?
jcollum
1
lewat -nke pfctl memverifikasi aturan, dan jelas tidak memuatnya. Gunakan hanya -f /etc/pf.confuntuk memuat aturan. Pastikan sudah dimuat pfctl -sr. Namun, sementara aturan pfctl diperlukan, itu tidak muncul dengan sendirinya cukup untuk memungkinkan akses ke El Capitan pada port tertentu.
Brian M. Hunt
... Kita juga harus memastikan aplikasi terikat dengan nama host (tidak localhost); satu mendapat nama host dengan $ hostnamedi baris perintah. Juga, seseorang dapat memulai ulang firewall, alih-alih me-reboot, dengan masuk ke System Preferences -> Security & Privacy -> Firewall -> Matikan Firewall dan kemudian Nyalakan Firewall.
Brian M. Hunt
@Keen avatar fantastis - kenangan indah!
Donal
6

ipfw sudah ditinggalkan oleh Apple. Mountain Lion dan kemudian gunakan pfctl.

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

Kent
sumber
6
dapatkah Anda mengirim perintah khusus untuk membuka port?
Ini
Jika Anda ingin menambahkan port tertentu, maka saya pikir Anda perlu mengedit file konfigurasi (lihat krypted.com/mac-security/… dan cari bagian dengan 192.168). Di sisi lain, jika Anda ingin memastikan aplikasi tidak diblokir, jamfnation.jamfsoftware.com/discussion.html?id=6566 memiliki ringkasan yang cukup bagus dalam komentar akhir. Saya masih kebanyakan menggunakan 10.6, jadi saya belum banyak bekerja dengan pfctl.
Kent
1

Berikut adalah satu liner daripada mengharuskan pengguna untuk dipusingkan dengan Vim. Berguna untuk otomasi.

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

Atau alternatif untuk pengguna Linux

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

Pastikan Anda berubah 8080dalam contoh menjadi apa pun yang ada dalam pikiran Anda. Tukar tcp dengan udp jika Anda suka.

BarryMode
sumber