表題の通りRedhat系ではyum grouplistを使うとGNOMEなどまとめてインストールできる。ubuntuで同じようなコマンドないかなぁと思って探したらtaskselってのがあった。
コマンド打つとこんな感じ。
まとめて入れれて便利
2016年6月3日金曜日
2016年5月25日水曜日
AWS開始1年間の無料枠適用サービスと制限まとめ
AWSアカウントを作って利用開始すると1年の無料枠が使えるんだけど、1年すぎても無料枠があって使えるものもあるのでメモ。
赤は1年間無料で使えるもの、青は1年過ぎても無料枠が設定されているもの。
赤は1年間無料で使えるもの、青は1年過ぎても無料枠が設定されているもの。
Amazon EC2
|
クラウド内でサイズ変更可能なコンピューティング性能。 750 時間 1 か月あたりの Windows t2.micro インスタンスの使用量 例えば、1 インスタンスを 1 か月使用、または 2 インスタンスを半月使用 サインアップから 12 か月で有効期限が切れます。 |
Amazon S3
|
高スケーラブル、高信頼性、低レイテンシーのデータストレージインフラストラクチャ。 5 GB 標準ストレージ 20,000 件の Get リクエスト 2,000 件の Put リクエスト サインアップから 12 か月で有効期限が切れます。 |
Amazon RDS
|
MySQL、PostgreSQL、MariaDB、Oracle BYOL または SQL Server のためのマネージド型リレーショナルデータベースサービス。 750 時間 Amazon RDS Single-AZ db.t2.micro インスタンスの使用 20 GB DB Storage: General Purpose(SSD)または Magnetic の任意の組み合わせ 20 GB バックアップ(RDS Magnetic ストレージを使用。 General Purpose [SSD] 上の I/O は別々に請求されません) 1,000 万 I/O サインアップから 12 か月で有効期限が切れます。 |
AWS IoT
|
デバイスをクラウドに接続 250,000 件のメッセージ 毎月 (公開または配信) サインアップから 12 か月で有効期限が切れます。 |
Amazon EC2 Container Registry
|
Docker イメージの保存と取得 毎月 500 MB ストレージ サインアップから 12 か月で有効期限が切れます。 |
AWS Lambda
|
イベント発生時にお客様のコードを実行し、コンピューティングリソースを自動的に管理するコンピューティングサービス 100 万件 1 か月当たりの無料リクエスト数 1 か月あたり最大 320 万秒 のコンピューティング時間 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Elastic Load Balancing
|
アプリケーションの着信トラフィックの複数の Amazon EC2 インスタンスへの自動分散。 750 時間 (1 か月あたり) 15 GB データ処理 サインアップから 12 か月で有効期限が切れます。 |
Amazon DynamoDB
|
シームレスな拡張性を備えた、高速で柔軟な NoSQL データベースサービスです。 25 GB ストレージ 25 ユニット 書き込み容量 25 ユニット 読み込み容量 1 か月当たり最大 2 億リクエストの処理が十分に可能。 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon CloudFront
|
低レイテンシーかつ速いデータ転送速度で、エンドユーザーにコンテンツを配信するウェブサービスです。 50 GB データ転送 (アウト) 2,000,000 HTTP および HTTPS リクエスト サインアップから 12 か月で有効期限が切れます。 |
Amazon Elastic Block Storage
|
実行中の Amazon EC2 インスタンスに接続できる、高可用性、高信頼性、および予測可能性を備えたストレージボリューム。 30 GB Amazon EBS: 汎用 (SSD) または Magnetic の任意の組み合わせ 200 万 I/O (EBS Magnetic) 1 GB スナップショットストレージ サインアップから 12 か月で有効期限が切れます。 |
Amazon ElastiCache
|
メモリ内キャッシュのデプロイ、運用、スケーリングをクラウド内で簡単に実行できるウェブサービス。 750 時間 十分な時間 毎月マイクロキャッシュノードを継続的に実行するのに サインアップから 12 か月で有効期限が切れます。 |
Amazon Redshift
|
高速、シンプル、費用対効果の高いデータウェアハウス 2 か月間無料 DC1.Large 750 時間 2 か月間、1 か月あたり サインアップから 2 か月で有効期限が切れます。 |
AWS Data Pipeline
|
データ駆動型ワークフローに対するオーケストレーションです。 3 個の低頻度の前提条件 5 個の低頻度のアクティビティ サインアップから 12 か月で有効期限が切れます。 |
Amazon Elasticsearch Service
|
AWS クラウドの Elasticsearch クラスターを、簡単にデプロイ、運用、スケールするマネージドサービス 750 時間 single-AZ t2.micro.elasticsearch インスタンスの使用量 1 か月あたり 10 GB の オプションの EBS ストレージ (磁気または汎用) サインアップから 12 か月で有効期限が切れます。 |
Amazon Cognito
|
モバイルユーザー ID と同期。 Your User Pool 機能には、各月 50,000 MAU の無料利用枠があります。** Amazon Cognito で、ユーザーの認証およびユニークアイデンティティの付与にフェデレーティッドアイデンティティ機能を使用する場合、課金が発生することは一切ありません。** 10 GB クラウド同期ストレージ。サインアップから 12 か月で有効期限が切れます。 100 万件 毎月の同期操作。サインアップから 12 か月で有効期限が切れます。 |
AWS Device Farm
|
iOS、Android、FireOS のアプリを AWS クラウド内の実際のデバイスでテスト 1 回限り、250 デバイス分の無料トライアル 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon Mobile Analytics
|
スピーディで安全なモバイルアプリケーションの使用分析。 1 億回 毎月の無料イベント 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon SNS
|
スピーディかつ柔軟な、完全マネージド型の PUSH メッセージングサービス 100 万件の発行 100 万件のモバイルプッシュ配信 10 万件の HTTP/S 配信 1,000 件のメール配信 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
AWS CodeCommit
|
高度にスケーラブルなマネージド型ソースコントロールサービス 5 アクティブユーザー (1 か月あたり) 50 GB – 月 1 か月当たりのストレージ 10,000 Git のリクエスト 1 か月あたり 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
AWS CodePipeline
|
速度と信頼性に優れたアプリケーション更新を実現する継続的デリバリサービス 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
AWS Key Management Service
|
AWS Key Management Service は、管理制御で暗号化を容易にするマネージドサービスです。 2 万件 1 か月当たりの無料リクエスト数 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon CloudWatch
|
AWS のクラウドリソースとアプリケーションをモニタリングします。 10 カスタムメトリックスおよび 10 アラーム 100 万件の API リクエスト 5 GB のログデータの取り込みおよび 5 GB のログデータのアーカイブ 毎月最大 50 メトリックスのダッシュボード 3 個 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
AWS Trusted Advisor
|
AWS クラウド最適化エキスパート。 通知とカスタマイズ機能 サインアップから 12 か月で有効期限が切れます |
Amazon API Gateway
|
スケールを問わない API の発行、維持、監視、セキュリティ確保 100 万回の API 呼び出しの受信 (1 か月あたり) サインアップから 12 か月で有効期限が切れます。 |
Amazon AppStream
|
Windows アプリケーションを任意のデバイスに配信可能。 サインアップから 12 か月で有効期限が切れます。 |
Amazon Elastic Transcoder
|
完全マネージド型メディアトランスコーディングサービス。 20 分 SD トランスコーディング 10 分 HD トランスコーディング サインアップから 12 か月で有効期限が切れます。 |
Amazon SES
|
コスト効率に優れたクラウドでのメールサービスです。 1,000 件の受信メッセージ 1 か月あたり 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon SQS
|
コンピュータ間でやり取りされるメッセージを格納するためのスケーラブルなキューです。 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
Amazon SWF
|
クラウドアプリケーション用のタスクコーディネーションと状態管理サービスです。 30,000 日のワークフロー日 1,000 回の実行 12 か月間の AWS 無料利用枠期間終了後にも期限切れになりません。 |
2016年5月23日月曜日
Apache http 2.4.20をソースからインストール
最近、仕事ではyumでインストールを求められることが多かったので、ソースからインストールを久しぶりにしたのでメモ。
Apache httpdをtar.gz形式でダウンロード。
Apache httpdをtar.gz形式でダウンロード。
$ tar -xvzf httpd-2.4.20.tar.gzできたhttpd-2.4.20の下へ移動してconfihureを実施する。
$ ./configure --enable-so --enable-rewrite --enable-proxy checking for chosen layout... Apache checking for working mkdir -p... yes checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu configure: configure: Configuring Apache Portable Runtime library... configure: checking for APR... no configure: error: APR not found. Please read the documentation.そうだ、確か2.4からAPRtAPR-Utilがソースのセットから外出しになっていたんだった。なのでAPRとAPRUtilをソースでダウンロードし解凍してできたディレクトリ毎、httpd2.4.20/srclib配下へ移動させ、上記のconfigureをもう一度やり直す。
$ wget http://ftp.jaist.ac.jp/pub/apache//apr/apr-1.5.2.tar.gz $ wget http://ftp.kddilabs.jp/infosystems/apache//apr/apr-util-1.5.4.tar.gz $ tar -xvzf apr-1.5.2.tar.gz $ tar -xvzf apr-util-1.5.4.tar.gz $ mv apr-1.5.2 ./httpd-2.4.20/srclib/apr $ mv apr-util-1.5.4 ./httpd-2.4.20/srclib/apr-util
$ ./configure --enable-so --enable-rewrite --enable-proxy checking for chosen layout... Apache :: ::何もなければmake, make installする
$ make $ make installhttpd.confを一部修正。mod_slotmem_shm.soをIncludeするようにコメントアウトされているものを有効にする。
LoadModule slotmem_shm_module modules/mod_slotmem_shm.sohttpd起動する。
# usr/local/src/httpd-2.4.20# /usr/local/apache2/bin/apachectl start
2016年5月22日日曜日
IDCFクラウドをAPIから使う(VM作成編)
IDCFクラウドをAPIから使う(準備編)でCLIから使えるようにしたので簡単にサクっと作ってみた。
IDCFクラウド API Referencesを見たけど、利用できるAPIは限られているけど普段使いにはあまり問題はなさそう。(英語のままのもあるけど)
とりあえずSSHの認証鍵を生成して、
コマンドからも確認してみる。
ここでインターネットから接続するためにPublicIPを確認する。
IDCFクラウド API Referencesを見たけど、利用できるAPIは限られているけど普段使いにはあまり問題はなさそう。(英語のままのもあるけど)
とりあえずSSHの認証鍵を生成して、
$ssh-keygen -t rsaクラウドにアップロードする。
$ cloudstack-api registerSSHKeyPair --name idcf --publickey "$(cat .ssh/生成した公開鍵)" -tSSH公開鍵がアップロードされたのは、クラウドコンソールで確認してもいいしCLIで確認してもいい。今回はCLIからやってみる。
$ cloudstack-api listSSHKeyPairs -t +-------------------------------------------------+------------+ | fingerprint | name | +-------------------------------------------------+------------+ | 31:8a:93:ff:c3:12:8a:ae:19:**:**:**:**:**:**:** | idcf | +-------------------------------------------------+------------+マシン生成する。今回作るサーバプランは一番安いlight.S1にしておく。OSはCentOS7.1を選ぶ。念のためサーバプランとOSテンプレートのid確認方法をもう一度。
$ cloudstack-api listServiceOfferings -t id,displaytext +--------------------------------------+------------------------------------+ | id | displaytext | +--------------------------------------+------------------------------------+ | 10d303d6-d39f-4b15-80a1-982e86ef002b | highio.3XL128( 24CPU /128GB RAM) | | 12e39b73-3ce6-4e57-9036-3dac0c2b2b06 | highmem.M16( 2CPU / 16GB RAM ) | | 354c62e6-b99b-42f2-b5c7-e741f1085422 | standard.XL32( 8CPU / 32 GB RAM ) | | 435c1aab-e796-42c7-9320-22ebdc8f50aa | highcpu.L8( 4CPU / 8GB RAM ) | | 55621f17-4d38-457c-ba34-e6199701b67b | standard.S4( 1CPU / 4GB RAM ) | | 6a99ff4c-1a24-4aa6-b4cc-600220987ed0 | standard.L16( 4CPU / 16GB RAM ) | | 6fda5e0c-e64d-46ea-893d-7e2ac9e128e7 | highcpu.XL16 ( 8CPU / 16GB RAM ) | | 7ae143a6-5662-4f1d-bc4c-10defa775bcb | standard.M8( 2CPU / 8GB RAM ) | | 7c548831-427b-437c-9c8b-80dde8031303 | highcpu.2XL32( 16 CPU / 32GB RAM ) | | 8cf15770-c3c8-4efc-8ae5-b8327790db76 | highcpu.M4( 2CPU / 4GB RAM ) | | 95edba75-7cb5-4654-a2f5-f40b7acf7a57 | standard.S8( 1CPU / 8GB RAM ) | | 9a2f3ee4-af46-4790-9331-753674c16e68 | highio.5XL128( 40CPU /128GB RAM) | | d1aac6d2-bb47-4106-90d0-6a73ac3ae78e | light.S2( 1CPU / 2GB RAM ) | | d59817bc-ed79-4083-8b71-51b26c76d311 | highmem.L32( 4CPU / 32GB RAM ) | | e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 | light.S1( 1CPU / 1GB RAM ) | | ec13a7d8-26ce-4c4e-a223-7ef832bb1243 | light.S2( 1CPU / 2GB RAM ) | | ee5ee568-76b2-46ad-9221-c695e6f2149d | highmem.XL64( 8CPU / 64GB RAM ) | +--------------------------------------+------------------------------------+
$ cloudstack-api listTemplates --templatefilter executable -t name,id | grep Cent | grep "7\.1" | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit | ee7bc439-0186-49b4-82e4-bf821db89601 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | CentOS 7.1 64-bit for Vagrant | aa39af2c-a91e-4c7d-8bf1-4e4754959b11 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | Hatohol 15.06 on CentOS 7.1 | eedabe07-5f0e-4822-b9d9-6bbb4a04de85 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 | | MIRACLE ZBX 2.2.11 on CentOS 7.1 | 9cf7a110-caaa-4ae5-807c-218c80c88f31 |テンプレートは同じのが表示されるが気にせず、このidを使おう。ZoneIDはクラウドコンソールの「ゾーン管理」から「有効」になっているものを使う。僕の場合はradianだった。group、displayname、nameはお好みで。
$ cloudstack-api deployVirtualMachine --serviceofferingid e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 --templateid ee7bc439-0186-49b4-82e4-bf821db89601 --zoneid a53ff3d3-042b-4cbd-ad16-494bb8d33e06 --group highmountain --displayname highmountain --name highmountain --keypair keypairname正常に終わるとJSON形式でidとjobidが返ってきた。
{ "deployvirtualmachineresponse": { "id": "...", "jobid": "..." } }この後クラウドコンソールから確認すると仮想マシンがRunning状態でできていた。
コマンドからも確認してみる。
$ cloudstack-api listVirtualMachines -t
ここでインターネットから接続するためにPublicIPを確認する。
$ cloudstack-api listPublicIpAddresses -t id,ipaddress +--------------------------------------+---------------+ | id | ipaddress | +--------------------------------------+---------------+ | 205e7e75-aae1-4de9-a1fe-b79e4947a715 | xxx.xxx.xxx.xxx | +--------------------------------------+---------------+ソースIPはNATできないのでポートフォワードの設定をする。今回はSSH。
$ cloudstack-api createPortForwardingRule --ipaddressid 205e7e75-aae1-4de9-a1fe-b79e4947a715 --privateport 22 --protocol TCP --publicport 22 --virtualmachineid f3991f90-0962-4948-a965-508c013700c6クラウドコンソールからも確認できるが、これもコマンドから確認できる。
$ cloudstack-api listPortForwardingRules -tここでSSHしてみるとログインできる!
$ ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/PrivateKey ________ ______ ______ __ _ / _/ __ \/ ____/ / ____/________ ____ / /_(_)__ _____ / // / / / / / /_ / ___/ __ \/ __ \/ __/ / _ \/ ___/ _/ // /_/ / /___ / __/ / / / /_/ / / / / /_/ / __/ / /___/_____/\____/ /_/ /_/ \____/_/ /_/\__/_/\___/_/ [root@hostname ~]#
2016年5月20日金曜日
IDCFクラウドをAPIから使う(準備編)
コストの試算を考えるとめんどくさいですけど、クラウドいいですよね。スモールスタートしながらスピード感出して構築できるし。
AWSは押さえておかないといけないですが、今のところ、仕事上、コスト計算しやすいとか大人の事情とかでIDCFクラウドを使うことが多いです。クラウドコンソールからコツコツ作るのもできるけど、せっかくのクラウドなのでAPIからサーバ構築していきたいかなと。基盤にはCloudStackを採用しているようなので、その勉強にもなるし。
ドキュメントはIDCFクラウド API/技術ドキュメントにあるので、これを参照しながら手順はほぼ写経。
色々と必要なものをインストールしておく。
AWSは押さえておかないといけないですが、今のところ、仕事上、コスト計算しやすいとか大人の事情とかでIDCFクラウドを使うことが多いです。クラウドコンソールからコツコツ作るのもできるけど、せっかくのクラウドなのでAPIからサーバ構築していきたいかなと。基盤にはCloudStackを採用しているようなので、その勉強にもなるし。
ドキュメントはIDCFクラウド API/技術ドキュメントにあるので、これを参照しながら手順はほぼ写経。
gitとpipのインストール
色々と必要なものをインストールしておく。
$ apt-get install --install-suggests git python-pip
$ apt-get install --install-suggests gcc build-essential libxml2-dev libxslt1-dev python-devcloudstack-apiをインストールする。
$ pip install git+https://github.com/idcf/cloudstack-apiバージョン確認する。
$ cloudstack-api --versionAPIを利用するために設定ファイル(.idcfrc)を作成する。
[account] host=${idcf_end_point} api_key=${your_api_key} secret_key=${secret_key}設定ファイルが効いているか確認する。
$ cloudstack-api listZonesこんな感じでずらずらと出てきたら成功。
{ "listzonesresponse": { "count": 5, "zone": [ { "allocationstate": "Enabled", "dhcpprovider": "VirtualRouter", : : :利用できるゾーンの確認。ちなみに-tは結果をテーブル形式で出力する。何もなければJSON形式で出力される。
$ cloudstack-api listZones -t id +--------------------------------------+ | id | +--------------------------------------+ | 9703cdbb-aee7-41ba-ba80-4807eaa68b80 | | a117e75f-d02e-4074-806d-889c61261394 | | a53ff3d3-042b-4cbd-ad16-494bb8d33e06 | | baf86a6e-4e3b-428e-8fd0-7fda43e468d4 | | f0954b9b-2626-4549-82ad-ca421073b3bc | +--------------------------------------+利用できるサーバタイプの確認
$ cloudstack-api listServiceOfferings -t id,displaytext +--------------------------------------+------------------------------------+ | id | displaytext | +--------------------------------------+------------------------------------+ | 10d303d6-d39f-4b15-80a1-982e86ef002b | highio.3XL128( 24CPU /128GB RAM) | | 12e39b73-3ce6-4e57-9036-3dac0c2b2b06 | highmem.M16( 2CPU / 16GB RAM ) | | 354c62e6-b99b-42f2-b5c7-e741f1085422 | standard.XL32( 8CPU / 32 GB RAM ) | | 435c1aab-e796-42c7-9320-22ebdc8f50aa | highcpu.L8( 4CPU / 8GB RAM ) | | 55621f17-4d38-457c-ba34-e6199701b67b | standard.S4( 1CPU / 4GB RAM ) | | 6a99ff4c-1a24-4aa6-b4cc-600220987ed0 | standard.L16( 4CPU / 16GB RAM ) | | 6fda5e0c-e64d-46ea-893d-7e2ac9e128e7 | highcpu.XL16 ( 8CPU / 16GB RAM ) | | 7ae143a6-5662-4f1d-bc4c-10defa775bcb | standard.M8( 2CPU / 8GB RAM ) | | 7c548831-427b-437c-9c8b-80dde8031303 | highcpu.2XL32( 16 CPU / 32GB RAM ) | | 8cf15770-c3c8-4efc-8ae5-b8327790db76 | highcpu.M4( 2CPU / 4GB RAM ) | | 95edba75-7cb5-4654-a2f5-f40b7acf7a57 | standard.S8( 1CPU / 8GB RAM ) | | 9a2f3ee4-af46-4790-9331-753674c16e68 | highio.5XL128( 40CPU /128GB RAM) | | d1aac6d2-bb47-4106-90d0-6a73ac3ae78e | light.S2( 1CPU / 2GB RAM ) | | d59817bc-ed79-4083-8b71-51b26c76d311 | highmem.L32( 4CPU / 32GB RAM ) | | e01a9f32-55c4-4c0d-9b7c-d49a3ccfd3f6 | light.S1( 1CPU / 1GB RAM ) | | ec13a7d8-26ce-4c4e-a223-7ef832bb1243 | light.S2( 1CPU / 2GB RAM ) | | ee5ee568-76b2-46ad-9221-c695e6f2149d | highmem.XL64( 8CPU / 64GB RAM ) | +--------------------------------------+------------------------------------+利用できるテンプレートの確認
$ cloudstack-api listTemplates --templatefilter executable -t id,ostypename +--------------------------------------+---------------------------------------+ | id | ostypename | +--------------------------------------+---------------------------------------+ | 06c0be30-95e0-4f90-9af5-aa0637974e9b | CentOS 6.4 (64-bit) | | 08d914bc-c632-4179-95ca-7913aca0275e | Red Hat Enterprise Linux 6.4 (64-bit) | | 107a7aba-0867-4fa6-927d-772944208ba9 | CentOS 6.4 (64-bit) | | 180ec450-2570-4d6c-b2c0-c40316814025 | CentOS 6.4 (64-bit) | | 180ec450-2570-4d6c-b2c0-c40316814025 | CentOS 6.4 (64-bit) | : :後は作っていこう。
UbuntuにOpenVPNをインストールしてiPadから接続したい(iPad編)
OpenVPNでiPadからVPNをつなぐ野望。その野望を叶えるために利用するのはこのアプリ。OpenVPNによるOpenVPNのためのアプリ。
このアプリにOpenVPNのクライアント設定ファイルをインポートさせるために、ovpnファイルを作る。中はこんな感じ。
これでiPadからVPN接続できる!
このアプリにOpenVPNのクライアント設定ファイルをインポートさせるために、ovpnファイルを作る。中はこんな感じ。
tls-client client proto udp dev tun0 nobind persist-key persist-tun verb 3 pull comp-lzo reneg-sec 3600 remote (VPNサーバのIPアドレス) (VPNサーバのポート) ns-cert-type server key-direction 1 <ca> -----BEGIN CERTIFICATE----- オレオレCA証明書 -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- クライアント証明書 -----END CERTIFICATE----- </cert> <key> -----BEGIN PRIVATE KEY----- クライアント認証鍵 -----END PRIVATE KEY----- </key> <tls-auth> -----BEGIN OpenVPN Static key V1----- TLS認証鍵 -----END OpenVPN Static key V1----- </tls-auth>これをメールでもiTunes経由でもいいのでアプリにインポートして接続するだけ!
これでiPadからVPN接続できる!
2016年5月19日木曜日
UbuntuにOpenVPNをインストールしてiPadから接続したい(サーバ設定)
まぁ、色々と試行錯誤しなから少しずつサーバを育ているわけですが、今回はさくらVPSで動いているサーバにVPNで接続したいなと思いインストールしてみた。
ちなみに最終目標はタイトル通りiPadからVPN接続ができることです。
まずはOpenVPNのパッケージをインストール。
1. オレオレ認証局を作る(認証局と証明書)
まずは認証局の情報を設定するために、初期設定されたディレクトリとファイルを作成する。
2. オレオレ認証局に認証されたサーバ証明書と秘密鍵を作成する
さっそくサーバ証明書と秘密鍵を作成しよう。
3. 暗号化に使用するDiffie-Hellman用パラメータを作成する
/etc/openvpn/easy-rsa/build-dhを実行する。
4. オレオレ認証局に認証されたクライアント証明書と公開鍵を作成する
クイアント証明書と鍵を作成する。
5. OpenVPNの設定・起動
OpenVPNサーバの設定をするのでサンプルのconfigファイルを/etc/openvpn配下に持って来て編集する。
疲れた。iPad(iOS)から繋げるのは次回。
ちなみに最終目標はタイトル通りiPadからVPN接続ができることです。
まずはOpenVPNのパッケージをインストール。
$ apt-get install openvpn パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libpkcs11-helper1 提案パッケージ: easy-rsa 以下のパッケージが新たにインストールされます: libpkcs11-helper1 openvpn アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 462 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,163 kB のディスク容量が消費されます。 続行しますか? [Y/n] y提案されたeasy-rsaも追加でインストールする。easy-rsaをインストールする際にもpcmciautilsを提案されたので面倒くさいから--install-suggestsをつけて実行する。
$ apt-get install --install-suggests easy-rsa パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libccid opensc opensc-pkcs11 pcmciautils pcscd 以下のパッケージが新たにインストールされます: easy-rsa libccid opensc opensc-pkcs11 pcmciautils pcscd アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。 1,108 kB のアーカイブを取得する必要があります。 この操作後に追加で 3,949 kB のディスク容量が消費されます。 続行しますか? [Y/n] yこの後実行する手順はこんな感じ。
- オレオレ認証局を作る(認証局と証明書)
- オレオレ認証局に認証されたサーバ証明書と秘密鍵を作成する
- 暗号化に使用するDiffie-Hellman用パラメータを作成する
- オレオレ認証局に認証されたクライアント証明書と公開鍵を作成する
- OpenVPNの設定・起動
1. オレオレ認証局を作る(認証局と証明書)
まずは認証局の情報を設定するために、初期設定されたディレクトリとファイルを作成する。
$ make-cadir /etc/openvpn/easy-rsa/etc/openvpn/easy-rsa/varsの中に認証局のドメインや組織情報などを環境変数に設定してあるので編集する。
export EASY_RSA="/etc/openvpn/easy-rsa" #設定用のホームディレクトリ export KEY_COUNTRY="JP" export KEY_PROVINCE="OSAKA" export KEY_CITY="Minato-ku, Osaka" export KEY_ORG="High Mountain" export KEY_EMAIL="master@highmountain-lab.net" export KEY_OU="WEB Development Dept."環境変数を読み込み、オレオレ認証局を作成する。
$ source /etc/openvpn/easy-rsa/vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys $ /etc/openvpn/easy-rsa/clean-all $ /etc/openvpn/easy-rsa/build-ca Generating a 2048 bit RSA private key .................................................................................+++ ....+++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [JP]: State or Province Name (full name) [OSAKA]: Locality Name (eg, city) [Minato-ku, Osaka]: Organization Name (eg, company) [High Mountain]: Organizational Unit Name (eg, section) [WEB Development Dept.]: Common Name (eg, your name or your server's hostname) [High Mountain CA]: Name [EasyRSA]: Email Address [master@highmountain-lab.net]:これで認証局の証明書(ca.crt)と秘密鍵(ca.key)が/etc/openvpn/easy-rsa/keys配下に作成される。
2. オレオレ認証局に認証されたサーバ証明書と秘密鍵を作成する
さっそくサーバ証明書と秘密鍵を作成しよう。
$ /etc/openvpn/easy-rsa/build-key-server LubuntuSakura Generating a 2048 bit RSA private key .........................................................+++ ................................+++ writing new private key to 'LubuntuSakura.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [JP]: State or Province Name (full name) [OSAKA]: Locality Name (eg, city) [Minato-ku, Osaka]: Organization Name (eg, company) [High Mountain]: Organizational Unit Name (eg, section) [WEB Development Dept.]: Common Name (eg, your name or your server's hostname) [LubuntuSakura]: Name [EasyRSA]: Email Address [master@highmountain-lab.net]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'JP' stateOrProvinceName :PRINTABLE:'OSAKA' localityName :PRINTABLE:'Minato-ku, Osaka' organizationName :PRINTABLE:'High Mountain' organizationalUnitName:PRINTABLE:'WEB Development Dept.' commonName :PRINTABLE:'LubuntuSakura' name :PRINTABLE:'EasyRSA' emailAddress :IA5STRING:'master@highmountain-lab.net' Certificate is to be certified until May 15 18:40:00 2026 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated同じようにこれでサーバ証明書(LubuntuSakura.crt)と秘密鍵(LubuntuSakura.key)が/etc/openvpn/easy-rsa/keys配下に作成される。
3. 暗号化に使用するDiffie-Hellman用パラメータを作成する
/etc/openvpn/easy-rsa/build-dhを実行する。
$ /etc/openvpn/easy-rsa/build-dh Generating DH parameters, 2048 bit long safe prime, generator 2 This is going to take a long time .........................................................................+...........................................................................................................+.............................................................................................................................................+.............................+......................................+...............+...................................................................................................................鍵作成されると、/etc/openvpn/easy-rsa/keys/dh2048.pemが作成される。
4. オレオレ認証局に認証されたクライアント証明書と公開鍵を作成する
クイアント証明書と鍵を作成する。
# /etc/openvpn/easy-rsa/build-key LubuntuServerClient Generating a 2048 bit RSA private key ...........+++ ...................................................................................................+++ writing new private key to 'LubuntuServerClient.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [JP]: State or Province Name (full name) [OSAKA]: Locality Name (eg, city) [Minato-ku, Osaka]: Organization Name (eg, company) [High Mountain]: Organizational Unit Name (eg, section) [WEB Development Dept.]: Common Name (eg, your name or your server's hostname) [LubuntuServerClient]: Name [EasyRSA]: Email Address [master@highmountain-lab.net]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'JP' stateOrProvinceName :PRINTABLE:'OSAKA' localityName :PRINTABLE:'Minato-ku, Osaka' organizationName :PRINTABLE:'High Mountain' organizationalUnitName:PRINTABLE:'WEB Development Dept.' commonName :PRINTABLE:'LubuntuServerClient' name :PRINTABLE:'EasyRSA' emailAddress :IA5STRING:'master@highmountain-lab.net' Certificate is to be certified until May 16 05:23:40 2026 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base UpdatedTLS認証鍵を作成する。
$ openvpn --genkey --secret /etc/openvpn/easy-rsa/keys/tls.key下記の4ファイルをクライアント用に使用する。
ca.crt LubuntuServerClient.crt LubuntuServerClient.key ta.key
5. OpenVPNの設定・起動
OpenVPNサーバの設定をするのでサンプルのconfigファイルを/etc/openvpn配下に持って来て編集する。
$ cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ $ gunzip server.conf.gzserver.confは下記の部分を編集する。
port 1194 proto udp ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/LubuntuSakura.crt key /etc/openvpn/easy-rsa/keys/LubuntuSakura.key dh /etc/openvpn/easy-rsa/keys/dh2048.pem server 10.8.0.0 255.255.255.0 push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" client-to-client tls-auth /etc/openvpn/easy-rsa/keys/tls.key 0 user nobody group nogroup status /var/log/openvpn-status.log log-append /var/log/openvpn.logここでOpenVPNだけstartしたら
Activation: failed for connection '有線接続 1'とsyslogに出力され、うまく起動しなかったのでrebootしたらうまく起動された。
疲れた。iPad(iOS)から繋げるのは次回。