ubuntu-server-14-04:openvpn
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| ubuntu-server-14-04:openvpn [2016/02/08 19:07] – [インストール前の環境] admin | ubuntu-server-14-04:openvpn [2016/05/16 14:29] (現在) – [ファイアフォールの設定] admin | ||
|---|---|---|---|
| 行 14: | 行 14: | ||
| ^ パッケージ名 ^ バージョン ^ | ^ パッケージ名 ^ バージョン ^ | ||
| | openvpn | 2.3.2-7ubuntu3.1 | | | openvpn | 2.3.2-7ubuntu3.1 | | ||
| + | | easy-rsa | 2.2.2-1 | | ||
| - | ==== インストールするパッケージ等 | + | ===== インストール |
| + | < | ||
| + | $ sudo apt-get install openvpn easy-rsa | ||
| + | </ | ||
| - | ===== インストールと設定 ===== | ||
| - | ==== 前準備 | + | ===== 公開鍵基盤の作成 ===== |
| - | インストール前に / | + | ==== CA(認証局)の作成 ==== |
| - | + | CA のテンプレートをコピーする。今回は CA のファイルを / | |
| - | まずはソフトウェアのリストをアップデートする。 | + | |
| < | < | ||
| - | $ sudo apt-get update | + | $ sudo mkdir / |
| + | $ sudo chown user:user / | ||
| + | $ cp -r / | ||
| </ | </ | ||
| + | 変数ファイルを編集する。 | ||
| + | < | ||
| + | $ vim / | ||
| + | </ | ||
| - | ==== MySQL のインストール ==== | ||
| + | < | ||
| + | export KEY_COUNTRY=" | ||
| + | export KEY_PROVINCE=" | ||
| + | export KEY_CITY=" | ||
| + | export KEY_ORG=" | ||
| + | export KEY_EMAIL=" | ||
| + | export KEY_OU=" | ||
| - | MySQL をインストールしていない場合はここでインストール。 | + | export KEY_ALTNAMES=" |
| - | < | + | export KEY_NAME=" |
| - | $ sudo apt-get install software-properties-common mysql-server mysql-client mysql-common | + | export KEY_CN=" |
| </ | </ | ||
| - | ==== データベースの作成 ==== | ||
| - | データベースを作成する前に、AppArmor | + | <note important> |
| - | MySQL サーバに root として接続する。 | ||
| - | < | + | |
| - | $ mysql -u root -p | + | CA 用のファイルを作成する。 |
| - | </ | + | |
| < | < | ||
| - | > CREATE DATABASE redminedb character SET utf8; | + | $ cd / |
| - | > CREATE USER ' | + | $ source vars |
| - | > GRANT ALL PRIVILEGES ON redminedb.* TO ' | + | $ ./clean-all |
| - | > FLUSH PRIVILEGES; | + | $ ./build-ca |
| - | > exit; | + | |
| </ | </ | ||
| - | * redmine: Redmine で使用するデータベースのユーザ名 | + | 鍵生成中に国コードや、組織名等の変数で設定した内容を変更できる。通常はエンターキー連打で OK。 |
| - | * password: user のパスワード | + | |
| - | * redminedb: 作成するデータベース名 | + | |
| - | <note important> | + | ==== サーバ用の鍵を作成 ==== |
| + | myservername は鍵のファイル名として使用される。 | ||
| + | |||
| + | < | ||
| + | $ ./ | ||
| + | </ | ||
| + | CA 作成時と同じくエンターキー連打。 | ||
| - | ==== Redmine をダウンロード ==== | + | 最後の2つの質問は、CA 作成時にはないがこれもエンターキーで OK。 |
| - | 今回は / | ||
| < | < | ||
| - | $ sudo mkdir / | + | Certificate is to be certified until Feb 5 10:40:34 2026 GMT (3650 days) |
| - | $ cd / | + | Sign the certificate? |
| - | $ sudo chown $USER:$USER . | + | |
| - | $ wget "http:// | + | |
| - | $ tar -xzvf ./redmine-2.6.0.tar.gz --strip-components=1 | + | |
| - | $ rm ./ | + | |
| </ | </ | ||
| - | < | + | y を入力して、先ほど作成した CA の秘密鍵で、サーバ用の公開鍵に署名する。 |
| - | + | ||
| - | 必要なディレクトリを作成し、パーミッションを修正する。 | + | |
| < | < | ||
| - | $ cd /var/ | + | 1 out of 1 certificate requests certified, commit? [y/n] |
| - | $ mkdir -p tmp tmp/pdf public/ | + | |
| - | $ sudo chown -R www-data: | + | |
| - | $ sudo chmod -R 775 files log tmp public/ | + | |
| </ | </ | ||
| + | y を入力して、CA のデータベースに登録する。 | ||
| - | ==== Redmine の設定 ==== | ||
| - | 設定ファイルをコピーする。 | + | Diffie Hellman パラメータが必要になるので生成する。 |
| < | < | ||
| - | $ cd / | + | $ ./build-dh |
| - | $ cp ./config/ | + | |
| - | $ cp ./ | + | |
| </ | </ | ||
| - | データベースの設定を変更する。 | + | |
| + | CA と サーバ用の鍵、証明書を OpenVPN のディレクトリにコピーする。 | ||
| < | < | ||
| - | $ vi ./config/ | + | $ cd ./keys |
| + | $ sudo cp myservername.crt myservername.key ca.crt dh2048.pem / | ||
| </ | </ | ||
| - | 以下の production セクションを変更。 | + | |
| + | ==== クライアント用の鍵を作成 ==== | ||
| < | < | ||
| - | production: | + | $ cd / |
| - | | + | $ source vars |
| - | | + | $ ./build-key client1 |
| - | host: localhost | + | |
| - | username: redmine | + | |
| - | password: " | + | |
| - | encoding: utf8 | + | |
| </ | </ | ||
| - | * database: 作成したデータベースの名前 | + | また鍵情報の入力があるが、エンターキーを連打。 |
| - | * username: 作成したユーザのユーザネーム | + | |
| - | * password: 設定したパスワード | + | |
| + | y を入力し、署名してデータベースへ登録する。 | ||
| - | ==== Bundler をインストール ==== | ||
| - | Bundler をインストールする。 | + | 以下のファイルは、クライアント側へ安全な方法でコピーする。(scp等) |
| + | |||
| + | * / | ||
| + | * / | ||
| + | * / | ||
| - | < | ||
| - | $ gem install bundler | ||
| - | </ | ||
| - | ==== Redmine | + | ===== OpenVPN サーバの設定 ===== |
| - | インストール時に必要になるパッケージを先にインストールする。 | + | サーバの設定ファイルをコピーする。 |
| < | < | ||
| - | $ sudo apt-get install libmysqlclient-dev imagemagick libmagickwand-dev | + | $ sudo cp / |
| + | $ sudo gzip -d / | ||
| </ | </ | ||
| - | Bundler で Redmine の実行環境を構築する。 | + | |
| + | / | ||
| < | < | ||
| - | $ cd /var/www/redmine | + | $ sudo vim /etc/openvpn/server.conf |
| - | $ bundle install --without development test | + | |
| </ | </ | ||
| + | 以下の証明書と鍵ファイル名を確認する。特に dh2048.pem を確認。 | ||
| + | < | ||
| + | ca ca.crt | ||
| + | cert myservername.crt | ||
| + | key myservername.key | ||
| + | dh dh2048.pem | ||
| + | </ | ||
| - | ==== セッションストアのトークンを生成 ==== | + | 以下のコメントを解除。 |
| - | + | ||
| - | セッションストアのトークンを生成する。 | + | |
| < | < | ||
| - | $ bundle exec rake generate_secret_token | + | user nobody |
| + | group nogroup | ||
| </ | </ | ||
| - | ==== データベースの初期化 | + | ==== ネットワークの設定 |
| - | Redmine で使うデータをデータベースに格納する。 | + | / |
| < | < | ||
| - | $ bundle exec rake db:migrate RAILS_ENV=production | + | $ sudo vim / |
| - | $ bundle exec rake redmine: | + | |
| </ | </ | ||
| - | 途中言語の選択があるので好きな言語を選択する。 | + | 以下のコメントを解除して、IPv4 |
| - | 以下のエラーが出たが、www-data ユーザ以外で実行したため。実際の運用では www-data が実行ユーザになるので問題ない。 | + | < |
| + | net.ipv4.ip_forward=1 | ||
| + | </ | ||
| + | |||
| + | ネットワークの設定をリロードする。 | ||
| < | < | ||
| - | Rails Error: Unable to access log file. Please ensure that /var/www/ | + | $ sudo sysctl -p /etc/sysctl.conf |
| </ | </ | ||
| - | ==== Phusion Passenger のインストール ==== | + | ==== OpenVPN サーバを起動 |
| - | Phusion Passenger のインストールに必要になるパッケージを先にインストールする。 | ||
| < | < | ||
| - | $ sudo apt-get install libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev | + | $ sudo service openvpn start |
| </ | </ | ||
| + | < | ||
| + | * Starting virtual private network daemon(s)... | ||
| + | | ||
| + | </ | ||
| - | Phusion Passenger をインストールする。 | + | 仮想ポートが作成されているかを確認。 |
| < | < | ||
| - | $ gem install passenger | + | $ ifconfig tun0 |
| - | $ passenger-install-apache2-module | + | |
| </ | </ | ||
| - | 対話式に質問してくるので答えていく。 | ||
| - | * Which languages are you interested in?: Ruby のみを選択 | + | ===== ファイアフォールの設定 ===== |
| - | 以下のエラーが発生した。 | + | ファイアフォールを以下のコマンドで設定する。 |
| < | < | ||
| - | AH00526: Syntax error on line 33 of / | + | $ sudo ufw status |
| - | SSLCertificateKeyFile: | + | $ sudo ufw enable |
| + | $ sudo ufw default deny incoming | ||
| + | $ sudo ufw default allow outgoing | ||
| </ | </ | ||
| - | 一般ユーザで Phusion Passenger のインストールを実行しているため、root にしか権限がない秘密鍵へアクセスできないためらしい。 | + | OpenVPN サーバへの接続を許可。 |
| - | + | ||
| - | 一時的に該当の行をコメントアウトして再度インストールする。 | + | |
| < | < | ||
| - | $ passenger-install-apache2-module | + | $ sudo ufw allow 1194/udp |
| </ | </ | ||
| - | うまく騙せた。コメントアウトした行を元に戻す。 | ||
| - | 最後に Apache2 の設定方法が表示されるのでコピーしておく。 | + | ファイアウォールのデフォルトルールを変更。 |
| + | < | ||
| + | $ sudo vim / | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | DEFAULT_FORWARD_POLICY=" | ||
| + | </ | ||
| - | ==== Apache2 の設定 ==== | ||
| - | Phusion Passenger のインストールの最後に、以下のような設定例が出力されるので、指示に従って Apache2 の設定を変更する。 | ||
| < | < | ||
| - | | + | $ sudo vim /etc/ufw/before.rules |
| - | < | + | |
| - | | + | |
| - | | + | |
| - | </ | + | |
| </ | </ | ||
| + | |||
| + | 以下のルールを “*filter” の直前に入力する。 | ||
| < | < | ||
| - | < | + | # START OPENVPN RULES |
| - | | + | # NAT table rules |
| - | | + | *nat |
| - | | + | : |
| - | < | + | # Allow traffic from OpenVPN client |
| - | # This relaxes Apache security settings. | + | -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE |
| - | | + | -A POSTROUTING -s 10.8.0.0/8 -o wlan0 -j MASQUERADE |
| - | # MultiViews must be turned off. | + | COMMIT |
| - | | + | # END OPENVPN RULES |
| - | # Uncomment this if you're on Apache >= 2.4: | + | |
| - | | + | |
| - | </ | + | |
| - | </ | + | |
| </ | </ | ||
| - | 最終的に、以下の内容を稼働中のサイトの < | ||
| - | Passenger の設定については [[http:// | + | ufw を再起動する。 |
| < | < | ||
| - | ### for Redmine | + | $ sudo ufw disable && sudo ufw enable |
| - | LoadModule passenger_module | + | </code> |
| - | < | + | |
| - | PassengerRoot / | + | |
| - | PassengerDefaultRuby / | + | |
| - | ## Passenger Configuration | + | ===== クライアントの設定 ===== |
| - | ## Details at http:// | + | |
| - | PassengerMinInstances 6 | + | |
| - | PassengerMaxPoolSize 20 | + | |
| - | RailsBaseURI /redmine | + | |
| - | PassengerAppRoot / | + | |
| - | RailsSpawnMethod smart | ||
| - | PassengerPoolIdleTime 1000 | ||
| - | RailsAppSpawnerIdleTime 3600 | ||
| - | PassengerMaxPreloaderIdleTime 0 | ||
| - | PassengerMaxRequests 5000 | ||
| - | PassengerStatThrottleRate 5 | ||
| - | PassengerUser www-data | + | 自分は Mac で Tunnelblick |
| - | PassengerGroup www-data | + | |
| - | </ | + | |
| - | </ | + | |
| - | + | ||
| - | Apache2 | + | |
| < | < | ||
| - | $ sudo service apache2 restart | + | # sample client.ovpn for Tunnelblick |
| + | client | ||
| + | remote blue.example.com | ||
| + | port 1194 | ||
| + | proto udp | ||
| + | dev tun | ||
| + | dev-type tun | ||
| + | ns-cert-type server | ||
| + | reneg-sec 86400 | ||
| + | auth-nocache | ||
| + | auth-retry interact | ||
| + | comp-lzo yes | ||
| + | verb 3 | ||
| + | ca ca.crt | ||
| + | cert client1.crt | ||
| + | key client1.key | ||
| </ | </ | ||
| - | |||
| - | |||
| - | https:// | ||
| 行 299: | 行 302: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
ubuntu-server-14-04/openvpn.1454926041.txt.gz · 最終更新: 2016/02/08 19:07 by admin
