Ubuntuを最新版にアップグレード(メモ)
Azure 上のサーバから、ubuntu を最新版にアップグレードするために、do-release-upgrade を実行せよとのメールが来た。Debian を使っていると、”aptitude update ; aptitude safe-upgrade”を定期的に実行して、大幅アップグレードの時には、/etc/apt/sources.list.d/* を触ってアップグレードを行っているけど、こういうプログラムがあるみたい。
管理している他のサーバは、すでに Ubuntu 16.04 xenial を導入済みで、最初に Azure を使い始めたこのサーバだけ、未だに Ubuntu 14.04 trusty 。
# lsb_release -a # 現在の情報の確認 # do-release-upgrade -c # 更新が可能かチェック # do-release-upgrade -s # 更新を実行
ただし、”do-release-upgrade -s” を実行したら、途中で ssh のコネクションが切れておかしくなる可能性があるから、以下のようなメッセージが表示される。Azure 上のサーバなので、1022 のポートを開けたりといった手間が必要そうだし、もう少し状況確認が必要かな。Ubuntu は慣れないなぁ…
SSH経由で実行していますが、続けますか? このセッションはSSH上で実行されているようです。アップグレードをSSH越しに行うことは推奨されません。アップグレードに失敗した時の復元が困難になるからです。 続行する場合、追加のSSHデーモンをポート '1022' で起動します。 本当に作業を進めてよろしいですか? 続行する[yN]
iPadでlinux仕事-Shelly Pro
仕事用の Surface Pro のキーボードがクソで、「T」の反応がダメダメなので、Bluetooth キーボードを購入。以前に、iOS,Windowsといった複数接続に切り替え可能で、接続相手に合わせてキーアサインも変更してくれる小型キーボードを購入していたけど、小さすぎてメールを打ったり、Linux サーバを触るときに、思うように打てずあんまり使わなくなっていた。
今回、Logicool の K380 を購入したけど、Mac のキーボードと同じ配列で複数のBluetooth接続を切り替えられるもの。OSに合わせてキーアサインを切り替える機能はない。
やはり、いつも使っているキーボードと同じなので、手に馴染む。それならばということで、iOS に ssh ターミナルソフト入れたら、Linux 仕事で違和感なく使えるか試したくなった。
日本語が使えるiOS用sshクライアント
以前に、ある程度日本語が使えるということで Termius という無料アプリを使っていたけど、emacs で漢字をつかっていると、文字位置がずれるので今ひとつ。
今回、”iOS ssh 日本語”で検索をかけたら、この記事が比較や有料ソフトの値段なども記載してあってわかりやすかった。
最終的に入れたのは、Shelly Pro となりました。
実際に、ベッドで寝ながら複数のサーバ更新作業をやったけど、Ctrl-Caps交換ができないし、iPad は記号が英字キーボードの配置なので、キートップを確認しながらになったけど、まあまあ使える。
K380 には、iOS のキー配置も刻印されているので、便利。
ただし、iPad に入れて、”Pro” にアプリ内課金でバージョンアップ(¥600)したけど、iPhone に 同じく Shelly を入れたら、バージョンアップしようとしたら、¥480 の課金の画面が出てきた。値段も違うし、タブレット版とスマホ版は別物扱いしてるんだろうなぁ。
次の出張では、iPad mini とキーボードだけ…を試そうかな。
php5からphp7に移行
自宅サーバにて、毎朝 apache2 が止まる症状が続いた。調べてみると、php5 との相性が悪いみたい。
んで、当然ながら、他の管理しているサーバも動かないものが出てきた。ということで、職場の関連サーバも php7 に移行作業を行った。
Ubuntu(trusty) は、PHP5 で問題なし。
moodleサーバは、切り替えたら色々と表示されたな。
切り替えたら、アップロードできるファイルサイズ上限が2MBに減ってしまっていた。
(( /etc/php/7.0/apache2/php.ini )) upload_max_filesize = 400M post_max_size = 450M memory_limit = 500M # upload_max_filesize < post_max_size < memory_limit で要設定 (( apache 再起動 )) $ sudo /etc/init.d/apache2 restart
OpenDNSによるセキュリティ対策
先日参加した、高専機構の情報担当者研修では、新しく導入された統一システムの機能説明や今後について色々と説明を受けた。
でも、興味深かったのは、OpenDNSとも呼ばれているCisco Umbrella 。DNSを使ったセキュリティ対策で、ブラックリストに掲載されているホストへの問い合わせがあったらブラックな正規IPアドレスを返さないことで怪しいホストに接続させない。また、怪しいか判断が困難なグレーゾーンのホスト名なら、OpenDNSのProxyのアドレスを返し、ユーザを怪しいサイト接続させず、実際はOpenDNSが怪しいサイトに接続しグレイな内容を分析して、最終的にブラック/グレイ/ホワイトを判断するというシステム。
設定は、DNS サーバのアドレスを、208.67.222.222 にするだけ。
学校では色々と問題がありそうだし、自宅でこの機能を試してみる。
(( /etc/bind9/named.conf.options ))
options {
:
forwarders {
# Google public DNS
#8.8.8.8;
#8.8.4.4;
# OpenDNS (Cisco Umbrella)
208.67.222.222 ;
208.67.220.220 ;
};
:
};
動作確認は、https://welcome.opendns.com にアクセスして、以下の表示になればいい。
Wikipedia の説明を見ると、以前はブラックなアドレスを引くと、Yahooの広告ページにリダイレクトされるので….といったことが書いてあるけど、今はどうなんだろ。”nslookup www.xxx”で、いかにも怪しいサイトのアドレスをひいたけど、同じだな。Cisco に OpenDNS が買収されてるから、変な広告はなくなったと思うんだけど。
サーバのメンテナンス
Azureサーバのバックアップ
管理しているAzureサーバだけど、クラウドだし簡単には落ちないとバックアップ処理を真面目にしてなかったけど、そろそろ対策をと設定を行った。
- 各仮想サーバの定時処理で、主要データディレクトリを .tar.gzでバックアップ
- 自室のサーバで、RAID-NAS上に仮想サーバのバックアップを rsync
- 仮想サーバの容量逼迫を防ぐために、2月以上は削除。自室サーバは空き容量をみて削除時期を考えよう。
差分バックアップを加える(2017/10/19追記)
バックアップ処理、2週間おきに設定していたけど、いざという時のためにもう少し頻繁にバックアップを取りたい。
そこで、1週間毎に差分バックアップを取るように、処理を追加する。
MovableTypeの記事を復活
サーバ故障による移行作業で、CMS を MovableType から WordPress に変更したけど、古い記事の移行ができていなかった。自宅サーバも同様の移行作業を行い、過去記事の吸出しがうまくいったので、同様に電子情報の過去記事を吸い出し、WordPress にインポート。
# メモ
((追記))
古い記事を抽出する際に、preタグ内の空白が削除されてらぁ。おかげで、プログラムのコードのインデントが消えてしまってる。(x_x;;
自宅で監視カメラを動かしてみた
今度の週末は、家族旅行の予定。 だけど、子どもがその間、最近病院に連れて行った婆ちゃん猫を 心配している。
そこで、使っていなかったWebカメラで、急遽、監視カメラを動かしてみた。 奥さんからは、解像度低いじゃんとツッコミを受けるが、 もともとのWebカメラの性能だと思うし…
余りにも他愛もないコードだけど、 この手のお遊びプログラムは、 学生さんに「こんなこと簡単にできるよ」と見せることも多いので、 PHPコードに改良&コメント付けをしておく。
監視カメラを動かすまで
fswebcamが一番簡単に使えそうだったので…
(( fswebcamをインストール)) $ sudo aptitude install fswebcam
fswebcamの出力をそのまま画像形式で返すプログラム。
(( webcam.php )) <?php // 画像形式、キャッシュさせない header( "Content-Type: image/jpg" ) ; header( "Cache-Control: no-store, no-cache, must-revalidate" ); // 連続読み出し用にファイルロック $flock = fopen( "/var/www-support/.webcam.lock" , (file_exists( "/var/www-support/.webcam.lock" ) ? "rb+" : "wb+" )) ; if ( flock( $flock , LOCK_EX ) ) { system( "/usr/bin/fswebcam -q -d /dev/video1" ." -p YUYV" // 画像形式 ." -D 0" // delay ." -S 3" // skip frame ." -r 320x240" // 解像度 //." -r 640x480" ." --title \"tsaitoh.net's webcam\"" ." --jpeg 75 -" ) ; fclose( $flock ) ; } ?>
webcam.php の出力画像を、連続で読み出すように、 JavaScriptで設定を書き加える。 <meta http-equiv=”refresh” content=”5″> みたいな方法だと、reload の度に画像がちらつくので、JavaScriptで reload させることになった。
(( index.php )) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=320,height=320,initial-scale=1"/> <title>自宅監視カメラ</title> <script type="text/javascript"> <!-- var count = 0 ; function reload() { count = (count + 1) % 100 ; // 画像を更新(キャッシュ画像を使わないように番号付) var img = document.getElementById( "image" ) ; img.src = "webcam.php?"+String(count) ; img.id = "image" ; // 動きの少ない相手用に確認表示 var txt = document.getElementById( "text" ) ; txt.innerText = "自宅監視カメラ: "+String( count ) ; } // --> </script> </head> <body> <p align="center"> <img id="image" src="webcam.php" onload="reload()" /> <div id="text"></div> </p>
8/17(Wed) 9:00-13:00 まで作業停電
学校内の基幹設備点検が8/17に実施され、このため学内全域が停電となります。 これに伴い電子情報のサーバも、8/17 8:45 には shutdown をかけますので、 ご利用の方はご注意ください。
atコマンドで停止
といっても、私の管理しているサーバは、それなりに台数も多いので、 (緊急連絡システム×2,授業アンケート,Moodle,電子情報×2)、 自動でシステムを停止させるようにしておいた。 at コマンドは、日付記載方法を、毎度調べることになるので、以下にメモ。
# echo "/sbin/shutdown -h now" | at 08:45 08/17/11
UPKIオープンドメイン証明の申請
学術研究機関を対象とした、無償のSSL認証キーの発行サービスの申請のTSVファイル生成を行う。 手順が長いので、肝心な所は記載しないが、その入力などの内容をメモ。 最終的に、電子情報工学科のTSVファイルと、緊急連絡システム用のTSVファイルを作った。
# mkdir /etc/apache2/ssl.key/ # cd /etc/apache2/ssl.key/ # cp 大きいファイル1 randfile1.txt # cp 大きいファイル2 randfile2.txt # cp 大きいファイル3 randfile3.txt # openssl genrsa -des3 -rand randfile1.txt:randfile2.txt:randfile3.txt 2048 > maisy.key Enter pass phrase: [passphrase] Verifying - Enter pass phrase: [passphrase] # lv maisy.key -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,xxxxxxxxx : -----END RSA PRIVATE KEY----- # openssl req -new -key maisy.key -sha1 -out maisy.csr Enter pass phrase for maisy.key: [passphrase] Country Name (2 letter code) [AU]:JP State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []:Academe2 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Fukui National College of Technology Organizational Unit Name (eg, section) []:Electronics and Information Department Common Name (eg, YOUR name) []:www.ei.fukui-nct.ac.jp Email Address []:. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:. An optional company name []:. maisy:/etc/apache2/ssl.key# lv maisy.csr -----BEGIN CERTIFICATE REQUEST----- : -----END CERTIFICATE REQUEST----- maisy:/etc/apache2/ssl.key# openssl req -noout -text -in maisy.csr Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, L=Academe2, O=Fukui National College of Technology, OU=Electronics and Information Department, CN=www.ei.fukui-nct.ac.jp Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): https://tsvtool.nii.ac.jp/cgi-bin/tsvtool.cgi TSV作成ツール:発行申請TSV ・CSRファイルから maisy.csr [CSR送信] CSR 主体者DN CN=www.ei.fukui-nct.ac.jp,OU=... サーバFQDN www.ei.fukui-nct.ac.jp dNSName なし 加入者Email 自分のメール 加入者氏名 斉藤 徹 加入者所属 福井工業高等専門学校電子情報工学科 ソフトウェア名等 Apache 2.2.9 [完了] [ダウンロード] issue-YYYYMMDD.tsv
実際に鍵を登録
UPKIの事務局に、issue-YYYYMMDD.tsv を送ったら、 鍵を入手するための「UKPI-ODCert]Webサーバ証明書発行受付通知」なるメールが 送られてきた。指定されたURLをアクセスして、サーバ証明書を受け取る。 ファイル名は、"サーバFQDN.cer"であった。(Apacheへの登録では"*.crt"に直す)
これに加えて、別途 "nii-odca2.crt" を入手しておく。
# cd /etc/apache2/ssl.key # mv ...PATH.../サーバFQDN.cer ./maisy.crt # vi /etc/apache2/sites-enabled/100-default-ssl : SSLCertificateFile /etc/apache2/ssl.key/maisy.crt SSLCertificateKeyFile /etc/apache2/ssl.key/maisy.key SSLCertificateChainFile /etc/apache2/ssl.key/nii-odca2.crt : # /etc/init.d/apache2 restart 起動すると、鍵作成時のパスフレーズを聞かれるので、入力する。
UNIX、40才
OSにおけるLinuxなどの基本であるunixが、今年で40才になったそうな。 このおかげで、時間が1970年からの経過秒数なんていう話も、 ここが発端。途中には、経過秒数が2^31を超えてトラブルがおこったりと、 色々あるわけだが….
ちなみに私は44才。ほぼ同年齢なのね。 ちなみに、どうでもいい話だけど、今日は6月9日「ロックの日」だそうな。 でもビートルズだって、1962年デビュー。 unixだって、ロックだって、文化という意味では、まだまだ若い。