登り返しもそこそこあるコースで 獲得標高 1645m 走行距離 86km
続きを読む
Linux の sysctl net.ipv4. icmp_echo_ignore_broadcasts
と、 macOS / XNU の sysctl net.inet.icmp.bmcastecho
の実装を調べたエントリです
Linux の sysctl net.ipv4. icmp_echo_ignore_broadcasts
は CIS Benchmarks で Smurf 攻撃対策として取り上げられています。
Smurf 攻撃自体の説明は他のサイトで確認してください
SMURF攻撃とは、攻撃者が標的となるサーバーをInternet Control Message Protocol(ICMP)パケットで圧倒させようとする分散サービス妨害(DDoS)攻撃です。1つまたは複数のコンピューターネットワークに対して、標的のデバイスのスプーフィングIPアドレスでリクエストを行うことにより、コンピューターネットワークは標的サーバーに応答し、初期攻撃トラフィックを増幅し、潜在的に標的を圧倒し、アクセス不能にします。この攻撃ベクトルは一般に、解決された脆弱性と見なされており、もはや流行していません。
引用: https://www.cloudflare.com/ja-jp/learning/ddos/smurf-ddos-attack
sysctl net.ipv4. icmp_echo_ignore_broadcasts
あるいは /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
の説明を、Red Hat Cusotmer Portal から引用します。
icmp_echo_ignore_all 及び icmp_echo_ignore_broadcasts — 各ホストからの ICMP ECHO パケット、もしくはブロードキャスト及びマルチキャストのアドレスを起点とする ICMP ECHO パケットのみを無視することをそれぞれカーネルに許可します。0 の値は、カーネルによる応答を許可し、1 の値はパケットを無視します。
macOS ( XNU ) では、Linux と同様に機能する sysctl として sysctl net.inet.icmp.bmcastecho
が用意されています。なお、bmcastecho
は Broadcast Multicast Echo
の略称のようです。
Smurf 攻撃の sysctl の設定方法を取り扱った記事はたくさんありますが、実装 (= カーネルのソース) まで踏み込んでるエントリは無いようなので、調べて見ましょう。
macOS ( XNU ) のソースも調べてました
続きを読むmacOS と Linux の UNIX Domain Socket の SO_SNDBUF, SO_RCVBUF について調べていた。
会社で @kurotaky のトラブルシューティングの相談を受けた際の覚書。
下記のように UNIX Domain Socket を挟んで IPC しているコードがあり、macOS と Linux で挙動が違っているのを調べていた。Linux では Go Ethereum が送ってくるデータを全部読み出せるが、macOS だと一部 ( 8192 バイト 注1 ) しか読み出せないとのことだった。
Ruby のコード <----- UNIX Domain Socket -----> Go Ethereum
色々調べてみたところ、macOS / Linux で UNIX Domain Socket のデフォルトの SO_SNDBUF, SO_RCVBUF (注2) が違うことで、Ruby 側で 1回の recvmsg(2) で取り出せるデータのサイズが異なっているのが問題だったようだ。