<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>kina-pomのブログ</title>
<link>https://ameblo.jp/kina-pom/</link>
<atom:link href="https://rssblog.ameba.jp/kina-pom/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>勉強中のITネタを中心に…。ときどき話題はそれるかも</description>
<language>ja</language>
<item>
<title>MacPortsでのvalgrindインストール</title>
<description>
<![CDATA[ C言語のメモリリークを調査するツールにvalgrindというものがあります。<br>MacOS Xでは以前はソースからインストールしていましたが、<br>どうもMacPortからインストールできるようになっている様子。<br><br>$ sudo port install valgrind<br>とすると次のエラーが出たのでメモ。<br><br><strong>Error: No valid Xcode installation is properly selected.<br>Error: Please use xcode-select to select an Xcode installation:<br>Error:     sudo xcode-select -switch /Developer/Applications/Xcode.app/Contents/Developer # version 4.5.1<br>Error: <br>Warning: xcodebuild exists but failed to execute<br>Warning: Xcode does not appear to be installed; most ports will likely fail to build.<br>（…以下省略…）</strong><br><br>/ApplicationにXCodeがインストールされていない。<br>現状、XCodeは、/Developer/Applications/Xcode.appにインストールされている。<br>だから、<br><strong>sudo xcode-select -switch /Developer/Applications/Xcode.app/Contents/Developer</strong><br>を実行してスイッチしななさいとのこと。<br><br>$ sudo xcode-select -switch /Developer/Applications/Xcode.app/Contents/Developer<br>$ sudo port install valgrind<br>でほどなく解決。<br><br>いや、ここまで丁寧にエラーが出てくれるととても助かります。<br><br>あとは、<br>$ valgrind --leak-check= full <cの実行ファイル><br>とかで、メモリリークのチェックができます。<br><br>メモリリークが発生していると次のようなレポートになります。<br><strong><br>（…省略…）<br>==52218== HEAP SUMMARY:<br>==52218==     in use at exit: 10,337 bytes in 42 blocks<br>==52218==   <u>total heap usage: 42 allocs, 0 frees, 10,337 bytes allocated</u><br>==52218== <br>==52218== 159 (32 direct, 127 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 13<br>==52218==    at 0xC713: malloc (vg_replace_malloc.c:274)<br>==52218==    by 0x100000C0D: create (in ./island2)<br>==52218==    by 0x100000D6E: main (in ./island2)<br>==52218== <br>==52218== LEAK SUMMARY:<br>==52218==    <u>definitely lost: 32 bytes in 1 blocks</u><br>==52218==    indirectly lost: 127 bytes in 7 blocks<br>==52218==      possibly lost: 0 bytes in 0 blocks<br>==52218==    still reachable: 10,178 bytes in 34 blocks<br>==52218==         suppressed: 0 bytes in 0 blocks<br>==52218== Reachable blocks (those to which a pointer was found) are not shown.<br>（…省略…）</strong><br><br><br>メモリリークが発生していないと次のようなレポートになります。<br><br><strong>（…省略…）<br>==52237== HEAP SUMMARY:<br>==52237==     in use at exit: 10,178 bytes in 34 blocks<br>==52237==   <u>total heap usage: 42 allocs, 8 frees, 10,337 bytes allocated</u><br>==52237== <br>==52237== LEAK SUMMARY:<br>==52237==    <u>definitely lost: 0 bytes in 0 blocks</u><br>==52237==    indirectly lost: 0 bytes in 0 blocks<br>==52237==      possibly lost: 0 bytes in 0 blocks<br>==52237==    still reachable: 10,178 bytes in 34 blocks<br>==52237==         suppressed: 0 bytes in 0 blocks<br>==52237== Reachable blocks (those to which a pointer was found) are not shown.<br>==52237== To see them, rerun with: --leak-check=full --show-reachable=yes<br>==52237== <br>==52237== For counts of detected and suppressed errors, rerun with: -v<br>==52237== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)<br></strong></cの実行ファイル>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11509013558.html</link>
<pubDate>Wed, 10 Apr 2013 23:20:05 +0900</pubDate>
</item>
<item>
<title>MovableType-3</title>
<description>
<![CDATA[ 今回は次のことをやります。<br><br><strong>・「ImageMagick」をインストール</strong><br><strong>・MovableTypeのインストール</strong><br><br><strong>・「ImageMagick」をインストール</strong><br>CentOSではパッケージ化されているので、yumコマンドでインストールします。<br>ImageMagick関連の次のパッケージをインストールします。<br>・# yum -y install ImageMagick ImageMagick-devel ImageMagick-perl<br><a href="http://stat.ameba.jp/user_images/20130222/13/kina-pom/d5/ed/p/o0665044612429823599.png"><img src="https://stat.ameba.jp/user_images/20130222/13/kina-pom/d5/ed/p/t02200148_0665044612429823599.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>・MovableTypeのインストール</strong><br>まず、MovableTypeのオープンソース版を入手します。<br>現時点ではMTOS-5.2.3が最新版でした。ソースの保存先は/user/local/srcにします。<br># cd /usr/local/src<br># wget http://www.movabletype.org/downloads/stable/MTOS-5.2.3.zip<br><a href="http://stat.ameba.jp/user_images/20130222/13/kina-pom/8f/e3/p/o0665044612429828585.png"><img src="https://stat.ameba.jp/user_images/20130222/13/kina-pom/8f/e3/p/t02200148_0665044612429828585.png" alt="$kina-pomのブログ" border="0"></a><br><br>CGIディレクトリに移動し、ここにソースを展開します。<br># cd /www/blog/cgi-bin<br># unzip /usr/local/src/MTOS-5.2.3.zip<br><a href="http://stat.ameba.jp/user_images/20130222/14/kina-pom/b2/33/p/o0665044612429845161.png"><img src="https://stat.ameba.jp/user_images/20130222/14/kina-pom/b2/33/p/t02200148_0665044612429845161.png" alt="$kina-pomのブログ" border="0"></a><br><br>展開後は「MT」という名称にします。<br>また、展開したソースに含まれる「mt-static」というディレクトリに<br>静的コンテンツが含まれています。これをドキュメントルートに移動します。<br>さらに、ブログ専用のディレクトリをドキュメントルート内に作成します。<br># mv MTOS-5.2.3 MT<br># mv MT/mt-static /www/blog/html<br># mkdir /www/blog/html/MT<br><a href="http://stat.ameba.jp/user_images/20130222/14/kina-pom/fe/f7/p/o0665044612429847764.png"><img src="https://stat.ameba.jp/user_images/20130222/14/kina-pom/fe/f7/p/t02200148_0665044612429847764.png" alt="$kina-pomのブログ" border="0"></a><br><br>続いてCGIを利用するためのパーミションの変更や所有権の変更を行います。<br># chown -R :apache /www/blog/cgi-bin/MT<br># chmod -R 775 /www/blog/cgi-bin/MT<br># chown -R :apache /www/blog/html/mt-static<br># chmod -R 775 /www/blog/html/mt-static<br># chown -R :apache /www/blog/html/MT<br># chmod -R 775 /www/blog/html/MT<br><a href="http://stat.ameba.jp/user_images/20130222/14/kina-pom/47/cb/p/o0665044612429854648.png"><img src="https://stat.ameba.jp/user_images/20130222/14/kina-pom/47/cb/p/t02200148_0665044612429854648.png" alt="$kina-pomのブログ" border="0"></a><br><br>これで、一応インストールは完了しました。<br>MTOSにはインストール内容をチェックツールがあります。<br>これにアクセスして内容をチェックします。<br>事前に、ApacheとMySQLを起動しておきます。<br>http://www.kina-pom.com/MT/mt-check.cgi<br><a href="http://stat.ameba.jp/user_images/20130222/14/kina-pom/e6/2f/p/o0800078412429863926.png"><img src="https://stat.ameba.jp/user_images/20130222/14/kina-pom/e6/2f/p/t02200216_0800078412429863926.png" alt="$kina-pomのブログ" border="0"></a><br><br>問題なければ、最後に「Movable Typeを利用できます」と表示されます。<br>なお、黄色でハイライト表示されている部分は不足しているPerlモジュールです。<br>ただし、多くはMovable Typeの特定の機能を利用するのに必要なものなので、<br>すでに利用できる状態でもこの表示はされます。<br><a href="http://stat.ameba.jp/user_images/20130222/14/kina-pom/1c/21/p/o0800078412429863927.png"><img src="https://stat.ameba.jp/user_images/20130222/14/kina-pom/1c/21/p/t02200216_0800078412429863927.png" alt="$kina-pomのブログ" border="0"></a><br><br>さて、チェックツールで動作できる状態が確認できたら、Movable Typeの設定をします。<br>/www/blog/cgi-bin/MT/mt-config.cgi.originalが設定ファイルです。<br>ファイル名をmt-config.cgi.originalからmt-config.cgiに変更し、<br>次の個所を修正します。<br>・CGIPath http://www.kina-pom.com/cgi-bin/MT<br>・StaticWebPath http://www.kina-pom.com/mt-static<br>・Database MT<br>・DBUsesr mtuser<br>・DBPassword mtpass<br>・DefaultLanguage ja<br><a href="http://stat.ameba.jp/user_images/20130222/15/kina-pom/fb/6a/p/o0665048812429890194.png"><img src="https://stat.ameba.jp/user_images/20130222/15/kina-pom/fb/6a/p/t02200161_0665048812429890194.png" alt="$kina-pomのブログ" border="0"></a><br><br>これで作業が完了したので、<br>http://www.kina-pom.com/cgi-bin/MT/mt.cgi<br>にアクセスして利用できるか確認します。<br><a href="http://stat.ameba.jp/user_images/20130222/15/kina-pom/ef/73/p/o0798085712429890195.png"><img src="https://stat.ameba.jp/user_images/20130222/15/kina-pom/ef/73/p/t02200236_0798085712429890195.png" alt="$kina-pomのブログ" border="0"></a><br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11476031804.html</link>
<pubDate>Fri, 22 Feb 2013 13:37:45 +0900</pubDate>
</item>
<item>
<title>MovableType-2</title>
<description>
<![CDATA[ インフルエンザにかかり、だいぶ間があいてしまいましたが、<br>続きを再開します。<br>今回は、とりあえずMySQLです。<br><br><br><strong>MySQLのインストールと設定</strong><br><br><strong>1. インストール</strong><br># yum -y install mysql-server<br><a href="http://stat.ameba.jp/user_images/20130213/08/kina-pom/07/a0/p/o0684048012417396562.png"><img src="https://stat.ameba.jp/user_images/20130213/08/kina-pom/07/a0/p/t02200154_0684048012417396562.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>2. 基本設定</strong><br>/etc/my.cnfでデータベースの保存場所を変更します。<br>変更後は/var/MTとしました。<br>datadir="/var/MT"<br><a href="http://stat.ameba.jp/user_images/20130213/08/kina-pom/97/65/p/o0684048012417396563.png"><img src="https://stat.ameba.jp/user_images/20130213/08/kina-pom/97/65/p/t02200154_0684048012417396563.png" alt="$kina-pomのブログ" border="0"></a><br><br>MySQLサーバでは初回にデータベースを初期化する必要があります。<br>初期化には専用コマンドが用意されていますが、このとき「mysqlユーザー」で初期化するので、<br>オプションに「--user=mysql」を追加します。<br># mysql_install_db --user=mysql<br><a href="http://stat.ameba.jp/user_images/20130213/08/kina-pom/ee/73/p/o0684048012417403757.png"><img src="https://stat.ameba.jp/user_images/20130213/08/kina-pom/ee/73/p/t02200154_0684048012417403757.png" alt="$kina-pomのブログ" border="0"></a><br><br><br>ここで、MySQLサーバを起動します。<br># /etc/init.d/mysql start<br><a href="http://stat.ameba.jp/user_images/20130213/08/kina-pom/3c/13/p/o0684048012417403756.png"><img src="https://stat.ameba.jp/user_images/20130213/08/kina-pom/3c/13/p/t02200154_0684048012417403756.png" alt="$kina-pomのブログ" border="0"></a><br><br>初期状態だと、安全性が低いためパッケージにはパッチをあてるコマンドが用意されています。<br>これを実行して次のことを実施していきます。<br>・MySQLサーバの管理者パスワードの設定<br>・anonymousユーザーの削除<br>・rootユーザーによるMySQLサーバへのログインをローカルホストからのみに限定する<br>・データベース初期化時に作成された「test」データベースの削除<br><br>まず、パッチをあてるコマンドを実行します。<br># /usr/bin/mysql_secure_installation<br><a href="http://stat.ameba.jp/user_images/20130213/09/kina-pom/51/0f/p/o0684048012417408246.png"><img src="https://stat.ameba.jp/user_images/20130213/09/kina-pom/51/0f/p/t02200154_0684048012417408246.png" alt="$kina-pomのブログ" border="0"></a><br><br>管理者ユーザーのパスワードを設定します。<br>その前に、現在の管理者ユーザーのパスワードを求められますが、<br>ここではまだ設定していないので、何も入力せず次に進みます。<br>次に、管理者パスワードを設定します。<br><a href="http://stat.ameba.jp/user_images/20130213/09/kina-pom/3c/10/p/o0684048012417410400.png"><img src="https://stat.ameba.jp/user_images/20130213/09/kina-pom/3c/10/p/t02200154_0684048012417410400.png" alt="$kina-pomのブログ" border="0"></a><br><br>anonymousユーザーを削除します。<br>Remove anonymous users ? [Y/n] Y<br><br>rootユーザーでのログインをローカルホストからに限定します。<br>Disallow root login remotely? [Y/n] Y<br><a href="http://stat.ameba.jp/user_images/20130213/09/kina-pom/d3/92/p/o0684048012417412780.png"><img src="https://stat.ameba.jp/user_images/20130213/09/kina-pom/d3/92/p/t02200154_0684048012417412780.png" alt="$kina-pomのブログ" border="0"></a><br><br>「test」データベースを削除します。<br>Remove test database and access to it? [Y/n] Y<br><br>権限が変更されたので、権限の再設定をします。<br>Reload privilege tables now? [Y/n] Y<br><a href="http://stat.ameba.jp/user_images/20130213/09/kina-pom/96/e3/p/o0684048012417414631.png"><img src="https://stat.ameba.jp/user_images/20130213/09/kina-pom/96/e3/p/t02200154_0684048012417414631.png" alt="$kina-pomのブログ" border="0"></a><br><br><br><strong>3. 接続確認</strong><br>MySQLへの接続確認を行います。<br># mysql -u root -p<br><a href="http://stat.ameba.jp/user_images/20130222/13/kina-pom/0b/56/p/o0665044612429797483.png"><img src="https://stat.ameba.jp/user_images/20130222/13/kina-pom/0b/56/p/t02200148_0665044612429797483.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>4. Movable Type用データベースの設定</strong><br>Movable Type用のMySQLの設定をしていきます。<br>まずは、専用データベースを作成します。<br># mysql -u root -p create MT<br># mysqlshow -p　← 作成したデータベースの確認<br><a href="http://stat.ameba.jp/user_images/20130222/13/kina-pom/ce/8f/p/o0665044612429802865.png"><img src="https://stat.ameba.jp/user_images/20130222/13/kina-pom/ce/8f/p/t02200148_0665044612429802865.png" alt="$kina-pomのブログ" border="0"></a><br><br>MT専用のユーザーを作ります。ユーザー名は「mtuser」としました。<br># mysql -u root -p<br>mysql &gt; grant all privileges on MT.* to mtuser@localhost identified by "パスワード";<br>続けて作成したユーザーでMTデータベースに接続を試してみます。<br><a href="http://stat.ameba.jp/user_images/20130222/13/kina-pom/18/b9/p/o0665044612429807664.png"><img src="https://stat.ameba.jp/user_images/20130222/13/kina-pom/18/b9/p/t02200148_0665044612429807664.png" alt="$kina-pomのブログ" border="0"></a><br><br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11469514263.html</link>
<pubDate>Wed, 13 Feb 2013 08:45:41 +0900</pubDate>
</item>
<item>
<title>MovableType-1</title>
<description>
<![CDATA[ 今回はサーバ構築の復習を兼ねて、MovableTypeというブログサービスの構築を挑戦します。<br>MovableTypeにはMTOSというオープンソース版があり、個人利用に限って無償提供されています。<br><br>こちらから入手できます。<br>http://www.movabletype.jp/opensource/mtosdl.html<br><br>ブログサービスの構築にあたり次のようなサーバ構成にします。<br>・OS：CentOS 5系の最新版<br>　アカウント：root（管理者ユーザー）、workman（一般ユーザー）<br>・DNSサーバ：CentOSのパッケージbindの最新版<br>　権威ゾーン：kina-pom.com<br>・Webサーバ：CentOSのパッケージApacheの最新版<br>　http://blog.kina-pom.com/MTOSでブログにアクセスできるようにする<br>・DBサーバ：CentOSのパッケージMySQLの最新版<br>　アカウント：root（MySQL管理者ユーザー）、mtosuser（一般ユーザー）<br>　DB名：MTOS<br><br>※以前、記事で触れた内容については、画面は割愛いたします。<br><br><strong>０．仮想環境構築</strong><br>・VirtualBoxを利用<br>・仮想マシン名：MTOS<br>・ネットワーク接続：ブリッジ<br>・メモリ：512MB<br>・仮想マシンのストレージ：可変、8GB<br><br><strong>１．OSのインストール</strong><br>・インストール方法：linux text<br>・メディアテスト：スキップ<br>・言語：Japanese<br>・キーボード：jp106<br>・ディスクパーティション：自動パーティション（LVM）<br>　（Remove all partitions on selected drives and create default layout）<br>・ブートローダ：GRUB、オプションなし、パスワードはなし、インストール先はMBR<br>・eth0の設定：<br>　　ー Active on boot、Enable IPv4 Support<br>　　— IPアドレス設定：手動（Manual）、192.168.1.52 / 255.255.255.0<br>　　— Gateway：192.168.1.1（ルータのIPアドレス）<br>　　— Primary DNS：192.168.1.1、Secondary DNS：192.168.1.1<br>・ホスト名：h052<br>・タイムゾーン：Asia/Tokyo<br>・rootパスワード：*******<br>・インストールパッケージ：customize software selection<br>　　ー Base<br>　　— Editors<br>　　— Text-based Internet　　<br><br>-----インストール後の作業<br><strong>Setup Agent（セキュリティなど）</strong><br>Firewall Configurationを選択<br>・SecurityLevel→Disable<br>・SELinux→Disable<br>→ 起動後、上記がでない場合は、rootでログインして# setupコマンドで行う<br><br><strong>カーネル／パッケージのアップデート</strong><br># yum -y update<br><br><strong>一般ユーザーの追加</strong><br># useradd workman<br># passwd workman<br><br><strong>SSHの設定</strong><br>あらかじめログインしたホストの公開鍵をサーバ側に登録<br>（クライアント側で）<br># ssh-keygen -t rsa<br># scp id_rsa.pub workman@192.168.1.52:/home/workman<br>$ ssh workman@192.168.1.52<br>（ログイン後）<br>$ mkdir ~/.ssh<br>$ chmod 700 ~/.ssh<br>$ mv id_rsa.pub ~/.ssh/authorized_keys<br>$ chmod 600 ~/.ssh/authorized_keys<br>（sshd設定）<br># vi /etc/ssh/sshd_config<br>-------------------------------<br>PubkeyAuthentication yes<br>PermitRootLogin no<br>PasswordAuthentication no<br>PermitEmptyPasswords no<br>（sshd再起動）<br># /etc/init.d/sshd restart<br><br><strong>２. DNSサーバ</strong><br><strong>インストール</strong><br># yum -y install bind<br><br><strong>/etc/named.conf</strong><br>options {<br>　　directory "/var/named";<br>　　version "";<br>};<br>zone "." IN {<br>　　type hint;<br>　　file "named.root";<br>};<br>zone "localhost" IN {<br>　　type master;<br>　　file "localhost.zone";<br>};<br>zone "0.0.127.in-addr.arpa" IN {<br>　　type master;<br>　　file "named.local";<br>}:<br>zone "kina-pom.com" IN {<br>　　type master;<br>　　file "kina-pom.com.zone";<br>};<br><br><strong>rootキャッシュファイルの作成</strong><br># dig . NS @198.41.0.4 &gt; /var/named/named.root<br><br><strong>ゾーンファイルの作成</strong><br>（localhost.zone）<br># cp /usr/share/doc/bind-9.3.6/sample/var/named/localhost.zone /var/named<br>（named.local）<br># cp /usr/share/doc/bind-9.3.6/sample/var/named/named.local /var/named<br>（kina-pom.com.zone）<br># vi /var/named/blog.kina-pom.com.zone<br>--------------------------------------<br>$TTL　　　1D<br>$ORIGIN kina-pom.com.<br>@　　　IN　　SOA　　ns　　root (<br>　　　　　　　2013021201　　; Serial<br>　　　　　　　8H　　　　　　　; Refresh<br>　　　　　　　4H　　　　　　　; Retry<br>　　　　　　　1W　　　　　　　; Expire<br>　　　　　　　1D )　　　　　　 ; Minimum<br><br>　　　　IN　　NS　　ns<br>　　　　IN　　MX　　10　　smtp<br><br>ns　　　 IN　　A　　　192.168.1.52<br>smtp　 　IN　  A　　　192.168.1.52<br>h052　　IN　　A　　　192.168.1.52<br>blog　　IN　　CNAME　h053<br><br><strong>named.conf構文チェック</strong><br># named-checkconf /etc/named.conf<br><br><strong>kina-pom.com.zone構文チェック</strong><br># named-checkzone kina-pom.com. /var/named/kina-pom.com.zone<br><br><strong>起動</strong><br># /etc/init.d/named start<br><br><strong>確認</strong><br>tail -20 /var/log/messages<br>dig @localhost kina-pom.com ns<br>dig @localhost kina-pom.com mx<br>dig @localhost ns.kina-pom.com<br>dig @localhost smtp.kina-pom.com<br>dig @localhost h052.kina-pom.com<br>dig @localhost blog.kina-pom.com<br>dig @localhost www.yahoo.co.jp<br><br><strong>/etc/resolv.conf</strong><br>nameserver 127.0.0.1<br><br><br><strong>３．Webサーバ</strong><br><strong>インストール</strong><br># yum -y install httpd<br><br><strong>設定</strong><br>・ServerTokens<br>#ServerTokens OS<br>ServerTokens Prod<br><br>・ServerAdmin<br>ServerAdmin webmaster@kina-pom.com<br><br>・ServerName<br>ServerName blog.kina-pom.com<br><br>・DocumentRoot<br>#DocumentRoot "/var/www/html"<br>DocumentRoot "/www/blog/html"<br><br>#&lt;Directory "/var/www/html"&gt;<br>&lt;Directory "/www/blog/html"&gt;<br><br>・ScriptAlias<br>#ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<br>ScriptAlias /cgi-bin/ "/www/blog/cgi-bin/"<br><br>#&lt;Directory "/var/www/cgi-bin"&gt;<br>&lt;Directory "/www/blog/cgi-bin"&gt;<br><br><strong>ドキュメントルート、CGIディレクトリの作成</strong><br># mkdir -p /www/blog/html　← 適当なindex.htmlを作成<br># mkdir /www/blog/cgi-bin　← 適当なCGIスクリプトを作成<br><br><strong>起動</strong><br># /etc/init.d/httpd start<br><br><strong>確認</strong><br>※任意の/www/blog/html/index.htmlを作成した上で<br>$ links http://blog.kina-pom.com/<br><br>※/www/blog/cgi-bin/test.cgiを作成した上で<br>$ links http://blog.kina-pom.com/cgi-bin/test.cgi<br><br><test.cgiサンプル>（test.cgiのパーミッションは755）<br>----------------------------<br>#!/bin/bash<br><br>echo "Content-type:text/plain"<br>echo ""<br><br>date<br>----------------------------<br><br><br>とりあえず、今回はここまで。</test.cgiサンプル>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11469369653.html</link>
<pubDate>Tue, 12 Feb 2013 20:25:56 +0900</pubDate>
</item>
<item>
<title>コンソールの横取り</title>
<description>
<![CDATA[ 今回はタイトルのとおり「コンソールの横取り」<br><br>ブートローダにおいてシングルモード（ランレベル１）で起動することで、rootのパスワードなしにroot権限でログインできてしまいます。<br><br>これを防ぐにはブートローダにパスワードを設定し、パスワードを入力しないブートローダを操作できないようにしたりします。<br>ただ、これには<br>・リモートホストからOSの再起動ができない<br>という問題点がありますので、どういう運用ポリシーにするかによってブートローダにパスワードを設定するか、しないかが変わってくると思います。<br><br>その前にランレベルについてです。<br>UNIX系OSの中でinit処理を実装したものにはランレベルというinit処理の動作を制御する設定があります。Linux系OSの場合、とくにRedHat系のOSでは次のようなランレベルがあります。<br>０：停止<br>１：シングルモード<br>２：マルチユーザー（ネットワークなし）<br>３：マルチユーザー（ネットワークあり）<br>４：未使用<br>５：ランレベル３およびXWindowシステム（いわゆるGUI）<br>６：再起動<br><br>ランレベルは/etc/inittabで設定するか、initコマンドまたはtelinitコマンドを使って変更します。<br>たとえば、rootユーザーで<br># init 6<br>とコマンドを実行すると再起動します。<br><br>ここでは、ランレベル１について触れます。<br>ランレベル１はrootユーザーでのみログインできるモードで、システムに必要な最小限のアプリケーションだけが起動します。ネットワーク越しでの操作はできません。通常はメンテナンスや緊急時などでサーバを直接操作するときに利用します。（メンテナンスモード）<br>ここで問題なのはランレベル１で起動すると、rootユーザーで「強制的に」ログインしてしまうことで、この場合rootのパスワードは必要ありません。<br><br>そこで、ブートローダの操作ができればランレベルで起動することができてしまうので、表題にあるようなコンソールの横取りが可能となります。<br>といっても、このランレベルはネットワーク越しには利用できないので、サーバを直接操作できる人のみ可能ということになります。<br>手順は次のとおりです。<br><br>①ブートローダ画面で「a」と入力<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/ae/1c/p/o0754063712411118369.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/ae/1c/p/t02200186_0754063712411118369.png" alt="$kina-pomのブログ" border="0"></a><br><br>②カーネルオプションに「linux sigle」を追加するとシングルモードで起動<br>　「linux 1」または「linux s」でも同じです。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/5d/23/p/o0668055312411118368.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/5d/23/p/t02200182_0668055312411118368.png" alt="$kina-pomのブログ" border="0"></a><br><br>③シングルモードで起動するとプロンプトが次のように「sh-3.2#」となります。<br>　つまり、ログインの必要なくrootユーザーで操作ができるようになります。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/1c/ee/p/o0748047312411119481.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/1c/ee/p/t02200139_0748047312411119481.png" alt="$kina-pomのブログ" border="0"></a><br><br><br>では、ブートローダ（GRUB）にパスワードを設定してみます。実は、これはOSインストール時にも設定できる内容ですが、以前OSのインストールをこのblogで行ったときは設定していません。<br>ただ、GRUBをMBR（Master Boot Record）にインストールしただけです。<br>設定は/etc/grub.confで行い、手順は次のようになります。<br><br>①/etc/grub.confで次のように設定します。<grubのパスワード>は絶対に忘れないパスワードにします。<br><strong>password=<grubのパスワード></grubのパスワード></strong><br>title CentOS (2.6.18-348.el5)<br>　　　root (hd0,0)<br>　　　（…中略…）<br><strong>　　　lock</strong><br><br>②再起動すると次のように認証が求められますので何らかのキーを押します。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/c4/32/p/o0748047312411153330.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/c4/32/p/t02200139_0748047312411153330.png" alt="$kina-pomのブログ" border="0"></a><br><br>③GRUBの画面になります。このまま起動OSを選択した場合、まだ認証がされていないため②の画面に戻されます。そこで、画面下の説明にあるように「p」キーを押します。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/b7/69/p/o0754063712411153331.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/b7/69/p/t02200186_0754063712411153331.png" alt="$kina-pomのブログ" border="0"></a><br><br>④すると先ほど設定したGRUBのパスワードを入力できるようになるので、/etc/grub.confで設定したパスワードを入力します。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/5a/70/p/o0668055312411157360.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/5a/70/p/t02200182_0668055312411157360.png" alt="$kina-pomのブログ" border="0"></a><br><br>⑤再度、GRUBの画面に戻ります。今度は認証後なので起動OSを選択して起動できるようになります。また、画面下の説明文も先ほどと異なっている点にも注目したいです。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/82/e9/p/o0754063712411160255.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/82/e9/p/t02200186_0754063712411160255.png" alt="$kina-pomのブログ" border="0"></a><br><br>さて、これで一応GRUBにパスワードを設定できるようになりました。ただし、この場合/etc/grub.confに設定したパスワードが平文のままなのが気になります。もう少しセキュリティを高めたい場合は、GRUBのパスワードを暗号化します。これは、次のような手順になります。<br><br>①GRUBの画面で「c」キーを押してGRUBのコマンドラインに移行します。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/82/e9/p/o0754063712411160255.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/82/e9/p/t02200186_0754063712411160255.png" alt="$kina-pomのブログ" border="0"></a><br><br>②GRUBのコマンドラインで次のコマンドを実行します。<br>grub&gt;<strong>md5crypt</strong><br>Password:<strong>********</strong>　　　← パスワードを求められるので設定したいパスワードを入力<br>Encrypted:<strong>$1$x542……</strong>　　← 入力したパスワードを暗号化した文字列が表示される<br>grub&gt;<strong>reboot</strong>　　　　　　← 再起動<br>ここで、重要なのは「Enctypted:$1$x542……」の「$1$x542……」です。これが暗号化後の文字列ですが、これを/etc/grub.confに設定しますので、この部分は画面キャプチャをとるか写真をとるかして記録しておいたほうが無難です。<br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/88/e2/p/o0668055312411178571.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/88/e2/p/t02200182_0668055312411178571.png" alt="$kina-pomのブログ" border="0"></a><br><br>③/etc/grub.confのパスワードに暗号化されたパスワードを設定します。ここではmd5で暗号化したのでパスワードの設定項目に「--md5」というオプションを付けます。ここで間違うと、またブートローダの認証ではじかれますので、慎重に確認しましょう。<br>password=<strong>--md5 $1$x542……</strong><br><a href="http://stat.ameba.jp/user_images/20130208/23/kina-pom/35/04/p/o0748047312411194731.png"><img src="https://stat.ameba.jp/user_images/20130208/23/kina-pom/35/04/p/t02200139_0748047312411194731.png" alt="$kina-pomのブログ" border="0"></a><br><br><br>と、まあこんな具合にブートローダで認証を行うことなんかもできます。<br></grubのパスワード>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11466512796.html</link>
<pubDate>Fri, 08 Feb 2013 22:21:28 +0900</pubDate>
</item>
<item>
<title>FTPサーバ構築（vsftpd）</title>
<description>
<![CDATA[ 今回は、vsftpdに挑戦します。<br>vsftpdはCent OSにパッケージとして収録されていますので、yumコマンドでインストールします。<br>とりあえず、動作するというところを目標としています。<br><br>1.インストール<br>2.基本設定<br>3.起動<br>4.動作確認<br><br><br><br><strong>1. インストール</strong><br>yumコマンドでインストールします。<br>いつもどおり、<br><strong># yum -y install vsftpd</strong><br>です。<br><a href="http://stat.ameba.jp/user_images/20130208/22/kina-pom/6e/3d/p/o0684048012411037227.png"><img src="https://stat.ameba.jp/user_images/20130208/22/kina-pom/6e/3d/p/t02200154_0684048012411037227.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>2.基本設定</strong><br>vsftpdの設定ファイルは/etc/vsftpd/vsftpd.confです。<br><a href="http://stat.ameba.jp/user_images/20130211/21/kina-pom/07/cd/p/o0684048012415488845.png"><img src="https://stat.ameba.jp/user_images/20130211/21/kina-pom/07/cd/p/t02200154_0684048012415488845.png" alt="$kina-pomのブログ" border="0"></a><br><br>基本設定としては次もものを設定しておきます。<br>・anonymousユーザー（匿名ユーザ）によるアクセスを拒否<br><strong>anonymous_enable=NO</strong><br><br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/29/e6/p/o0684048012415572041.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/29/e6/p/t02200154_0684048012415572041.png" alt="$kina-pomのブログ" border="0"></a><br><br>・chrootの設定<br>chroot_list_enable=YES<br>chroot_list_file=/etc/vsftpd/chroot_list<br>chroot_local_user=YES<br>→これにより/etc/vsftpd/chroot_listに記載されていないすべてのユーザーはchrootの対象となります。<br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/33/2c/p/o0684048012415578921.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/33/2c/p/t02200154_0684048012415578921.png" alt="$kina-pomのブログ" border="0"></a><br><br>・アクセス制御<br>userlist_deny=NO<br>userlist_enable=YES<br>→/etc/vsftpd/usrlistにないユーザーはアクセスを拒否されます。この設定ではユーザーがパスワードを入力する前にアクセスを拒否するため、ネットワーク上にアカウント情報を流しません。ユーザー名の入力だけは求められます。<br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/20/89/p/o0684048012415572043.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/20/89/p/t02200154_0684048012415572043.png" alt="$kina-pomのブログ" border="0"></a><br><br>・/etc/vsftpd/chroot_listの作成<br>上記でchrootの設定をしたため、/etc/vsftpd/chroot_listがないとログインできません。空のファイルでかまわないので作成しておきます。<a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/28/03/p/o0684048012415585232.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/28/03/p/t02200154_0684048012415585232.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>3.起動</strong><br>yumでインストールしているためinit経由での起動ができます。<br># /etc/init.d/vsftpd start<br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/47/34/p/o0684048012415589674.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/47/34/p/t02200154_0684048012415589674.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>4.動作確認</strong><br>動作確認をします。アクセス制御をしているので/etc/vsftpd/user_listにFTPでログインできるユーザーを登録します。１ユーザー１行で登録します。今回テスト用として「ftptest」というユーザーを作成しました。<br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/1d/2f/p/o0684048012415605369.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/1d/2f/p/t02200154_0684048012415605369.png" alt="$kina-pomのブログ" border="0"></a><br><br>「ftptest」ユーザーでログインできることを確かめます。<br><a href="http://stat.ameba.jp/user_images/20130211/22/kina-pom/f6/92/p/o0684048012415605370.png"><img src="https://stat.ameba.jp/user_images/20130211/22/kina-pom/f6/92/p/t02200154_0684048012415605370.png" alt="$kina-pomのブログ" border="0"></a><br><br>とりあえず、簡単ですがvsftpdに挑戦してみました。<br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11466511912.html</link>
<pubDate>Fri, 08 Feb 2013 19:34:29 +0900</pubDate>
</item>
<item>
<title>FTPサーバ構築（ProFTPD-2）</title>
<description>
<![CDATA[ 前回、ProFTPDをインストールしてFTPサーバを構築しました。<br>ただ、あまりに無防備な状態です。<br><br>そこで、今回はアクセス制御の設定を行いたいと思います。<br><br>テーマは２つです。<br><br>・/etc/ftpusersファイルによるアクセス制御<br>・chrootの設定<br><br><strong>・/etc/ftpusersファイルによるアクセス制御</strong><br>ProFTPDでは/etc/ftpusersというファイルを作成することで、<strong>FTPでログインをさせたくないユーザー</strong>を制御できます。ブラックリストです。<br>/etc/ftpusersファイルにログインを禁止するユーザーを1行1ユーザーで書き込んでいきます。<br>前提としてproftpd.conf、前回の内容どおりにインストールした場合は/usr/local/proftpd/etc/proftpd.confですが、これに次の設定を追加します。<br><br><strong>UseFtpUsers　on</strong><br><a href="http://stat.ameba.jp/user_images/20130207/20/kina-pom/4f/16/p/o0684048012409585058.png"><img src="https://stat.ameba.jp/user_images/20130207/20/kina-pom/4f/16/p/t02200154_0684048012409585058.png" alt="$kina-pomのブログ" border="0"></a><br><br>そして、/etc/ftpusersファイルにログインを禁止するユーザーを設定していきます。<br>ここでは、「student」というユーザーのログインを禁止します。<br>その前に、studentユーザーでFTPサーバにログインできることを確認しておきます。<br><a href="http://stat.ameba.jp/user_images/20130207/20/kina-pom/02/ce/p/o0684048012409602545.png"><img src="https://stat.ameba.jp/user_images/20130207/20/kina-pom/02/ce/p/t02200154_0684048012409602545.png" alt="$kina-pomのブログ" border="0"></a><br><br>さて、/etc/ftpusersファイルでログイン禁止ユーザー「student」を設定します。<br><a href="http://stat.ameba.jp/user_images/20130207/20/kina-pom/d0/00/p/o0684048012409605306.png"><img src="https://stat.ameba.jp/user_images/20130207/20/kina-pom/d0/00/p/t02200154_0684048012409605306.png" alt="$kina-pomのブログ" border="0"></a><br><br>ProFTPDを再起動します。ちょっと面倒ですが、ProFTPDのPIDを調べた上でkillコマンドでプロセスを終了します。<br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/15/f0/p/o0684048012409705372.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/15/f0/p/t02200154_0684048012409705372.png" alt="$kina-pomのブログ" border="0"></a><br><br>再度、studentユーザーでログインしてみます。<br><a href="http://stat.ameba.jp/user_images/20130207/20/kina-pom/d9/4b/p/o0684048012409612126.png"><img src="https://stat.ameba.jp/user_images/20130207/20/kina-pom/d9/4b/p/t02200154_0684048012409612126.png" alt="$kina-pomのブログ" border="0"></a><br><br>このように/etc/ftpusersでログインを禁止するユーザーのブラックリストを作成してアクセス制御を行うことができます。<br><br><strong>・chrootの設定</strong><br>続いてchrootの設定です。chrootは「Change Root」のことで、移動できるrootディレクトリを変更する設定です。rootディレクトリとは移動できる最上位のディレクトリです。Linuxのファイルシステムでは最上位ディレクトリのrootはシステムの入り口のようなものです。rootディレクトリに移動できれば、アクセス権さえあればどのディレクトリに移動できてしまいます。それはさすがに危険なので、ログインしたユーザーをログイン直後にいるディレクトリ以下にユーザーを閉じ込めてしまう仕組みです。DNSサーバのBINDなどでも有名な仕組みです。<br>設定はいたって簡単で、proftpd.confに次の設定をするだけです。<br><br><strong>DefaultRoot <chrootディレクトリ></chrootディレクトリ></strong><br><br>ここでは一例として、chrootをログインしたユーザーをログインした直後のディレクトリに設定してみます。FTPではログインした直後のディレクトリはユーザーのホームディレクトリです。FTPで接続するにはサーバに存在するユーザーでログインするのが基本です（なかにはProFTPDのソースを取得したときに使用した「anonymous」というユーザーを利用しましたが、これはまた特殊な使い方だと思われるのでここでは置いておきます）。ログインしたユーザーのホームディレクトリは「~」で指定できますので、次のようになります。<br><br><strong>DefaultRoot ~</strong><br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/e4/f4/p/o0684048012409656056.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/e4/f4/p/t02200154_0684048012409656056.png" alt="$kina-pomのブログ" border="0"></a><br><br>では、FTPでログインして確認してみます。ログイン後、「cd /」とコマンドを実行するとrootディレクトリに移動します。通常ならLinuxのファイルシステムの「/」ディレクトリに移動しますが、ここではrootディレクトリをログインユーザーの「ホームディレクトリ」に移動したので、「ホームディレクトリ」がrootディレクトリに変更されています。<br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/b5/77/p/o0691052212409671663.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/b5/77/p/t02200166_0691052212409671663.png" alt="$kina-pomのブログ" border="0"></a><br><br>chrootでよく使われるシーンとしては、Webサイトのコンテンツのアップロードです。<br>コンテンツを更新するときにFTPで接続する場合、FTPサーバにログインできるユーザーとchrootを限定して、ほかのディレクトリに移動させないようにすることで、何か問題が生じてもchroot以下に影響範囲を閉じ込めたりできます。閉じ込めるという意味では、ちょっとしたハッキング対策にもなるでしょう。<br><br>なお、余談ですが上記では、FTPサーバにログインする際にサーバにSSHなどでログインした上で、<br><strong>$ ftp localhost</strong><br>として、localhostで接続しています。外部ホスト（リモートホスト）からFTPにログインする場合は、次のようにします。<br><strong>$ ftp <ftpサーバのipアドレス></ftpサーバのipアドレス></strong><br>または、telnetで<br><strong>$ telnet <ftpサーバのipアドレス> 21</ftpサーバのipアドレス></strong>　　← 21番ポートに接続<br><strong>Trying <ftpサーバのipアドレス>...</ftpサーバのipアドレス></strong><br><strong>Connected to <ftpサーバのipアドレス></ftpサーバのipアドレス></strong><br><strong>Escape character is '^]'.</strong><br><strong>220 ProFTPD 1.3.5rc1 Server (h060) [<ftpサーバのipアドレス>]</ftpサーバのipアドレス></strong><br><strong>User &lt;ログインユーザー&gt;</strong><br><strong>331 Password required for &lt;ログインユーザー&gt;</strong><br><strong>Pass &lt;パスワード&gt;</strong><br><strong>230 User student logged in</strong><br><br>アクセス制限をしていないのにリモートサーバから接続できない場合は、サーバ側のファイアウォールの設定の可能性があります。とりあえず、動作確認のためファイアウォールの設定をはずすには次のようにします。<br>・# setupコマンドを実行<br>・「ファイアウォールの設定」を選択し、「セキュリティレベル」「SELinux」を無効にする<br><br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/d3/10/p/o0684048012409709178.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/d3/10/p/t02200154_0684048012409709178.png" alt="$kina-pomのブログ" border="0"></a><br><br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/9e/d0/p/o0684048012409712878.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/9e/d0/p/t02200154_0684048012409712878.png" alt="$kina-pomのブログ" border="0"></a><br><br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/d0/fc/p/o0684048012409712880.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/d0/fc/p/t02200154_0684048012409712880.png" alt="$kina-pomのブログ" border="0"></a><br><br><a href="http://stat.ameba.jp/user_images/20130207/21/kina-pom/90/e3/p/o0684048012409712879.png"><img src="https://stat.ameba.jp/user_images/20130207/21/kina-pom/90/e3/p/t02200154_0684048012409712879.png" alt="$kina-pomのブログ" border="0"></a><br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11465779341.html</link>
<pubDate>Thu, 07 Feb 2013 19:35:20 +0900</pubDate>
</item>
<item>
<title>FTPサーバ構築（ProFTPD）</title>
<description>
<![CDATA[ 今回のテーマはFTPサーバの構築です。<br>Cent OSにはvsftpdというパッケージがありますが、今回はこれは使わずProFTPDというFTPプログラムをソースからインストールしてみます。<br>ProFTPDはパッケージにはないため、ソースファイルを取得してビルドし、インストールしていきます。ソースファイルはrikenのサーバからftp経由で取得します。<br><br>［手順］<br>1. riken.jpからソースの取得<br>2. ビルド＆インストール<br>3. 設定<br>4. 起動<br>5. 確認<br>6. 終了<br><br><strong>1. riken.jpからソースの取得</strong><br>まず、FTP経由でriken.jpからソースを取得します。ソースはサーバの/usr/local/srcに保存しておくことにします。<br>ftpでriken.jpサーバに接続するには、ftpコマンドを使って次のようにします。<br><strong>$ ftp ftp.riken</strong><br>ログインするにはユーザー名とパスワードが必要です。今回は匿名ユーザー「anonymous」でログインします。パスワードには任意のメールアドレスを入力すればログインできます。<br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/0c/e8/p/o0665044612405543603.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/0c/e8/p/t02200148_0665044612405543603.png" alt="$kina-pomのブログ" border="0"></a><br><br>ログインに成功したら、ソースがあるディレクトリまで移動します。ディレクトリの移動はFTPのcdコマンドで行います。ディレクトリは「net/ProFTPD/distrib/source」になります。<br><strong>ftp &gt; cd net/ProFTPD/distrib/source</strong><br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/a1/34/p/o0665044612405549169.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/a1/34/p/t02200148_0665044612405549169.png" alt="$kina-pomのブログ" border="0"></a><br><br>FTPのlsコマンドを使い、最新のソースファイルを確認します。<br><strong>ftp &gt;ls</strong><br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/90/a2/p/o0665044612405580701.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/90/a2/p/t02200148_0665044612405580701.png" alt="$kina-pomのブログ" border="0"></a><br><br>現時点では「proftpd-1.3.5rc1」が最新のようなのでこれを取得します。FTPコマンドでサーバからファイルを取得するにはFTPのgetコマンドを使います。ファイルを取得したら、FTPのquitコマンドで終了します。<br><strong>ftp &gt; get proftpd-1.3.5rc1.tar.gz</strong><br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/4b/64/p/o0665044612405588331.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/4b/64/p/t02200148_0665044612405588331.png" alt="$kina-pomのブログ" border="0"></a><br><br>取得したソースを確認します。<br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/55/f3/p/o0665044612405591838.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/55/f3/p/t02200148_0665044612405591838.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>2. ビルド＆インストール</strong><br>さて、ソースを取得したのでビルドします。ビルドとはプログラムのソースファイルをコンパイルしてCPUが理解できるバイナリファイルにし、さらに必要なライブラリをリンクする作業です。ただし、ビルドするにはCent OSの場合「開発ツール」というパッケージグループをインストールする必要があります。これはyumコマンドで行えます。<br><strong># yum -y groupinstall '開発ツール'</strong><br><br>開発ツールをインストールしたら取得したファイルを展開します。<br><strong># tar zxvf proftpd-1.3.5rc1.tar.gz</strong><br><a href="http://stat.ameba.jp/user_images/20130204/19/kina-pom/0e/61/p/o0665044612405599995.png"><img src="https://stat.ameba.jp/user_images/20130204/19/kina-pom/0e/61/p/t02200148_0665044612405599995.png" alt="$kina-pomのブログ" border="0"></a><br><br>ソースファイルを展開後、proftpd-1.3.5rc1というディレクトリが作成されています。このディレクトリに移動します。移動したら「configure」スクリプトを実行します。ソースファイルからアプリケーションをインストールする場合、おおむね次のステップを踏みます。<br>１. configureスクリプトの実行<br>２. makeコマンドでのビルド、make installによるインストール<br><br>1. のconfigureスクリプトでは、続くmakeコマンド、make installコマンドでの動作を指定します。このスクリプトを実行するとMakeファイルというファイルが生成されます。makeコマンドはこのファイルの内容をもとにビルドを行います。今回はインストール先の指定をconfigureスクリプトで指定します。インストール先の指定はconfigureスクリプトに「--prefix=&lt;インストール先のパス&gt;」で可能です。今回は/usr/local/proftpdにインストールしますので、このパスを指定します。<br># configure --prefix=/usr/local/proftpd<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/c8/27/p/o0665044612405627097.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/c8/27/p/t02200148_0665044612405627097.png" alt="$kina-pomのブログ" border="0"></a><br><br>configureスクリプトを実行したらmake、make installコマンドを実行してインストールします。<br># make &amp;&amp; make install<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/55/d6/p/o0665044612405630690.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/55/d6/p/t02200148_0665044612405630690.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>3. 設定</strong><br>さて、インストールが完了したら設定を行います。ProFTPDでは最低限次の設定が必要になります。ProFTPDの設定ファイルは/usr/local/proftpd/etc/proftpd.confです。<br>① /usr/local/proftpd/etc/proftpd.confで実行グループを「nobody」に変更<br>② サーバのIPアドレスとホスト名の対応付けを行う<br><br>①についてですが、ProFTPDの設定ファイルではProFTPDの実行グループがデフォルトで「nogroup」というグループが指定されています。このグループはおそらくシステムで意図的に作成しない限り存在しないグループです。/etc/groupファイルで確認してみてください。とりあえず、ここでは「nobody」グループを指定しておきます。<br>/usr/local/proftpd/etc/proftpd.confで次のように実行グループを変更します。<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/95/de/p/o0665044612405657370.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/95/de/p/t02200148_0665044612405657370.png" alt="$kina-pomのブログ" border="0"></a><br><br>②はProFTPDのポリシーです。ProFTPDではインストールしたサーバのホスト名（hostnameコマンドで表示されるホスト名。/etc/sysconfig/networkファイルでも確認可能）とサーバのIPアドレスが対応付けされていないといけません。起動時にDNS lookupという作業を行い、ホスト名とIPアドレスの名前解決を確認した上で起動します。この問題に対応するには/etc/hostsファイルに設定を加えます。<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/84/13/p/o0800038612405659708.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/84/13/p/t02200106_0800038612405659708.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>4. 起動</strong><br>さて、これでProFTPDを起動する準備が整いました。起動するには次のコマンドを実行します。<br><strong># /usr/local/proftpd/sbin/proftpd</strong><br>とくにメッセージは出ませんので、psコマンドやnetstatコマンドなどで確認します。<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/37/96/p/o0800038612405669116.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/37/96/p/t02200106_0800038612405669116.png" alt="$kina-pomのブログ" border="0"></a><br><br><strong>5. 確認</strong><br>これで、FTPサーバは構築できたので確認を行います。<br><strong>$ ftp localhost</strong><br>でProFTPDに接続します。ログイン時のユーザー名はサーバに存在するユーザーであればどのユーザーでもかまいません。ステータスコード「230」が表示されればログインは成功です。<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/02/64/p/o0800038612405678011.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/02/64/p/t02200106_0800038612405678011.png" alt="$kina-pomのブログ" border="0"></a><br><br>あとは、FTPコマンドで操作できます。ほかのホストから試してみると実感がわくでしょう。<br>主なFTPコマンド<br>get：FTPサーバからファイルの取得<br>put：FTPサーバへのファイル転送<br>cd：FTPサーバでのディレクトリ移動<br>ls：FTPサーバでのファイル一覧<br><br><strong>6. 終了</strong><br>FTPサーバを終了するにはkillコマンドを使います。psコマンドなどでProFTPDのPIDを確認後、killコマンドを実行します。<br><a href="http://stat.ameba.jp/user_images/20130204/20/kina-pom/8d/07/p/o0800038612405686723.png"><img src="https://stat.ameba.jp/user_images/20130204/20/kina-pom/8d/07/p/t02200106_0800038612405686723.png" alt="$kina-pomのブログ" border="0"></a><br><br><br>以上、駆け足でしたがProFTPDを使ってFTPサーバを構築しました。設定についてはいろいろありますが、これはまた別の記事でまとめてみようと思います。<br>また、機会があればvsFtpdでのFTPサーバ構築も挑戦したいと思います。
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11463675082.html</link>
<pubDate>Mon, 04 Feb 2013 18:48:23 +0900</pubDate>
</item>
<item>
<title>TCP Wrappersによるホストベースのアクセス制御</title>
<description>
<![CDATA[ 今回は、TCP Wrappersによるアクセス制御に挑みます。<br><br>TCP Wrappersとはクライアントからサーバのtcpプロトコルを行う各サービスへのアクセスを監視するデーモン（tcpd）です。もう少しつっこんで表現すると「libwrap」というライブラリを利用するデーモンを一元管理するといった具合になります。inetdなどのスーパーサーバプログラムと連携して動作します。inetdはクライアントからのサービスへの接続要求を仲介し、一括して受け取ります。そして、各サービスへ要求を振り分けます。<br><br>たとえば、sshによる接続要求がきた場合、いったんinetdが要求を受け取ってsshdデーモンに処理を要求します。TCP Wrappersはinetdデーモンがsshdに処理を要求する際に、リクエスト元のホストをみて、その要求を受け付けるかどうかを判断します。判断は/etc/hosts.allowと/etc/hosts.denyという２つのファイルをもとに行います。受け付けていいと判断した場合はsshdに処理をわたし、受けつけないと判断した場合はクライアントからの処理を拒否します。<br><br>ここではinetdについては割愛しますが、以下のサイトなどが参考になるかと思います。<br>http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-tcpwrappers-xinetd-config.html<br>ちなみに、TCP Wrappersはスーパーデーモンのinedと併用して使われます。inetd単体だとアクセス制御できないため、TCP Wrappersと併用してアクセス制御を行います。現在のスーパーデーモンはxinetdが主流です。xinetdは単体でホストのアクセス制御をすることもできるのでTCP Wrappersと組み合わせる必要はないのですが、併せて使うとセキュリティが向上します。<br><br><br>さて、今回はSSHへの接続を例にTCP Wrappersの設定を行ってみたいとおもいます。<br>まず、TCP Wrappersによるアクセス制御の要となる/etc/hosts.allowと/etc/hosts.denyからみていきます。<br>/etc/hosts.allowにはサービスごとに許可するホストを指定します。<br>/etc/hosts.denyにはサービスごとに拒否するホストを指定します。<br>書式はどちらも同じです。<br>［書式］<br>&lt;デーモン名&gt; : &lt;クライアント名&gt; [オプション]<br><br><strong>・デーモン名</strong><br>プロセス名のことです。単一のデーモン名を指定、ワイルドカードを使った指定などができます。またALLとすると、すべてデーモンに対して適用されます。<br><br><strong>・クライアント名</strong><br>IPアドレスやドメイン名（ホスト名）などでの指定ができます。これは結構いろいろな指定方法があります。いくつか例をあげます。<br>＊IPアドレスで指定。複数指定する場合はスペースで区切る<br>sshd : 192.168.1.5 192.168.1.6<br>＊ネットワークで指定<br>sshd : 192.168.1.0/255.255.255.0<br>＊あるネットワークやドメインに所属するホストを指定<br>sshd : 192.168.1. .kina-pom.net<br>上記では192.168.1.に所属する全ホストと.kina-pom.netドメインに所属する全ホスト（h051.kina-pom.netなど）を指定しています。<br><br><strong>・オプション</strong><br>ルールが適用された場合のアクションなどを指定できます。たとえば、シェルスクリプトを実行させたりすることができます。<br><br>ひとつ問題があります。両方のファイルに同じ指定がされた場合です。<br>/etc/hosts.allowと/etc/hosts.deny両方に<br>sshd : 192.168.1.5<br>という記述がある場合、192.168.1.5からsshでの接続を許可するのか、拒否するのか。<br>答えは「許可する」です。<br>tcpdは/etc/hosts.allow→/etc/hosts.denyの順にファイルを検索します。/etc/hosts.allowに該当するルールがあった場合、そこで検索をやめて/etc/hosts.denyファイルは検索しません。<br><br>if文風にまとめるとこんな感じでしょうか。<br>if (/etc/hosts.allowを検索) {<br>　→ 該当するルールがあれば許可してブロックを抜ける <br>} else if (/etc/hosts.denyを検索) {<br>　→ 該当するルールがあれば拒否ブロックを抜ける<br>} else {<br>　→ 該当するルールは上記にないので許可してブロックを抜ける<br>}<br><br><br>さて、ようやくですが設定を行っていきたいとおもいます。<br>まずTCP Wrappersは「libwrap」というライブラリを利用するプログラムに対してホスト制限を管理しますので、sshがlibwrapを使うのか調べてみます。lddコマンドを使います。lddコマンドは実行プログラムが必要とする共有ライブラリを表示してくれます。<br>［書式］<br><strong># ldd &lt;プログラムのパス&gt;</strong><br><br>まず、whichでsshdのパスを調べてからlddコマンドを実行します。grepコマンドで表示内容を絞ります。<br><br><a href="http://stat.ameba.jp/user_images/20130202/14/kina-pom/b2/08/p/o0665044612401991097.png"><img src="https://stat.ameba.jp/user_images/20130202/14/kina-pom/b2/08/p/t02200148_0665044612401991097.png" alt="$kina-pomのブログ" border="0"></a><br><br>次に設定をします。基本的にアクセス制御を設定する場合は次のような方針になるかと思います。<br>・とりあえずあらゆるアクセスを拒否<br>・アクセスが必要なものだけ設定していく<br>ホワイトリスト方式です。<br><br>まず、すべてのホストからアクセスを拒否したいので、/etc/hosts.denyで次のように設定します。ここではすべてのデーモンに対して設定していますが、「sshd : ALL」としてデーモン名を特定してもいいです（ただし、その場合はSSHに限る）。<br><a href="http://stat.ameba.jp/user_images/20130202/14/kina-pom/6d/63/p/o0665044612401996377.png"><img src="https://stat.ameba.jp/user_images/20130202/14/kina-pom/6d/63/p/t02200148_0665044612401996377.png" alt="$kina-pomのブログ" border="0"></a><br><br>まずいったんここでアクセスが拒否されるか確認します。SSHでサーバに接続してみましょう。<br>しばらくした後、プロンプトが戻って拒否されます。<br><a href="http://stat.ameba.jp/user_images/20130202/14/kina-pom/0e/1d/p/o0665044612402001791.png"><img src="https://stat.ameba.jp/user_images/20130202/14/kina-pom/0e/1d/p/t02200148_0665044612402001791.png" alt="$kina-pomのブログ" border="0"></a><br><br>次に/etc/hosts.allowで接続を許可するホストを指定します。ここでは単一ホストを指定していますが、「sshd : 192.168.1.」とすれば「192.168.1.xx」のホストすべてがアクセスできます。<br><a href="http://stat.ameba.jp/user_images/20130202/14/kina-pom/bd/28/p/o0665044612402006950.png"><img src="https://stat.ameba.jp/user_images/20130202/14/kina-pom/bd/28/p/t02200148_0665044612402006950.png" alt="$kina-pomのブログ" border="0"></a><br><br>アクセスを許可したホストから、SSHで接続できることを確認します。<br><a href="http://stat.ameba.jp/user_images/20130202/14/kina-pom/75/70/p/o0665044612402011046.png"><img src="https://stat.ameba.jp/user_images/20130202/14/kina-pom/75/70/p/t02200148_0665044612402011046.png" alt="$kina-pomのブログ" border="0"></a><br><br>と、まあこんな具合にホストベースでのアクセス制御が可能です。<br>ただ、セキュリティ的にはアプリケーションレベルでの制御になりますので、OSレベルでパケットのフィルタリングを行うiptablesのほうが強力です。<br><br><br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11462024069.html</link>
<pubDate>Sat, 02 Feb 2013 12:37:29 +0900</pubDate>
</item>
<item>
<title>Webサーバ（バーチャルホスト-1）の訂正</title>
<description>
<![CDATA[ <strong>Webサーバ（バーチャルホスト-1）の訂正</strong><br><br>今回はおわびと訂正です。<br><a href="http://ameblo.jp/kina-pom/entry-11459899994.html" target="_blank">Webサーバ（バーチャルホスト-1）</a><br>の記事にてIPベースのバーチャルホストについて次のような記述をしました。<br><br>--------------------------------------------------------------------<br>IPベースのバーチャルホストは上の説明だけではちょっと理解しにくいかもしれません。<br>マシンは１台でも複数台でもかまいませんが、運用するWebサーバに対して<br>複数のIPアドレスを用意します。<br>--------------------------------------------------------------------<br>これを読み返してみて、「マシンは１台でも複数台でもかまいませんが」という部分が誤りであることに気づきました。そもそも、バーチャルホストとは１台のマシン内で仮想ホストを実現する仕組みなので、「複数台」という個所は誤りでした。<br>お詫びして、訂正いたします。<br><br>IPベースのバーチャルホストは、あくまで１台のサーバが複数のIPアドレスをもっているときに、それぞれのIPに対して仮想ホストを設定していきます。<br>http://httpd.apache.org/docs/2.2/ja/vhosts/ip-based.html<br><br>異なるIPに対して同じホスト名で設定を行う場合は記事のとおりとなります。<br>異なるホスト名で設定を行う場合は、次のマニュアルページのようになります。<br>※「IPベースのバーチャルホスティング」の項を参照<br>http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html<br><br>ただし、いずれもIPアドレスとホスト名の対応付けが必要なのでDNS側での設定が不可欠です。<br><br><br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/kina-pom/entry-11461902221.html</link>
<pubDate>Sat, 02 Feb 2013 10:32:55 +0900</pubDate>
</item>
</channel>
</rss>
