投稿

サーバーのSSL/TLS設定を見直す

イメージ
1年半ぐらい前に設定したときの覚書(下書きに埋まってた)。 SSLv3の脆弱性が報告され、攻撃者が通信の内容を複合できる。 更新:SSL 3.0 の脆弱性対策について(CVE-2014-3566):IPA 独立行政法人 情報処理推進機構 Nginxでもデフォルトで有効になっているので設定する必要がある。 Protecting NGINX and NGINX Plus from the POODLE Attack 最近の設定はこんな感じ # # SSL # ssl on; ssl_certificate      /etc/nginx/ssl.d/2016/cert.pem; ssl_certificate_key  /etc/nginx/ssl.d/2016/key_nopass.pem; ssl_protocols  TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; ssl_prefer_server_ciphers   on; #ssl_stapling on; #ssl_stapling_verify on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;   下記サイトでまるっとチェックできる。 SSL Server Test (Powered by Qualys SSL Labs)   無料でSSLを発行できる Let's Encrypt が正式版になったのでSSLの設定作業はデフォルトになりそう。 下記サイトも詳しそうなので今度設定するときにじっくり読む。 光の速さのWEBサーバー(nginx)をlet's encryptでSSL化及びHTTP/2化。ついでにセキュリティ評価をA+にする。 - Qiita     < Related Posts...

PostfixにSPFとDKIMと暗号化の設定まとめ

イメージ
キャリアメール宛てに通知メールが届かないとクレームが入って調べたときの覚書。 auが一番厳しいらしい 送信ドメイン認証SPFレコードについて | EZwebへメール送信する際の注意事項:サービス・機能 | au 基本はSPFレコードを設定していること。記述の仕方は下記サイトなどを参考に IPA 独立行政法人 情報処理推進機構:なりすましメール撲滅に向けたSPF(Sender Policy Framework)導入の手引き 確認するのは下記サイトで。 SPF Query Tool IPアドレスと送信元メールアドレスを入れて「Test SPF Record」をクリックするとチェックしてくれる。   ちなみにクレームの原因は送信元メールを本番用に変更するのを忘れてたから。 さらにDKIM(Domainkeys Identified Mail)を設定しておくと信頼性が上がる。 設定方法は前の記事を参考に PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる   最近Gmailだと鍵マークが表示されるようになったので暗号化も対応する。前の記事を参考に CentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ     < Related Posts > CentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ メール送信時にエラー。複数サーバー構成でのSPF設定を見直す [Google Apps]DNSのSPFとDKIMを設定してSecurityを高める(送信Domain認証)

Aipoの起動スクリプトを作成。再起動しても自動起動するように

イメージ
サーバーを再起動したときにAipoの起動を忘れるので自動起動できるようにしたときの覚書。 環境: CentOS 6.7, Aipo 7.0.2.0 参考 サーバー再起動時にAipoを自動起動するには?|無料グループウェア「アイポ」   起動スクリプト作成。Gistに置いた # vi /etc/rc.d/init.d/aipo startup script for aipo. | Gist 実行権限付与 # chmod +x /etc/rc.d/init.d/aipo 起動テスト # /etc/rc.d/init.d/aipo start 自動起動するように登録 # chkconfig --add aipo # chkconfig aipo on # chkconfig --list そのままだとstartup.shにsudoが書かれている影響で自動起動できないので、rootはttyなしでsudo出来るようにする。 # vi /etc/sudoers.d/aipo Defaults:root !requiretty 再起動して確認 # reboot   < Related Posts > グループウェア「Aipo」を別サーバーに移行 CentOS6にRedmine 3.0をInstallして2.5から移行

GitLabを別サーバーに移行

イメージ
GitLabを別サーバーに移行したときの覚書。 移行元: CentOS 6.7, Git 2.6.4, Ruby 2.2.2p95, GitLab 8.6.6 移行先: CentOS 6.7, Git 2.8.1, Ruby 2.2.4p230   1.移行先へGitLabをインストール 前の記事を参考に CentOSにGitLabをInstallして設定   いくつかハマったポイント gitlab-ctl reconfigureするときはgitlab-ctl startの状態でやらないと下記エラーになる [execute] psql: could not connect to server: No such file or directory             Is the server running locally and accepting             connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5433"?   redisをGitLab付属ではなく、インストール済みのredis serverを使う場合はTCP socketを使うように設定しておかないと500エラーになった。 # less /etc/redis.conf port 6379 unixsocket /tmp/redis.sock unixsocketperm 770 gitユーザーをredisグループに参加させる # usermod -a -G redis git 接続テスト # sudo -u git -H redis-cli -s /tmp/redis.sock ping 「PONG」が表示されれば接続できている。 参考 Gitlab - ArchWiki   2.移行元でバックアップ → 移行先でリストア 公式サイト を参考にバックアップコマンド実行 # gitla...

Redmineをgit pullしてUpdate

イメージ
前の記事 でRedmineをgit pullして最新に更新できるようにしたけど、実際やってみたらエラーになったときの覚書 環境: CentOS 6.7, Ruby 2.2.4p230   1.Rubyアップデート rbenvを使ってRubyを2.2.4にアップデート GitをSourceからBuildしてRubyの最新版をInstall 確認してインストール # rbenv install -l # rbenv install 2.2.4 # rbenv global 2.2.4 gem自体をアップデート # gem update --system bundlerをインストールし直し # gem install bundler 確認 # gem list   2.Redmineアップデート 実はエラーになってからRuby 2.2.4に上げたので、エラーになった時はRuby 2.2.2。 Redmineのリポジトリに移動してgit pull # cd /opt/redmine # git pull バンドルされているのをアップデート # bundle update エラー(下記エラーはRuby 2.2.2でbundle updateしたとき) Warning: this Gemfile contains multiple primary sources. Using `source` more than once without a block is a security risk, and may result in installing unexpected gems. To resolve this warning, use a block to indicate which gems should come from the secondary source. To upgrade this warning to an error, run `bundle config disable_multisource true`. Fetching gem metadata from http://rubygems.org/........... Fetching gem metadata from htt...

HTTPS(SSL) + session.resave=false + cookie.secure=trueの環境でセッションが使えない?

イメージ
Titaniumで開発したアプリを本番環境で動かしたときにログインしたあとセッションが持続できない現象を調査したときの覚書。 アプリ環境: Titanium SDK 5.5.2.GA サーバー環境: CentOS7, nginx 1.8.1, Node.js v4.4.2, express 4.13.4 サーバーのAPIはNode.jsで実装していて、nginxからリバースプロキシしている。 他のプロジェクトはsession.resave=trueにして常に保存するようにしていた。resaveについては 公式ドキュメント で。 app.use(session({   key: APP.Config.cookie.key,   path: APP.Config.cookie.path,   secret: APP.Config.cookie.secret,   cookie: {     secure: true   },   resave: true,   saveUninitialized: true })); 今作っているアプリはログインせずにゲストでもいろいろ出来るので、resave=falseにして不要なセッションは作らないようにしてみた。 開発環境では問題なく動作していて、本番環境のHTTPS(SSL)で動かしてみるとセッションが維持できない。 ハマったのはiOSではセッションが維持出来たので(←気のせいだった)、Androidアプリ側の問題かと思っていた。 Cookieを使ったセッションの場合、サーバー側でセッションを保存するとレスポンスヘッダーの「Set-Cookie」に値が入る。 TitaniumだとHTTPClientのonload時にレスポンスヘッダーを見ればCookieに保存するかわかる。 console.log(this.getResponseHeader('Set-Cookie'));   nginxのリバースプロキシするときにちゃんとhttpsの通信だというのを指定する必要があった。 location /api/1/ {     rewrite ^/api/1/(.*)$...

CentOS7 + Nginx + PHP7 + MariaDB + Node.jsの環境を構築する手順まとめ

イメージ
カゴヤ・クラウド/VPS を借りて最小構成から環境構築したときの覚書。 CentOS6をセットアップしたときの記事を参考に SE奮闘記: カゴヤ・クラウドVPS(CentOS)の初期設定 目次 初期設定 nginxをインストール PHP7をインストール MariaDBをインストール phpMyAdminをインストール Node.jsをインストール postfix + DKIM(送信ドメイン認証)をインストール cronをインストール 1.初期設定 前の記事を参考に SE奮闘記: CentOS7を最小構成からセットアップ このときの記事から変えたこと。 VPS上で時刻合わせは出来ないらしい。 # yum remove chrony SELinuxはgetenforceコマンドがなかったので飛ばした < 2019/01/20 追記 > 前と変わっていたので別記事にした。 SE奮闘記: カゴヤ・クラウドVPS(CentOS7)の初期設定 2.nginxをインストール 公式ドキュメント に従ってYUMリポジトリを追加 # vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 # yum install nginx 起動、自動起動ON、確認 # systemctl start nginx # systemctl enable nginx # systemctl list-unit-files -t service | grep nginx 前の記事を参考にCPU数に合わせて設定する SE奮闘記: Nginx+PHP-FPMのTuning設定 3.PHP7をインストール remiリポジトリのphp7を編集 # less /etc/yum.repos.d/remi-php70.repo [remi-php70] enabled=1 インストール # yum install php php-fpm php-devel php-cli ph...

AndroidのImageViewにリモートURL指定で表示できない?

イメージ
Titaniumの開発でWordPressにアップロードした画像をListView内のImageViewに指定しても表示されず迷走したときの覚書。iOSは表示される。 アプリ環境: Titanium SDK 5.1.2.GA サーバー環境: CentOS 6.7, nginx 1.8.1, node v4.4.1, PHP 7.0.4, ImageMagick 6.7.2-7 Androidアプリのエラー [ERROR] TiDrawableReference: (pool-3-thread-1) [1252,2362] Problem opening stream with url http:/hoge.com/wp-content/uploads/members/44/file_1458700008927-640x426.jpg: Resources/http:/hoge.com/wp-content/uploads/members/44/file_1458700008927-640x426.jpg [ERROR] TiDrawableReference: java.io.FileNotFoundException: Resources/http:/hoge.com/wp-content/uploads/members/44/file_1458700008927-640x426.jpg [ERROR] TiDrawableReference:    at android.content.res.AssetManager.openAsset(Native Method) [ERROR] TiDrawableReference:    at android.content.res.AssetManager.open(AssetManager.java:322) [ERROR] TiDrawableReference:    at android.content.res.AssetManager.open(AssetManager.java:296) [ERROR] TiDrawableReference:    at org.appceler...

一眼レフ ニコンD5500を使いこなす便利技

イメージ
仕事で一眼レフを使うようになって便利だと思ったテクニックの覚書。 ちなみに撮った写真を使っている広報誌はこちら。 広報誌 | 病院概要 | 岡田病院   まずは「親指AF」。通常シャッターボタン半押しでAF(オートフォーカス)になるのを別のボタンに割り当てる方法。 知ってた?ピント合わせが超高速になる親指AFの使い方と設定方法! | Studio9 ニコン一眼レフカメラの親指AFと半押しAEロックの設定 | hueBlueBlue.net   次に「タッチFn」。ファインダーを覗きながら液晶をこするとフォーカスポイントを移動させることができる。 待望のタッチパネル液晶を搭載、AFポイントの選択機能などが便利 - 日経トレンディネット   そして、Fnボタンを「AFエリアモード設定」に設定しておくことで、「オートエリアAF」になって「タッチFn」が効かない状態から素早く他のモードに切り替えることができる。 Fnボタンは人によって割り当てる機能が違う。 価格.com - 『「Fnボタン」などにどの機能を割り当てていますか?』 ニコン D7000 ボディ のクチコミ掲示板   カメラが楽しくなって D500 が気になるこの頃。しばらくはD5500でレベル上げを頑張ります。 < Related Posts > 一眼レフカメラデビュー。「ニコン D5500」を買った

Android Studioでplay-services-gcm.jarを作る

イメージ
Google Play Services APIからGoogle Cloud Messaging(GCM)部分を切り出したライブラリ(jarファイル)を作ったときの覚書。 環境: Mac OS X 10.11.3, Android Studio 1.5.1 Android Studioをインストールするまでは 前の記事 を参考に。 Google Play Servicesから任意のAPIを選択してビルドするための詳細情報は公式サイトを参考に。 Setting Up Google Play Services | Google APIs for Android | Google Developers   公式サイトにあるCloud Messagingのチュートリアル通りにやる。 Try Cloud Messaging for Android | Cloud Messaging | Google Developers   GitHubに公開されているサンプルプログラムを利用する。 googlesamples/google-services: A collection of quickstart samples demonstrating the Google APIs for Android and iOS | GitHub Cloneする $ cd Documents/AndroidStudioProjects/ $ git clone https://github.com/googlesamples/google-services.git Android Studioを開いて File → New → Import Project... から google-services/android/gcm/ を読み込む。 あとは チュートリアル に従って進める。 ダウンロードしたgoogle-services.jsonはappフォルダに配置。 ビルドすると app\build\intermediates\exploded-aar\com.google.android.gms\play-services-gcm\8.4.0\jars に classes.jar が出来る。 これがGoogle Play ServicesのG...