急に食欲復活してきた
JVM はよくヒープサイズ指定してチューニングする話見るけど、 .NET のヒープのサイズはどう調整されるのか把握してないなぁ。 Minecraft サーバー動かしたときは初期ヒープサイズ大きくしておかないとすぐクライアントを切断しやがったので、少なくとも JVM はあんまり調整うまくないんじゃないかと思ってるんだけど
JVM、実行時間の 98% 以上を GC が占めると、ユーザーのプログラムの実行が進まないと判断して OutOfMemory になるの面白いな
そういえば Azure の仮想マシンは Azure のセキュリティーポリシーにぶん投げただけで、仮想マシン側のファイアウォール設定してないな
iptables わからねえって言って調べてるのに Debian の次のバージョンで nftables にするぜみたいな情報を見てしまい、ふぇぇんぎじゅつのしんぽ嫌だああ
MS アカウントの脆弱だったパスワード変えたのに、 Windows のログインパスワードが変わってくれないので、仕方なく VPN 内からしかリモートデスクトップできなくしてる
もう一度 Docker のネットワークの調査して、 iptables に書き込まれるルール取っておこうと思ったんだけれど、腰が重い
ルールの前にDENYいれてもDockerのルールでAccept anywhereされてるから意味ないんじゃない?
@Eai "Do not manipulate this table manually. If you need to add rules which load before Docker’s rules, add them to the DOCKER-USER chain." https://docs.docker.com/network/iptables/
DROP 入れても効かない!と思ったら IPv4 の設定をしたにもかかわらず mDNS で解決させたので IPv6 でアクセスしたからだった
あれ?なんか Docker のネットワーク理解したと思ったら全く理解してなかった。 docker-proxy を使ってるから listen してるのはホスト側なはずなのに、どうしてホストの INPUT では DROP できなくて、 FORWARD で DROP できるんだ??
あっ! nat テーブルのほうにルールがあった!ということは docker-proxy は Docker の iptables が無効化されているときの保険で動いてるだけか!
iptables -L みながら、なんかおかしいなぁ、挙動とルールが違うなぁと思っていたんだけど、ブリッジインターフェイス単位で設定されているので -v つけないと意味がわからないという事態だったクソ
Docker が iptables に設定する内容は
* com.docker.network.bridge.enable_ip_masquerade=true のときにネットワーク外(Docker の network, Linux 上のブリッジ)へのパケットに対して MASQUERADE を設定する
* 他の network へのパケットを DROP する
* com.docker.network.bridge.enable_icc=false のときに同一ネットワークへのパケットを DROP する
といった感じかな。疑問点は、 DOCKER-ISOLATION-STAGE で他ネットワークへのパケットを DROP しているにも関わらず、なぜかその後に ACCEPT するルールがあり、しかも 1 パケット ACCEPT を通過していること。なんだろうこれ
--expose に該当する iptables ルールが見当たらないし、 --expose しなくてもアクセスできてしまったんだが
iptables の永続化、 /etc/network/if-pre-up.d/ 下に iptables 叩くスクリプト入れておくのが Debian wiki の見解 https://wiki.debian.org/iptables
Docker は DOCKER-USER の中身があるのに削除したりしないから、 ufw 起動後、 Docker 起動前に何かを突っ込むならば、 /etc/ufw/before.rules に DOCKER-USER チェーンを作成するのを挿入するのが正解かな?
各位のほうが iptables 詳しそうなので誰か僕の代わりにコンテナの label からファイアウォールプロビジョニングするツール作ってください。僕は仕様リストアップで心が折れています