【fail2ban】VPSサーバーより狙われる光回線接続

最近、不正アクセスの遮断を調整しているが、VPSサーバーよりも家のサーバーの方がやたら多いのに気がついた。

VPSサーバーが 635件、家が 1,503件と倍以上の不正アクセスがある。

やはり、外に立てたサーバーより、家庭につないだ回線に存在するサーバーの方がセキュリティが甘いから、多いのかな?

適当なIPアドレスの範囲に対して、不正アクセスを試みていると思っていたが、ちゃんと確率の高そうな所へ資源の投入をしてるんだなあ。

まあ、家もVPSもsshdは公開鍵認証で、プライベートIPアドレスのみパスワード認証も許可している設定なので、そもそも総当たりのパスワード破りが最初からできないようにしてあるから、特に心配は無い。

しかし、ログにだらだらと記録されるのがウザいので、臭いにおいは元から断たなきゃダメという事で、接続遮断している 🙂

外も家も同条件のフィルタだが、3日間で4回以上の不正アクセスで1週間接続遮断し、それ以降も2週間以内に同じIPアドレスが不正アクセスして来たら、再犯ルールで1年間接続遮断するようにしている。

不正アクセスのパターンを見ていると、2~3回で止め、時間を置いて再び繰り返すという明らかに fail2ban の設定を意識した不正アクセスをして来ているので、判定期間を長めに取って、再犯ルールも追加したという次第。

ルーターは接続を通すポートのみポート変換機能で一々登録して通しているが、面倒くさがりだと、DMZとしてサーバー1台丸々外から見える状態にしてるってのもあるだろう。

踏み台にされて警察にお呼ばれする前に、厳密な設定の運用にした方がいい象。

【Raspberry Pi4】dovecot設定

Rasberry Pi OS liteのメールサーバーdovecotで、またパラメータが変わってて、Maildirの設定にちょっと苦労した。

mail_location が廃止されたので、namespace で解決するのが正しいようだ。

情報源: Namespaces | Dovecot CE

INBOX は /var/mail/noizumi で、他のフォルダ類は Maildir形式の /home/noizumi/Maildir に保管してるので先の設定にした。

昔、mbox 形式だと、メールフォルダの階層化ができなくて、フォルダ削除して Trash/delFolder みたいな状況になると、削除できなくなるってのがあったので、Maildirにしている。

今、mbox はフォルダの階層化できるようになってるんだろうか? AIさんに聞いてみる 🙂

はい、IMAPを利用している場合、mbox形式のメールボックスであってもフォルダの階層化(サブフォルダ作成)は可能です。

技術的には、ThunderbirdなどのIMAP対応メールクライアントを使用してサーバー上にフォルダを作成・管理することで、階層構造が実現されます。

あー、mboxはサーバー側にディレクトリを掘らずにファイルしか配置できないから、ファイル名に区切り文字で階層を表してる。

つまり、メールクライアントによっては、うまく判別できずに階層構造にならないって事もあり得るんだな。

じゃあ、Maildir形式の方がいいな。

新しく買ったHDDケース

ORICO 9928RU3を買った。

支那製だが、レオナルド・ディカプリオのカードのCMとは関係ない 🙂

どうせ日本メーカーでも、中身は支那製だし、日本メーカーと同価格帯なら、日本企業のマージン分、中の品質が高い可能性がある。

買って、大爆死する可能性があるので、今まで買った製品に触れなかったけど、アルミ筐体で冷えやすく、従来品よりファンの音もうるさく無く、速度も速いので、中々良い。

Amazonだと、同じ製品で、もっと安いページもあるが、低評価レビューがあって、欠陥品ロットがまとめられたページの気がするので、高い方のページでこうにう。

RAID1を構成するのに、この手の製品は今まで使っていたRAID1のデータの入ったディスクを継承できないので、新規にWD20EARZ-ECを2つこうにう。
昔買った値段より1.5倍くらいになっとるね 🙁

新規RAID1のディスクを構築してから、今まで使ってたディスクの1本をGREENHOUSEのIDE/SATA→USB2.0の変換コネクタを繋いで、必要なデータをコピーした。

新しく買ったディスクは、データ転送速度が180MB/s だそうなので、HDDケースに入れて、速度を計ってみる。

「UASP対応」と謳ってるだけあって速い。
元のディスクスピードの180MB/sを上回ってるのは、RAID1は読み出しに関しては2台のディスクから読めるので、その分高速化されるのだろう。

果たして耐久性はいかがなものか。
せめてハードディスクより先に逝って欲しくないなあ。

【Raspberry Pi4】家のサーバー復旧ちう

HDDケースぶっ壊れた。

という事で、Raspberry Pi Imagerを取ってきて、Raspberry Pi OS Lite 64bitをRAID1のHDDケースにインストール。

どうせ、GUI使わないので、X Window System系が入ってないのにした。

割と短時間で終了し、HDDが2TBなのに、ディスクイメージのサイズで限定され、容量が少ないなんて事もなく、フルに2TBを使っていた。

最近のディストリビューションは、swapパーティション切らないのね。

後、SoftEther VPN serverを使う上で、ネットワークでbridgeデバイスを使う必要がある。

今までのUbuntu 24.04LTSでの構築経験上、desktop版は正常に作成できず、server版だとうまくいくというのがあって、NetworkManagerベースは避けたかった。

で、Raspberry Pi4(以下RP4)にHDDを繋ぎ替えて起動すると、ルーターでRP4のMACアドレスに192.168.11.254を割り当てていたので、DHCPでIPアドレス設定はできたから、これもサクッとssh接続できた。

bridgeデバイスを作成する上で、Ubuntuのserver版だと、netplanのスクリプト書いて、netplan apply でサクッと作れていた。

しかし、NetworkManagerが生きてると、bridgeにeth0とtap_softetherの2つをぶら下げないといけないのに、eth0しか無いという状態にされる。

恐らく、NetworkManagerの不具合だと思われるが、bridgeに2つのslaveぶら下げてて、1つしか有効にならないなんて事例が無いw

netplanとNetworkManagerの統合を進めているらしいが、Raspberry Pi OSのベースのdebian 13では、よりNetworkManager寄りになっているようだ。

という事で、

無事に br0 デバイスができた 🙂

あと、やった事色々。

apt install fail2ban tcpdump apache2 telnet  default-jre-headless php php-xml php-curl php-mbstring samba smbclient certbot nslookup bind9-dnsutils python3-certbot-apache

a2ensite 000-default-le-ssl
a2enmod userdir
a2enmod rewrite
a2enmod ssl
a2enmod auth_digest
a2enconf auth_digest

そして、コピー元ディスク見ていて、メールサーバーの postfix がインストールされてて、設定もやってるんだけど、何でだったのかと暫く考える……

あー、SPFの設定で、silverfox.noizumi.orgを送信ホストとして登録したくなかったから、家のサーバーのメールもirc.noizumi.orgへ投げるようにしたんだっけ。

あと、zoneminderとかあるけど、家の玄関リフォームしたせいで監視カメラ撤去したし、その間にプロバイダ変更したから、監視カメラのWiFi設定変えないといけないし、面倒だから、後回しにして原神やろう 🙂

新しく買ったHDDケース

Wineで原神

REDMAGIC 10 Pro買ったので、ゲーム動作テストによく使われる原神とやらを入れてみるかと思ったが、PC版があるので、そいつをまずインストール。

どうせなら、LinuxでWindowsプログラムが動かせるWineを使ってやってみようとインストール開始。

苦戦させられると思いきや、あっさりインストーラーの画面が出た。

 

 

何度も落ちるけど、「ダウンロード再開のおかげで最後までリソースが読み込めた。

 

 

ゲーム画面が出るまでが、全画面表示待ちでフリーズしたかと思ったが、根気よく待つとちゃんと開始され、それなりに遊べる。

ただ、場面によっては、レンダリングがうまく動かない時があるとか、やっぱり10年前のマシンでは100%とはいかんな。

 

wine32:i386インストールで、gnome-control-centerが消える問題

会社のマシンで、wineをインストールして、SoftEther の管理ツール動かしていたが、ふと気づくと「設定」が表示されなくなってて、調べると gnome-control-centerをインストールすると良いとあった。

gnome-control-centerは設定のパッケージだが、普通、こんなのがインストールされてないという事はあり得ない。

gnome-control-center をインストールしようとすると wine32:i386が削除され、衝突状態になっているのが分かった。

検索してても中々該当する事例に巡り会えなかったが、とうとう原因を見つけた。

A clean way to solve this issue by merging all solutions would be to install the OS version of libgd3 that allows to install its i386 version alongside.

Initially, libgd3 was provided by the ondrej/php ppa (https://launchpad.net/~ondrej/+archive/ubuntu/php) (probably others PPA as well)

On Ubuntu Noble 24.04, it’s currently 2.3.3-12+ubuntu24.04.1+deb.sury.org+1

  1. Force install OS version of it sudo apt install libgd3=2.3.3-9ubuntu5
  2. Install its i386 version sudo apt install libgd3:i386
  3. Prevent libgd3 from auto updating with ondrej ppa sudo nano /etc/apt/preferences.d/libgd3-php
  4. Paste this priority to use Ubuntu sources by default

  1. Run sudo apt update, now libgd3 will no cause any problem

Hopefully it helps other people with similar wine installation problems

情報源: 22.04 – Dependency conflict: Installing libgd3:i386 leads to removal of important packages? – Ask Ubuntu

要は、PPA(Ubuntu用フリーウェアみたいなもの) の ondrej/phpで、libgd3がインストールされて、その依存関係で巻き添えを食うと。

そう言えば、会社のマシンは開発環境で、PHP5.6〜8.4まで、複数のPHPのバージョンを使うので、PPAのondrej/php を入れてたんだった。
特定環境下の問題だから、検索しても出てこなかったのか。

OS版の2.3.3-9ubuntu5のlibgd3をインストールし、libgd3:i386 をインストールして、/etc/apt/preferences.d/libgd3-php を作成して、先の内容を記述しておけば、良いらしいのでそうすると、解決した。

32bit版のパッケージインストールすると、それだけで1GB位ディスク容量食うから、wine32入れずに済むようにならんのかねぇ。

メールサーバー考

一時、メール受信のルールを厳しくして迷惑メールの受取拒否してたら、家のサーバーやVPSからのメールが受信できなくなっていた。

受取拒否だと、全く何の通知も無くメールが消えるので、とりあえず、迷惑メールのフォルダに入るように設定して様子を見ていた。

普段VPN環境でLANのプライベートアドレスでサーバーに接続していたが、IPv6での接続を試す為に、sshでログインすると、メールが飛んできた。

そういや、外部からログインしたら、メールを飛ばすってのをVPSや家のサーバーでやってたのを思い出した。

ちなみに、それぞれのサーバーは、LANのIPアドレスでログインしたら、パスワード認証が使えて、グローバルIPアドレスには証明書認証しか通さないようになっている。

従って、国家機関がスーパーコンピューターを使って解読でもしない限り、外部からログインされたというメールが飛ぶ事はほぼ無い(はずw)

最近のメールサーバーは、送信元IPアドレスが正当な送信者であるかを判定して、もし、正当でない場合は、受信拒否したり、迷惑メールフォルダに放り込んだりできる。

エックスサーバーの場合は、Return-Path: に正式なアカウントのメールアドレスが設定されてないと迷惑メールの判定になる。

例えば、root@noizumi.orgとか、noizumi@noizumi.orgとか、サーバーの設定によっては容易に Return-Path:に設定されちゃうようなアドレスだとダメ。

VPSの方は正常に届くように設定を追加して問題は無くなったが、家のサーバーはDS-Liteのゲートウェイの共用IPアドレスなので、正当な送信者として登録すると、成りすましを許してしまう事になる。

正常に送信できるVPSのメールサーバーに家のサーバーからSMTP AUTHでメールを送信するかと、せっせと設定し始めたが、よく考えたら、VPNでLANを構築してるので、postfixに192.168.0.0/16 をmynetworksに指定するだけだと気づいた。

そうすれば、LAN内のマシンなら、VPSにメールなげたら、プロバイダのサーバーへリレーしてくれる。なんでこんな簡単な事にすぐ気が付けなかったのやら。

ヤキが回ってるな 🙁

WineでSoftEther VPN Server Managerを動かす

SoftEther のVPNサーバーを弄るのに、LinuxだとGUIのツールが無くて不便だったが、LinuxでWindowsのプログラムを動かすWineを使えるというのは盲点だった。

で、irc.noizumi.org内を見ていると、そういや2つ仮想Hubがあって、一つは irc.noizumi.org で、もう一つは家のサーバーだった。

irc.noizumi.org のHUBに接続して、AbemaTVなんかのサイトに接続すると、接続元が Kagoya のVPSのIPアドレスなので、蹴られてしまう。

しかし、irc.noizumi.orgにある家の仮想HUBにつないだら、インターネットへのアクセスは家のルーターから出る事になるので、今なら povo2.0のIPアドレスでの接続になるから蹴られない。

L2TP/IPSecのユーザー名で、ユーザー名@Hub名で指定してやれば、irc.noizumi.orgに接続しても、家のネットワーク環境に接続できるという便利な機能を忘れてたな。

asahiネットが未だにログイン情報を送って来ないので、povo2.0 の週末3日感使い放題のトッピングに課金した。

なんせ期間限定で6月2日 9:00までしか申し込めないのと、24時間使い放題×5の残りがあと2つだったので、それを使ったら残り1つでもう後が無い状態だったから。

もうそろそろ1週間になるけど、bb excite とかWebで申し込んですぐ使えたのに、紙でログイン情報郵送してきて、かつNTTからも確認メールが来るなんて思っても見なかったわ 🙁

silverfox.noizumi.orgのSSL証明書更新

家のホームサーバーのCronからのメールで、silverfox.noizumi.org のSSL証明書更新に失敗したと来た。

まあ、今、家の回線は光じゃなくて、povo2.0で繋いでるが、asahiネットのIDとパスワードを記載した書類が届いていないので、未だに光回線難民なのである。

動的IPアドレスをDNSに自動登録するスクリプトを組んでるので、silverfox.noizumi.orgをDNSで引くと、povo2.0のゲートウェイのIPアドレスになっている。

携帯電話の通信事業者は、各携帯電話にグローバルIPアドレスでは無く、プライベートアドレスを割り振っていて、インターネットにはゲートウェイサーバーを経由してアクセスし、携帯電話には直接アクセスできないようになっている。

なので、今まで https://silverfox.noizumi.org/ でインターネットからアクセスできていたのができなくなった。

それではSSLの証明書の更新はどうするのか? と言えば、今まで外からWebにアクセスできるのかで存在チェックしていたのを、DNSでチェックする方式が使えるらしい。

そうすると、次の表示になる。

エックスサーバーにログインして、DNSレコード追加で、次のものを作成。

これで、certbot のPress Enter to Continueでエンターを押すと、DNSをチェックして、SSL証明書を更新してくれる。

あとは、DNSのチャレンジのレコードを削除してもOK。
noizumi.org のDNSを弄れるって事は、silverfox.noizumi.org のドメインの使用者だと分かるので、インターネットから隔絶したサーバーにもSSL証明書が発行できるという事だな。

ひとつ勉強になった 🙂

Ubuntu 24.04LTSが読み込み専用で起動して困った話

昨年末頃に内蔵ハードディスクがお亡くなりになり、Ubuntuはバックアップから外付けUSB RAID1ハードディスクに復旧して、WindowsはUSBハードディスクにインストールできないので、放置していた。

日曜にふと思い立ち、内蔵ハードディスクにWindows10をインストールし、Windows11 をISOでダウンロードして、マウントし、setup.exe /product server で強制インストールした。

Windows11 を直接インストールをしようとすると、PCが要件に合っていないので、拒否されるが、Windows10環境で、コマンドで先のセットアップを実行すると、要件チェックされないのでインストールできるのだ。

EFIのブートディスクが2つという事になるが、Ubuntuのgrubの起動メニューで、チェインロードにより、UbuntuとWindowsを選択可能にして起動できるようにする。

/etc/default/grub を編集して、GRUB_DISABLE_OS_PROBER=false を有功にし、次のコマンドを実行。

# os-prober
# grub-update

grub menu に Windows bootloader が表示されるようになった。

で、Ubuntu にて Windows 11のHDDをマウントしようとしたら、マウントできない。

Webで調べると、Windows11で高速スタートアップが有功になっていて、ディスクにゴミがある状態な為、マウントできないとの事。

ユーティリティの「ディスク」を使って、/dev/sda3 の「マウントオプションを編集……」で、「ユーザーセッションデフォルト」をOFFにしてやるとよいらしい。

そうすると、マウントはできるようにはなったのだが、ファイルをコピーしようと思ったらできない 🙁

再起動して Windows11のコントロールパネルで、高速スタートアップを無効化し、いざ、Ubuntuを起動すると、Failed to start: gdm.service とか出て起動しない。

Ctrl+Alt+F3 で端末ログインして、mount を見てみると、ルートFSが読み込み専用になってる。

こういう場合は、ディスク異常とかが定番だが、fsck しても異常なし。
/etc/fstab を見ると、さっき指定した /dev/sda3 のマウント定義が追加されているのだが、ルートのドライブ指定が消えている 🙁

そりゃ、fstab で起動ディスクの設定消えとったら、起動ディスクが read-only でマウントされて、read-write で remount されないから、読み込み専用のままだよなあ。

# mount -o rw,remount / を実行して、/etc/fstab にルートのファイルシステムの定義を追加して復旧。

何で起動ディスクの設定が消えたのかさっぱりわからんけど、かなり初見殺しなOSですな 🙂