VultrのVPSにZFS対応のFreeBSDおよびSMTP問題の解決をインストールする

5682 ワード

こんな長いタイトルを使うのは、このVPSがかなり振り回されているからだ.私は何年もVPSを使って、多くのサービス業者を試したことがありますが、これは間違いなく最も変態です......しかし同時にその独特な優位性もあるので、どうしても振り回さなければなりません.
Vultrについて
これはデビューして間もないVPSサービス会社で、DigitalOcean殺し屋と呼ばれています.もちろん強みがあります.
まず、DOより安く、同じ価格のplanで、DOより高い配置です.また、ISOインストールシステムを自分でアップロードすることができます(これは以下で言うZFSを振り回す基礎条件です).VNCコンソールは使いやすく、DOのリモートコンソールは国内から接続できません.機械室の選択は多く、米東から米西だけでなく、ヨーロッパや日本もあり、DOはこれらの国にもあるが、選択は相対的に少ない.また、DOと同じ小さなハードディスクのSSD方式のほか、Vultrには大容量の従来のハードディスク方式があり、ストレージとしては良いです.
現在直面している唯一の大きな問題は、SPAMに対抗するために、25ポートを外部に送信し、VPSが外部にメールを送信できないことです.この問題はユーザーたちに吹き飛ばされて死んだ.公式に提供されている解決策は、この「eximを使ってGMAILのSSL SMTPを通じてメールを送信する」だけで、適当な方法としか言えません.一般的に使うのはまあまあですが、配置が少し面倒で、このドキュメントはDebianを例に挙げるだけで、他のシステムは自分で振り回す必要があります.本明細書では、FreeBSD上での解決策について後述する.
全体的にはいい選択なので、興味のある人はこのしっぽを突くことをお勧めします.
もちろん、DO:このしっぽを突くなど、他の選択肢も少なくありません.
ZFSを使用したFreeBSDのインストール
VultrはFreeBSD 10/x 64のImageを提供していましたが、安定性は無理だそうで、ZFS(bootとswap以外は1つのパーティションしかないので)を持たないので、自分でパーティションを調整してZFSをつけようと思ったのですが、恥ずべき失敗でした.Vultrは独自のISOインストールシステムをサポートしています.
方法はVultrバックグラウンドにログインし、MyISOを見つけ、FreeBSDインストールディスクISOのURL(64ビットbootonly版)を入力し、Uploadをクリックし、サービス端末間で転送が速い.
それからDeployページに切って新しいVPSを作って、あなた自身の必要に応じて配置しますが、ZFSを使うと普通は大きなメモリが必要です.私は1 Gを使っていますが、実は十分ではありません.一般的には少なくとも4 Gが必要です.大きいほどいいです.もちろん価格が高くなります.オペレーティングシステムの1つでCustom ISOを選択し、さっき送ったISOファイルを選択すると、作成したVPSがISOから起動します.
VPSを作成してからMyServerページに切り込み、さっき新しく作ったVPSのManageを開きます.VPSが起動していない場合は起動します.起動後はViewコンソールにFreeBSDをインストールします.ハードディスクにエリアを分けてください.システムパーティションは4 Gで十分です(もちろんインストールコンポーネントは最小化しかできません.source/portsをインストールしないでください.これらはインストールが完了してから補うことができます).bootとswapを差し引いて、他はZFSに分けます.マウントポイントを設けずに、tankなどのlabel名をあげます.ネットワークの配置はDHCPを使うことができて、インストールが終わった後に更に固定に変えることができます——もちろん、DHCPが実際に取った住所はシステムがあなたに割り当てた固定の住所で、だから固定を変えなくても構いません.
インストールが完了したら、VPSのManagementでCustom ISOを見つけて、インストールディスクを取り外してからVPSを再起動してください.
コンソールやSSHで新しいシステムに接続してZFSの管理を開始できるようになりました.もちろんrootユーザーとして操作します.
まずzpoolを作成します.
zpool create tank /dev/gpt/tank

その中の/dev/gpt/tankのtankはインストール時にパーティションに与えられたlabelです.
次にports用のZFSを作成します.
cd /usr
mv ports ports_old
zfs create -o mountpoint=/usr/ports -o compression=on tank/ports
mv ports_old/* ports/
rmdir ports_old

Portsにはソースコードが入っているので、多くのスペースを節約できます.ソースを使う必要があれば、法のように砲撃することもできます.
他にも何も言うことがないようで、自分がZFSをどうやって遊びたいのか、どうやって遊ぶことができます.
SMTP外発問題の解決について
システムが何日も装った後、私は1つの問題を発見しました:ずっとFreeBSDの自己検査メールを受け取っていません.私はこんなに多くのFreeBSDを装ったことがあります.配置上は問題ないはずです.ログを見てみると、たくさんのタイムアウトエラーを発見しました.手作業で何通かのテストメールを送ってみましたが、送信に成功しました.
犬を放して半日捜索したが、たまたまtelnetで外部smtpテストをしたところ、通じないことに気づき、私のPFファイアウォールの設置をチェックしても間違いなく、最後にVultrのFAQを見に行こうと思ったが、やはり25ポートの出口が閉鎖された.
Vultrという迷惑メール対策は簡単すぎて乱暴だと言わざるを得ない.
でも仕方なく、メールは使わないわけにはいかないし、前日の自己検査報告書を毎日登って見るわけにはいかないでしょう.Sendmailにsockエージェントを作って別のVPS転送に行きたいと思っていたが、半日研究してみるとSSL SMTPでGMAIL転送が一番便利だと分かった.
もちろん、セキュリティ上の理由から、自分のGMAILメールアカウントではできないので、専用アカウントを登録して転送しました.これはとても重要です.もちろん、このアカウントには常に手動でログインしなければなりません.そうしないと、プログラムだけがこのアカウントを操作すると、googleはあなたが悪いことをしていると思って、時々送信を禁止します.
しかし、SendmailがどのようにSSL SMTPに転送されるかは検討できなかったので、FreeBSDの公式ドキュメントの提案に従って、Sendmailをオフにして、ssmtpを入れてこのことをしました.
しかし、公式文書の内容は少しOUTなので、実際の状況によって、自分でまとめました.
注意:以下の操作にはrootユーザー権限が必要です.エラーが発生しないように注意してください.
最初のステップはもちろん、Sendmailを完全に閉じ、/etc/rc.confを変更します.
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

その後、Sendmailプロセスを終了します.
killall sendmail

次にssmtpをインストールします.
cd /usr/ports/mail/ssmtp/
make install replace

その中のmake replaceは自動的に/etc/mail/mailer.confを変更してデフォルト用のメールシステムをsendmailからssmtpに変更します.
次はssmtpの構成です.
cd /usr/local/etc/ssmtp
cp revaliases.sample revaliases
cp ssmtp.conf.sample ssmtp.conf

次にssmtp.confを変更します.
[email protected]  #     userid  1000     (  root)             ,             
mailhub=smtp.gmail.com:465 #   MTA  ,       587
rewriteDomain=your.domain.com #                  ,  root     [email protected],             root@
hostname=your.domain.com #       ,                ,        IP,             
FromLineOverride=YES #     gmail            gmail  ,     yes                   
UseTLS=YES # gmail 465/587     SMTP ,    TLS
[email protected] #     GMAIL     
AuthPass=your_gmail_password

これでいいです.
提案:ドメイン名登録業者からドメイン名をVPSのIPに解析するだけでなく、VultrのVPS Managementにこのドメイン名をVPSに配置し、逆解析が正しいことを確保し、GMAILや受信者に迷惑メールと誤認される可能性を減らす.
ssmtpは1つのMTAのみであり、メールを受信および格納する機能がないため、ローカルユーザへのメールは失われ、ssmtpもサポートされていない.forwardが外部に転送され、aliasesファイル構成の別名も読み込まないため、このような構成は外部メール、例えば送信[email protected]ただし、ローカルユーザtにメールを送ることはできません.もちろんシステムユーザーは例外ですが、前のプロファイルのコメントで述べたようにroot=オプションで指定したメールボックスに暗送することができますが、システムユーザーでなければできません.また、このようなメールの受信者は有効なメールアドレスではなく、ユーザー名であり、スパムと判定されやすいという問題もあります.
revaliasesは、rootで屋外でメールを送信する場合など、送信者の別名を構成するために使用されます.上記の構成に従って、デフォルトで表示される送信者メールボックスは次のとおりです[email protected]ただし、受信サーバが構成されていない場合、このアドレスは返信メールを受け取ることができません.そのため、実際のメールアドレスを与える必要があります.たとえば、次のようにします[email protected] .しかし、一般的にはこれが似合わなくてもいいです.デフォルトの返信メールボックスはこれではなく、転送用のGMAILなので、相手が直接転送すれば、送ることができます.
究極のソリューションは、次のとおりです.
ssmtpはmail.rcの構成を読み出すので、ここで受信者別名を構成できます.
alias root root<[email protected]>

rootユーザーにメールを送ると、受信者メールボックスが表示されます[email protected]ではなくまた、この方法では、ユーザー名ごとに別名を構成すれば、システム内の他のユーザーにメールを送ることもできます.
FreeBSDの公式ドキュメントでは、ssmtpユーザーを作成して権限を変更する必要があるなどと書かれていますが、最新版のssmtpではssmtpグループが作成され、ssmtpを実行する必要はありません.
テスト:
echo "test" | mail -s "hello" [email protected] #         root     

すぐに行けるはずだ[email protected]のテストメールを受け取りました.