接続元を制限する

/etc/hosts.allow、/etc/hosts.deny を編集することで簡単に
接続元を制限することができます。


/etc/hosts.allow

#
# hosts.allow   This file describes the names of the hosts which are
#               allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
sshd: 192.168.0.


/etc/hosts.deny

#
# hosts.deny    This file describes the names of the hosts which are
#               *not* allowed to use the local INET services, as decided
#               by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!
sshd: ALL


上記は、hosts.deny で全てのホストからログインを拒否し、hosts.allow で192.168.0.xx
からのログインを許可している。
つまり、結果としては192.168.0.xx 以外からのログインは認めないという設定となる。

不要なサービスを停止する

一応外部への公開を考えているので、進入されるリスクを少しでも減らすように
不要なサービスを停止する。公開して後悔しな・・・。

稼動しているサービスを確認する

service --status-all

明らかに不要なサービス

apmd ノートPC用電源管理
isdn ISDN接続関連
pcmcia ノートPC用PCMCIA関連


Webサーバーに不要なサービス
(インストール時の設定によりもともと存在しないものもある)

nfs UNIX間ファイル共有
netfs 起動時ネット経由NFS、SMB、NCPマウント
nfslock nfs内部のファイルロック
rhnsd RedHatNetwork
gpm コンソール用マウス
portmap RPC接続のTCPマッピング
cups プリンタキュー処理

サービスを停止する

OS起動時にサービスが起動されないように以下のようにして
サービスを停止させる。

# chkconfig telnet off
# chkconfig --list telnet
telnet          0:オフ  1:オフ  2:オフ  3:オフ  4:オフ  5:オフ  6:オフ

Apacheのインストール

Apacheyumでインストールする

# yum install httpd 

/etc/httpd/conf/httpd.conf の編集

CGIスクリプトを実行できる様にする
AddHandler cgi-script .cgi

○デフォルトキャラセットを無効にする
AddDefaultCharset Off

○管理者のメールアドレスを設定する
ServerAdmin a@b.c

○サーバ名を設定する
ServerName adarah.adarah.dyndns.org

○エラーメッセージ出力時にフッタを表示しない
ServerSignature Off

○サーバのバージョン情報をヘッダーへ表示しない
ServerTokens ProductOnly

Webサーバを稼動する

# /etc/rc.d/init.d/httpd start

OS起動時にapacheを起動する

# chkconfig --level 3 httpd on
# chkconfig --list httpd
httpd           0:オフ  1:オフ  2:オフ  3:オン  4:オフ  5:オフ  6:オフ

TomcatをSSL経由でつかう

証明書のキーストアを用意する

現在、TomcatではJKSフォーマット(※1)のキーストアしか扱えない。

※1.Java標準の"Java KeyStore"フォーマットであり、keytoolコマンドラインユーティリティで生成されるフォーマット。

鍵の作成方法
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA

Tomcatの設定ファイルを編集する

server.xmlを編集し、SSLコネクタのコメントアウトを外す。
後、keystoreFile属性(※2)とkeystorePass属性(※3)の記述を追加した。

※2.keystoreFile属性はTomcatの実行ユーザのホームディレクトリ上に.keystoreファイルがあれば記述の必要はない。
※3.keystorePass属性はデフォルトのパスワード(changeit)であれば記述の必要はない。

    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    <Connector port="8443" maxHttpHeaderSize="8192"
               keystoreFile="/home/griffin/.keystore"
               keystorePass="tomcat"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />

server.xmlの編集後はTomcatを再起動する。

SSL経由でアクセスする

以下のURLのようにアクセスするとSSL経由でTomcatのトップページが出てくるはず。

https://192.168.0.2:8443/

【参考文献】
The Apache Tomcat 5.5 Servlet/JSP Container - SSL Configuration HOW-TO

CVSをSSH経由で使う

CVSSSH経由で使うように設定した際の覚書。

SSHプロトコルのバージョンはバージョン2を使用。
(Eclipse3.0からSSH2接続のプラグインが標準で搭載されている。)

秘密鍵はOpenSSH形式である必要がある。
puttyで鍵を作った場合はOpenSSH形式へ変換する。)

eclipseの設定
 ウィンドウ-設定-チーム-CVS-SSH2接続メソッドから、
 SSH2ホームと秘密鍵の格納先を指定。

 ■SSH2ホーム
  C:\Documents and Settings\ユーザ名\.ssh\

 ■秘密鍵
  C:\Documents and Settings\ユーザ名\.ssh\id_rsa

  ※.試しに別のディレクトリへ鍵を置いてみたのだが、
    認証エラーになってしまった。。
    鍵の場所なんて絶対パスで指定しているのに何故だろう。。。

リポジトリー・ロケーションの登録
 「CVSリポジトリー・エクスプローラー」のパースペクティブを開く。
 リポジトリー・ロケーションを登録する。

 接続タイプは「extssh」を選択する。
 パスワードはあとでパスフレーズを入力するので不要。
 サーバエンコードで、サーバで使用されるエンコードを指定する。
 (しないとコミット・コメントが文字化けする。)