今日行ったこと

自宅でルータのログ取得兼、DNS64 / NAT64 箱兼、DNS キャッシュサーバ兼、VPN サーバを兼ねている Raspberry Pi の Linux カーネルを最新に上げようとして失敗する。

起動しなくなったので、とりあえず数時間寝る。

起きてからおもむろに、Raspberry Pi から MicroSD カード (/boot) と外付け USB-HDD (/) を外し、macOS で動いている VMware Fusion 上の Linux から、/boot 相当 (/dev/sdb1) を /mnt/sdb1 、/ 相当 (/dev/sdc1) を /mnt/sdc1 にマウントして、以下のコマンドを投入。

# wget "https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update"
# chmod 755 rpi-update
# ROOT_PATH=/mnt/sdc1 BOOT_PATH=/mnt/sdb1 ./rpi-update

再度、Raspberry Pi に microSD を挿入、外付け USB-HDD を接続し、電源投入で復活。

性懲りも無く、再度 Linux カーネルをビルドする。ただ単に、カーネルソースが必要なだけなのだが。で、今度は成功する。たぶん、環境変数が引き継げていなかったのが原因だった気がする。

そして、Jool をビルドして終わり。

やはり失敗した場合は、一度寝るに限る。

本サーバの OS アップデート

本サイトのサーバ OS をアップデートしました。これにより、以下の変更が発生しています。

  • HTTP/2 に対応しました。
  • SNI の設定を変更したので、HTTPS 経由で SNI 非対応のブラウザ (例えば Windows XP の Internet Explorer) からは本サイトが表示できなくなりました。
    ※ここ数年ぐらいの環境であれば影響しないはず。

なお、VPS は引き続き ConoHa を利用していますが、HDD の旧プランから SSD の新プランに移行しています。下にも書いているけれど、SSD のおかげか、はたまた fcgid に変更したからか、体感レベルでパフォーマンスは上がっています。

続きを読む

nsd4 と nsd3 でマスター、スレーブサーバを設定した備忘録

以下のような環境で設定した備忘録である。なお、IP アドレスは例である。

■環境

・マスター (Debian GNU/Linux Stretch) / nsd4

IPv4 アドレス: 192.0.2.1
IPv6 アドレス: 2001:0DB8::1

・スレーブ (Debian GNU/Linux Wheezy) / nsd3

IPv4 アドレス: 192.0.2.2
IPv6 アドレス: 2001:0DB8::2

続きを読む

いつの間にか ip6tables の nat ターゲットで MASQUERADE が出来る様になっていた

最近 Raspberry Pi 2 のカーネルをビルドし直したのですが、いつの間にか、

ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

見たいな事が出来る様になっていました。

と言うことで、DNS64 + NAT64 の記事で、これに対応する追記を記載しました。

postfix で RBL を利用する場合

Postfix で RBL を使用する場合、単純に「smtpd_recipient_restrictions」内のしかるべき場所に「reject_rbl_client」で指定してあげたら良いだけです。

ただ、改めてドキュメントを見ていると、返答された A レコードの内容によって通したり通さなかったり出来る模様でした。

smtpd_recipient_restrictions =
	permit_mynetworks,
	permit_sasl_authenticated,
	reject_unauth_destination,
	reject_rbl_client all.rbl.jp,
	reject_rbl_client bl.spamcop.net,
	reject_rbl_client zen.spamhaus.org=127.0.0.[2;3;4;5;6;7;10;11]

こんな感じで書いた場合、

  • all.rbl.jp および bl.spamcop.net で接続元 IPv4 (aaa.bbb.ccc.ddd だと ddd.ccc.bbb.aaa.rbl_domain の様な形式) で A レコードを引いて、何か値が返ってきたらブロック。
  • zen.spamhaus.org で引いた場合で、127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5, 127.0.0.6, 127.0.0.7, 127.0.0.10, 127.0.0.11 のいずれかが返ってきた場合ブロック。

となる様でした。

なお、「reject_rbl_client」パラメータの「rbl_domain=」の後の IPv4 アドレスは Postfix 2.1 以降、[] 内の値を「;」文字で分割できるのは、Postfix 2.8 以降で使用できる模様です。

ちなみに、zen.spamhaus.org を使用している場合で、本当に設定が有効になっているかどうかを確認するには、設定したサーバから「nelson-sbl-test [アットマーク] crynwr.com」あてにメール送信をします。

正しく設定されていると、サーバ側のメールログにブロックされている旨が記録されますし、結果もメールで返送されてきます。

squid 3.1 設定のメモ (Debian GNU/Linux 7 での場合)

Debian GNU/Linux 7 での設定例です。キャッシュは使用しません。プロキシのポート番号は 8080 です。

■設定とインストール

・インストール

# apt-get install squid3

・認証用ファイルを作る

以下のような形式のプレーンテキストファイルを「/etc/squid3/passwd」に作成し、適切な権限を与えます。

Username:Password
# cd /etc/squid3
# echo "Username:Password" > passwd
# chmod 600 passwd
# chown proxy:proxy passwd

・squid3 の設定ファイルを編集

/etc/squid3/squid.conf を編集する。

# Digest 認証部分
auth_param digest program /usr/lib/squid3/digest_pw_auth /etc/squid3/passwd
auth_param digest children 5
auth_param digest realm Proxy Server
auth_param digest nonce_garbage_interval 5 minutes
auth_param digest nonce_max_duration 30 minutes
auth_param digest nonce_max_count 50

# キャッシュマネージャーの ACL
acl manager proto cache_object

# localhost の ACL
acl localhost src 127.0.0.1/32 ::1

# Digest 認証の ACL
acl passwdauth proxy_auth REQUIRED

# Proxy での SSL ポート番号並びに通すポートと CONNECT メソッドの ACL
acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 443
acl CONNECT method CONNECT

# キャッシュマネージャーへのアクセス制限 (localhost のみ)
http_access allow manager localhost
http_access deny manager

# プロキシへのアクセス制限 (あらかじめ定義したポート、メソッドで localhost は許可、それ以外は Digest 認証が必要)
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow passwdauth
http_access deny all

# プロキシのポート番号
http_port 8080

# キャッシュ設定 (使用しない)
cache_mem 0 MB
cache deny all

# 実行ディレクトリ
coredump_dir /var/spool/squid3

# プロキシサーバが出力するヘッダを抑制
forwarded_for delete
via off

・設定確認

# squid3 -k parse

「via off」部分で WARNING が出ますが、ヘッダの抑制は行われます。

・再起動

# /etc/init.d/squid3 restart

■その他

squid3 が動作しているサーバが IPv6 アドレスも持っている場合、IPv4 な接続元から squid3 経由で通信すると、要求された接続先が IPv6 アドレスを持っている場合、IPv6 でアクセスすることを確認しました。プロキシ形での IPv4 <-> IPv6 変換としても使用できそうです。

Debian 8 + DNS64 + NAT64 on the Raspberry Pi 2

Debian 8 上に DNS64 + NAT64 を設定した備忘録である。例によって無保証である。

2017/02/11 追記: Jool 3.5.x 系でも同じようにインストール出来ることを確認した。

Linux カーネルのビルドは、「Kernel Building – Raspberry Pi Documentation」に記載の通り、DNS64, NAT64 関係は、「DSAS開発者の部屋:Raspberry Pi 2 で NAT64 箱をつくってみた」の通りとなる。

両者のドキュメントに感謝しつつ、実際に設定を行ってみた。なお、私の環境では、USB で NIC を接続して別インタフェースを接続している。

続きを読む

Raspberry Pi 2 Model B を AirPlay サーバに (Shairport Sync 利用編)

Raspberry Pi 2 Model B を AirPlay サーバに」で、「ShairPort」を使用して、AirPlay サーバを設定したのですが、以下の点で、若干問題が生じたのと、気になっていた点がありました。

  • iOS デバイス側で曲をスキップすると、再生が止まってしまう。
  • サーバ側で UDP ポートについて広い範囲で入力を許可としないといけない。

派生版 (?) の「Shairport Sync」を使用してみたところ、これらの問題を解決することが出来ました。


■前提条件

Raspberry Pi 2 Model B を AirPlay サーバに」の「ALSA の設定」の項目の設定が全て完了し、また前回と環境も同じであることとなります。

続きを読む

キャッシュ DNS サーバを BIND9 から Unbound へ移行

自宅内の DNS キャッシュサーバについて、BIND9 から Unbound へ移行してみました。

BIND9 はネット上に資料が豊富にあって、割と設定面では困らないのですが、度重なるぜい弱性への対応に疲れがちなので・・・。

例によって、自分用メモです。また、Debian GNU/Linux 8 環境で設定しています。

続きを読む