PressをセットアップNginxは近年、人気が出てきたWebサーバで、軽量でかつ設定を冗長に出来るのが人気に秘密です。今回、次のような構成で設定してみることにしました。リバースプロキシに3台のウェブサーバを繋いでみます。PressVPSにLXCを導入したのでプライベートネットワーク化して、SQLサーバなど個々にサーバを立てることができるようになっています。各設定は検索するとかなりの数がヒットするのでここでは設定例に留めておきます。[openssl]WordPressSSL用に追加します。PostfixとDovecotを使ったメールサーバの構築PostfixとDovecotを使ったメールサーバはポピュラーなので、サイトを検索するといくつか設定方法がヒットしますが、ある程度セキュリティを取り入れた設定となるとあまり実例が見つかりません。そのなかで、分かりやすかったサイトがあったのでそれを参考に構築してみました。SSL/TLSでIMAP、STARTTLSでSMTP認証を行います。メールアカウントとパスワードはLinuxのシステムを使わずPostfix側で行います。メーラー(MUA)はLMTPプロトコルでDovecotからPostfixに送りインターネットに送信するようにします。CertificateはフリーのStartSSLを使いました。StartSSLサイトでユーザー登録してサーバー鍵で作ったCSRを使いサイトで登録したホスト名に対してCSRをペーストします。するとzipファイルを作ってくれるのでそれをダウンロードします。zipファイルにはいくつかサーバごとにzipが纏められていますが、OtherServer.zipを展開して、サーバ証明と中間証明を結合します。Xenial)等のディストリビューションにはすでにあるのでそれを使います。Encryptを使う場合はウェブサーバーが必要になります。(オススメ)ファイヤーウォールで次のポートを開けます。443(https)メールアカウントパスワードは平文パスワードを暗号化したHUSHを使います。次のようにして作成します。/etc/dovecot/usersに保存します。<メールアカウント>:<HUSH>パスワードのチェックは次のようにします。’{SHA512-CRYPT}$6$VaEOV5m...'postmaster_addressがないというエラーがある場合、/etc/dovecot/conf.d/15-lda.confに次のように追加します。postmaster@{server名}ログの解析エラーがでたらサイトで検索してみるにしても、ログをみて原因を発見し簡単に直ることも多いものです。/var/log/mail.logで常時監視します。認証でのエラーがメールサーバの時は特に多いので、/etc/dovecot/conf.d/10-logging.confで次のようにしてデバッグします。設定が問題なく完成したらもとに戻します。yesFail2banのインストール(Optional)ユーザーの制限にFail2banがいいとのことので入れてみました。Iptablesのlimitとあまり違いがないみたいだけど、メールで知らせてくれたりと機能的には優れています。設定はとても簡単で/etc/fail2ban/jail.dに設定ファイル追加だけです。Xenialではdefaults-debian.confがインストールされていて、sshがデフォルトで設定してあります。それを参考に例えばメールサーバーの場合、次の内容で設定ファイルを作ります。fail2banで再起動すれば新しい設定が有効になります。RETURNとこのように表示されFail2banが動いているのが分かります。/usr/share/dns/root.keyキーを作成します。*DNSレコードのtxtを編集します。逆引きはVPS等の管理者に連絡。2!SSLv2のエラーがある場合は次のように設定します。TLSv1Optional:[ここから]gmail宛のメールをリレーサーバーにする場合:/etc/postfix/main.cfに追加します。/etc/roundcubedebian系は設定が独自なのでDBチェックエラーは無視します。メールの送受信のテストが済んだらインストーラーを外します。/var/lib/roundcube/installerRoundcubeのスキン有料のスキンは機能豊富で良いのですが無料でシンプルなスキンをインストールしてみます。非常に困ったことに古いドメインを使わざるを得ない状況なったので調べてみました。DDNSの設定:IPアドレス、mxドメインはそのままです。encrypt:サブドメインだけでなく、old_domainと組み合わせてマルチドメイン化ができます。これによって認証が可能になります。Postfix:ログや検索で調べた結果、つぎのところを変更します。$old_domainこれで着信はできるようになりました。WheezyArch:OpenDKIMDebian:OpenDKIMIPsec/IKEv2:スマホを介したサイト間の接続IPsec接続においてNATが2段のときは認証は通るがサブネットがつながらないためエラーになります。IPを利用した方法になりますが、今度は接続した1台しかつながらなくなります。そこでもう少し掘り下げてSNATを使ってサイトとサイトを繋ぐ方法を考えてみます。IPでつながっています。RouterからVPSに接続する分にはなんの問題もありません。ところがルーターに繋がれたThinkpadはipsecのルールで192.168.100.1のIPしかトンネルを通過できません。そこでsnatを使うとローカルアドレスを192.168.100.1に書き換えることによってトンネルを通過することができるようなります。addressがIPの範囲で設定できるかOpenWrtのサイトを覗いたがよくわからなかったので、ネットワークアドレスで指定してみました。具体的には192.168.1.176/28として192.168.1.160/27サブネットを2分割しました。サブネット192.168.1.176/28はsnatでvpsに接続できますが、サブネット192.168.1.160/28はできません。'192.168.1.176/28'以上で完成です。SSHデーモンを有効にするAndroid:でsshサーバーを有効にするには次にようにします。adbを使えるようにするまずアンドロイド機をrootで使えるようにデベロッパーモードにします。つぎにLinux機にパッケージをインストールします。shellでアクセスする。/data/.ssh/authorized_keysコピーでパミッションエラー等でうまくいかない場合次のようにします。+xで実行モードにする。../.ssh/authorized_keysとリンクを張ります。これで、/system/etc/init.d/90userinitを実行してsshが動いているかpsコマンド確認して動いていればOK.あとはWi-Fiテザリングで接続してみます。-nでデフォルトGWが表示されるのでそのアドレスにアクセスします。shell@192.168.43.1以上で完了です。12.09にアップデートOppenWrtのファームウェアのアップデートです。freeでメモリのサイズを把握して適切な数値をいれてインストールします。reset再度インストールし直すのであればmtdを使うことも可能です。rootfsインストールが正しく出来てもブートできないケースが結構ありました。unknown-block(31,2)この場合、1,2度再インストールすればOK。wpa-supplicant_20131120-1_atheros.ipk.のようにエラーでインストールできません。この場合はhttpでサイトのパッケージを指定してopkgでインストールできます。IPsec関係のトラブルシュートconnの使い分けに失敗するときFQDNを証明書の作成およびipsec.confで一致してるか確認します。CN..."またはleftid2で’–san’を指定します。leftid2=router@xxxxxx.xxxxdns.jpCAの内容を調べてチェックします。listcertssshフリーズの問題sshでログインできるがフリーズする問題はmtuの問題です。値を1492に、それでもつながらない時は数値を下げて調整します。CA証明書、サーバー鍵はVPSでは作らないVPSはエントロピーが溜まりにくいのでランダムな暗号の作成ができません。/proc/sys/kernel/random/entropy_avail4000程度あれば大丈夫です。OpenWrtはipsecのtranportモードをサポートしないOpenWrtはtransportモードをサポートしません。L2TP/ipsecはtransportモードで作動しtunnelモードでは作動しないのでOpenWrtを使うとすれば、tunnelでIKEv2を使う選択がよいと思われます。Site)パッケージをインストールします。ip-fullClient鍵と証明書とCA証明書をインストールします。/etc/ipsec.d/cacertsstrongSwanの設定例です。1376fwの設定espプロトコル、500、4500ポートを通すようにします。次の例のように追加します。ACCEPT追記:IPsecのrouting方法この1行を/etc/firewall.userに追加するとルーティングが可能になります。トンネル状況を表示IPsecによるVPNのセキュアな接続(サーバー編)はじめにVPNの接続にはOpenVPNやL2TPなどいろいろな方法がありますが、なかでもIPsecを使った接続はよりセキュアなだけではなく設定に柔軟性があるので、いったん設定できれば応用が利きます。サーバのレンタルVPSとの接続に自宅からだけでなく、外出先からWi-Fiを使った接続、さらにスマートフォンからの接続とあらゆる機器から接続を考えたらIPsecは最もよい選択になります。IPsecには大きく分けてIKEv1とIKEv2あり、ここではよりセキュアなIKEv2を使って設定を進めていきます。jessieでも設定は同じです。IPsecのアプリケーションはstrongSwanを使用しています。サーバにaptでパッケージをインストールします。libcharon-extra-pluginsサーバのCA証明書及びServer証明書の作成します。作成する場所は自分のPCとして進めていきます。~/ipsecCA証明書の作成は次のようにスクリプトを作成します。cacerts/caCert.pemServer鍵および証明書の作成は次のようにスクリプトを作成します。FQDNにしておきます。certs/ServerCert.pemClient鍵および証明書の作成は次のようにスクリプトを作成します。クライアントの方も同様に’–san’をFQDNに設定します。connによって使い分けするので’–dn’の’CN=’をname@FQDN名とします。${CLIENTCERT%.pem}.p12リボーケーションリストの作成は次のようにスクリプトを作成します。crl.pemこれらのスクリプトのパーミッションと所有者を変更します。/etc/ipsec.d/private/*証明書を作成したらCAの内容を調べます。方法は次の2通りあります。-nooutscp等でサーバにコピーしてサーバーの設定ファイルにインストールします。次の設定は各々のデバイスに対応した設定例です。auto=add秘密鍵はLinuxではRSAのみ、WindowsとmacOSではRSA+EAPになります。/var/lib/strongswan/ipsec.secrets.incNote:ユーザー、パスワードは環境にあわせて変更します。strongswan.d/*.confipsecの属性をIPヘッダに追加するとmtu値が大きくなるため変更します。1352Shorewall(firewall)の設定ファイヤーウォールの設定はEAPプロトコルを通すことと500と4500ポートを開けることです。Shorewallをつかう場合の設定です。interfaces:eth0しかないので変更しません。hosts:manの説明によると一つインターフェースしかないときzoneで設定するために定義するファイルなので次のようにしました。eth0:0.0.0.0/0zone:これはShorewallには必須なので登録します。そのままドキュメントからコピーします。mode=tunnelpolicy:ファイヤウォールからvpnにアクセスできるようにする設定です。ACCEPTrules:ipsecのポートを開けます。4500tunnels:zoneと対応しておく必要があるので設定します。vpnstart:Shorewallのシステムで対応できない設定はstartで設定します。MASQUERADE以上で、サーバ側の設定は完了です。pootlepress.。