トップページunix
1001コメント328KB

SSH その4

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
SSHに関する情報交換のスレッドです。
FAQ、リンク集は >>2-5 あたり。

過去ログ
 Part1:http://pc.2ch.net/unix/kako/976/976497035.html
 Part2:http://pc.2ch.net/test/read.cgi/unix/1028157825/ (dat落ち)
  春山さんのとこ→ http://www.unixuser.org/%7Eharuyama/security/openssh/dat/pc.2ch.net_80__unix_dat_1028157825.html
 Part3:http://pc5.2ch.net/test/read.cgi/unix/1058202104/
0611名無しさん@お腹いっぱい。2005/10/07(金) 00:52:26
空パスフレーズ
0612名無しさん@お腹いっぱい。2005/10/07(金) 09:15:42
>>610
鍵認証時のパスフレーズなんておまけみたいな物。
あってもなくても大して変わらん。

秘密鍵さえ確実に保存しておけば。
0613名無しさん@お腹いっぱい。2005/10/07(金) 09:21:43
鍵のパス空にしてるけどやばいかな?
0614名無しさん@お腹いっぱい。2005/10/07(金) 09:29:07
レスを読めない人
0615ヽ(´ー`)ノ ◆.ogCuANUcE 2005/10/07(金) 09:32:23
ssh-agent とか。

パスフレーズより、鍵の bit 長の方が重要なんじゃなかったっけ?

むしろ、パスフレーズの入力無しでログインするってことは、PC を放置してて
誰かに勝手にログインされても分からないということなので、そこは気を付け
た方が良いね。そういう意味では、パスフレーズがあった方が気休めにはなる。
06166102005/10/08(土) 20:08:46
俺は>615の言うとおりと思ってる。
あと仮に公開鍵を盗まれても、もう一つパスフレーズという鍵みたいなもんがあるから、
クラックするのにもう一手間かかるもんね。まぁ無いよりはましって事で。
>613
やっぱり簡単にログインできる魅力と
クラックされてどれぐらい困るかの問題じゃないかなぁ?
にしてもパスフレーズつければ完璧って事ではないけどね。

#パスフレーズは俺の自己満足なのかなぁ?
0617名無しさん@お腹いっぱい。2005/10/09(日) 01:40:20
自動化処理でいろいろ面倒なのでパスフレーズは無しにしてる。
0618名無しさん@お腹いっぱい。2005/10/09(日) 02:05:33
>>616
公開鍵は盗まれても問題ない
0619名無しさん@お腹いっぱい。2005/10/13(木) 00:06:20
>>607
Kerberos使う。
ログインもKerberosでやって、そのとき発行されたチケットでsshに突撃。

SSOって奴だ。
0620名無しさん@お腹いっぱい。2005/10/19(水) 02:19:57
SSHのブルートフォースが毎日毎日続くので対策を検討しています。
簡単な対処法などあったら教えてください。
OSはRed Hat Linux 9。openssh-3.5p1-11.2.legacy。openssl-0.9.7a-20.4.legacyです。
一定回数以上の接続リトライで通信を遮断とか、
リトライ間隔の調整が、容易に行えるrpmパッケージがあると最高なのですが。
0621名無しさん@お腹いっぱい。2005/10/19(水) 02:21:42
syslogをパイプで受けてファイアウォールのフィルタをon/offするツールでも
作れば簡単にできそうだけど。
0622名無しさん@お腹いっぱい。2005/10/19(水) 02:31:59
>>621
> syslogをパイプで受けてファイアウォールのフィルタをon/offするツールでも
> 作れば簡単にできそうだけど。

ブルートフォースはrootユーザーから始まるようなので、syslogのAuthを
パイプで受けとって、rootのログインの試みを検出した時点から、
ポートを一定時間閉じるスクリプトを書けばいいんだけど・・・
・・・作るのがメンドイのですよ。

ポートノッキングをrpmパッケージで導入した方が簡単ですかねぇ。
0623名無しさん@お腹いっぱい。2005/10/19(水) 02:38:30
メンドイってあんた、そんな何時間もかかるものじゃあるまいし……。
こうやって質問してる間に書けちゃうだろうに。
0624名無しさん@お腹いっぱい。2005/10/19(水) 02:53:55
アクセスごとにポートの開け閉めをしていたら、競合状態を
作り出しちゃいそうだなぁ、設計がめんどうだなぁと。
0625名無しさん@お腹いっぱい。2005/10/19(水) 02:58:24
つiptablesのipt_recentモジュール
0626名無しさん@お腹いっぱい。2005/10/19(水) 03:05:59
620タソが穴のあるスクリプト書いちゃうかもしれんから、
もし既に書いてるなら参考に見せたげりゃーいいのに。
0627名無しさん@お腹いっぱい。2005/10/19(水) 09:34:32
ふつーはもっと下のレベルでアクセス制限するなりポート変えるなりすりゃいいだけだろ
0628名無しさん@お腹いっぱい。2005/10/19(水) 09:39:09
swatch -> tcp_wrapper でどうよ ?
0629名無しさん@お腹いっぱい。2005/10/19(水) 17:32:15
デフォルトの22番ポートを使わないようにしてから
アタックなんて一切無いんだが。
0630名無しさん@お腹いっぱい。2005/10/19(水) 19:04:09
それメンドイと思ったけど、
普通は.ssh/configの定義名でアクセスするから問題ないか。
0631名無しさん@お腹いっぱい。2005/10/19(水) 19:07:25
それに頼ると出先にいったときに忘れてたりする
0632名無しさん@お腹いっぱい。2005/10/20(木) 09:10:43
>>629
おれもそれで自宅のは運用してるけど、
一般的にはアレゲな方法だと思われてるよね。
0633名無しさん@お腹いっぱい。2005/10/20(木) 12:21:28
>>632
なんでアレゲなの?
0634名無しさん@お腹いっぱい。2005/10/20(木) 12:24:15
そもそもアレゲってドレゲよ?
0635名無しさん@お腹いっぱい。2005/10/21(金) 06:11:40
エロゲの親戚?
0636名無しさん@お腹いっぱい。2005/10/21(金) 22:26:48
>>633
おれにもよくわからん。
httpd のポートを同じように 80 から変えるのは、
(会社の)proxy の許可が通らなかったりとか、
まー、色々あるから、避けられるのは理解できるんだけどネ。
0637名無しさん@お腹いっぱい。2005/10/21(金) 23:15:01
アレゲって何?

スラドのコピペ
  ↓
0638名無しさん@お腹いっぱい。2005/10/21(金) 23:28:12
↑ .| .┌┐
│ .└‐┘└┐
└──┐  │
      └─┘
0639名無しさん@お腹いっぱい。2005/10/21(金) 23:56:19
>>620
ふつうにportsentryとかdenyhostsとか
0640名無しさん@お腹いっぱい。2005/10/22(土) 03:19:19
knockdでコンコン
0641名無しさん@お腹いっぱい。2005/10/22(土) 23:16:15
>>620
.jp以外を問答無用で蹴る。これでぐっと減ります。
0642名無しさん@お腹いっぱい。2005/10/23(日) 03:40:21
hosts.denyとかより下位レイヤで蹴ったほうが負荷が少ないよ。
うちは .cn .kr .hk .tw に属するIPアドレス手に入れて、
ssh に限らずざっくり全部拒否。
0643名無しさん@お腹いっぱい。2005/10/23(日) 08:01:03
>>642
.tw はまずいだろ
0644名無しさん@お腹いっぱい。2005/10/23(日) 11:49:40
>>643
なんで?
0645名無しさん@お腹いっぱい。2005/10/23(日) 14:41:33
マザーボード資料とか見るとき?
0646名無しさん@お腹いっぱい。2005/10/23(日) 14:48:49
こちらから接続にいくTCPくらいはステートフルに通すだろうから
全然問題ないのでは。
0647名無しさん@お腹いっぱい。2005/10/23(日) 15:18:40
台湾に出張に行ったときに困る
0648名無しさん@お腹いっぱい。2005/10/23(日) 15:21:43
FTPのように、ユーザーが自分のホームディレクトリ以上に行けないようにすることは出来ますか?
0649名無しさん@お腹いっぱい。2005/10/23(日) 15:21:57
>>647
そのときは開ける、または君のところは開けるでいいじゃん?
0650名無しさん@お腹いっぱい。2005/10/23(日) 16:15:40
>>648
/bin や /usr や /usr/local も見えなくなるけどいいのかね?
0651名無しさん@お腹いっぱい。2005/10/23(日) 16:18:28
Webページのみ利用のユーザーにFTPの代わりに提供したいのです。
0652名無しさん@お腹いっぱい。2005/10/23(日) 16:20:37
chroot(概念を理解)とかjail(chroot環境構築のツール)とかを
調べてください。
0653名無しさん@お腹いっぱい。2005/10/25(火) 11:25:27
.cn .kr .hk に属するIPを教えて
0654名無しさん@お腹いっぱい。2005/10/25(火) 12:00:17
>>653
つ ttp://www.blackholes.us/
週一くらいで更新されているからrsyncでも使って自動updateのshellでも書けばいい
0655名無しさん@お腹いっぱい。2005/10/26(水) 21:00:30
putty に関する質問はここでよろしいでしょうか?
0656名無しさん@お腹いっぱい。2005/10/26(水) 21:31:39
>>655
Putty その2
http://pc8.2ch.net/test/read.cgi/unix/1084686527/
0657名無しさん@お腹いっぱい。2005/10/26(水) 22:41:14
>>656
過疎ぎみのようですがそっちいってきます.
0658名無しさん@お腹いっぱい2005/10/26(水) 23:27:57
SSHの通信内容を復号化してそのまま読みたいんですが、どうやったらできますかね?
デバッグモードとかじゃなくて、ペイロードを直接そのまま見たいんです。
0659名無しさん@お腹いっぱい。2005/10/27(木) 00:18:49
暗号鍵を手に入れて復号。
06606582005/10/27(木) 01:22:02
>>659
そういうことではなくて、通信内容を表示してくれる
sshクライアント等が欲しいんです。
どういう風に通信が行われているかはRFC読んでも
いまいち実感がわかないので、実際に見てみようかなと。
0661ヽ(´ー`)ノ ◆.ogCuANUcE 2005/10/27(木) 01:46:10
言ってる意味が良く分からんけど、ethereal とかか?
0662名無しさん@お腹いっぱい。2005/10/27(木) 02:52:44
>>660
NULL 暗号化を実装したサーバとクライアントを用意してがんばる。
06636582005/10/27(木) 05:11:59
説明が足りませんでしたね。
実は今SSHの通信部分を実装してるんです。
実際のパケットも観察してみようと思ったんですが、当然ながらそのままでは暗号化で読めません。
で、どうにかして見られないかなと思ったわけです。

>>662
なるほど。ただちょっと面倒ですな…
0664名無しさん@お腹いっぱい。2005/10/27(木) 12:39:51
opensslの関数をフックして通信内容をdumpするsoを作って、LD_PRELOADで読み込ませる。(socksみたいな感じで)
0665名無しさん@お腹いっぱい。2005/10/27(木) 12:40:45
いま実装中ってことならおそらく ver.2 なんだろうけど、ver.1 でもいいんな
ら dsniff の sshmitm を debug mode で間に噛ませてやれば復号した通信内容
を dump してくれた筈。
0666名無しさん@お腹いっぱい。2005/10/27(木) 12:45:43
>>648

scpやsftpだけで良ければこれで簡単に実装できます。
つ rssh http://www.sdri.co.jp/rssh/index.html.ja

shellが無いとダメ?
0667名無しさん@お腹いっぱい。2005/10/27(木) 18:41:51
接続先サーバのホストキーが変わったときに
~/.ssh/known_hosts を新しいので上書きさせる方法ってない?

サーバ構築中で再インストールしたときとかで
攻撃によるものじゃないのが明らかなときに
いちいちエディタで開いて削るのはめんどくさい。
HashKnownHosts してるとどれを削ればいいのかわからないし。
0668名無しさん@お腹いっぱい。2005/10/27(木) 22:24:55
>>667
構築中のサーバ専用の known_hosts ファイルを UserKnownHostsFile で指定
すればいいんじゃない? 変わったら rm すればいい
0669名無しさん@お腹いっぱい。2005/10/28(金) 00:43:55
>>668
あー、それいいね。
やってみる。
どうもー。
0670名無しさん@お腹いっぱい。2005/10/28(金) 00:58:57
構築中でもなんにしろ、known_hosts を勝手に上書きするのは
よろしくないと思うけど
0671名無しさん@お腹いっぱい。2005/10/28(金) 09:32:53
>>620
# route add -host IPアドレス 127.1 -blackhole
0672名無しさん@お腹いっぱい。2005/11/04(金) 14:01:26
age
0673名無しさん@お腹いっぱい。2005/11/05(土) 02:05:57
NTT-ADSLモデムNVの内側にあるマシン A を踏み台にして、
支店βのLANに属しているマシン B (アドレスはローカル) と、
支店γのLANに属しているマシン C (アドレスはローカル) で、
ファイルのやりとりを画策してます。
B から A に ssh でログインできることと、
C から A に ssh でログインできることは確認済です。
C -> A -> B とすれば、C から B が見えると思い、次のコマンドを実行しましたが、
connection refused でした。

B$ ssh -R 10022:localhost:22 A
C$ ssh -L 10023:A:10022 A
C$ ssh -p 10023 localhost

3番目のコマンドを実行すると、
channel 2: open failed: connect failed: Connection refused
となります。
計算機 A の sshd_config では GatewayPorts yes としています。
不思議なのは、NTT-ADSLモデムの内側にある マシン A を
物理的に違うところに運んで grobal address を持つマシンにすると、
うまくいくことです。

なぜなんでしょう?
0674名無しさん@お腹いっぱい。2005/11/05(土) 02:41:34
673 です。追記です。
モデムの静的IPマスカレードで、22,10000-番ポートをマシンA に振ってあります。
マシンA の sshd は OpenSSH_3.8.1p1 でっす。
0675名無しさん@お腹いっぱい。2005/11/05(土) 07:57:30
C からA にssh でログインして、

A$ ssh -p 10022 localhost

としてB にログインできるなら
C <-> A の経路が怪しい、ということになりますがどうでしょ。
0676名無しさん@お腹いっぱい。2005/11/05(土) 16:50:07
>>673-674
C$ ssh -L 10023:A:10022 A
これがまずいのだと思います。
マシンAから見ると「グローバルアドレスを持っているモデム」の10022/tcpに転送するということです。
そのモデムは内側からモデムの持っているグローバルアドレスでアクセスされた場合は、
静的IPマスカレードで内側に転送したりしないのでしょう。

C$ ssh -L 10023:localhost:10022 A
とすればうまくいくと思います。

また
B$ ssh -R 10022:localhost:22 A
のように、ループバックアドレスのみをlistenする場合は、GatewayPortsオプションで許可しなくてもいいみたいです。
http://www.unixuser.org/~euske/doc/openssh/jman/ssh.html
06776732005/11/05(土) 19:51:14
673です。大当たりでした。本当にありがとうございます。
>>675
その通りでした。で、
>>676
にて頂戴した方法で、期待通りの動作を確認することができました。
本当にありがとうございます。

C$ ssh -L 10023:localhost:10022 A
とすると、ここでの「localhost」は「A自身」なのでうまくいくと。
なるほど。この発想はまったくありませんでした。

また、ダメな例 (モデムの10022/tcpに転送) の解説も
私には非常に勉強になるものでした。完璧に誤解していました。

加えて、GatewayPorts no でもうまくいくことも確認できました。
はあー。ようやく寝られます。3日間悩みまくりました。
ありがとうございます。

あと、ついでに、嫁の妊娠が発覚しました。
今日は良いことだらけです。
0678名無しさん@お腹いっぱい。NGNG
>>677
login出来たのですね。おめでとう♪

彼女にloginできません
http://pc8.2ch.net/test/read.cgi/unix/1007136614/l50
にもご報告を(w
0679shin2005/11/11(金) 01:01:35
OpenSSH3.1で、無限ループ(セル)して20秒ごとに、接続が切れたら再接続を行います。
しかし、約2時間ほどになるとセルもSSHのプロセスも自動で切れてしまいます。
どなたか、その原因、わかれば教えてください。
(SSHクライアント、Linux、MQのメッセージやり取り)。
よろしくお願いします。
0680名無しさん@お腹いっぱい。2005/11/11(金) 01:03:06
接続が切れたら再接続できてないから
自動で切れるんじゃないの。
0681shin2005/11/11(金) 01:09:34
>接続が切れたら再接続できてないから
>自動で切れるんじゃないの。
ありがとうございます。
しかし、プロセスまで切れるのはなぜですか?
大体、2時間ほどで起こるのは、どこかに設定が問題ありますか?
この前は3日間はもんだいなかったんですが、
このSSHクライアントに接続したマシンを変えたら、起こりました。


0682名無しさん@お腹いっぱい。2005/11/11(金) 01:15:18
セルって何?
0683shin2005/11/11(金) 01:20:35
>セルって何?
たとえば、conn.sh です。
0684名無しさん@お腹いっぱい。2005/11/11(金) 01:22:21
なにそれ?
0685名無しさん@お腹いっぱい。2005/11/11(金) 01:23:32
ごめんなさい、いま手元にはソースはないですが、
while
if ***
ssh ***
else
sleep 20
end
の程度です。
0686名無しさん@お腹いっぱい。2005/11/11(金) 01:25:55
もしかしてシェルスクリプトのこと「セル」って言ってんの?
0687名無しさん@お腹いっぱい。2005/11/11(金) 01:28:25
>もしかしてシェルスクリプトのこと「セル」って言ってんの?
ごめんなさい。そうです。
起動したconnプロセスも、SSHプロセスも同時に切れるということです。
シェルスクリプトの内容は無限ループなのに…
0688名無しさん@お腹いっぱい。2005/11/11(金) 01:44:57
シェルスクリプトが間違ってんじゃないの。
0689名無しさん@お腹いっぱい。2005/11/11(金) 01:51:36
>シェルスクリプトが間違ってんじゃないの。
間違いはないはずです。間違ったら、はじめに起動できないと思います。


0690名無しさん@お腹いっぱい。2005/11/11(金) 01:54:54
遅くまで、ありがとうございました。
0691名無しさん@お腹いっぱい。2005/11/11(金) 03:11:24
セル!
セル!
セル!
0692名無しさん@お腹いっぱい。2005/11/11(金) 10:29:49
天下一武道会の時間ですか?
0693名無しさん@お腹いっぱい。2005/11/11(金) 11:17:40
>>689
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。
間違いはないはずです。〜〜〜ったら、〜〜〜と思います。


初心者がこう言う時、バグは大抵この場所に潜んでいる。
0694名無しさん@お腹いっぱい。2005/11/11(金) 11:50:35
昨日は遅くまでありがとうございました。
以下が実際シェルスクリプトのソースです。
よろしくお願いします。

#!/bin/bash
LOG=/home/xxxx/logs/ssh.log
LANG=
SSHCMD="ssh -v -p xxxx -l ${USER} -C -L 1415:localhost:1482"
while true
do
isAlive=`ps -auxwww | grep -i "$SSHCMD" | grep -v grep | wc -l`
if [ ${isAlive} -eq 0 ]; then
echo ${isAlive} 1>> ${LOG}
date 1>> ${LOG}
ssh -v -p xxxx -l ${USER} -C -L 1415:localhost:1482 -R 3482:localhost:1414
xxx.xxx.xx.xxx /usr/bin/sleep 1000 1>> ${LOG} 2>>&1 &
fi
sleep 20
done
0695名無しさん@お腹いっぱい。2005/11/11(金) 11:58:02
何がやりたいのかさっぱり分からんのだが(笑)。
0696名無しさん@お腹いっぱい。2005/11/11(金) 12:03:01
これは、SSHクライアントからSSHサーバーに接続するシェルスクリプトのソースです。
20秒ごとに、SSHプロセスを検索して、もし、SSHプロセスがなかったら、
もう一回、SSHの接続を行います。
0697名無しさん@お腹いっぱい。2005/11/11(金) 12:04:35
ちなみにSSHをずっと、つながっている状態にしたいということです。
0698名無しさん@お腹いっぱい。2005/11/11(金) 12:05:36
おれには分かるぞ。
OSが分からんが、シェル自体をnohup付で起動してやらないと駄目とかない?

というか、cronでいいじゃん、という気もするが。
プロセスチェックlsofなり(netstatなり)でportのLISTEN状況のチェックに変えて。
0699名無しさん@お腹いっぱい。2005/11/11(金) 12:15:14
OSはRedHatLinuxES2.1です。
nohup付、cronは使わない形にしたいです。nohupはうまくいかなかったです。
>プロセスチェックlsofなり(netstatなり)でportのLISTEN状況のチェックに変えて。
すいませんが、こちをちょっと、よくわからないですが、その方法を教えてもらいますか?
よろしくお願いします。
0700名無しさん@お腹いっぱい。2005/11/11(金) 12:19:12
あなた、外国の方ですか?
0701名無しさん@お腹いっぱい。2005/11/11(金) 12:19:51
そうですが、日本で仕事をしてます。
0702名無しさん@お腹いっぱい。2005/11/11(金) 12:21:55
sshで繋がってる状態にしたいけど、
別のセッションで断続的になっても構わないのね。
ちょっとかわった要望。
0703名無しさん@お腹いっぱい。2005/11/11(金) 12:45:02
>>702
意味が分からないんだが、sleep 1000でも、1000秒で切れるわけ
じゃないよ。ポートフォワーディング中はフォワードしてる
全セッションが終了するまでsshは待つけど、それは分かってて言ってる?
0704名無しさん@お腹いっぱい。2005/11/11(金) 12:46:37
たぶんautosshでも入れたら解決する問題のような
0705名無しさん@お腹いっぱい。2005/11/11(金) 13:06:24
>たぶんautosshでも入れたら解決する問題のような
autosshの実現方法は、どういうふうしたら、よいでしょうか?
その方法、よろしくお願いします。
0706名無しさん@お腹いっぱい。2005/11/11(金) 13:18:40
ホームページはここ
http://www.harding.motd.ca/autossh/
ここにRHEL2用のパッケージがある。
http://dag.wieers.com/packages/autossh/
0707名無しさん@お腹いっぱい。2005/11/11(金) 14:11:25
>>706
ありがとうございます。早速、autosshを試してみます。
一応、この検証としてはSSHサーバとSSHクライアントは何も変わらなくて
SSHクライアントに接続しているテストマシン(三日間発生してない)から
別の環境のマシン(2時間ほどで発生しますが、データの送受信量によって
発生頻度が変わります。)に変えたらこの問題が発生してます。
0708名無しさん@お腹いっぱい。2005/11/11(金) 14:17:02
>>694
ps で調べるなんてムダな気がするのは俺だけ?
これだけでええやん。

#!/bin/bash
while true
do
ssh (オプションなどは省略)
sleep 20
done
0709名無しさん@お腹いっぱい。2005/11/11(金) 14:27:10
>>708
これは、多分、無理だと思います。
SSHサーバー側で、もんく、ありましたので....
0710名無しさん@お腹いっぱい。2005/11/11(金) 14:29:37
>>709
なんで無理なん?
0711名無しさん@お腹いっぱい。2005/11/11(金) 14:39:29
>>710
そうです。始めはこれと似た方法でしましたが、SSHサーバー側で
なぜ、毎回、起動するのはいやだということでしたので....
■ このスレッドは過去ログ倉庫に格納されています