【第五怪】Ubuntu10.04で始めるLinuxサーバー〜ファイルサーバー設定編〜

2010年04月30日

 やはりサーバーといったらHTTPサーバーと並んでファイルサーバーが多く求められていると思います。ファイルサーバーを導入すれば、HTTPサーバーのファイルも簡単に編集する事ができます。
 そこで、Sambaというパッケージを使ってWindows共有プロトコルを利用したファイルサーバーを導入します。


手順
1.Sambaをインストールします。
$ sudo apt-get install samba

2.インストールできたか確認します。
$ dpkg -L samba

3.設定ファイルを編集します。
$ sudo vi /etc/samba/smb.conf
 主な設定項目は以下の通り。
設定項目説明
workgroupWindowsファイル共有のワークグループ名
server stringサーバーの説明文
log fileログファイルの保存場所設定

4.共有ディレクトリを追加します。
$ sudo vi /etc/samba/smb.conf
 以下のように編集します。
#===========Share Definitions ===============
#ここからが共有フォルダごとの設定です!
[homes]

#これはログインしたユーザのホームディレクトリを利用できるようにする物です。
#必要無いなら#を使って、このセクションをコメントアウトしてしまいましょう。

#ここからpublicディレクトリ共有設定を追加
[html_root] (共有名)
comment = public folder(共有フォルダの説明になります。)
browseable = yes
create mode = 2777
(設定すると共有内で作成されたファイルのパーミッションをこれにします。)
directory mode = 2777 (上のディレクトリ版)
path = /var/www (共有したいディレクトリ)
public = yes
only guest = no (yesにするとアクセスした人をゲストとして扱う)
read only = no (yesにすると書いてある通り。)
# valid users = @gloup (アクセスできるグループを指定する場合)
※ディレクトリのアクセス権限は実体のパーミッションになるので、実体のパーミッションで公開するユーザーを指定しましょう。

5.今までは下のコマンドで再読込をしていましたが、これが無くなり代わりにリアルタイムで設定が反映されるようになったようです。
$ sudo /etc/init.d/samba restart

6.必要なクライアントがログインするためのユーザーを追加します。
$ sudo useradd -p 'password' name
$ sudo passwd name
new password : hogehoge
※ログインユーザーはWindowsユーザー名とパスワードと同じになります。

7.あとはクライアントから接続するだけです。フォルダのアドレスバーに\\サーバーのIPと入力すれば共有ディレクトリ一覧が見れるようになっています。


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編


書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

【第四怪】Ubuntu10.04で始めるLinuxサーバー〜ApacheにPHPを導入編〜

2010年04月30日

 前回(【第三怪】Ubuntu10.04で始めるLinuxサーバー〜HTTPサーバー設定編〜)でApacheを使い、HTTPサーバーを実装しました。次に、そのHTTPサーバーにPHPを導入します。
 Ubuntuの場合の導入は、とても簡単でPHPのパッケージをインストールするだけです。

手順
1.PHPのパッケージをインストールします。
$ sudo apt-get install php5

2.インストールできたか確認します。
$ dpkg -L php5

3.Apacheを再起動します。
$ sudo /etc/init.d/apache2 reload

4.動作チェックのために、ドキュメントルートにhoge.phpを置き、実行権限を与えます。(chmodコマンド)
hoge.phpの中身
<?php
phpinfo();
?>

5.違うパソコンのブラウザからhttp://サーバーのIP/hoge.phpにアクセスし、PHPサーバーの情報が見れたら完了です。


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編


書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

【第三怪】Ubuntu10.04で始めるLinuxサーバー〜HTTPサーバー設定編〜

2010年04月30日

 今回はWebページを観閲する時にアクセスしているHTTPサーバーであるapacheを導入します。
 apacheを使うことによってhttp://サーバー名/でサーバー上にあるファイルにアクセスできるようになります。


手順
1.apache2.0をインストールします。
$ sudo apt-get install apache2

2.インストールできたか確認します。
$ dpkg -l | less
 リスト一覧が表示されます。以下が該当部分です。
apache2
apache2-mpm-worker
apache2-utils
apache2.2-bin
apache2.2-common

3.Ubuntuではすでにアクセスできるようになっていますので、接続確認をします。
 他のPCのブラウザからhttp:192.168.XXX.YYYにアクセスして以下のように出たら大丈夫です。
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

4.設定を変更します。設定ファイル等の場所は以下の通りです。
/etc/apache2/apache2.confapache設定ファイル
/etc/apache2/httpd.confサーバー設定ファイル(Ubuntuでは使わなくても良い)
/etc/apache2/ports.confポート設定ファイル
/etc/apache2/conf.d/PHP等の設定ファイル用ディレクトリ
/etc/apache2/sites-available/仮想ホストごとの設定ファイル用ディレクトリ
/var/www/デフォルトドキュメントルート
/var/log/apache2/access.logアクセスログファイル
/var/log/apache2/error.logエラーログファイル

 上の表を見ると判ると思いますが、UbuntuではRedHat系のhttpd.confと違って仮想ホスト(ドメインやドキュメントルートを管理する)設定部分とサーバー自体の設定部分が分離しています。
 サーバーの設定(同時接続上限等)をしたい場合はapache2.confを編集し、ドキュメントルートやドメインごとにドキュメントルートを変更したいような設定をしたい場合はsites-available/default.confを編集します。
 仮想ホストの設定については以下の記事を参照ください。
WEBサーバで複数のDDNSごとに違うページ表示の怪

5.サーバーをリロードし、設定を再読込して完了です。
$ sudo /etc/init.d/apache2 reload

 あとはドキュメントルートに好きなファイルを置けば公開できます。ファイルを置く方法はFTPサーバーやSambaサーバー等を使います。それらについては次の怪で。


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編

書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

【番外編】Ubuntu10.04で始めるLinuxサーバー〜操作方法編〜

2010年04月30日

 今回は番外編としてCUI操作を中心書こうと思います。困ったときに見返せば判るようにするのが目的です。

【ファイルやディレクトリ操作】
コマンド説明
viファイル作成/編集
lsディレクトリ内表示
rmファイル削除
cdディレクトリ移動
findファイル検索
mvファイルのリネーム/移動
mkdirディレクトリの作成
| lessコマンドの後ろにつけると見やすくなります

【ユーザー権限関係】
コマンド説明
sudo管理者権限で実行
chmodファイル/ディレクトリ権限変更


【ネットワーク関係】
コマンド説明
ifconfigネットワークアダプタ確認
ping回線チェック


【電源関係】
コマンド説明
reboot再起動
shutdown -h now終了(すぐに終了)


【パッケージ関係】
コマンド説明
apt-get install xxxxリポジトリからインストール
apt-get updateアップデート
apt-get upgradeアップグレード
apt-cache search xxxxxxxxを検索
apt-cache remove xxxxxxxxを削除
dpkg -lパッケージ一覧を表示
dpkg -L xxxxxxxxに含まれるファイル一覧表示
dpkg -i xx.debxx.debをインストール


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編

書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

【第二怪】Ubuntu10.04で始めるLinuxサーバー〜ネットワーク設定編〜

2010年04月30日

 前回(Ubuntu10.04で始めるLinuxサーバーの第一怪〜インストール編〜)でインストールは完了し、ログインして操作できるようになりました。次はネットワーク周りの設定を行います。
 デフォルトではDHCPで自動IPアドレス割当て設定になっています。しかし、サーバーではIPアドレスを固定しないと不便なので固定IP設定に変更します。


手順
1.ネットワークアダプタのMACアドレスを確認します。
$ ifconfig

2.ルーター等の設定で、そのMACアドレスに固定IPアドレスを割当てます。

3.次にネットワークアダプタの設定をします。
$ sudo vi /etc/netowrk/interfaces
※UbuntuではRedHat系と違ってネットワークアダプタの設定ファイルが/etc/netowrk/interfacesに存在します。
編集前
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
編集後
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static ←static(固定)に
address 192.168.XXX.YYY ←サーバーに割り当てるIP
netmask 255.255.255.0 ←ネットマスク
bloadcast 192.168.XXX.255 ←ブロードキャスト
network 192.168.XXX.0 ←ネットワークを指定
gateway 192.168.XXX.ZZZ ←デフォルトゲートウェイ(ルーターのアドレス)

4.DNSを設定します。
$ vi /etc/resolv.conf
resolv.confの内容
nameserver 192.168.XXX.ZZZ ←DNSのアドレス(ルーターのアドレスになる事が多い)
search ubuntu-server ←サーバーのホスト名

5.ネットワークアダプタを再起動します。
$ sudo /etc/init.d/networking restart


6.ちゃんと使えるか確認します。
$ ifconfig ←IP確認
$ ping sis.homelinux.org ←好きなサーバーに

※CTRL+Cで終了します。
※0% packet lossなら問題ありません。

7.これでIPアドレスの設定は完了です。


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編

書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

【第一怪】Ubuntu10.04で始めるLinuxサーバー〜インストール編〜

2010年04月30日

 Ubuntu 10.04 LTSがリリースされました。せっかくリリースされたのでRedHat訛りを直すためにもUbuntuサーバーを導入し、慣れていこうと思います。
 第一回なので、まずはインストール編です。汎用性を高めるために最小インストールをし、それから色々導入していこうと考えています。

・手順
1.isoファイルをダウンロードして、CD/DVDに焼いたりbootできる状態にします。
http://releases.ubuntu.com/lucid/ (LTS/Server install CDの項)
http://www.ubuntu.com/getubuntu/download-server (2010/04/30現在は9.10)

2.bootして起動し、画面の説明に沿って設定します。
 途中でインストールできるサーバー(サービスみたいな物)をデフォルトでインストールできますが、上で書いた通り汎用性を高めるために何も選ばずにインストールします。

3.後は勝手にrebootするので完了です。



追記:
・インストールが完了したら、一応アップデートしておきましょう
$ sudo apt-get update

・日本語環境でインストールした場合はプログラムログ等を日本語で出力しようとして文字化けしてしまいます。
 そこで、viコマンド等で$HOME/.bashrcの末尾に以下を書き足せば英語で出力されるようになります。
case $TERM in
linux) LANG=C ;;
*) LANG=ja_JP.UTF-8 ;;
esac


Ubuntu10.04で始めるLinuxサーバーシリーズ
【第一怪】インストール編
【第二怪】ネットワーク設定編
【第三怪】HTTPサーバー設定編
【第四怪】ApacheにPHPを導入編
【第五怪】ファイルサーバー設定編
【番外編】操作方法編
【番外編2】Firewall設定編


書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

LinuxでVPNサーバの怪

2009年02月18日

VPNはサーバとクライアント両方に仮想ネットワークアダプタを作り、そのアダプタ同士で仮想プライベートネットワークを作ります。
VPNにはルーティング型とブリッジ型があります。ルーティングモードはVPNサーバが、その仮想プライベートネットワークのルータになります。ブリッジモードではVPNサーバはWAN側(既存ネットワーク)のブリッジをするだけなので既存ネットワークにクライアントを追加します。
ブリッジモードの方が楽そうに見えますが、ブリッジ設定をしなくてはいけないので無駄に面倒になります。そこで今回はルーティング型の手順です。

CentOSだとOpenVPNをインストールするためにリポジトリを追加しないといけません。
# vi /etc/yum.repos.d/CentOS-Base.repo
-----------------
[base],[updates],[addons],[extras]それぞれの最後に下の行を追加。
priority=1
-----------------
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm -ivh http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm



VPNサーバ導入手順

1.VPNを暗号化するためにSSLを使えるようにしときます。
# yum install openssl

2.VPNサーバをインストールします。
# yum install openvpn

3.VPNのバージョンを確認して設定雛型をコピーします。
# rpm -q openvpn
openvpn-2.0.9-1.el15.rf

サーバ設定ファイルの雛型をコピーします。
# cp /usr/share/doc/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/

プライベートCAをコピーします。
# cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa /etc/openvpn/

4.サーバ証明書と秘密鍵を作ります。
# vi /etc/openvpn/easy-rsa/2.0/vars
---ファイルの中身---

export KEY_COUNTRY="JP"(国)
export KEY_PROVINCE="Tokyo"(都道府県)
export KEY_CITY="Tokyo"(区市町村)
export KEY_ORG="HOME"(団体名)
export KEY_EMAIL="*@*.com"(管理者メールアドレス)
--------------------

プライベートCAを構築しますが、その前にスクリプトが動かないので実行権限を与えます。
# chmod -r 744 /etc/openvpn/easy-rsa/2.0

実際に構築作業
# cd /etc/openvpn/easy-rsa/2.0/
# source ./vars
# ./clean-all
# ./build-ca
~~~~~~対話方式~~~~~~~~~
設定してあるので全部デフォルト空エンターを押します。

Country Name (2 letter code) [JP]:enter
State or Province Name (full name) [Tokyo]:enter
Locality Name (eg, city) [Tokyo]:enter
Organization Name (eg, company) [HOME]:enter
Organizational Unit Name (eg, section) []:enter
Common Name (eg, your name or your server's hostname) [HOME CA]:enter
Email Address [*@*.com]:enter
~~~~~~~~~~~~~~~~~~~~~~~
/etc/openvpn/easy-rsa/2.0/keys/にca.crt(CA証明書)とca.key(CA秘密鍵)が出来ている事を確認します。

5.サーバ証明書とサーバ秘密鍵を作ります。
# cd /etc/openvpn/easy-rsa/2.0/
# source ./vars
# ./build-key-server server
~~~~~~対話方式~~~~~~~~~

これも全部空エンターにします。
Country Name (2 letter code) [JP]:enter
State or Province Name (full name) [Tokyo]:enter
Locality Name (eg, city) [Tokyo]:enter
Organization Name (eg, company) [HOME]:enter
Organizational Unit Name (eg, section) []:enter
Common Name (eg, your name or your server's hostname) [server]:enter
Email Address [*@*.com]:enter
A challenge password []:enter
An optional company name []:enter
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
~~~~~~~~~~~~~~~~~~~~~
/etc/openvpn/easy-rsa/2.0/keys/にserver.crt(サーバ証明書)とserver.key(サーバ秘密鍵)がある事を確認します。


6.クライアントの数だけクライアント証明書とクライアント秘密鍵を作ります。
# cd /etc/openvpn/easy-rsa/2.0/
# source ./vars
# ./build-key-pass client01(2台目は02...)
接続時にクライアントが使うパスフレーズを入力します。これは変えられないと考えた方が良いでしょう。変えると繋がりませんでした。
パスフレーズはパスワード所じゃない程長いパスです。一番大事なので長くしましょう。
Enter PEM pass phrase:パスフレーズ入力
Verifying - Enter PEM pass phrase:パスフレーズを再入力
Country Name (2 letter code) [JP]:enter
State or Province Name (full name) [Tokyo]:enter
Locality Name (eg, city) [Tokyo]:enter
Organization Name (eg, company) [HOME]:enter
Organizational Unit Name (eg, section) []:enter
Common Name (eg, your name or your server's hostname) [client01]:enter
Email Address [*@*.com]:enter
A challenge password []:enter
An optional company name []:enter
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
~~~~~~~~~~~~~~~~~~~~~~~

/etc/openvpn/easy-rsa/2.0/keys/にclient01.crt(クライアント証明書)とclient01.key(クライアント秘密鍵)がある事を確認します。

7.DHパラメータを生成します。
# cd /etc/openvpn/easy-rsa/2.0/
# ./build-dh
/etc/openvpn/easy-rsa/2.0/keys/にdh1024.pem(DHパラメータファイル)がある事を確認します。


8.VPNではTCPかUDPを選べます。今回はTCPにして、Firewallに穴を開けます。使用ポートは1194にします。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 1194 -j ACCEPT

9.インターフェイス間のIPパケット転送を有効にします。
# vi /etc/sysctl.conf
---ファイルの中身---

# Controls IP packet forwarding
net.ipv4.ip_forward = 1

--------------------

10.各種設定ファイルをコピーして指定の場所に置きます。
# cd /etc/openvpn/
# cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt .
# cp /etc/openvpn/easy-rsa/2.0/keys/server.crt .
# cp /etc/openvpn/easy-rsa/2.0/keys/server.key .
# cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem .

11.次に読み取られないようにパーミッションを変更します。
# chmod og-rx /etc/openvpn/*.key

12.設定ファイルを編集します。
# /etc/openvpn/server.conf
---ファイルの中身---

port 1194(ポート)
proto tcp(プロトコル)
dev tun(ルーティングなのでtun)
ca /etc/openvpn/ca.crt(CA証明書ファイルのフルパス)
cert /etc/openvpn/server.crt(サーバ証明書ファイルのフルパス)
key /etc/openvpn/server.key(サーバ秘密鍵ファイルのフルパス)
dh /etc/openvpn/dh1024.pem(DHパラメータファイルのフルパス)
server 192.168.20.0 255.255.255.0(VPNが使う仮想ネットワーク,192.168.20.1がVPNサーバに)
ifconfig-pool-persist ipp.txt(クライアントに振ったIP管理ファイル)
push "route 192.168.11.0 255.255.255.0"(サーバのWANネットワーク:多分)
client-to-client(VPNクライアント同士の通信を許可)
keepalive 10 120(接続が生きてるか監視の設定)
comp-lzo(LZO圧縮の有効)
max-clients 10(最大同時接続クライアント数)
user nobody(デーモンプロセスのユーザー)
group nobody(デーモンプロセスのグループ)
persist-key(不意な切断が発生した後の再接続処理の設定)
persist-tun(不意な切断が発生した後の再接続処理の設定)
status /var/log/openvpn-status.log(ステータスログの場所指定)
log /var/log/openvpn.log(ログファイルの保存場所指定)
verb 3(ログレベル)
--------------------

13.OpenVPNを起動します。
# /etc/init.d/openvpn start(再起動はrestart)

/var/log/openvpn.logに以下があれば正常起動
Initialization Sequence Completed


これでサーバの設定は終了です。
後はVPNクライアントの設定です。

・クライアントがWindowsの場合
WindowsでVPNクライアントの怪
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバでPHP利用可能にする怪

2009年02月11日

惰性でPHP使えるようにしたので、その手順をメモ。
全く苦労した記憶がありません。

※再構築するので# yum install gcc等でgccを用意しておいてください。

手順

1.PHPを有効にするためにapacheをソースから再インストールします。
・ソースのアドレスを確認します。
下のアドレスからDownload>from a mirrorと進んでUnix Source: httpd-2.2.11.tar.gz(その時々の最新版)のURLを確認しましょう。
http://httpd.apache.org/

・確認したらサーバでダウンロードしましょう。
# cd /home/sis
# wget http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.11.tar.gz

・解凍します。
# tar zxfv httpd-2.2.11.tar.gz

・解凍出来たらインストールです。
# cd httpd-2.2.11
※本当は違う目的だったのと作業効率化のために色々有効にしました。
下準備をします。
# yum install openssl-devel
# yum install krb5-devel

/usr/kerberosディレクトリにincludeディレクトリが無かったので。
# mkdir /usr/kerberos/include
# cd /usr/include
# ln -s /usr/kerberos/include/*

いよいよインストールのオプション設定です。
# export CPPFLAGS=-I/usr/kerberos/include
# ./configure
--enable-ssl<SSL
--enable-dav<WebDAV
--enable-so<PHP
--enable-suexec<suEXEC(これをやりたかった。でもダメだった。)
--with-suexec-caller=apache<suEXECを利用するユーザ
--with-suexec-userdir=public_html
--with-suexec-docroot=/home/html
--with-suexec-logfile=/usr/local/apache2/logs/suexec_log
--with-suexec-uidmin=500<使用出来るユーザIDの最小値
--with-suexec-gidmin=100<上のグループ版

# make clean(以前にmakeしてたら)
# make
# /etc/rc.d/init.d/httpd stop
# make install

2.PHP本体をインストールしましょう。
# yum install php php-mbstring

3.httpdを起動
# /etc/rc.d/init.d/httpd start

4.動作テスト
test.phpを置いて動くか確かめましょう。
---test.phpの中身---

--------------------
パーミッションは755


動けば成功です。その他の機能はそのうちメモしていきます。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバで複数のDDNSごとに違うページ表示の怪

2009年02月10日

apacheの仮想ホスト(バーチャルホスト)機能を使うと複数のWEBページを別ドメインで管理出来るようになります。普通に複数のドメインを取得している場合でも可能なのですが、うちの環境ではDDNSなので今回はこれでメモしていきます。

・図
mydomain1 ⇒ 111.222.333.444
medomain2 ⇒ 111.222.333.444
このように変換できる環境が前提です。

http://mydomain1.com/ ⇒ mydomain1用のWEBページ
http://mydomain2.com/ ⇒ mydomain2用のWEBページ


すでにDDNSを二つ取得済みで両方から自分のIPアドレスに変換されてるとします。

手順
1.httpd.confを編集します。
# vi /etc/httpd/conf/httpd.conf

---ファイルの中身---
〜末尾に追加
#VirtualHost conf
NameVirtualHost 192.168.12.6<NICに割り当てられているIP


DocumentRoot /home/html/domain1
ServerName domain1.com

  #エラーログ
  ErrorLog logs/domain1.com-error_log
  #アクセスログ
  CustomLog logs/domain1.com-access_log common




DocumentRoot /home/html/domain2
ServerName domain2.com

  ErrorLog logs/domain2.com-error_log
  CustomLog logs/domain2.com-access_log common



〜こうやって幾らでも増やせます。

---------------------

2.httpdを再起動します。
# /etc/rc.d/init.d/httpd restart



※項目説明
#
# ServerAdmin webmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log common
#


IPアドレス直打ちで表示されるのは一番上に書かれた仮想ホストです。(多分)

※最後にログは/var/log/httpd/にあります。
追記
※仮想ホストを設定した時は今までのDocumentRootをコメントアウトしておきましょう。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

FTPサーバにSSL通信を導入の怪

2009年02月09日

FTPサーバ導入については下
CentOSでFTPサーバの怪

FTP通信は実のところ全く暗号化がされていません。物理的に線の中継者なら通信内容を読む事が出来ます。なのでFTPはイントラネット内のみで使うべきなのでした。

では、その通信をSSLで暗号化して読めなくしましょう。

手順
1.VSFTPの設定ファイルを編集します。
# vi /etc/vsftpd/vsftpd.conf

---ファイルの中身---
〜〜末尾

#ssl有効化
ssl_enable=YES

#サーバ証明書のパス
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

#SSL以外の通常通信も使えるようにするためには。(非推奨)
force_local_logins_ssl=NO#ログイン時にSSLを強制しない
force_local_data_ssl=NO#データ送受信時に…
-------------------

2.サーバ証明書を作りましょう。
# cd /etc/pki/tls/certs/
# make vsftpd.pem
以下質問形式で進みます。
・国を入力
Country Name (2 letter code) [GB]:JP
・都道府県名
State or Province Name (full name) [Berkshire]:Tokyo
・更に詳しく市区町(面倒な場合は同じでもOK)
Locality Name (eg, city) [Newbury]:Tokyo
・サイトの名前
Organization Name (eg, company) [My Company Ltd]:sis's server
・記入しないで問題無し。
Organizational Unit Name (eg, section) []:
・ホスト名
Common Name (eg, your name or your server's hostname) []:ドメインアドレスとか
・管理者のメールアドレス
Email Address []:

3.vsftpdを再起動します。
# /etc/rc.d/init.d/vsftpd restart


これでサーバ側の設定は終わりです。

クライアント側のFTPソフトもSSL通信をサポートしていないといけません。そこでいくつかソフトを挙げておきます。
・smartFTP(最近シェアになったそうです。試用期間は1ヶ月)
http://www.smartftp.com/localization/projects/japanese/
日本語化と本体をインストールしましょう。

・Filezilla(フリーソフトです。)ただし3.x版ではタイムアウトになったりリストだけ表示出来なかったりどうやってもうまくいかないので2.xの最終バージョン(2.2.32)のリンクを貼っておきます。
http://downloads.sourceforge.net/filezilla/FileZilla_2_2_32.zip
http://prdownloads.sourceforge.net/filezilla/FileZilla_2_2_32_setup.exe
http://downloads.sourceforge.net/filezilla/FileZilla_2_2_32_src.zip?big_mirror=0

・FirefoxアドオンのFireFTPでも出来るそうですがうまく行きませんでした。うまく行ってる人もいるので使えると思います。多分。

プロトコルはFTP over SSL(explicit encryption)
ポートは通常では21
※SFTPではなくSSLFTPなので注意しましょう。


2010/01/12追記
上のリンクからダウンロードできなくなってました。
http://www.filehippo.com/download_filezilla/2512/
MD5:a5e4f89e62dd6f155f342bf5ea067501

2010/01/14追記
FileZillaについてですが、FTPサーバーのアップデートで3.x系でも通常通り使えるようになったようです。


<スポンサード リンク>

おしゃれなホームページのデザイン テンプレート・コレクション

おしゃれなホームページのデザイン テンプレート・コレクション

  • 作者: ユルユラデザイン
  • 出版社/メーカー: 毎日コミュニケーションズ
  • 発売日: 2009/06/27
  • メディア: 単行本(ソフトカバー)



書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバでCGI利用可能にする怪

2009年02月07日

CGIはサーバ上で動作するアプリケーションです。ユーザが送ってきた情報やファイルをサーバのCPUが処理します。つまりユーザにとって便利ですがサーバ管理者としてはチェックしていないとサーバを死に追いやる危険性もあります。

とりあえず今回はCGIをとにかく動かす手順です。保守?ナニソレ?美味しいの?という状態です。rootログイン出来る人間(つまり管理者)のみしかWEBサーバを管理しない場合は、これで問題ありません。しかしユーザ(HPを管理する利用者)がいる場合は最後に紹介する次の記事を読みましょう。問題点等は、最後に詳しく書く予定です。

すでにapacheが稼動していて/home/html以下でCGIを使えるようにするとします。

手順
1.apacheの設定ファイルを開きます。
# vi /etc/httpd/conf/httpd.conf


---ファイルの中身---
〜〜〜〜
AddHandler cgi-script .cgi .pl<これも追加
↑この行がコメントアウトされてるので#を消して有効にしましょう。
〜〜〜〜〜〜〜

  Options Includes ExecCGI<基本的にはここが重要

∧を書き足すか編集する。

--------------------

2.httpdを再起動します。
# /etc/rc.d/init.d/httpd restart

これで完了です。適当なCGIを置いてテストしてみてください。



※問題点
この方法ですとCGIが生成したファイル(アップローダでアップされたモノやログファイル)の所有者がapacheになってしまい、HP管理ユーザがCGIを管理する事が出来なくなってしまいます。(つまりroot以外はCGIの保守活動が出来ない)
更に所有者がapacheになってしまっているのでアップローダ等の容量制限をquotaで行なえません。(多分)もしかしたら上層ディレクトリの所有者がユーザなら問題無いかも。

そこで次の記事でそれらの対策を書こうと思っています。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバで拡張子ごとにブラウザでの挙動を制御の怪(mime.types編)

2009年02月07日

Linux(CentOS,Fedora)でWEBサーバの怪

.htaccess編でディレクトリごとの方法を紹介しましたが本来こっちが正しい設定方法らしいです。

手順
vi /etc/mime.types

ここにMIMEの書き方で足しましょう。

application/octet-stream exe

MIMEリファレンス
http://www.geocities.co.jp/Hollywood/9752/mime.html
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバで拡張子ごとにブラウザでの挙動を制御の怪(.htaccess編)

2009年02月06日

Linux(CentOS,Fedora)でWEBサーバの怪

ダウンロードする時にダイアログが出ずブラウザで開かれてしまい文字化けがずらずらっと出てしまう時の対処法です。
※IEはファイルの中身で判別してるので関係ありません。

概略は.htaccessファイルを置く事によって、そのディレクトリ以下のサーバ設定をします。.htaccessは上層ディレクトリの物ほど強く、上書き出来る項目については下層ディレクトリに存在している.htaccessファイルの設定項目を上書きしてしまいます。なのでよく考えて設定しましょう。

手順
1.まず.htaccessファイルの使用をサーバ側で許可します。
# vi /etc/httpd/conf/httpd.conf

---ファイルの中身---
AllowOverride All(デフォルトではnoneになってます。)
--------------------

2.httpdを再起動しましょう。
# /etc/rc.d/init.d/httpd restart

3..htaccessファイルを用意します。
適用したいディレクトリに.htaccessというファイルを作り、置きましょう。そのディレクトリ以下のファイルは.htaccessファイルに書いた通りのサーバ挙動になります。

---ファイルの中身---

# .exe 実行ファイル
AddType application/octet-stream exe

# .lzh アーカイブ
AddType application/octet-stream lzh

# Macintosh .hqx 圧縮
AddType application/mac-binhex40 hqx

# Flash コンテンツ
AddType application/x-shockwave-flash swf

# ZIP ファイル
AddType application/zip zip

--------------------

これで完了です。

※制御はページにでは無くDLする物にかかってます。
つまり適用されてない上層ディレクトリからのリンクでもDLする物が適用されているディレクトリにあれば、そのディレクトリにある.htaccessファイルの挙動になります。



・何をしているか。
.htaccessの設定でhttpd.confの設定の上書きを許可しています。

AllowOverride

None
上書きを許しません。
ALL
全ての種類の設定について上書きを許します。
AuthConfig
認証に関する設定について上書きを許します。
Limit
ホスト名やIP addressによるアクセス制御の上書きを許します。
Options
Options指定子で設定する機能について上書きを許します。
FileInfo
ディレクトリ表示の設定について上書きを許します。


.htaccessリファレンス
http://memorva.jp/memo/linux/htaccess.php

MIMEリファレンス
http://www.geocities.co.jp/Hollywood/9752/mime.html

※この方法はサーバ管理者でなくとも役立ちますが、サーバ管理者の立場だとユーザ任せになってしまうので怠慢管理者と呼ばれるそうです。サーバ設定としては違う方法を次に紹介します。

WEBサーバで拡張子ごとにブラウザでの挙動を制御の怪(mime.types編)
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

WEBサーバ(Apache)でインデックスファイル形式を追加の怪

2009年02月06日

WEBサーバ導入は下
Linux(CentOS,Fedora)でWEBサーバの怪

Apacheではディレクトリにアクセスするとindex.htmlを表示するインデックスファイル機能があります。つまりhttp://IPアドレス/sis/にアクセスするとLinux上のファイルの./sis/index.htmlを表示します。

デフォルトではindex.htmlにだけ対応しています。それだけでは不便なのでindex.htm等も対応させましょう。

手順
1.設定ファイルを開きます。
# vi /etc/httpd/conf/httpd.conf

---ファイルの中身---

DirectoryIndex index.html index.html.var index.htm index.php index.cgi

-------------------
このように書き足したら保存しましょう。

2.httpdを再起動します。
# /etc/rc.d/init.d/httpd restart


これで完了です。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

Linux(CentOS,Fedora)でWEBサーバの怪

2009年02月05日

Apacheを使ってWEBサーバを作る方法です。これがあればhttp://サーバのIPアドレス/でHPを作ったりファイルを公開したり出来るようになります。
最終的にIPアドレスになれば良いのでドメインがあればドメインでも可能です。


導入手順
1.まずApacheをインストールします。
# yum install httpd

2.とりあえず使えるようにするために最低限の設定をします。
/home/htmlディレクトリをhttpで公開する設定です。

# vi /etc/httpd/conf/httpd.conf

---ファイルの中身---

これはサーバ本体の場所なので変えてはいけません。
ServerRoot "/etc/httpd"

#httpで公開するディレクトリを指定
DocumentRoot "/home/html"


#ページの文字コードを指定。
#・全てのページの文字コードを指定する場合。
AddDefaultCharset UTF-8 #unicode
(AddDefaultCharset Shift_JIS #シフトJISの場合はこっち)
#ページごとにMETAタグで文字コードを指定する場合
AddDefaultCharset none

---------------------
とりあえず、これで最低限設定しました。

3.Firewallに穴を開けます。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport http -j ACCEPT
設定保存
/etc/rc.d/init.d/iptables save
火壁再起動
/etc/rc.d/init.d/iptables restart

4.httpdを起動します。
# /etc/rc.d/init.d/httpd start
(設定反映の場合はrestart)

5.自動起動するようにする。
# chkconfig httpd on

これで完了です。外部に公開する場合はルータの80番ポートを開けましょう。これで外部からもアクセス出来ます。


その他HTTP設定
WEBサーバ(Apache)でインデックスファイル形式を追加の怪
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

FTPサーバでPASVモードの怪

2009年02月05日

FTPサーバ導入については下
CentOSでFTPサーバの怪

そもそもPASVモードとは。

FTPの通常通信ではクライアントからサーバ⇒サーバからクライアントという手順を踏んで接続を確立します。
なので、クライアントがFirewallの内側にありFTPを拒否してる場合通常モードでは接続を確立出来ません。
そこで出来たのがPASV(パッシブ)モード通信です。
PASVモード通信ではクライアントからサーバ⇒クライアントからサーバという確認方法で一方向への流れしかありません。そのお陰でFirewallの内側からも接続を確立出来るようになります。

今回はVSFTPDでPASVモードを使う手順です。使用方法はあまりに簡単です。

手順
1.VSFTPDの設定ファイルにPASVモード有効設定を書き足しましょう。
# vi /etc/vsftpd/vsftpd.conf

---ファイルの中身---
〜末尾

#PASVモード有効
pasv_promiscuous=YES

#PASVモードで使うポートの範囲
pasv_min_port=50000 #最小
pasv_max_port=50005 #最大
-------------------

※開けるポートはFTPサーバを使用するユーザの総定数で適当な値にしましょう。

2.設定は終わったのでVSFTPDを再起動します。
# /etc/rc.d/init.d/vsftpd restart

3.PASVモードが使うポートの穴をFirewallに開けましょう。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 50000:50005 -j ACCEPT

設定保存
# /etc/rc.d/init.d/iptables save

4.後はルータのポートも忘れず開けましょう。
※もし、WAN─ルータ─サーバという構成の場合は追記に進んでください。


これでFFFTPなどでPASVモードにチェックを入れて通信する事が出来ます。


<追記>
PASVモードの場合1回目の通信で、2回目は何処に通信すれば良いのかをクライアントPCに教えます。普通はNICに割り当てられているIPアドレスを自動取得してクライアントに教えるのですが上で書いたようにルータなどでプライベートアドレスが割り振られている場合はプライベートアドレスを返してしまう場合があるようです。(何故かうまく行く時もありますが。)
そこで/etc/vsftpd/vsftpd.confの最後に以下を書き足しましょう。
[固定IPアドレスの場合]
pasv_address=ルータのWAN側IPアドレス

[非固定IPアドレスでDDNSを使用している場合]
pasv_addr_resolve=YES
pasv_address=ドメインアドレス

ドメインアドレスを使う場合はpasv_addr_resolveを必ず有効にしましょう。でないと下のエラーが出ます。
500 OOPS: invalid pasv_address: //
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

CentOSでFTPサーバの怪

2009年02月04日

微妙に苦労しました。慣れると楽です。

導入手順
1.FTPサーバをインストールします。
# yum install vsftpd

2.vsftpdの設定をします。設定ファイルは一つで楽なのですが、設定によって外部ファイルの役割が変わる仕様なのでまずは手順通りに設定して後から弄りましょう。
# vi /etc/vsftpd/vsftpd.conf

---ファイルの中身---

YESにすると匿名ユーザのログインを許可。
anonymous_enable=NO(推奨)

ローカルユーザ(Linuxユーザ)のログイン許可。
local_enable=YES

ローカルユーザのumask設定(パーミッションのビットマスクっぽい)
local_umask=022

YESにすると接続転送ログを保存する。
xferlog_enable=YES
保存場所
xferlog_file=/var/log/vsftpd.log
ログ保存するためにはここをNOにする。
xferlog_std_format=NO

アスキー転送を許可。許可しないと後々苦労します。
ascii_download_enable=YES
ascii_upload_enable=YES

Activeモード時のポート(変えてはいけない。)
connect_from_port_20=YES

FTPサーバのバージョンを隠す場合
ftpd_banner="適当な文字列が表示される"

デフォルトでホームディレクトリより上にアクセス出来ない。(※重要)
chroot_local_user=YES
リストファイルで許可する。NOにするとリストファイルで禁止する。
chroot_list_enable=YES
項目が無い場合は足しましょう。
上のリストファイル指定
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリ削除許可
ls_recurse_enable=YES

ユーザ制限設定(※重要)
NOにするとユーザ制限一切しない。
userlist_enable=YES
上がYESの場合有効。NOだとリストファイルに書かれたユーザのみログイン許可
YESだとリストに書かれたユーザのみ規制。
userlist_deny=NO
リストファイル指定
userlist_file=/etc/vsftpd/user_list

ユーザごとにホームディレクトリを設定するファイルを置くディレクトリ指定
user_config_dir=/etc/vsftpd/user_conf

--------------------


PASV設定は次の機会にします。
FTPサーバでPASVモードの怪

3.設定ファイルで指定したファイル達を作り設定します。
# cd /etc/vsftpd
# vi chroot_list
---ファイルの中身---
#ホームフォルダより上層にアクセス出来るユーザを指定
#基本は空ファイル
aaa
bbb
ccc
-------------------


# vi user_list
---ファイルの中身---
#色々書いてあるけどここは許可するユーザ設定にしたので
#全てのユーザをコメントアウトしてログインするユーザを書き足しましょう。
#root
sis
-------------------


# vi ftpusers
---ファイルの中身---
#ここに書いてあるユーザは設定に関係無くログイン出来ない。
root

--------------------


ユーザごとにホームディレクトリを設定する。
# mkdir /etc/vsftpd/user_conf
# cd /etc/vsftpd/user_conf
# vi sis(ユーザ名)
---ファイルの中身---
local_root=/home/html/sis(FTPのホームディレクトリパス)
-------------------



4.Firewallに穴を開けましょう。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport ftp -j ACCEPT
設定保存
/etc/rc.d/init.d/iptables save
火壁再起動
/etc/rc.d/init.d/iptables restart

5.VSFTPDを起動しましょう。
/etc/rc.d/init.d/vsftpd start
(設定変更の場合はrestart)

後はFFFTP等でアクセスするだけです。
PASVモード設定をしてないのでそのチェックを外しましょう。

最後にホームディレクトリのパーミッションに注意しましょう。
Linuxでログインして書き込めるようにしないとFTP上でも書き込めません。
chgrpとかchmodで検索すると良いです。


このままFTPサーバを外部に公開すると通信した物は簡単に読み取れてしまいます。もし外部に公開する場合は下の記事に進みましょう。

FTPサーバにSSL通信を導入の怪


[追記]
FFFTP ver1.17 and 1.96dにてファイル所有者が違うとファイルが表示されなかったり自分が所有者なのに表示されないという不具合があるのでおかしい場合は違うソフトを使いましょう。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする