488びぼーろく; ssh portfoward を使ったメール送受信

を設定。職場は通常のssh接続を許可していないので、通常は外部からメールサーバーに直接接続することはできない。
ところが公開鍵暗号認証を用いたサーバーがひとつだけあり、そこへは外部からssh接続できるので、ssh portfowardingを利用してメールのやり取りができるように設定した。
(というか結構昔からできたはずだけどやってなかった。)

とりあえず基本的な手順。

    1. 公開鍵暗号を使ってssh接続

      これは以前にも書いたので省略。結構慎重にやらないといけないのでがんばるしかない。状況によってはサーバー管理者にお願いしないとできないかも。

    2. メールソフトの設定

      thunderbird でも sylpheedでも好きなものを使って設定をする。基本的にはメールサーバーの設定をそのまま利用する。変更するのは サーバー名とポート。
      サーバー名はlocalhostで、ポートは空いていれば何でも良いと思うけど、とりあえず元のポート+1000としといた。(本当はちゃんと決めるべきだと思うけど...。)

    3. ポートフォワードオプションを設定してssh接続

      ここがちょっとややこしい。まず基本的な書式としては

      ssh -Lメールソフトのポート:メールサーバーのアドレス:メールサーバーのポート ユーザー名@ssh接続するサーバー

      となる。結構ややこしい。大体複数のポートを転送することになるはずなので、ちょっと整理して具体的に書く。まず以下のようになっているとすると

      メールソフト記述のimapサーバー名:localhosot (ポート番号1143:被ってなければ任意)
      メールソフト記述のsmtpサーバー名:localhosot (ポート番号1025:被ってなければ任意)
      ssh接続するサーバー名: ssh_server
      ssh接続するユーザー名: user
      imapメールサーバー:imap-server(ポート番号143:メールサーバーで指定されているもの)
      smtpメールサーバー:smtp-server(ポート番号25:メールサーバーで指定されているもの)

      オプションは
        ssh -L1143:imap-server:143 -L1025:smtp-server:25 user@ssh_server
      
      とする。うまく行けば特にwarning等も出ず接続できるはず。だめな場合は cannot listen to port とか言われるはず。

    4. 先ほどの設定でメールソフトを起動

      うまくメールを読みに行ってくれるはず。だめな場合は設定を見直す。


あまり仕組みを理解しないままなので何となく説明だけど、どうやら以下のように接続しているらしい。
メールソフト-> localhost -> ssh portforwarding -> ssh-server -> smtp-server,imap-server
となっているらしい。う〜んややこしや。分かったら何となく分かったけど。

0 件のコメント:

コメントを投稿

748びぼーろく; 温泉効果

 最近行き詰まっていたのでちょっと気晴らしに温泉へ。1時間ぐらい使っていたらよいアイデアが降りてきた(気がする)。ただ、誰かやってそうだけど...。 さて、google cloud上でsshサーバーを構築した。一応無料という触れ込みだけど、設定が悪いのか1日あたり1〜2円ぐらいか...