•   Login
  •  
  •   Rss
  •   Rss2.0
  •   ATOM1.0
  •   Admin
  •   Top
  •   Home

Debian 11 にアップグレードしてからの深刻な状態からの解決
%(mta)s-whois[name=%(__name__)s, sender=%(sender)s, dest=%(destemail)s, protocol=%(protocol)s, chain=%(chain)s]。
年末にマルウェア感染をしてから、この3連休を使って回復を行った。
PHP7.4になってから、年末に最低限のエラーは潰したものの、本格的な対処は3連休中にあらかた潰しておいた。
でも、完全ではないのだが許容範囲として放置することにした。
(これについては、昨日書いたとおり。)


さて、Debian 11 にアップグレードして深刻な事態が一つ起きた。
それは、FTPサーバーをこれまで、proftpdを使っていたのだが何度やっても途中でエラーになって失敗に終わる。
処理中にエラーが発生しました:
proftpd-core

E: Sub-process /usr/bin/dpkg returned an error code (1)

このメッセージが出てしまう。どうすることも出来ないし、いつも参考にしているサイトを見ると、そこもproftpdでのインストールはハズレてしまっていた。
FTPサーバーが動かないと、ホームページの更新が出来なくなってしまうので、仕方なく代替のミドルウェアをインストールする事にした。
それが、vsfptd。
設定があまりにもシンプルすぎて不安があったが、何とかSSL対応で構築することが出来た。
調子に乗って、ユーザ管理をMySQLでやろうとしたところで、ドツボにハマった。
データベースやテーブル作成、アカウントのインサートはすんなりと行ったのだが、認証がテンでダメなのだ。
何をやっても失敗に終わる。
SSLを外した状態でも失敗に終わるので、諦めてphpmyadminからデータベースの削除を試みようとしたら、なんとphpmyadminが開かなくなっていた!

「マジで!?」
と一瞬焦ったが、もしかしてバージョンアップしたときにphpmyadminの設定がハズレてしまったのでは?
と思って案の定、ファイルが消えていたので許可設定を終えてサクッと削除を行った。


そして、vsfptd.confの設定を元に戻したがそれでも繋がらない。
どうして!?
と思ったら、/etc/pam.d にあるvsftpdの設定をMySQLで見に行くようにしていたからだ。
コメントアウトしていたファイルをもとに戻して、追加した行を削除することで事なきを得た。


DNSサーバーは、全然ダメでした。
やっぱり、私には鬼門過ぎる。
でも、DNSサーバーは構築しておくと何かと便利なんですよね。
いっぺん、真っ新な状態で作り直したいけど、もう面倒くさいしなぁ。
DNSサーバーを構築する研修を受けたい気分になった(笑)


次に手を焼いたのが、Fail2Ban。
これは、何度も不正アタックするとアカウントをBAN(拒否)するミドルウェア。
systemctl status fail2ban と入力すると一見ちゃんと動いているように見えるのだが、実は全く機能していない。
何故なら、起動するとちゃんと「起動しましたよ~」とメールが飛んでくるような仕組みにしているからである。
何が原因なのだろうか。
とログを見ようにも、ログも記録されていない。
どうやら、何か問題がある事が分かる。
ググっても出てこないので、自力で調べてみることにした。
まずは、fail2ban-clientを起動すると、phthonが入っていない。と出てくる。
それで、インストールを行う。
これでまずは、一段落。。。とはいかない。

続いて、fail2ban-serverと入力すると、こんなメッセージが出た。
hoge@hage:~# fail2ban-server
Failed during configuration: Bad value substitution:
section: [sshd]
option : action
key : protocol
rawval : ", chain="%(chain)s"]
%(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]

Async configuration of server failed

sshdのルールがおかしいぞ。と。
そんなはずはないんだが・・・と思いつつ、それを削除してみたところ、何とか無事に起動することが出来た。
無事に起動しても、sshdを何度も不正アタックされると困るので、取りあえず、アップグレード時に用意されていたパッケージと既存を置き換えることにした。
これで、あとは、ログの保存先とかルールの設定を行って完了。
ちゃんと機能するようになった。

だが!
Fail2Banのログがこれまで標準出力だったのに、デバッグモードで出力されて一時間でギガファイルを食らうことに。
ちゃんと、「loglevel = NOTICE」にしているのに、完全にDEBUGモードで大量出力。
お陰で、翌日ディスク容量いっぱいでエラー多発。
2022-01-10 18:15:41,864 fail2ban.filter [44158]: HEAVY Looking for match of [('', '2022-01-10 18:14:24,636', ' fail2ban.datedetector [44158]: HEAVY try to match last anchored template #00 ...')]
2022-01-10 18:15:41,864 fail2ban.filter [44158]: HEAVY Looking for failregex 0 - '^((?:\\[\\])?\\s*(?:<[^.]+\\.[^.]+>\\s+)?(?:\\S+\\s+)?(?:kernel: \\[ *\\d+\\.\\d+\\]\\s+)?(?:@vserver_\\S+\\s+)?(?:(?:(?:\\[\\d+\\])?:\\s+[\\[\\(]?fail2ban\\.actions\\s*(?:\\(\\S+\\))?[\\]\\)]?:?|[\\[\\(]?fail2ban\\.actions\\s*(?:\\(\\S+\\))?[\\]\\)]?:?(?:\\[\\d+\\])?:?)\\s+)?(?:\\[ID \\d+ \\S+\\]\\s+)?| fail2ban\\.actions\\s*(?:\\[\\d+\\])?:\\s+)NOTICE\\s+\\[(?!recidive\\])(?:.*)\\]\\s+Ban\\s+(?:\\[?(?:(?:::f{4,6}:)?(?P<ip4>(?:\\d{1,3}\\.){3}\\d{1,3})|(?P<ip6>(?:[0-9a-fA-F]{1,4}::?|::){1,7}(?:[0-9a-fA-F]{1,4}|(?<=:):)))\\]?|(?P<dns>[\\w\\-.^_]*\\w))\\s*$'
2022-01-10 18:15:41,864 fail2ban.filter [44158]: TRACE Working on line '2022-01-10 18:14:24,636 fail2ban.datedetector [44158]: #06-Lev. matched last time template #00'
もしかして、テンプレートを前のバージョンから引き継いだのがあかんかったのかなぁ・・・
と言っても、今更遅いんだが。
そこで、ふと、「fail2ban.local」というファイルに気付いた。
何だろう?と思って開いてみると・・・
[Definition]
loglevel = 2
logtarget = /var/log/fail2ban.log



これかー!


犯人はお前だったのか!と速攻で、loglevel = INFO に変更して再起動。
無事、ログ出力は通常に戻ったヽ(´ー`)ノバンザーイ
何のための、fail2ban.confなんだよ!って突っ込み入れたわ!


これで、殆どの問題点は解決した感じ。
あとは、ブログのモジュール関係かな。
一部、ちょっとおかしな事になっているので、折を見て少しずつ治していきます。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: (9人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31