「コンピュータ」カテゴリーアーカイブ

格安SSL証明書取得

Appleがアプリからの通信のHTTPS化を義務づけたり、chromeのオレオレ証明書への対応が冷たくなったり(笑)と、ちゃんとした証明書が欲しくなり安い証明書を探していました。
結果、年額3.65ドルでSSL証明書を手に入れるで紹介されているGOGETSSLで購入することにしました。2018年3月時点で全般的に先の記事よりは相場が上がっているみたいです。軽く検索したところ国内では1,500円/年くらいはしている感じでした。私の購入したGGSSL Domain SSLは$4.90/年でした。
ちなみにドメインの所有権の確認をするためにメールを送ってくるので取得したい証明書のドメインでメールを受け取れる必要があります。確認メールのあて先はpostmaster,webmaster,adminなどオフィシャルなアドレスしか選べないのでそれらを受けられるようにしておく必要があります。
バリデーションメールが来たらそこに書かれているURLに行き、メールに書かれているバリデーションキーを入力してバリデーション完了です。
あとは、証明書発行画面でにCSRを入れれば証明書がメールで送られてきます。(送られてくる先はドメインオーナー確認で使ったアドレスではなく、ユーザ登録に使ったメールアドレスになります)
CSRの発行方法はOpenSSLでキーペアやCSRを作成する手順などをご参照ください。
私の場合は、Ubuntuなので、以下の様にcrtファイルとkeyファイルを指定してHTTPSサイトに取得した証明書を反映して完了です。

/etc/apache2/sites-enabled/default-ssl.conf
 SSLCertificateFile /etc/ssl/certs/xxxxx.crt
 SSLCertificateKeyFile /etc/ssl/private/xxxxx.key

 

zabbixを使ってSPAMを送れる?

先日、このサーバからSPAMを送りまくられる事態が発生しました。SPAMが届いてしまった方申し訳ありません。
さて、原因はまだ調査中なのですが、どうもZABBIXのGUESTを有効にした状態で、全世界に開放していたことが原因じゃないかと思っています。
何でメールを送ったのか不明なのですが、ローカルのpostfixにローカルホストからメールを送り付けていました。
その時間帯にZABBIXへのダイレクトアクセスが複数観測されています。
ZABBIXの脆弱性も見つかっているのでもしかしたらこの辺りかもしれません。。。
zabbixへのアクセスをローカルからのアクセスに限定する設定を入れて以降はSAPMは発生していないので原因はほぼこれだと思っています。
詳細は調査中です。

QNAPのバックアップとしてAWS S3 to Glacierを使う

以前、QNAPのバックアップとしてAWS Glacierを使うという記事を書きましたが。。。
Glacierを誤解してました。GlacierはアーカイブIDというAWS側が払い出すIDとファイル名等の情報のマップを自分で保管する必要があります(AWSはやってくれません)しかも、AWSコンソールからはファイルの取り出しはおろか削除すらできません。。。
どいう事かというと。。。
QNAPが生きているときはQNAPがその情報を保持しているので全く問題ないのですが、そもそもなぜAWSにバックアップを作っているかというと、自宅の被災などでQNAPがもうないことを想定しているので。。。
戻せない!
というわけで、今回はS3に取ることにしました。ただしそのままS3に置いておくと$0.025 GB月とGlacierの$0.005 GB月のおよそ5倍!
個人ではちょっともったいない価格になってしまいます。
そこで登場するのが、S3のライフサイクルルールです。この設定をすることによって、例えばS3に置いてから1日たったら自動的にGlacierに送り出すといったことができます。しかもS3なので、フォルダ構造は維持されてAWSコンソールから操作可能です。ただしGlacierに送られたファイルを取り出すときはAWSコンソールから復元命令をしてS3に戻してからじゃないと取り出せません。

例は1日後にGlacierに移動する設定
Glacierに送られたファイルはストレージクラスの表示がGlacierになる
取り出すときは「復元の開始」でS3に戻す

ELBを使う時のあるある

Apache – ELB – Tomcat の構成で使うときのAWSあるある。
ELBは複数のIPで構成されており変わる可能性があるのでDNS名で書くのは知ってのことと思いますが、上記構成では
Apache側の設定でdisablereuse=onを付けとかないと、ELBのIPが変わったときにそっちに行きません。

ProxyPass /ap/ http:/hogehoge/ap/ disablereuse=on

参考)
https://httpd.apache.org/docs/current/mod/mod_proxy.html
 
ご注意あれ。

EeeBox EB1501Pにメモリを足してみた

今更ですが、EeeBoxをにメモリを足してみた。相性が結構あるという書き込みがあったが、Amazonでサムスン純正 PC3-10600(DDR3-1333) SO-DIMM 2GB 1.5V 204pin ノートPC用メモリ mac対応(2,000円)を買って入れてみたが問題ない模様。

p.s.
最初、開いてるスロットにそのまま挿したら起動せず。。。既存のメモリを外して買ったメモリだけで起動したら問題なく上がった。その後、既存のメモリを空いてるスロットに挿したら認識せず。。。何度か挿しなおしたら認識した。。。単なる接触不良かな。長らくほこりを被ってたスロットなのでエアブローくらいした方がいいかも。

AWSへのL2延伸はできない

AWSのDirect Connectは802.1Qをサポートしているのでてっきり、L2延伸できるのかと思っていたが。。。できなかった。技術的にはできるのかもしれないけど、AWSはそれを認めていない。まぁ、EC2はDHCPでアドレス振られるし、L2でオンプレに線を引かれたらそれはそれで色々もんだいがありそうなのは理解できる。仮に、EC2でL2TPとかを動かしたとしてもEC2はpromiscuous modeを許していないので他のEC2宛のパケットを受け取ることができないと思う(試してないけど)
なんかいい方法はないものだろうか。まぁ、IPを変えてルーティングするが正解な気がするけど。

ddclientのIPv6対応

先日、WebサイトをIPv6対応にしたのですが、DynDNSのIPv6対応がまだできていなかったのでしました。
今は、サーバはUbuntu 16.04で、ddclientを使っています。しかし、パッケージ3.8.2-2ubuntu2はIPv6に対応していないため、gitからIPv6対応版を持ってきました。DynDNSの仕様とddclientの仕様の問題で、v4->v6の順に2度登録する必要があります。(v4とv6を同時に登録するAPIがないっぽい。v4エントリを更新するとv6情報がリセットされるので、v4->v6で登録するする必要あり。)

$ git clone https://github.com/ddclient/ddclient
# cp ddclient /usr/local/sbin
# cd /usr/sbin
# mv ddclinet ddclient.org; ln -s /usr/local/sbin/ddclient
ddclient_v6.confは以下にする以外はv4と同じ
ipv6=yes
use=web, web=checkipv6.dyndns.com

IPv6対応のために必要

# apt-get install libdata-validate-ip-perl

パッケージ互換性のたために/etc/ddclient.confはリンクとして残す

# cd /etc/
# mkdir ddclient
# mv ddclient.conf ddclient/ddclient_v4.conf
# ln -s ddclient/ddclient_v4.conf ddclient.conf

私はdaemonモードで動かしていたのですが、2回実行する必要があるので今回はcronで実行することに。

# cat /etc/default/ddclient
run_daemon="false"

cronに登録

# cat /etc/cron.d/ddclient
*/5 * * * * root (/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient

うまくいっているようです。

Aug 14 14:55:01 abel CRON[7472]: (root) CMD ((/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient)
Aug 14 14:55:02 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 126.203.135.154
Aug 14 14:55:03 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 2400:2412:cc0:ef00:20c:29ff:fe9f:326c

Softbank光 IPv4 PoI迂回

Softbank光ですが、最近夜間に速度が出ない状況が続いていました。うちはBB光ユニットでPPPoEパススルーしてRTX810でPPPoEする構成だったのですが、ふと、BB光ユニットの無線LANに直接繋いでみると速い!
どうやらBB光ユニットからはPPPoEではなく、IPoE(DS-Lite?)でIPv4もサービスしているっぽい。ただしその仕様は公開されていないのでソフトバンクのBB光ユニットでつなぐ必要があると。
SPEEDTESTの結果(どちらも休日0時付近の状況)

    • PPPoEパススルーでRTX810でPPPoEを張った場合

    • BB光ユニットでルーティングした場合


素晴らしい!
もう1つ問題になるのがうちの場合はサーバ公開していること。これはDMZ機能を使うことで問題なく動きました。DMZ転送先としてRTX810のWAN側IPを指定しています。L2TP VPNも問題なく張れています。

Softbank光+RTX810でIPv6サーバ公開

うちはSoftbank光なので、IPv6に対応しているはずなのですが、ちゃんと設定していなかったので設定してみました。
SoftBankから送られてきた光BBユニット(BBフォン、ひかり電話を使うため)+ RTX810という構成です。
フレッツ光ネクストを使いRTXシリーズでIPv6接続するにはひかり電話の契約をしている場合とそうでない場合で違う様なのですが、Softbank光の場合、ひかり電話の終端もBBフォンもIPv6のIPv4も全部光BBユニットと呼ばれるルータがやっていて、光BBユニットからRAが流れてくるので、ひかり電話なしの方法でOKでした。

ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1 o_flag=on
ipv6 lan1 dhcp service server
ipv6 lan2 dhcp service client ir=on
dns server dhcp lan2

dyndnsにもIPv6のアドレスを登録(とりあえず手で登録)したらそれなりにこのサーバへもIPv6でアクセスがありました。時代ですね 🙂
そのうち、ddclientなどでIPv6も動的更新できるようにしたいと思います。
p.s.
ipv6 lan2 secure filter in の設定をお忘れなく。IPv6はNATが掛かってないので、直で叩かれちゃいますよ:-)

ubuntu 14.04 to 16.04 Upgrade

重い腰を上げてやっとこさ。16.04に上げました。
まぁ、何も起こらなければ do-release-upgrade を叩くだけで終了なわけですが、今まですんなりいったことはないので(笑)
さて、今回もやっぱり色々出ました。

    1. ネットワークが上がらない。
      do-release-upgradeの後再起動したら見事にネットワークに接続できなくなった。調べてみたらインターフェース名がeth0からens32に変わっていた。RHEL7でもあったあれですね。回避するには以下の手順。

      /etc/default/grubに
      GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
      と書いて
      # update-grub
      # reboot

      参考) https://askubuntu.com/questions/767786/changing-network-interfaces-name-ubuntu-16-04

    2. squid3のアップデートが失敗する。
      squid-common (3.5.12-1ubuntu7.3) を設定しています ...
      squid (3.5.12-1ubuntu7.3) を設定しています ...
      Removing obsolete conffile /etc/squid3/msntauth.conf ...
      Preserving user changes to /etc/squid/squid.conf (renamed from /etc/squid3/squid.conf)...
      stat: '/var/spool/squid3' を stat できません: そのようなファイルやディレクトリはありません
      chown: '/var/spool/squid3' にアクセスできません: そのようなファイルやディレクトリはありません
      dpkg: パッケージ squid の処理中にエラーが発生しました (--configure):
       サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました
      Error in function:
      ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/squid.0.crash'

      どうも、/var/spool/squid3というディレクトリを探しに行って見つからないようです。squidはもう使ってないので削除しようとしたのですが、同様なエラーが出て先に進まないので/var/spool/squid3を作って実行したら消せました。

    3. do-release-upgradeした後、大量にUpdateパッケージがある。
      squidのアップデートが失敗してそこで終わってしまったせいか、大量に手動でアップデートしないといけないものがありました。地道に apt-get update *** を叩きまくれば終わります。。。
      途中いくつかこけるのがあります。例えばsa-compileがこけました。これは先にgccをupgradeすれば治ります。たいていの場合は依存関係です。
    4. redmineが消える
      apt-get install redmine すればとりあえず入る。設定も残ってました。
    5. screenが起動に失敗する
      $ screen
      Cannot make directory '/var/run/screen': 許可がありません

      と言われる。

      $ sudo mkdir /var/run/screen
      $ sudo chmod 777 /var/run/screen

      で起動するようになる。

    6. PHPが7.0になって初期に戻る。
      必要に応じて/etc/php/7.0/apache2/php.ini辺りを弄る必要がある
      PHP7.0になったことで以下の問題も出た。

      • Pukiwiki-1.4.7が動かない。PHP7に対応した1.5.1が出てるので上げる必要がある
      • WordPressのpukiwiki pluginが動作しない。もうメンテされてないのでこの際使うのを止めた。(たぶん、1.5.1を入れて少し手直しすれば動くと思うけど、メンテし続けるのが面倒なので)。ただそうするとすでにPukiWikiフォーマットで作ったページが
        PukiWiki_for_WordPress HttpError: 500 Internal Server E […]

        となってしまう。。。PukiWikiプラグインを無効化すればソースをそのまま表示はしてくれるので、そのままでもいいか。という気もする。。。
        http://blog.makotokw.com/portfolio/wordpress/pukiwiki_for_wordpress/

    7. dovecotが起動しない
      apt-get install dovecot-managesieved

      が足りなかった模様。

    8. emacs23でanthyが起動しない。
      File error: Cannot open load file, anthy

      よくわからないがemacs24にしたら問題なくなった。.emacs.elは特に変更していない。たぶん、バイトコンパイルし直せばemacs23でも動いたのかもと思っています。

    9. logrotateでrsyslogをreloadできない。/etc/logrotate.d/rsyslog内のpostrotateでreload rsyslog としていたところが、invoke-rc.d rsyslog rotateに変わった。現在の設定を引き継ぐを選んでアップデートした場合は、手で直す必要がある。

    以上、今回も盛りだくさんでした(笑)