Firewall OS X 10.9.4で特定のポートを開く方法


15

ファイアウォールで特定のポートを開くにはどうすればよいですか?リストにないJenkinsのポートを開きたいため、「アプリケーションからの接続を許可」を使用できません...


Jenkinsがリッスンできるようにするポートとプロトコルは何ですか?この投稿は、あなたがそれを上...設定されているものポートを確認するのに役立ちますstackoverflow.com/a/10106086/475228
bmike

プロトTCPポート8080で
ガイ

この記事のカバーipfwは関連性がありますか?apple.stackexchange.com/questions/33871/…–
bmike

回答:


7

AppleのOS X Mavericksには3つのファイアウォールが含まれています。まず、システム設定を使用して構成できるアプリケーションレベルファイアウォール。ただし、GNU / Linuxおよびpf(FreeBSD / OpenBSD)上のnetfilter / iptablesのようなパケットフィルタリングファイアウォールipfwもあります。

コマンドラインを使用するか、free / libre WaterRoofなどのグラフィカルフロントエンドを使用して、ipfwを構成できます。

次のようなipfwコマンドで開始できます。

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

7
ipfwは廃止され、エルキャピタンでは廃止されました
スラッシュドッティル

21

OS X Yosemite(10.10.3)でも同じ問題が発生しました。明確な指示を提供するこのブログ投稿を見つけました。廃止されたため、ipfwは使用できなくなりました。代わりに、pfctlを使用してください。pfctlには、残念ながら、ポートを開くように指示するコマンドラインがありません。代わりに、次のことが必要です。

  1. テキストエディタで/etc/pf.confを開きます。
  2. 次のような行を追加します。

#すべてのインターフェイスでTCPのポート8080を開きます

proto tcpをanyから任意のポート8080に渡します

  1. ファイルを保存します。
  2. 変更をロードするには:

sudo pfctl -f /etc/pf.conf

udpポートを開く必要がある場合はに変更tcpudp、両方が必要な場合は2行目を追加します。詳細については、をご覧くださいman pf.conf

また、サーバーが、localhost(または)ではなく、アクセス可能な実際のインターフェース(またはすべてのインターフェース、0.0.0.0またはを使用::0)でリッスンしていることを確認してください。127.0.0.1::1


3
おっ、再起動しますか?ポートを開くには本当に再起動する必要がありますか?
jcollum

1
-npfctlに渡すと、ルールが検証され、それらはロードされません。-f /etc/pf.confルールをロードするためだけに使用 します。が読み込まれてpfctl -srいることを確認します。ただし、pfctlルールは必要ですが、特定のポートでEl Capitanへのアクセスを許可するには、それだけでは十分ではないようです。
ブライアンM.ハント

...また、アプリケーションが(ではなくlocalhost)ホスト名にバインドされていることを確認する必要があります。$ hostnameコマンドラインでホスト名を取得します。また、システム環境設定->セキュリティとプライバシー->ファイアウォール->ファイアウォールをオフにしてからファイアウォールをオンにすると、リブートする代わりにファイアウォールを再起動できます。
ブライアンM.ハント

@Keenファンタスティックアバター-素晴らしい思い出!
ドナル

6

ipfwはAppleによって廃止されました。Mountain Lion以降ではpfctlを使用します。

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


6
ポートを開く特定のコマンドを投稿できますか?
チアス14

特定のポートを追加する場合は、構成ファイルを編集する必要があると思います(krypted.com/mac-security/…を参照し、192.168のパーツを検索してください)。一方、アプリケーションがブロックされないようにしたい場合、jamfnation.jamfsoftware.com / discussion.html?id = 6566の最終コメントにかなり良い要約があります。私はまだほとんど10.6を使用しているため、pfctlをあまり使用していません。
ケント14

1

ユーザーがVimをいじるのではなく、1つのライナーを示します。自動化に役立ちます。

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.