securityの最近のブログ記事

携帯サイトのUserAgent偽装対策:CodeZine

各キャリアの中継サーバのIPアドレス帯域をチェックする。

カテゴリー:

設定の確認
iptables -L
設定の削除
iptables -F
設定の保存
service iptables save
設定例
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

カテゴリー:

カテゴリー:

固有IDのシンプル・シナリオ

固有IDのシンプル・シナリオ

カテゴリー:

1. ssh-keygen コマンドで鍵ペアを作成する

$ ssh-keygen -t rsa
秘密鍵の保存先を聞いてくるので、デフォルトのままEnter。 パスフレーズを2回入力。 すると、以下の鍵ペアのファイルが ~/.ssh/ に作成される。

id_rsa
id_rsa.pub

2. SSHサーバに公開鍵を登録する

ユーザのホームディレクトリに1.で作成した公開鍵を転送する。(FTPで転送してもよい。)
$ scp ~/.ssh/id_rsa.pub user@host
サーバ側で、catコマンドとリダイレクションを使って転送した公開鍵を登録する。(登録するファイルは ~/.ssh/authorized_keys)
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
「~/.ssh」ディレクトリと「~/.ssh/authorized_keys」はオーナーだけに読み書き可能なようにパーミッションを設定する。
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

* クライアント側のユーザのホームディレクトリのパーミッションにも注意する。所有者以外の書込み権を設定してあるとだめ。
たとえば、/home/hogeのパーミッションが777の場合、公開鍵認証でsshログインしようとすると、
Permission denied (publickey,gssapi-with-mic).
というエラーになる。この場合、サーバ側のログ(/var/log/secure)では
Authentication refused: bad ownership or modes for directory /home/hoge
となっていて、/hoem/hogeのパーミッションに問題があるということ。
所有者以外の書込み権を設定してあるとだめ。700、711、755にすればOK。

3. 公開鍵認証方式でログインする

$ ssh -l user host

パスフレーズを聞いてくるので、ssh-keygenコマンドで指定したパスフレーズを入力する。
接続先サーバのパスワードではないことに注意

4. クライアント側の設定

id_rsa ファイルをクライアント側にコピーする。
例:
ユーザのホームディレクトリ\.ssh

* 秘密鍵のパーミッションに注意。秘密鍵のパーミッションがopenすぎるとだめ。 以下はmacosxでのエラーの例。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/xxx/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/xxx/.ssh/id_rsa
Permission denied (publickey,gssapi-with-mic).

id_rsaを600にすればOK。

cwRsyncで公開鍵認証を使用する場合は、環境変数HOMEの下の「.ssh」(known_hostsファイルが作成されるディレクトリ)に秘密鍵ファイル(id_rsa)を置く。
例:
HOME=/home/pistolfly
でcygwinがD:\cygwinの場合、
D:\cygwin\home\.ssh
に秘密鍵ファイルを置く。

(rsyncの-eまたは--rshオプションのsshコマンドで-iオプションで秘密鍵のパスを指定してもよい。)

rsyncしてパスフレーズの入力を促されたところ
C:\sfprojects\reserve>symfony sync production
>> exec      rsync --progress --dry-run -azC...s.net:/usr/local/share/reserve/
Enter passphrase for key '/cygdrive/c/Documents and Settings/pistolfly/.ssh/id_r
sa':

TeraTermでは、ログイン時に「RSA/DSA鍵を使う」を選択して、秘密鍵に上記ディレクトリの秘密鍵ファイルを指定して、秘密鍵のパスフレーズを入力する。

5. パスワード認証を許可しないようする

/etc/ssh/sshd_config を編集

PasswordAuthentication yes

PasswordAuthentication no
にする。

rootのログインも禁止しておく。

PermitRootLogin no

root権限でsshd を再起動する。

$ /etc/init.d/sshd restart

参考:

FedoraCore5ビギナーズバイブル11-2-2

最終回 セキュアなSSHサーバーを構築する:ITpro

リモート接続に SSH を使う

@IT:鍵交換方式のsshでアクセスするには

カテゴリー: