2月 212009
 

自宅 Linux さんのセキュリティ設定メモ。

SSH 編。
公開, 秘密鍵をつくってパスワードによるログインを止める。
SSH ブルートフォースアタック対策の一環。
参考:総当たり攻撃

環境:
サーバ CentOS 5.2 ( IP 192.168.11.30 )
クライアント iMac 10.5.6

クライアント:鍵を作成。

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/name/.ssh/id_dsa): /Users/name/.ssh/linux_dsa 
Enter passphrase (empty for no passphrase): ちゃんと入力する。
Enter same passphrase again: もちろんここも。

クライアント:公開鍵と秘密鍵が作られたことを確認。

$ cd ~/.ssh
$ ls
linux_dsa linux_dsa.pub

クライアント:SSH 時に認証される秘密鍵のありかを設定。

$ cd ~/.ssh
$ vi config
Host 192.168.11.30
IdentityFile ~/.ssh/linux_dsa

クライアント:公開鍵をサーバにコピー

$ scp linux_dsa.pub 192.168.11.30:

サーバー:ログインして、認証ファイルを作る

$ ssh 192.168.11.30   # サーバにログイン
$ mkdir .ssh
$ cat linux_dsa.pub >> .ssh/authorized_keys
$ rm linux_dsa.pub
$ chmod 600 .ssh/authorized_keys
$ chmod 700 .ssh

サーバー:root になって、SSH の設定を変更

$ su -
# vi /etc/ssh/sshd_config
PermitRootLogin no  # ルートでログインさせない。
PasswordAuthentication no  # パスワードでログインさせない(鍵認証のみ)
PermitEmptyPasswords no  # 空パスワードを許さない
 
# /etc/init.d/sshd reload
sshd を再読み込み中:                                       [  OK  ]

サーバー:ローカルPCからのみ SSH 接続を許可

# vi /etc/hosts.allow
sshd: 127.0.0.1  # ループバックを許可
sshd: 192.168.11.  # ローカルPCを許可
 
# vi /etc/hosts.deny 
sshd: ALL  # 基本全員を無許可

クライアント:SSH 接続を試す

$ ssh 192.168.11.30

接続できたら成功なり。

参考:SSHサーバー構築

 

libevent でチャットサーバのサンプルを書いたメモ。

チャット送受信のプロトコルを決めるなどして、少しだけまじめ。

libevent-chat-sample-0.1.tar.gz

インストール

事前に libevent が必要。インストールはこちら参照

$ tar zxvf libevent-chat-sample-0.1.tar.gz
$ cd libevent-chat-sample-0.1
$ ./configure --prefix=/path/to/install --with-libevent=/path/to/libevent
$ make
$ make install

使用方法: サーバ

$ cd /path/to/install/bin
$ ./libserver

使用方法: クライアント

$ cd /path/to/install/bin
$ ./libclient