Tag: Security

Wordpressからメールを出す際にSPFを設定を行った

SendGrid + AWS Route53 での SPF 設定

背景

SMTP サーバとして SendGrid を使ってメール送信する。 この際、SPF 設定も合わせて行った。

SendGrid の SPF 設定
  1. チュートリアルである 独自ドメインを利用する を参考に進める。
  2. SendGrid の[Setting]=>[Sender Authentication]に DNS 設定が現れるので、VALUE を確認しながら Route53 の TXT に設定を追加した。

SPF 関連の DNS の追加は、

レコード名: 所有しているドメイン名
レコードタイプ: TXT
値: "v=spf1 include:spf.gmoserver.jp include:_spf.google.com include:hogehoge.wl.sendgrid.net ~all"

という内容になった。それぞれの値の意味は

  • spf.gmoserver.jp <= もともとの共有サーバ SD 用
  • _spf.google.com <= Google Workspace 用
  • hogehoge.wl.sendgrid.net <= SendGrid 用
Wordpress 上でメール送信をテストする

Check & Log Email を使うと Wordpress から任意のメールアドレスにメール送信テストができる。

参考

SPF, DKIM の特徴と違い

Read more...

docker-compose/セキュリティ関連

Privileged(特権)ではない方法で、必要な分だけセキュリティを緩める

背景

Privileged(特権)を持った Docker コンテナは root 権限を備えたコンテナであり、 2021 年の Docker では Linux のセキュリティコンピューティングモード(secure computing mode; seccomp)と呼ばれる機構で制限がかけられている。 現在は 300 以上あるシステムコールのうち 44 が制限されている。

どのように制限をかけるか簡単に確認してみた。

環境

docker-compose の実行は Ubuntu Studio 21.04 コンテナは gentoo/stage3-amd64

docker-compose.yml に追加
  1. 制限する profile.json の雛形をダウンロード
  2. 雛形を修正
  3. docker-compose.yml 修正
  4. docker-compose を起動し直し

手順

wget https://raw.githubusercontent.com/moby/moby/master/profiles/seccomp/default.json

default.json を確認する。このリストはホワイトリストで、このリストに含まれていない場合、ブロックされる。 つまり「何か権限が足りない場合」、「このリストに追加」したい。

ただ 2021/08/04 に確認した所、 CAP_SYS_PTRACE に process_vm_readv は追加されていたので、 一旦、修正は加えず、 profile.json を持ちいて起動するように docker-compose.yml を修正して起動する。

docker-compose の修正

version: "3"
services:
  distcc:
    build:
      context: ./
    container_name: 'distcc'
    security_opt:                     # <= security_opt を追加
      - seccomp:default.json          # <= docker-compose.ymlと同じディレクトリにjsonファイルを置いた
    command: >
      bash -c "/bin/bash"
    volumes:
      - ./make.conf:/etc/portage/make.conf
発生していたエラー
/var/tmp/portage/sys-libs/glibc-2.33-r1/work/build-x86-x86_64-pc-linux-gnu-nptl/elf/sln /var/tmp/portage/sys-libs/glibc-2.33-r1/work/build-x86-x86_64-pc-linux-gnu-nptl/elf/symlink.list
 * /var/tmp/portage/sys-apps/sandbox-2.18/work/sandbox-2.18/libsandbox/trace.c:do_peekstr():134: failure (Operation not permitted):
 * ISE:do_peekstr:process_vm_readv(104259, 0x00007ffe29debd20{0x00007fd68a110010, 0x535}, 1, 0x00007ffe29debd30{0x00000000ff9a1acb, 0x535}, 1, 0) failed: Operation not permitted
/bin/sh: line 1: 89178 Aborted                 make -r PARALLELMFLAGS="" -C /var/tmp/portage/sys-libs/glibc-2.33-r1/work/glibc-2.33 objdir=`pwd` install

↑ この ↓ の部分が気になる

Read more...