カテゴリー: サーバー管理

  • 2024年不正HTTPアクセスリスト

    2024年

    2024年12月

    2024年11月

    2024年10月

    2024年9月

    2024年8月

    2024年7月

    2024年6月

    2024年5月

    2024年4月

    2024年3月
     2024年3月1日にIPアドレス更新

    2024年2月

    2024年1月

  • AWS Lightsailでサーバーを構築-メールサーバーSSL対応編

    XAMPPのMercuryMailはSTARTTLSには対応しているらしいが、TLSには対応していないらしい。

    Windowsメールが2024年にはOutlookに移行するというので、何度か移行を試してみたが、現状のセキュリティでは移行できなくて元に戻すの繰り返しだった。

    また、AWSのLightsailが2024年5月1日から、IPv4アドレスを有料化するというのでIPv6への移行も検討している。

    そこで、TLSに対応したプロキシーの一種であるstunnelを使用して、外部からはTLSを使用できるようにした。

    stunnelのインストール

    https://www.stunnel.org/downloads.html からインストーラーをダウンロードする
      または、最新版へのリンク https://www.stunnel.org/downloads/stunnel-latest-win64-installer.exe をダウンロード
    ダウンロードした stunnel-5.72-win64-installer.exe を実行する
      Choose Users Instak fir anyone using : this computer
      Choose Components : all
      Choose Install Locations : C:\Program Files (x86)\stunnel
      コマンドプロンプトが開くので、すべて<enter> 。この内容でstunnel.pemが作られるらしい
        Country Name (2 letter code) [PL]:
        State or Province Name (full name) [Mazovia Province]:
        Locality Name (eg, city) [Warsaw]:
        Organization Name (eg, company) [Stunnel Developers]:
        Organizational Unit Name (eg, section) [Provisional CA]:
        Common Name (FQDN of your server) [localhost]:
      あとで、スタートメニューの Buid a Self-signed stunnnel.pem を実行すると再生成できるのかもしれない。

    stunnelの実行

    スタートメニューーすべてのアプリ-stunnel AllUsers-stunnel GUI Startを実行する

    タスクバーの設定-その他のシステムトレイアイコン stunnel – TLS offloading and load-balancing proxy をオンにする

    タスクトレイのstunnelアイコンを右クリックし、Edit Configurationを選び、設定ファイルを変更する

    サーバー証明書は、サーバー証明書を取得で取得した証明書がそのまま使えるみたい。

      gmail関係は ; でコメントアウト
      [imaps]
      accept  = 993
      connect = 143
      cert = C:/xampp/apache/conf/certs/domain.com-chain.pem
      key  = C:/xampp/apache/conf/certs/domain.com-key.pem
    
       [imapsv6]
      accept  = :::993
      connect = 143
      cert = C:/xampp/apache/conf/certs/domain.com-chain.pem
      key  = C:/xampp/apache/conf/certs/domain.com-key.pem
    
      [ssmtp]
      accept  = 465
      connect = 25
      cert = C:/xampp/apache/conf/certs/domain.com-chain.pem
      key  = C:/xampp/apache/conf/certs/domain.com-key.pem
     [ssmtpv6]
      accept  = :::465
      connect = 25
      cert = C:/xampp/apache/conf/certs/domain.com-chain.pem
      key  = C:/xampp/apache/conf/certs/domain.com-key.pem
    
    スタートメニューーすべてのアプリ-stunnel AllUsers-stunnel GUI Stopを実行
    スタートメニューーすべてのアプリ-stunnel AllUsers-stunnel Service Installを実行
    スタートメニューーすべてのアプリ-stunnel AllUsers-stunnel Service Startを実行
      stunnel GUIを動かしていると、サービスstunnelは起動できないので、先にサービスを起動しておくこと
    
    スタートメニューーすべてのアプリ-stunnel AllUsers-stunnel GUI Start のショートカットを、"%HOMEDRIVE%%HOMEPATH%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" にコピーして、起動時に立ち上げるようにする
    

    ファイアウォールの設定

    ファイアウォールで以下のポートをブロックする
    143(mailman用にサーバーのIPアドレスのみを許可しておく)

    ファイアウォールで以下のポートを許可する
    465,993

    ログのローテート

    ログファイルは増えていく一方なので、定期的に分割するスクリプトを作ってみた。

    stunnelサービスが実行中はログファイルを変更できないため、

    1. 一旦、stunnelサービスを止めて、その間にログファイルを切り替える。
    2. 2種類のfonfファイルを用意して、ログを出力しないconfファイルと、新しいログファイル名を指定したconfファイルを新たに読み込ませる
    3. confファイルを定期的に書き換えて、stunnel.exe -reloadで読み込ませる

    いろいろやり方はあるが、なるべく単純な3.で実現してみた。

    stunnel_LogRotate.bat

    @echo off
    echo %DATE%-%TIME: =0% : Excecuting ... %0 %*
    rem stunnelのログファイルを月ごとに分けるため、月初めにconfファイルを書き換えてサービスに反映する
    
    setlocal
    
    set YEAR=%date:~-10,4%
    set MONTH=%date:~-5,2%
    
    set CONF_FILE=stunnel.conf
    set CONF_FILE_TEMP=stunnel.conf.tmp
    set CONF_FILE_BACKUP=stunnel.conf.bak
    set LOG_FILE=stunnel_%YEAR%%MONTH%.log
    
    set STUNNEL_FOLDER=C:\Program Files (x86)\stunnel\
    set CONF_FOLDER=%STUNNEL_FOLDER%config\
    
    set STUNNEL_EXE=%STUNNEL_FOLDER%bin\stunnel.exe
    
    set CONF_PATH=%CONF_FOLDER%%CONF_FILE%
    set TEMP_PATH=%CONF_FOLDER%%CONF_FILE_TEMP%
    set  LOG_PATH=%CONF_FOLDER%%LOG_FILE%
    
    rem 今月のログファイルが存在すれば、なにもしない
    if exist "%LOG_PATH%" (
      echo No need to rotate log.
      echo.
      goto :DONE
    )
    
    if exist "%TEMP_PATH%" del /F "%TEMP_PATH%"
    
    rem stunnel.conf の output行を置き換える
    powershell "Get-Content \"%CONF_PATH%\" | %% { $_ -replace \"^^(output = ).*\", \"`$1%LOG_FILE%\" } | Out-File -Encoding UTF8 \"%TEMP_PATH%\" "
    
    rem conf ファイルを置き換える
    if exist "%CONF_FOLDER%%CONF_FILE_BACKUP%" del /F "%CONF_FOLDER%%CONF_FILE_BACKUP%"
    ren "%CONF_FOLDER%%CONF_FILE%" "%CONF_FILE_BACKUP%"
    ren "%CONF_FOLDER%%CONF_FILE_TEMP%" "%CONF_FILE%"
    
    
    rem reload stunnel serveie
    "%STUNNEL_EXE%" -reload -quiet
    
    echo Rotate log to %LOG_FILE%\.
    echo.
    
    :DONE
    endlocal
    exit /b 0
    

    powershellのところで、文字のエスケープ処理が面倒だった。

    毎日0時過ぎに実行しているサーバーメインテナンス用のスクリプトに組み込んでおけば、毎月1日の0時過ぎに実行され、ログファイルが月単位に分割される。

    まあ厳密には、0時からスクリプトが実行されるまでのログは前月分に含まれるけど、これ以上手を加えるほどメリットもないと思う。

    終わりに

    これによりOutlookから、メールサーバーのメールが読み出せるようになった。

    Outlookは、当初なぜか英語の表示だったので、言語設定を変えるのに手間取って元に戻そうかと思った。

    アカウント設定でメールサーバーの名前やポート番号は、どうやらドメインごととかに覚えているらしく同じサーバーの別アカウントでの設定は楽に行えた。

  • 2023年不正SMTPアクセスリスト

    2023年

    2023年12月

    2023年11月

    2023年10月

    10月17日ごろにIPアドレスが変更された

    2023年9月

    2023年8月

    2023年7月

    2023年6月

    2023年5月

    先月から続いていた 193.56.29.230 がやっと止まり、通常に戻ったのかな。

    2023年4月

    安定の迷惑アクセス 193.56.29.178に代わり、同セグメントと思われる別IPアドレスから大量のアクセス

    2023年3月

    2023年2月

    安定の迷惑アクセス 193.56.29.178
    1日だけのバースト 189.145.125.124, 187.190.166.213 はどちらも@hostxbay.comにメールを送らせようとしている。ボットかも知れない。
    突然消えてしまった 45.88.67.165