- 締切済み
ssh(telnet)強制切断方法について
クライアントからサーバに対しssh(telnet)接続をしているセッションを 時間帯にて強制切断させたいと考えております。 イメージ的には、クライアントからssh(telnet)にて サーバに接続しているターミナルソフト(TeraTerm等)の画面が、「消える」、 もしくは「タイムアウトにより動作不能」になるという状態を 描いています。 ご教授のほどよろしくお願いします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- anights
- ベストアンサー率72% (35/48)
#2の方のiptablesを使った場合、サーバ側では通信出来なくなったままのsshdのプロセスが残ってしまうのでsshd_configにClientAliveIntervalを設定しクライアントの生存チェックを行うようにした方が良いでしょう。ただし、プロトコルバージョン2のみサポートとなりますが。
- FoggyMountain
- ベストアンサー率21% (79/372)
SSHサービスを停止する方法だと、すべての利用者が使えなくなりますし、 当然システム管理者もSSHでアクセスできなくなります。 また、サービスの停止・起動はシステムに対する負荷も小さくないので あまりお勧めしません。 #2さんのSSHポートを閉じる方法だと、クライアントの接続元IPを指定して コネクションを強制切断することも可能ですし、iptablesの機能は カーネルに組み込まれているので、システムに対する負荷も小さいです。 よって、#1ではなく、#2さんの、iptablesでポートを閉じてコネクションを切断 する方法をお勧めします。
- anights
- ベストアンサー率72% (35/48)
#3です。言葉が足りませんでした。補足です。 制限する時間帯の開始時刻に#1の方が書かれているような方法を併用して下さい。
- FoggyMountain
- ベストアンサー率21% (79/372)
#3の方法では、質問者が要望する、認証済みのコネクションを切断することはできません。
- anights
- ベストアンサー率72% (35/48)
ネットワークでの制限は他の方が書かれているのでそれ以外で。 xinetdは接続時間帯制限が行えます。 ただ、sshdもということですのでpamによる認証時間帯に制限をかけるのが手としてあります。 これであれば、両方のサービスに制限がかけられるはずです。 設定については、参考URLを参照して下さい。
- xjd
- ベストアンサー率63% (1021/1612)
こんばんは。 質問とは少し違う方法ですが、 自宅のサーバでは、iptables (ファイアウォール)で時刻指定で許可・拒否しています。 月曜~金曜の8:30~17:30 のみ、SSHを許可するルール場合はこんな感じ。 # iptables -A INPUT --dport ssh -m time --timestart 8:30 --timestop 17:30 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT この応用で、指定時間にポート22(ssh)を開閉するルールを追加する事も出来ます。 iptablesは覚える価値があります。よろしかったら参考にしてください。
- kashih
- ベストアンサー率0% (0/4)
psをgrepしてkillするシェルコマンドを作ってcronに設定しては?