HSTS をやめる方法

そんな設定をサーバ側でしていないのに、URL スキームに http を指定しているのに、「なぜ常に https でアクセスされてしまうのじゃー」、と悩んだ現象の原因と解決方法です。

■原因

HSTS という、URL スキームに関係なく、https でアクセスさせる仕組みが原因でした。

でも、Web サーバ側では明示的に HSTS の「Strict-Transport-Security」ヘッダを出した覚えはありません。

さらに探っていくうちに、該当 URL のサブディレクトリにインストールした、OwnCloud において、「設定」内の「常にHTTPSを使用する」にチェックを入れていると、「Strict-Transport-Security」ヘッダが出力される仕様でした。

このため、この設定を行った後、https で該当 URL の OwnCloud にアクセスしてしまうと、ブラウザが「この URL は常に https で接続しなくちゃ」と認識して、以後、http:// からアドレスを打ち込んでも、https に遷移してしまうと言うことでした。

■元に戻す方法 (HSTS を無効にする)

該当ホストの HSTS を無効にするには、Web サーバ側で「Strict-Transport-Security: max-age=0」を出力してあげれば OK のようです。

Apache であれば header モジュールを有効にした上で、VirtualHost ディレクティブ内などで

Header always set Strict-Transport-Security "max-age=0"

の様に設定します。AllowOverride で FileInfo が許可されていれば、.htaccess でも対応できると思います。

その上で、一度該当 URL にブラウザでアクセスして、ブラウザ側に「このホストは HSTS が無効になったんだな」と認識させてあげれば、以後は http から https への自動遷移は発生しません。

■参考

RFC 6797 – HTTP Strict Transport Security (HSTS)」によれば、以下のような記載がありました。

A max-age value of zero (i.e., “max-age=0”) signals the UA to cease regarding the host as a Known HSTS Host, including the includeSubDomains directive (if asserted for that HSTS Host).

ntpd の IPv6 設定

いまいち、ntpd.conf の restrict において IPv6 ネットワークアドレスの指定方法がよくわからなかったのだけど、調べたら「AccessRestrictions < Support < NTP の『6.5.1.2.1. If you used ‘restrict default ignore’』」に載っていた。

と言うことで、以下のような想定の設定を ntp.conf に行ってみる。

■想定

上位の ntp サーバ: ntp.example.com
IPv4 ネットワークアドレス: 192.168.1.0/24
IPv6 ネットワークアドレス: 2001:db8:1:1::/64

localhost からはフルアクセス、192.168.1.0/24 および 2001:db8:1:1::/64 から時刻の参照だけ許可する。

■設定例 (/etc/ntp.conf)

driftfile /var/lib/ntp/ntp.drift
server ntp.example.com iburst
restrict -4 default ignore
restrict -6 default ignore
restrict 127.0.0.1
restrict ::1
restrict 192.168.1.0 mask 255.255.255.0 noquery
restrict 2001:db8:1:1:: mask ffff:ffff:ffff:ffff:: noquery
restrict ntp.example.com noquery

snmpwalk の出力を人間に優しい表示にする (Debian 8)

・/etc/apt/sources.list にあらかじめ non-free を付け加えておく。

・インストールする

# apt-get install snmp snmpd
# apt-get install snmp-mibs-downloader
# download-mibs

・/etc/default/snmpd の「export MIBS=」をコメント化する。

・/etc/snmp/snmp.conf の「mibs :」をコメント化する。

・サービス再起動

# /etc/init.d/snmpd restart

OS X Yosemite の ssh クライアントで公開鍵認証ができない場合

久々に、新しいサーバに公開鍵認証でログインをしようと設定したところ、接続元の OS X Yosemite の ssh クライアントで以下のようなエラーが出て、サーバへつなげませんでした。

Received disconnect from a.b.c.d: 2: Too many authentication failures for username from v.x.y.z port xxxxx ssh2

ssh のオプションに「-o PreferredAuthentications=publickey」を追加してもダメで、ssh-agent に秘密鍵が登録されていなかったのが原因のようで、以下のようにしたら接続できました。

$ ssh-add -K ~/.ssh/keyname

※というか、以前の OS X なら ssh で接続した際に即座に、秘密鍵のパスフレーズを聞いてきて、それをキーチェーンに登録してくれたような気がするのだけど・・・。

続きを読む

SSL 3.0 ぜい弱性への対応メモ

SSL 3.0に深刻な脆弱性が見つかる | スラッシュドット・ジャパン セキュリティ」とのことで、自サーバにおける対策。

・postfix (/etc/postfix/main.cf)

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3

 ・dovecot (/etc/dovecot/conf.d/10-ssl.conf)

ssl_protocols = !SSLv2 !SSLv3

 ・apache2 (/etc/apache2/mods-available/ssl.conf)

SSLProtocol all -SSLv2 -SSLv3

こんな感じで、とりあえず SSLv3 を追加で不許可とした。

それにしても、SSL 3.0 ってこの前まで現役で使っていたような印象があるのだけど。あと、CBC が NG なら、SSLCipherSuite に「-3DES」を追加するのではダメなのかな。

RTX810: LAN 内の FTP サーバを WAN 側に公開する方法の覚書

RTX810 を用いて、PPPoE で ISP に接続している場合で、LAN 内の FTP サーバを外部に公開する方法の備忘録。FTP サーバは 192.168.64.2 に存在するとする。

ip filter 1 pass * 192.168.64.2 tcp * 21
ip filter dynamic 1 * 192.168.64.2 ftp
nat descriptor type 1 masquerade
nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.64.2 tcp 21

pp select 1
 ip pp secure filter in 1 dynamic 1
 ip pp nat descriptor 1
 (中略)
pp enable 1

ルータ側は以上の設定で、実際に外部から FTP 接続を行い、PASV モードであれば通った。動的フィルタのおかげで、データ通信用のポートとか考えなくてもよい。素敵だ。(基本的なルータ設定、PPPoE およびその他フィルタの設定は必要)

感想。動的フィルタって凄い。

続きを読む

RTX810: ルータの WAN 側から LAN 内へポート転送する例の覚書

YAMAHA RTX シリーズにおいて、WAN 側について PPPoE の動的 IPv4 割り当て、LAN 側は 192.168.64.0/24 のネットワークの場合で、以下のようなポート転送を設定する例である。

  • 192.168.64.128:80 について、ルータの外側 IPv4 、ポート番号 80 でアクセス可能
  • 192.168.64.129:80 について、ルータの外側 IPv4 、ポート番号 8080 でアクセス可能
pp select 1
ip pp secure filter in 200001 200002 200003 200009 200010 200020
ip pp secure filter out 210010 210020 210099
pp select none

ip filter 200001 reject 192.168.64.0/24 * * * *
ip filter 200002 pass * 192.168.64.0/24 icmp * *
ip filter 200003 pass * 192.168.64.0/24 udp 53 *
ip filter 200009 pass * 192.168.64.0/24 established * *
ip filter 200010 pass-log * 192.168.64.128 tcp * 80
ip filter 200020 pass-log * 192.168.64.129 tcp * 80
ip filter 210010 pass-log 192.168.64.128 * tcp 80 *
ip filter 210020 pass-log 192.168.64.129 * tcp 80 *
ip filter 210099 pass * * * * *

nat descriptor type 200 masquerade
nat descriptor address outer 200 ipcp
nat descriptor address inner 200 auto
nat descriptor masquerade static 200 1 192.168.64.128 tcp 80 
nat descriptor masquerade static 200 2 192.168.64.129 tcp 8080=80
  • YAMAHA ルータの場合、NAT Descriptor → フィルタの順番で処理されるので、80 番ポートに対してのフィルタだけでよい。(たとえば、pass-log * 192.168.64.129 tcp * 8080 などのフィルタは不要)
  • 10 → 13 行目は、ポート転送設定をしている通信を通す設定。ポート転送している部分の通信は、ルータのログに残したいので、フィルタで pass-log を指定している。(ログをとらない場合は、12 行目、13 行目はいらないし、ip secure filter out でそのフィルタを設定する必要はない)
  • 17 行目は、PPPoE なので「nat descriptor address outer 200 ipcp」の部分は「ipcp」である。
  • 18 行目、内側アドレスの指定は、「nat descriptor address inner 200 192.168.64.1-192.168.64.254」でもよい。
  • 19 行目、20 行目はポート転送の設定そのもの。

公式の「FAQ for YAMAHA RT Series / IP Packet Filter」を参照した方が早いと思う。

Postfix で DKIM 検証・署名に対応する (Debian 7)

Postfix と OpenDKIM を使用してのメールサーバ DKIM 対応について、Wheezy の場合の設定方法備忘録です。(とりあえず動くレベルです)

Squeeze までは、postfix + dkim-filter という構成で、DKIM への検証・署名に対応出来たのですが、Wheezy では dkim-filter パッケージが無くなっていました。

代替として opendkim パッケージを利用して設定が出来ましたのでそのメモです。

続きを読む

Postfix 2.9.6 + Dovecot 2.1.7 で Quota 設定 (maildirsize ベース)

Debian GNU/Linux 7 の Postfix + Dovecot で maildirsize ベースの Quota を設定したので、その手順の備忘録です。

基本的な手順は、「Postfix + Dovecot で Quota 設定 (maildirsize ベース)」とほぼ変わりませんが、若干「/etc/postfix/main.cf に下記を追加」の項目以下が異なりました。

Postfix 側の設定

・/etc/postfix/main.cf

virtual_mailbox_limit = 52428800
virtual_mailbox_limit_maps = hash:/etc/postfix/vquota
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "over quota."
virtual_overquota_bounce = yes
virtual_maildir_extended = yes

上記はデフォルトで一律約 50MB の容量制限を設定しています。

以前は、「virtual_create_maildirsize」というパラメータがあったのですが、このバージョンの VDA パッチでは存在しないようで、「virtual_maildir_extended = yes」を設定してあげることで、maildirsize ファイルが出力されました。

「/etc/postfix/vquota ファイルを作成」の項目はそのままです。

・Dovecot 側の設定

次に、POP3 / IMAP4 サーバである Dovecot の設定ですが、こちらの設定ファイルの内容が、Debian GNU/Linux 6.0 の頃と変わっていて、やや難儀しましたが、「Quota – Dovecot Wiki」にあるとおり、以下のように設定することで、問題なく動作しています。

・/etc/dovecot/conf.d/10-mail.conf

mail_plugins = quota

・/etc/dovecot/conf.d/20-imap.conf

mail_plugins = $mail_plugins imap_quota

・/etc/dovecot/conf.d/90-quota.conf

plugin {
  quota = maildir:User quota
}

あと、DKIM 関係も「dkim-filter」パッケージが Wheezy では無くなっていて、代わりに「opendkim」が提供されていました。こちらの設定についても、忘れないうちに記載したいと思います。

こちらは基本的に、設定ファイルの内容はよく似ているし、当たり前ながら、dkim-filter で使用していたときのキーも使えるので、意外と移行は難しくなかったです。

SaaSes の個人向けサービスが終了するみたいで

当然のように、Osukini VPS も終了するとの連絡がメール出来ておりました。

SaaSes のトップページ「SaaSes|クラウド、オンラインストレージ、VPS、専用サーバー、データセンターのパイオニア」によると、法人向けサービスに特化するとのことで、残念ながら個人向けは終了です。

こちらの「お客様がご利用中のSaaSesサービス終了のお知らせ」によると、どのユーザでも最低でも 5 月末日までは現行サービスが利用可能であり、他社への乗り換えの為の時間を確保しているようではあります。

SaaSes の 500 円以下のサービスって、結構お手軽でそういう意味では良かっただけに終了するのは惜しいなぁと思います。

そうは言っても、移転先を検討しなければ。どうせ、OS のアップデートも行わないといけないタイミングだったし、OpenVZ 以外の VPS で安いところを調査中・・・。