LoginSignup
1
1

More than 5 years have passed since last update.

golangのお勉強7

Last updated at Posted at 2017-06-18

go runすると受信許可のアラートが出る

macのセキュリティによるもの
対応としては下記が考えられた

  • docker環境を実行環境とする
  • 頑張ってセキュリティを回避

両方やってみたけど、、dockerの方はできそうな気はしたけど放置。
セキュリティ周りの調べ物は他でも知っておいていい気がしたので深掘り、、
macのファイヤーウォールは2つ用意されている。
パケットファイヤーウォールpfとソケットフィルタ(アプリごと)ファイヤーウォールsocketfilterfw
環境設定のやつはソケットフィルタに当たる

  • pfはツールを使うと便利に使えるがデフォルトはソケットフィルタのみ有効状態
  • ソケットフィルタのオプションでアンロックするとかリムーブするができる。
  • pfcl,iceFloor,Murusなどでpfを制御すると便利らしい

os x - 80番ポートで起動させているnginxのWebサーバーに外部からアクセスできない - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/6076/80%E7%95%AA%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%81%A6%E3%81%84%E3%82%8Bnginx%E3%81%AEweb%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84

Command Line Firewall Management In OS X 10.10 - krypted.com
http://krypted.com/mac-security/command-line-firewall-management-in-os-x-10-10/

  • node.jsの中にはfirewallを迂回するためのスクリプトがツールとして用意されていた

node/macosx-firewall.sh at master · nodejs/node
https://github.com/nodejs/node/blob/master/tools/macosx-firewall.sh

PFとALF

  • パケットフィルタならpfcl,iceFloor,Murusなど
  • アプリケーションレイヤーフィルタならsocketfilterfw,Vallum(ライセンスによりMurusに含まれる)など

Vallum - macOS Application Firewall
https://vallumfirewall.com/

docker環境でgolang

公式
on-buildは推奨しない的なことがかいてある。

library/golang - Docker Hub
https://hub.docker.com/_/golang/

onbuildを使った場合の実行事例(少々昔の情報)

Goの公式dockerイメージを使ってみた - Qiita
http://qiita.com/jpshadowapps/items/e5de997d70fb8ecae7da

go runしたときのファイルの実体

macだと/privateの下にセキュアな一時フォルダを作っていれるっぽい。
環境によっては/tmpのときもあるのかも??

/private/var/folders/04/xmzz_y854gdhogehoge0gn/T/go-build7hoge9746/command-line-arguments/_obj/exe/main

go-build.../command-line-argumentsに。。

回避方法の検討

go installやgo buildでファイルを作ってから、アプリを許可させて、そのあとで実行すればどうか。
go runのコマンドオプションで実体ファイルのパスを指定できないのか。

プラグインを使う

使って見ればデバッグ情報を吐き出したりとか便利なのかも。firewall迂回をフックさせるとかどうなんだろう。

golang 1.8 pluginを使ってみた - Qiita
http://qiita.com/Blufe/items/39194868444179e36edb

結果

socketfilterfw --add などはsudoしてもうまく動作しなかった(Sierra)

$ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --remove "/hoge/main"
The file path you specified does not exist

環境設定の画面での操作で同じことができるのでそちらで対応した

そのうえでステルスモード(外部からのネットワーキングに対して息をひそめる)をオフにするとアラートが出ずに
go runできるようになった。ひとまず。しっくりこないけど。
たぶん本当はpfにするのがいい気がする。

追記:後日また同じようにアラートが出始めた

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1