วิธีเปิดพอร์ตเฉพาะใน Firewall OS X 10.9.4


15

ฉันจะเปิดพอร์ตเฉพาะในไฟร์วอลล์ได้อย่างไร ฉันไม่สามารถใช้ "อนุญาตการเชื่อมต่อจากแอปพลิเคชัน" เนื่องจากฉันต้องการเปิดพอร์ตสำหรับเจนกินส์ที่ไม่ได้อยู่ในรายการ ...


พอร์ตและโปรโตคอลใดที่คุณต้องการให้ Jenkins สามารถฟังได้ โพสต์นี้จะช่วยให้คุณเห็นพอร์ตที่กำหนดค่าไว้บน ... stackoverflow.com/a/10106086/475228
bmike

บน proto Tcp port 8080
Guy

โพสต์นี้ครอบคลุมipfwจะมีความเกี่ยวข้อง? apple.stackexchange.com/questions/33871/…
bmike

คำตอบ:


7

Apple OS X Mavericks มีสามไฟร์วอลล์ ก่อนอื่นเลยคือ Application Level Firewall ซึ่งสามารถกำหนดค่าได้โดยใช้การตั้งค่าระบบ แต่ยังมี ipfw ซึ่งเป็นไฟร์วอลล์การกรองแพ็คเก็ตเช่น netfilter / iptables บน GNU / Linux และ pf (FreeBSD / OpenBSD)

คุณสามารถกำหนดค่าทั้งipfwใช้บรรทัดคำสั่งหรือการใช้กราฟิก front-end เช่นฟรี / Libre WaterRoof

คุณสามารถเริ่มต้นด้วยคำสั่ง ipfw เช่น:

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

7
ipfw เลิกใช้แล้วและไปที่ El Capitan
slashdottir

21

ฉันมีปัญหาเดียวกันภายใต้ OS X Yosemite (10.10.3) พบโพสต์บล็อกนี้ที่ให้คำแนะนำที่ชัดเจน เราไม่สามารถใช้ ipfw ได้อีกต่อไปเนื่องจากเลิกใช้แล้ว ให้ใช้ pfctl แทนซึ่งน่าเสียดายที่ไม่มีบรรทัดคำสั่งที่ดีในการบอกให้เปิดพอร์ต คุณต้อง:

  1. เปิด /etc/pf.conf ในเท็กซ์เอดิเตอร์
  2. เพิ่มบรรทัดเช่นนี้:

# Open port 8080 สำหรับ TCP ในทุกอินเตอร์เฟส

ส่งผ่าน proto tcp จากทุกพอร์ต 8080

  1. บันทึกไฟล์
  2. โหลดการเปลี่ยนแปลงด้วย:

sudo pfctl -f /etc/pf.conf

หากคุณต้องการเปิดพอร์ต udp เปลี่ยนtcpเป็นudpหากคุณต้องการทั้งสองให้เพิ่มบรรทัดที่สอง man pf.confรายละเอียดเพิ่มเติมสามารถพบได้ใน

ตรวจสอบให้แน่ใจด้วยว่าเซิร์ฟเวอร์ของคุณกำลังรับฟังบนอินเทอร์เฟซจริงที่คุณต้องการให้เข้าถึงได้ (หรืออินเทอร์เฟซทั้งหมดที่ใช้0.0.0.0หรือ::0) ไม่ใช่โลคัลโฮสต์ ( 127.0.0.1หรือ::1)


3
โอ้โหรีบูต? คุณต้องรีบู๊ตเพื่อเปิดพอร์ตหรือไม่?
jcollum

1
ส่งผ่าน-nไปยัง pfctl ตรวจสอบกฎและชี้ไม่ได้โหลดพวกเขา ใช้เพียง -f /etc/pf.confเพื่อโหลดกฎ pfctl -srตรวจสอบว่าพวกเขาจะเต็มไปด้วย อย่างไรก็ตามในขณะที่จำเป็นต้องใช้กฎ pfctl แต่ก็ไม่ปรากฏว่าเพียงพอที่จะอนุญาตให้เข้าถึง El Capitan บนพอร์ตที่กำหนด
Brian M. Hunt

... ต้องตรวจสอบให้แน่ใจว่าแอปพลิเคชันนั้นเชื่อมโยงกับชื่อโฮสต์ (ไม่ใช่localhost) ได้รับชื่อโฮสต์ด้วย$ hostnameในบรรทัดคำสั่ง นอกจากนี้หนึ่งสามารถรีสตาร์ทไฟร์วอลล์แทนที่จะรีบูตโดยไปที่การตั้งค่าระบบ -> ความปลอดภัยและความเป็นส่วนตัว -> ไฟร์วอลล์ -> ปิดไฟร์วอลล์แล้วเปิดไฟร์วอลล์
Brian M. Hunt

Avatar กระตือรือร้น @Keen - ความทรงจำที่ดี!
Dónal

6

ipfw เลิกใช้แล้วโดย Apple Mountain Lion และต่อมาใช้ pfctl

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


6
คุณสามารถโพสต์คำสั่งเฉพาะเพื่อเปิดพอร์ตได้หรือไม่
thias

หากคุณต้องการเพิ่มพอร์ตเฉพาะฉันคิดว่าคุณต้องแก้ไขไฟล์การกำหนดค่า (ดูที่krypted.com/mac-security/ ......และค้นหาส่วนที่มี 192.168) ในทางกลับกันหากคุณต้องการให้แน่ใจว่าแอปพลิเคชันไม่ได้ถูกบล็อคjamfnation.jamfsoftware.com/discussion.html?id=6566มีข้อสรุปที่ดีในความคิดเห็นสุดท้าย ฉันยังคงใช้ 10.6 เป็นส่วนใหญ่ดังนั้นฉันจึงไม่ได้ทำงานกับ pfctl มาก
Kent

1

นี่คือหนึ่งซับแทนที่จะต้องการให้ผู้ใช้ยุ่งกับ Vim มีประโยชน์สำหรับระบบอัตโนมัติ

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

หรือทางเลือกสำหรับผู้ใช้ Linux

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

เพียงให้แน่ใจว่าคุณเปลี่ยน8080ตัวอย่างสิ่งที่คุณมีในใจ สลับ tcp ด้วย udp หากคุณต้องการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.