■CommuniGate ProでiPhone/Androidとメール同期&SIP利用
 このBlogのタイトルにもなっているCommuniGate Pro(CGP)は5ユーザまで無償利用可能な統合メッセージングサーバである。CommuniGate ProにはMS ExchangeのActiveSync互換のAirSyncという機能がありExchage同期設定が可能になっており、iPhoneやAndroid2.1以降の端末と簡単にメールのプッシュ同期設定ができる。また統合メッセージングサーバらしく、メール用に作成したアカウントのID/パスワードがそのままSIPアカウントとして利用可能で、ポート設定さえ適切に行えば、外部アカウントともSIPで音声通話/ビデオ通話が可能になるので非常に面白い。5ユーザまでは個人法人問わず無償利用可能なので、ここでその設定方法を紹介する。

 CommuniGate System日本語ページ
 http://lang.communigate.com/jp/

 CommuniGate Pro ダウンロードページ
 http://www.communigate.com/pub/CGatePro/

■CommuniGate Proのインストール
 CommuniGate Pro自体は上記ダウンロードページを参照すると判る通り、非常に多くのOS及びプラットホームに対応している。バージョンが同じであればOSの種類を問わずデータは互換性があるので、必要なパフォーマンスによってOSの移行も容易である(データディレクトリをコピーするだけ)。ここでは過去にCentOS5向けに高パフォーマンス環境のインストール記事があるので、そのリンクを紹介しておく。こちらの記事のプロセス1〜6までがインストール手順となる。

 カスタム版MyNETSとCentOS5で1万人規模のSNSを構築する
 http://blog.isnext.net/issy/archives/384

 以下の項目は上記インストール手順を前提にそれ以降の設定となる。

■CommuniGate Proにアカウントを追加する
 サンプル設定に従い、sns.example.comにアカウントを追加するため「https://192.168.0.100:9010/」へブラウザでアクセス。user01を作成する。

 管理画面>アカウント>ドメイン>sns.example.com
 アカウント作成ボタン横の入力フィールドにuser01と入力
 アカウント作成ボタンを押す
 user01のアカウント設定画面が開く
 「CommuniGateパスワード」にuser01のパスワードを入力
 「更新」ボタンを押して保存する

■CommuniGate ProをExchange同期可能に設定する
 上記で作成したuser01とuser02のアカウントがExchange同期できるように設定する。CommuniGate ProではExchange同期するにはhttp/httpsのいずれかでアクセスする必要があるので、まずはhttp/httpsを有効にする。

1)apacheが同時に稼働していない場合(TCP80/443が未利用)

 管理画面>設定>サービス>HTTPU
 HTTPU設定画面、「処理」項目の右端にある「リスナー」をクリック
 ポート、ローカルIPアドレス、SSL/TLS初期化の項目に以下を入力
 80、全てのアドレス、オフ
 「更新」ボタンを押して保存
 ポート、ローカルIPアドレス、SSL/TLS初期化の項目に以下を入力
 443、全てのアドレス、オン
 「更新」ボタンを押して保存
 (リモートIPアドレス制限はどちらも「なし」でOK)

2)apacheが同時に稼働している場合
 sns.example.comをapacheが使うように設定されている場合、Communigate ProにWebアクセスできるように、別のホスト名を割当てproxyを設定することでapache経由での同期を可能にする。ここでは別ホスト名をmail.example.comとする。(DNSにも適切に設定すること)

 管理画面>アカウント>ドメイン>sns.example.com>ドメイン設定
 ドメイン設定画面の一番下左にある「ドメインエイリアス」に
 mail.example.comと入力
 「更新」ボタンを押して保存

 apacheにproxy設定を追加する(mod_proxyが有効になっていること)
 以下のような設定を追加してapacheを再起動
 SSL設定例(証明書とキーが別途必要です)
[code] 
  ServerName mail.example.com:443
  ErrorLog logs/mail_ssl_error_log
  TransferLog logs/mail_ssl_access_log
  LogLevel warn

  SSLEngine on
  SSLProtocol all -SSLv2
  SSLCipherSuite   
  ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
  SSLCertificateFile /etc/mail/mail.crt
  SSLCertificateKeyFile /etc/mail/mail.key

  ProxyRequests Off
  ProxyPass / http://localhost:8100/

  
   ProxyPassReverse http://localhost:8100/
   ProxyPassReverseCookieDomain localhost mail.example.com
   ProxyPassReverseCookiePath / /
   Order allow,deny
   Allow from all
  

 [/code]

 https://mail.example.com/ にアクセスしてWebMail画面が開くことを確認

■CommuniGate ProをSIP利用可能に設定する
 CommuniGate Proではインストール直後からSIPサーバ機能が有効になっているので、CGP側で特に設定することはない。サーバOS側でiptablesの設定を追加してSIP通信が外部と可能な状態にする。/etc/sysconfig/iptables に以下を追記してiptablesを再起動する。

[code] -A RH-Firewall-1-INPUT -p udp -m udp –dport 5060 -j ACCEPT
 -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5060 -j ACCEPT
 -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5061 -j ACCEPT[/code]

以上でCommuniGate ProにてExchange同期とSIPが利用可能になる。iPhone/Androidでの設定方法は以下の通り。

■iPhone/iPadでのExchange同期設定

 設定>メール/連絡先/カレンダー>アカウントを追加…
 Exchange選択
 メール:user01@sns.example.com
 ドメイン:sns.example.com
 ユーザ名:user01
 パスワード:設定したパスワード
 「次へ」
 (必要なら証明書を受け入れる)
 サーバ:sns.example.com(apache併用の時はmail.example.com)
 「次へ」
 (アカウントの確認ができないと言われたら)
 「保存」

 保存後、アカウントの設定を開くとSSLを試用するかどうか設定できるようになるので、やむを得ない場合はSSLをオフにして試してみる。
 iOS4では複数のExchange同期が設定できるが全てプッシュ設定しているとうまく動作しないようなので注意。iPhone/iPadはこの設定をすることで、リモートワイプ等も実行することが可能。

 リモートワイプは以下の手順で実行
 管理画面>アカウント>ドメイン>sns.example.com>user01>モバイル
 AirSyncクライアントにiPhoneやiPadが表示されるので、ワイプする端末にチェックを付けて「消去」ボタンを押す。するとワイプが設定されて、次回端末がアクセスしてきた時にリモートワイプが実行される。

■AndroidでのExchange同期設定
 機種ごとに若干差異があるので、ここではNexusOne (froyo)の設定方法を紹介。

 設定>アカウントと同期>アカウントを追加
 Microsoft Exchange ActiveSyncを選択
 メールアドレス:user01@sns.example.com
 パスワード:設定したパスワード
 「次へ」
 ドメイン/ユーザー名:user01
 パスワード:設定したパスワード
 サーバー:sns.example.com(apache併用の時はmail.example.com)
 安全な接続(SSL)を試用する チェック
 全てのSSL証明書を承認 自己証明の場合はチェック
 「次へ」
 新着メール自動確認:自動(プッシュ)
 同期する量:3日間
 いつもこのアカウントでメールを送信 必要ならチェック
 メールの着信を知らせる チェック
 このアカウントから連絡先を同期します チェック
 このアカウントからカレンダーを同期 チェック
 「次へ」
 このアカウントに名前を付ける:省略
 「完了」

 Android端末では2.1以降でExchage同期が標準実装されるが、リモートワイプ機能は2.2以降が対象となる。残念ながらCommuniGate Proでは一部非互換があるため、カレンダー同期とリモートワイプが5.3.xのバージョンでは実行できない。5.4系で修正されるということなので、来年初めには問題が解決されると期待している。

 Androidのリモートワイプ対応状況については以下を参照。

 AndroidのExchange連携(リモートワイプ)対応状況
 http://blog.isnext.net/issy/archives/280

■SIPアプリケーションのアカウント設定
 こちらは別途アプリ比較等を行った時に記事にしたいと思う。原則的にはユーザでuser01@sns.example.com、パスワードに指定パスワードを入れて、サーバにsns.example.comを入力すれば、多くのSIPアプリではSIPレジストまでは可能だと思われる。CommuniGate Proは音声/映像コーデックの変換機能はないので、SIPクライアント同士が同じコーデックを持っていることが必須になることに注意。

 CommuniGate Proで動作実績のあるSIPソフトは以下。
 http://www.communigate.com/Papers/VoicePlus_Technical_DataSheet_A4-c.pdf

 AndroidのSIPアプリで確認した状況は以下も参照。

 AndroidとSIP/VoIP
 http://blog.isnext.net/issy/archives/292
 

, , , , , , , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

■Ubuntu 10.04 LTS にDolphin 7をインストールする
 海外製のSNSプログラム Dolphin 7をインストールしてみる。Dolphin 7はファイルストレージのみならず、ビデオや音楽のストリーミング機能も内包しているので、クリエイター向けのサイトを作るには向いているかもしれない。

Dolphin
http://www.boonex.com/dolphin/
Dolphin インストール手順
http://www.boonex.com/trac/dolphin/wiki/DetailedInstall

■インストール準備
 インストール直後のubuntuマシンに必要な設定をしていく
 サーバ名:dolphin.example.com
 IPアドレス:192.168.0.100

[code]$ sudo vi /etc/security/limits.conf
 root harf nofile 41952
 root soft nofile 41952 の2行追記
$ sudo vi /etc/fstab
 / に noatime 追記
$ sudo mount -o remount /
$ sudo reboot

$ sudo apt-get install ssh
$ sudo apt-get install apache2
$ sudo apt-get install mysql-server
$ sudo vi /etc/mysql/my.cnf
 [client][mysqld_safe][mysqld][mysqldump]の各行に
 default-character-set = utf8 を追記
$ sudo /etc/init.d/mysql restart
$ sudo apt-get install alien
$ wget http://www.communigate.com/pub/CommuniGatePro/CGatePro-Linux.i386.rpm
$ sudo alien -d CGatePro-Linux.i386.rpm
$ sudo dpkg -i cgatepro-linux_5.3-10_i386.deb
$ sudo mkdir /var/lock/subsys
$ sudo chmod +w /opt/CommuniGate/Startup
$ sudo vi /opt/CommuniGate/Startup
 ulimit -u 2000 を ulimit -n 4096 に修正
$ sudo chmod -w /opt/CommuniGate/Startup
$ sudo apt-get install postfix
 スマートホスト
 po.dolphin.example.com
 192.168.0.100 で設定
$ sudo vi /etc/postfix/master.cf
 smtp inet n – – – – smtpd の行を
 10025 inet n – – – – smtpd に修正
$ sudo /etc/init.d/postfix restart
$ sudo /opt/CommuniGate/Startup start
$ sudo apt-get install php5 php5-gd php5-mcrypt php5-mysql php5-geoip php5-imagick php5-intl php5-xcache php5-xsl php5-xmlrpc php5-cli[/code]

■Dolphinのインストール
 UbuntuのWeb用標準ディレクトリ/var/wwwにインストールする

[code]$ mkdir ~/download
$ cd ~/download
$ wget http://get.boonex.com/Dolphin-v.7.0
$ mv Dolphin-v.7.0 Dolphin-v.7.0.zip
$ sudo unzip -d /var/www/ Dolphin-v.7.0.zip
$ cd /var/www
$ sudo mv index.html index.html.org
$ sudo chown -R www-data:www-data *
$ sudo chmod +x flash/modules/global/app/ffmpeg.exe

$ mysql -u root -p
 mysql> create database dolphin;
 mysql> grant all previleges on dolphin.* to doluser@localhost identified by ‘dolpasswd’;
 mysql> quit

$ sudo vi /etc/apache2/sites-enabled/000-default
 
  Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  allow from all
 

$ cd /etc/apache2/mods-enabled/
$ sudo ln -s ../mods-available/rewrite.load rewrite.load
$ sudo apache2ctl graceful[/code]

ブラウザで以下にアクセスして指示に従う
http://192.168.0.100/install/index.php

Dolphinの日本語化はこちらのコミュニティを参照
http://abaki.org/index.php

後からURLを変更したい場合には以下を修正
[code]$ sudo vi /var/www/inc/header.inc.php
 $site[‘url’] = “http://newurl.example.com/”;
$ sudo rm -rf /var/www/cache/*
$ sudo rm -rf /var/www/cache_public/*
$ sudo apache2ctl graceful[/code]

, , , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

カスタム版MyNETSとCentOS5で1万人規模のSNSを構築する

■カスタム版MyNETSとCentOS5で1万人規模のSNSを構築する
 友人と運営しているSNSのカスタマイズが一段落したので、ご協力いただいた方々やMyNETSの開発元Usagi Projectの方々に了解をいただき、カスタム版をパッケージにまとめてダウンロードできるようにさせていただいた。近いうちにMyNETSの公式HPからもダウンロードリンクが貼られることになっているが、これまでの集大成でもあるので、こちらでも紹介しておこうと思う。

 MyNETSにゃっぽんカスタム版ダウンロード
 http://v-nyappon.net/download/

 こちらのblogでは内容に沿って、20100921版のINSTALLドキュメントの内容を掲載する(最新の状況は上記URLを参照のこと)。CentOS5.5 x86_64版のインストールとチューニング、CommuniGate ProやTritonnを始めとした関係アプリのインストールと設定、MyNETSの配置と設定など、かなりの長文になっているので、続きはご興味のある方だけどうぞ。

※INSTALL.txtにミスがあったため、0919版は削除して0921版にリンク修正しました。

※このカスタム版を作成するのに当り、本当にたくさんの方々から改修コードとアイデアをご提供いただいたことに深く感謝しています。謝辞はREADMEに、本家との違いはCHANGELOGに入れさせていただいています。ダウンロードの際はぜひご覧いただければと思います。

続きを読む

, , , , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

1プロセスが同時に開けるファイル数を増やす

■1プロセスが同時に開けるファイル数を増やす
 以前LinuxがOSとして同時に開けるファイル数を増やす手段は紹介したが、今回は1プロセスが同時に開くことができるファイル数を増やす方法のメモ。ユーザ単位の設定になるので注意。

Linuxサーバチューニングメモ
http://blog.isnext.net/issy/archives/190

 とあるパフォーマンステストを行っていたところ、プロセスが開けるファイル数を超えたというエラーが頻発したため、以下の手法で対応した。CentOSでは標準で1プロセスが同時に開けるファイル数は1024。OSのfile-maxは最近のバージョンではかなり大きな数字になっているのに、こちらの値は結構前から1024のままらしい。そこでこの値を修正する。

■現在の状態を確認する(確認したいユーザでログインすること)
[code]# ulimit -Sa
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 32621
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024 ←同時ファイル数
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 32621
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited[/code]

■一時的に同時ファイル数を増加させる(増加させたいユーザで実行)
[code]# ulimit -n 4096[/code]

■恒久的に同時ファイル数を増加させる
[code]# vi /etc/security/limits.conf
root soft nofile 4096
root hard nofile 4096[/code]
rootの同時ファイル数を増加したい場合上記のように追記する。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

■MacBook(白)にUbuntu 10.04 LTSをインストールする
 サーバ管理や一部コンテンツの用途でUbuntuマシンが必要だったので、手元にあるMacBook(白)にUbuntuをインストールして利用する。MacOSXとのデュアルブートは必要ないので、Ubuntu専用マシンとしてインストールした手順のメモ。とは言ってもUbuntuのドキュメント通りなので特に面倒なことはない。

MactelSupportTeamAppleIntelInstallation
https://help.ubuntu.com/community/MactelSupportTeam/AppleIntelInstallation

1) Ubuntu 10.04 LTS DesktopのLiveCDを作成する(USBでやったらうまくいかなかった…)
2) MacBookにCDを挿し込んでオプションキーを押しながら起動する
3) CDが「Windows」というラベルでセレクタに表示されるのでそちらを選択してリターンキー
4) Ubuntuが起動するので「System」>「Administration」>「GParted」を選択する
5) GPartedが起動したら「Device」>「Create Partition Table」を選択する
6) ダイアログが表示されるので「Advanced」をクリックしてmsdosが選択されているのを確認
7) Applyボタンを押すとHDDのパーテーションが全消去される
8) GPartedを終了し、デスクトップにあるインストーラーを起動する
9) 後はインストーラーの指示に従うだけ

ほとんど通常のWindowsマシンにインストールするのと同じ手順でインストールできてしまうので、あっけなかった。インストール後は日本語入力も「かな」キーで可能になりキー配列もほぼ問題なく利用できる。さすがUbuntu.若干ファンがMacOSXで稼働している時よりもよく回る気がするが、通常動作させている範囲では特に問題はない。

MacOSXはTiger以降非常に良くなっているので、MacユーザでわざわざUbuntuオンリーに入れ替えて使う人はあまりいないと思われるが、まぁこういうことも簡単にできるマシンですよということで。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (2 投票, 平均値/最大値: 3.00 / 5)
Loading...

■mysql5.1.xで実現する日本語全文検索3種
 現在CentOSを利用している頻度が高いこともあって、mysqlの日本語全文検索にはmysql5.0系のTritonnプロジェクト版を利用することが多い。いずれmysql5.1系で日本語全文検索に対応しないといけないケースが出ると思うので、実現方法のメモ。

1) N-Gram (bi-gram) 全文検索プラグイン
 http://sites.google.com/site/mysqlbigram/home-j

2) MySQL full-text parser plugin collection
 http://sourceforge.net/apps/mediawiki/mysqlftppc/index.php?title=Home-j

3) groongaストレージエンジン
 http://www.mysql.gr.jp/mysqlml/mysql/msg/15373

たぶん1から順番に難易度が高くなる?
Tritonnプロジェクトの後継で高度な検索も実現できるgroongaストレージエンジンが、パフォーマンスや長期運用の観点からは面白そう。index作成更新が高速であり、MyISAMのテーブルロックする仕様をカバーできるという点でも、高頻度で書き込みやindex更新のあるSNS系プログラムでは、パフォーマンスの向上が期待できる。

8/18時点ではテストリリースということなので、安定するまでもうしばらく時間がかかりそうだが、継続してwatchすることにする。差し当たってUbuntu 10.04 LTS Serverで実験してみたいところ。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

CentOSのImageMagickのバグ対応x86_64版

■CentOSのImageMagickのバグ対応x86_64版
 手元のサーバを初めてx86_64版でインストールした結果、ImageMagickでまたハマったのでメモしておく。とりあえず解決はできたようなので、たぶん他でも大丈夫かと…(自信なし)
 ちなみに以前記事で書いた内容は全く役に立たなくなっていた。今回CentOS5と書いている部分では、特に注意書きがない限りx84_64版なので注意。

 CentOS5.6でのアップデート対応記事はこちら
 http://blog.isnext.net/issy/archives/1022

1)ImageMagickのバージョン確認
[code]# rpm -q ImageMagick[/code]

通常CentOS5でyumからImageMagickをインストールした場合、ImageMagick-6.2.8.0-4がi386版とx86_64版で2つインストールされているはずである。ここでは2つ入っていることが確認できればそれでいい。入っていない状態なら以下のコマンドでインストールしておく。
[code]# yum install ImageMagick[/code]

2)ImageMagickのHPからCentOS用rpm(x86_64)をダウンロードしてアップデートする
[code]# ~/download
# wget http://www.imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-6.6.3-5.x86_64.rpm
# rpm -Uvh –force ImageMagick-6.6.3-5.x86_64.rpm[/code]

ついにCentOS5用のrpmが用意されたようで、これをダウンロードして強制的にアップデートをかける。(作業中にはダウンロードできたのだが、今確認したら404エラーになってるので更新されるのかもしれない)これで、問題が解決してしまうようだ。i386版と競合するファイルがあるのだが、man関係のファイルなので強制的にアップデートしてもたぶん問題はないと思われる。

障害の発生するgifでも正しくエラーになり、MyNETSでもリサイズが正しく動作しているので、i386版とx86_64版のバージョン違いが微妙に気になるが、スルーしておくことにする…。
実際作業して見て実感するが、CentOSのx86_64版はいろんな意味で微妙…。

ImageMagickのHPにはi386版も最新のCentOS用rpmがあるのでインストールしたくなるのだが、なぜかi386版のみ前の記事と同じライブラリが不足するため、いろいろインストールしないといけない状況に陥る。しかしx86_64版のCentOSではi386版の必要ライブラリがうまく導入できず(スキル不足のため)最終的にインストールできなかった。(前回記事の手法ではx86_64版が導入されるのみ。i386版のlibファイルを持ってきて配置してみたが認識されず…)

ちなみにyumでImageMagickをインストールしないで、直接ImageMagickのHPからファイルを持ってきてrpmでインストールすることもできるが、その場合、MyNETSで画像のリサイズができないという問題が発生した。障害の発生するgif自体はconvertでエラーになるので、適切に動いているようではあるが、お使いの環境によっては正しく動作しない場合があるので注意。

, , ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

rsyncを利用したデータ同期

■rsyncを利用したデータ同期
 シェルアカウント無しでサーバのコンテンツを同期更新するための手段の一つ。サーバ側はchrootで運用でき任意のディレクトリをトラバースされることもなくftpなどでアカウント発行して運用を行うよりも安心。rsyncはssh経由で暗号化も可能だが、ここでは割愛。

1)サーバ側の設定
rsyncをデーモンとして起動するための設定ファイルを作成する。
[code]# vi /etc/rsyncd.conf

uid = root
gid = wheel
use chroot = yes
max connections = 4
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
dont compress = *.gz *.tgz *.zip *.pdf *.sit *.sitx *.lzh *.bz2 *.jpg *.gif *.png

[hostdata01]
comment = hostdata 01
hosts allow = xxx.xxx.xxx.xxx/32
hosts deny = *
path = /var/www/host01/
auth users = user01
secrets file = /etc/rsyncd.secrets
read only = no

[hostdata02]
comment = hostdata 02
hosts allow = xxx.xxx.xxx.xxx/32
hosts deny = *
path = /var/www/host02/
auth users = user02
secrets file = /etc/rsyncd.secrets
read only = no
[/code]
認証のためのパスワードファイルを作成する。
[code]# vi /etc/rsyncd.secrets

user01:password01
user02:password02[/code]

パーミッションを変更する
[code]# chmod 0600 /etc/rsyncd.secrets[/code]

デーモンモードで起動する(できるだけportは変更しておく)
[code]# rsync –daemon –config=/etc/rsyncd.conf –port=10873 [/code]

iptablesの設定を変更する
[code]# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10873 -j ACCEPT[/code]

iptablesを再起動する
[code]# service iptables restart[/code]

2)クライアント側の設定
[code]# rsync –port=10873 -avz ./hostcontens/ rsync://user01@serveraddress/hostdata01/[/code]

これでhostcontents以下の内容がサーバの/var/www/host02/に同期される。
差分更新になるので一度目は時間がかかるが2回目以降は短時間で完了する。

,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

公開鍵認証方式でsshを利用する

■公開鍵認証方式でsshを利用する
 sshdは攻撃されやすいので、できるだけ標準状態からport及び設定を見直すことを推奨。ここではパスワードを使わず公開鍵でsshを利用する。ここではCentOS5サーバの初期状態から設定追加する状況を想定した手順を書いておく。

1)自マシンで鍵を作成する(MacOSXをクライアントとする)
  [code]$ ssh-keygen -t rsa -C “myaddress@example.com”[/code]
 パスワード入力時にエンターを押すことでパスワード不要の鍵が作成可能
 作成が完了すると以下に必要ファイルが作成される
  ~/.ssh/id_rsa(秘密鍵)
  ~/.ssh/id_rsa.pub(公開鍵)

 上記はRSA鍵の場合。DSA鍵を作成する時は以下。 
 DSAではid_dsa,id_dsa.pubのファイルが作成される。
  [code]$ ssh-keygen -t dsa -C “myaddress@example.com”[/code]

 自アドレスを入力するのは後からキーの持ち主を判別するため。
 実際に入力するテキストはなんでもOK。

2)公開鍵をサーバに送信する
 リモートサーバにid_rsa.pubを送っておく
 [code]$ scp ~/.ssh/id_rsa.pub root@xxx.xxx.xxx.xxx:/tmp[/code]

3)rootでサーバにログインしてsshdの設定を変更する
 [code]# vi /etc/ssh/sshd_config[/code]

 以下の3行を修正
 port 10022
 PermitEmptyPasswords no
 PasswordAuthentication no

4)ssh用アカウント「remoteuser」を作成して公開鍵を登録する
 [code] # adduser remoteuser
 # passwd remoteuser ←パスワード設定する
 # su remoteuser ←ユーザを変更する
 $ cd ~
 $ mkdir .ssh
 $ cat /tmp/id_rsa.pub > .ssh/authorized_keys
 $ chmod 0600 .ssh/authorized_keys
 $ chmod 0700 .ssh
 $ exit[/code]

5)iptablesを修正してsshdを再起動する
 [code]# vi /etc/sysconfig/iptables[/code]
  -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 10022 -j ACCEPT 行追加
 [code] # service iptables restart
 # service sshd restart[/code]

6)クライアントからsshでアクセスして確認
 [code]$ ssh -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]
 うまくいかない時は -vを付けて確認
 [code]$ ssh -v -p 10022 remoteuser@xxx.xxx.xxx.xxx[/code]

 CentOS5では以下の行はコメントアウトのままで問題ないので外さなくてOK。
 #RSAAuthentication yes
 #PubkeyAuthentication yes
 #AuthorizedKeysFile .ssh/authorized_keys

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...

指定ユーザ以外suできない設定

■指定ユーザ以外suできない設定
 CentOS5においては、rootのパスワードを知っていればadduserで通常作成したユーザでもsuできてしまうため、セキュリティの観点から指定ユーザ以外はsuできないように設定を行う。
usernameというユーザにsu権限を与える場合の設定。

■設定手順
[code]# vi /etc/login.defs[/code]
以下を追記
SU_WHEEL_ONLY yes

[code]# vi /etc/pam.d/su[/code]
#auth required pam_wheel.so use_uid 行を以下のように変更
auth required pam_wheel.so use_uid

[code]# vi /etc/group[/code]
wheel:x:10:root 行を以下のように変更
wheel:x:10:root,username

[code]# reboot[/code]
再起動して動作確認

, ,
とりあえず付けておく無駄ではなかったなまぁまぁ読めたちょっと役に立ったかなかなり良かったかも (まだ評価されていません)
Loading...