First Creation : 2006/11/08 Last Update : 2006/11/09 |
||||
Bloody Mary > Technical Notes > Plamo Linux 覚書 2.1 - sshd | ||||
Plamo Linux 覚書 2.1今回は遠隔で Linux を操作 ( ssh ) するための SSHD 設定を行う。 SSHD を xinetd 経由で立ち上げるLinux の場合、サービスは Standalone で常時起動しているか、要求があったときだけ xinetd ( 昔使われていた inetd のグレードアップバージョン ) で立ち上げるかを選択することができる。( そういう言い回しが正確かどうかは分からないが ) 始め 「 SSHD は Standalone で立ち上げていたほうが、接続時にストレスがなくていいよなぁ」 と思っていたものだが、2006/11 時点で .kr やその他の国からのアクセスがアフォみたいに多くなって来たので、 xinetd でアクセス制限をかけたいと思い始めた。もちろん iptables でパケットフィルタもしていて、ある時間内に何回も ssh されるとその後 REJECT する、という設定にはなっている。しかしホスト ( .kr , .cn , etc.. ) 単位で拒否りたいので、 xinetd を使うことに。 使ってみて分かったのだが、 xinetd 経由で立ち上がっても、接続時のタイムラグはまったく感じられない。というわけで、このページでは xinetd を前提とした sshd の設定を行う。 1. SSHD の自動起動を STOPPlamo Linux は、/etc/rc.d/rc.inet2 によって自動的に sshd が起動するようになっているので、まずはこれを止める。 # vi /etc/rc.d/rc.inet2 # 23 行目付近をコメントアウト 22 # SSH server 23 #SERV="$SERV sshd" 2. sshd デーモン停止# ps aux | grep sshd # sshd のプロセスが表示される # kill sshdのプロセス番号 3. sshd_config の設定# vi /etc/ssh/sshd_config # 以下、 sshd_conf で有効になったところを抜粋した。 Protocol 2 PermitRootLogin no # ssh1 RSAAuthentication no # ssh2 PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts RhostsRSAAuthentication no # To disable tunneled clear text passwords, change to no here! PasswordAuthentication no PermitEmptyPasswords no UsePAM no PermitUserEnvironment yes # override default of no subsystems Subsystem sftp /usr/libexec/sftp-server 赤文字のところは非常に重要なので、このままの設定にすること。設定項目は順不同である。意味合いとしては、次の通り。
4. 鍵の作成例えば、 Plamo Linux で作業しているユーザを hoge としよう。もし root しかユーザがいないのであれば、一般ユーザの hoge を作成する。 次に、hoge のコマンドラインから鍵を作る。 % ssh-keygen -t rsa -b 1024 # /home/hoge/.ssh にできた id_rsa.pub の名前を変更 % mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys # 読み取られちゃマズいので、自分以外に読み書きされないようにする % chmod 600 ~/.ssh/authorized_keys 同時に、 /home/hoge/.ssh に id_rsa ( 秘密鍵 ) もあるはずなので、これを FD にコピーしたりして、クライアント PC に保存しなければならない。 クライアント PC に関しては後日ということで割愛させていただく。Linux ( Client ) ⇒ Plamo Linux でよければ、 % ssh hoge.com -i id_rsa (今回移動したファイルを指定) -l hoge ( hoge でログイン) -2 ( Protcol 2 ) これで SSH で接続できるはずだ。( 赤文字はコメントなので入力しないよう ) 5. /etc/pam.d/sshd/etc/pam.d/sshd をどうするかだが、消してしまってもかまわないだろう。後で気が変わってパスワード認証を許可したくなったら使うことになるだろうが、必要になったら以下をコピペして使えばいい。普通の UNIX 認証用なので、環境によっては動かないかもしれないが。 #%PAM-1.0 auth required /lib/security/pam_unix.so shadow nodelay auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_unix.so shadow nullok use_authtok session required /lib/security/pam_unix.so session required /lib/security/pam_limits.so 以上で sshd の設定は完了した。次回は xinetd の設定を行う。 |
||||