Rainloopで「保存できない」「送信できない」エラーの解決策(ロリポップサーバー)

JUGEMテーマ:ITメモ

 

1. はじめに

弊社では、ロリポップのレンタルサーバーのライトプラン(月額250円)とオープンソース(フリーソフト)のWebメーラーである「Rainloop」を使って、パソコンでの日々のメール確認を行なっています。ただ、問題点が一つあり、日本語では問題ないのですが、英語のメールを作成した際、長文を打つと、かなり高い頻度で「保存できません」「送信できません」エラーが発生し、メールを送ることができなくなります。こうなると、iPhoneのメーラーで送るしか解決方法がなく困っていました。

 

2. 問題の原因

ネットでいろいろと調べたところ、英語ですがGithubのRainloopページに以下の記事を発見。

 

https://github.com/RainLoop/rainloop-webmail/issues/1665

 

これを見ると、どうやらCentOSのSecuritymodなるものを無効にすることで解消されるらしいとのこと。エンジニアでもプログラマでもない私は、Securitymodを無効にと言われても、どうすればよいのかわからず、再度、ネットで調べてみることに。その結果、WAF(Web Application Firewall)なるものに行き着きました。で、ロリポップサーバーにも「WAF設定」があることを発見し、設定を無効にしてみました。すると、エラーが発生しなくなりました。さらにWAF設定を見てみると「ログ」なる項目があります。ログを見てみると、みごとにRainloopのアクセスがブロックされているログを発見。シグネチャという項目に「sqlinj-22」と記載されていました。どうもWAFでこの「sqlinj-22」と判断されて、はじかれているのが根本原因っぽい。

 

3. 解決方法

WAF全体の設定を無効にするとセキュリティ的に不安なので、できれば該当する「sqlinj-22」のみ無効にしたいと考え、「sqlinj-22」をまたまたネットで調べることに。すると、ロリポップサーバーでWordpressにおいて「sqlinj-22」でエラーが発生した場合の対処方法がいくつかころがっていました。Rainloopでも同じように、この「sqlinj-22」を例外として設定すれば問題が解決するのではないかと思い、試してみました。

 

具体的にはRainloopのフォルダ直下(「index.php」がある場所)に、「.htaccess」ファイルを作成し、ファイルの中身に以下を記述します。

 

SiteGuard_User_ExcludeSig sqlinj-22

 

記述したら、保存します。以上です。試しにRainloopで長文の英語メールを作成したところ、見事にエラーは解消していました。しばらく様子を見てみて、今後もエラーが発生しないようであれば、間違いなく「sqlinj-22」が原因だったと言えそうです。

 

※その後、「sqling-22」以外にも記述が必要なエラーが発覚したので、以下のを参照してください。

 

追記(2019.10.26)

その後、「sqlinj-13」および「sqling-10」というエラーに遭遇し、保存できない問題と送信できない問題が発生しました。そこで、「sqlinj-13」および「sqlinj-22」も前述の「.htaccess」に追加することで問題が解消しました。

 

追記(2019.11.12)

その後、同じドメイン間で転送を行なうと(例えば、〇〇〇@example.comから△△△@example.comに転送するなど)、ふたたび送信、保存ができない問題が発生。調べると「xss-style-8」というエラーが出ていたので、新たに「.htaccess」に追加して、解決しました。加えて、自分自身に転送する場合に、またまた問題が発生。こちらは「crlfinj-4」だったので、こちらも「.htaccess」に追加。

 

まとめると、「.htaccess」ファイル内に以下を記載すれば問題なく動作すると思います。

 

SiteGuard_User_ExcludeSig sqlinj-22
SiteGuard_User_ExcludeSig sqlinj-13
SiteGuard_User_ExcludeSig sqlinj-10

SiteGuard_User_ExcludeSig xss-style-8

SiteGuard_User_ExcludeSig crlfinj-4

 

4. 英語圏で同様のエラーに悩んでいる人のために

一応、英語圏の人のためにも、以下に英語で原因と解決方法を記載しておきます。

 

For those people who encountered "Can't save" or "Can't send" error on Rainloop, I found Rainloop was blocked by WAF (Web Application Firewall) in my rental server, as "sqlinj-22", "sqlinj-13", "sqlinj-10", and "xss-style-8" (these are a signature of the illegal access rule of WAF). In my case, by excluding these signatures in the ".htaccess" file, I could solve the issue.

 

1. Create ".htaccess" file under the root directory of Rainloop

2. Edit the ".htaccess" file and add following sentences.

SiteGuard_User_ExcludeSig sqlinj-22

SiteGuard_User_ExcludeSig sqlinj-13

SiteGuard_User_ExcludeSig sqlinj-10

SiteGuard_User_ExcludeSig xss-style-8

SiteGuard_User_ExcludeSig crlfinj-4

3. Save the ".htaccess" file.

 

If this doesn't work, you may want to consider disabling the entire WAF. Hope this information helps.

 

[Above information was updated on 2019.11.12]

コメント

同じ悩みで困っておりましたところ、貴殿のページにたどり着き、
対処法が非常に参考になりました。本当にありがとうございました。

  • Shigeru Ando
  • 2019/11/09 18:14

Shigeru Andoさん、コメントありがとうございます。その後、いくつか追加で記述が必要なシグネチャが発覚したので、あらためて「.htaccess」に記述する内容をご確認いただければと思います。今後、Rainloopを使い続ける中で、また新たに追加が必要なシグネチャが見つかるかもしれません。。。

  • 管理人
  • 2019/11/12 18:05