ping: sendmsg: Operation not permitted

Ubuntuufw で外向き通信を

$ ufw default deny outgoing

とデフォルト禁止に固めてる場合に ping すると Operation not permitted が出て ping 通らない問題。

$ ping
PING ( 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

/etc/ufw/before.rules に以下のように外向き icmp を許可するルールを追加する。

# allow outbound icmp
-A ufw-before-output -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A ufw-before-output -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT

また、もし before.rules に以下ルールがない場合は以下も追加する(16.04.3 LTSでは設定済みだった)

# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT

内向き icmp 許可ルール。

参考 : networking - ping and traceroute does not work when UFW deny outgoing by default - Server Fault