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

Raspberry Pi 3 Model B+によるRasbianOS化(3)
(4) Open DHCP Server のインストール。
RasbianOSのセットアップから運用までの連載です。
週一連載です。




(1) 事前準備
(2) セットアップ
(3) 各種設定(Wi-Fi NWやアカウント追加等)
(4) Open DHCP Server のインストール
(5) Playstation Media Server のインストール
(6) Webminとファイル共有サーバーの設定(sambaサーバー)
(7) バックアップ運用(バッチ)

さて、今回はWi-Fiでのネットワーク設定や、アカウント追加と削除(デフォで入っているpiアカウントを無効)にする方法を紹介します。
特に、piアカウントが標準で入っているので、速やかに別アカウントを作成した上で、削除することを強くお奨めします。

「が」

通常のLinuxとは違うところが、RasbianOS。
Linuxに慣れ親しんでいると、正攻法でとあるユーザー(pi)は削除出来ません。
ちょっとしたコツが必要です。

【IPアドレスの固定方法】
これは、Windowsに慣れていると、デスクトップ画面を見れば直感的に分かると思います。

(1) Wi-Fi接続の場合、電波強度みたいなアイコンが右上に出ています。
ちょうど、Bluetooth マークの右隣です。

RasbianOS NW設定01


(2) それを右クリックすると、コンテキストメニューが現れますので、「Wireless & Wired....」を選択しましょう。

RasbianOS NW設定02


(3) すると、IPアドレス一覧が出てきますので、写真のようにチェックを入れてIPアドレスを入力して終わりです。

RasbianOS NW設定03


【piアカウント削除】
これは一癖も二癖もあります。
デスクトップ画面へは自動的にログインされるため、一旦、自動ログインを解除せねばなりません。
そして、間違ってはいけないのは、別のログインユーザーアカウントを作成せずに、先にpiを削除してしまうとログイン出来なくなると思います。
(通常、rootユーザーでいきなりログインすることは出来ない。のが習わし。)
なので、予めアカウントを作成する必要が有ります。
ダミーでも捨てアカウントでもなんでも構いません。

(1) ダミーアカウントの作成
コンソール画面を立ち上げて、
sudo useradd xxxxxx
と入力します。
すると、「xxxxxx」に対するパスワードを入力する必要が有りますので、自分の分かりやすいパスワードを入力します。

(2) ダミーアカウントに権限付与
アカウントを作成しても何も出来ないので、root権限を与えます。
su -
[rootのパスワード]※前回セットアップ時に入力したパスワードです。
sudoedit /etc/sudoers
下の方に移動し、%sudo ALL=(ALL:ALL) ALL を見つけたらその下に
xxxxxx ALL=(ALL:ALL) ALL
と入力します。
ctrlキーを押しながら「o」キーを押して書き込み、更にCtrlキーを押しながら「x」キーを押して終了します。
exit でSuperUserを抜けます。

(3) RasbianOSのコンフィグ起動
sudo raspi-config と入力してパスワードを要求されたらpiのパスワードを入力します。
※piのパスワードが分からない場合、SuperUserに入って、raspi-config と入力することも可能です。

RasbianOS 起動変更1


(4) 「3.Boot Options」へカーソルキーの「↓」を押して移動

RasbianOS 起動変更2


(5) tabキーを押して「Select」をSpaceキーを押す

RasbianOS 起動変更3


(6) 「B1.Desktop / CLI」を選択した状態でtabキーを押して、「Select」を選択してSpaceキーを押す

RasbianOS 起動変更4


(7) 「B1.Console」を選択した状態でtabキーを押し、「了解」を選択してSpaceキーを押す

RasbianOS 起動変更5

(8) 最初のコンフィグ画面に戻るので、tabキーを2回押して「Finish」を選択して、Spaceキーを押す

(9) そして、再起動
※ ダミーアカウントがちゃんとログイン出来るかどうか、事前に確認を忘れずに。
出来ないと、再起動後行き詰まります。rootユーザーでログインは出来ません。

(10) Terminal画面でログインを要求されるので、ダミーアカウントでログイン

(11) ダミーアカウントから次の手順で削除していく
sudo userdel -r pi

(12) 正式アカウントを作成する
sudo mkdir /home/yyyyyy ←「yyyyyy」は作成するアカウントを入れる
sudo useradd -u 1100 -g users -d /home/yyyyyy yyyyyy ←「yyyyyy」は作成するアカウントを入れる
sudo passwd yyyyyy ←「yyyyyy」のパスワードを作成する
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

(2)で作成したときと同じように権限を付与する。
sudo sudoedit /etc/sudoers
yyyyyy ALL=(ALL:ALL) ALL

(13) アカウントが作成されたかどうか確認する
su - yyyyyy
パスワード:
pwd
/home/yyyyyy

(14) ホームディレクトリのユーザー権限が違うはずなので、一つ上のディレクトリへ移動して、ディレクトリのユーザー権限を変更する
cd ..
chown yyyyyy:users /home/yyyyyy
ls -l
合計 12
drwxr-xr-x 2 cccccc users 4096 12月 25 11:15 cccccc
drwxr-xr-x 27 dddddd users 4096 1月 10 17:35 dddddd
drwxr-xr-x 2 yyyyyy users 4096 1月 12 13:50 yyyyyy

この様に表示されたら完了。

(15) AutobootをConsoleからDesktopに戻す
sudo raspi-config と入力してパスワードを要求されたら「yyyyyy」のパスワードを入力

RasbianOS 起動変更1


(16) (4)~(5)を行う。

(17) 「B3 Desktop」を選択し、tabキーを押して、「了解」に移動してSpaceキーを押す

(18) (8)~(9)を行う。

(19) ダミーアカウントを削除
sudo userdel -r xxxxxx

これでセキュリティー懸念リスク解消です。
Windowsのような使い方で良い人は、これで終わりです。


次回は、OpenDHCPServerのインストールを紹介します!
ちょっと、本格的な作業に入りますよ。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
Raspberry Pi 3 Model B+によるRasbianOS化(2)
RasbianOSのセットアップから運用までの連載です。
RasbianOSのセットアップから運用までの連載です。
週一連載です。




(1) 事前準備
(2) セットアップ
(3) 各種設定(Wi-Fi NWやアカウント追加等)
(4) Open DHCP Server のインストール
(5) Playstation Media Server のインストール
(6) Webminとファイル共有サーバーの設定(sambaサーバー)
(7) バックアップ運用(バッチ)


さて、セットアップと仰々しいかもしれませんが、それ程難しくありません。
電源を入れたらスタートです。
今回は、Wi-Fi接続によるセットアップを紹介したいと思います。
そんなに難しくないですよ?

(01)電源を入れるとこんな風になりますが故障ではありません。
ただ、何分待っても画面が切り替わらなければ、microSDHCカードに異常があるか、余計なゴミが入っているため起動できない可能性があります。
その場合は、電源を一旦切って、microSDHCカードを取り出してフォーマットをかけ、先週のZIPファイル解凍からやり直して下さい。
それでも、解決出来ない場合はmicroSDHCカードが壊れているか、Raspberry Piが壊れている可能性があります。
原因を切り分けるためにも、別のmicroSDHCカードで試してみましょう。

RasbianOSセットアップ01


(02)無事、ブートローダーが始まるとこんな画面に切り替わります。
この画面から3分以上経っても切り替わらない場合、解凍に失敗している可能性がありますので、先週の作業に戻って解凍し直してください。
Raspberry Pi 3 Model B+によるRasbianOS化(1)  -- 2019-01-07 Monday

RasbianOSセットアップ02


(03)フルインストール版で解凍した場合は、この2つのOSから選ぶことになります。

RasbianOSセットアップ03
RasbianOSセットアップ04

(04)画面中央下に、言語を変えるドロップダウンリストがありますので、日本語に変更しましょう。

RasbianOSセットアップ05


(05)英語から日本語に変わりました。

RasbianOSセットアップ06


(06)もしも、これらのOS以外をインストールしたい場合は、「Wifi networks」をクリックしてネットワーク接続を行います。
不要であれば、(09)へ。

RasbianOSセットアップ07


(07)適当な無線LAN親機を接続します。下のPasswordボックスにWi-Fiのパスワードを忘れずに!(有線LANは不要です.)

RasbianOSセットアップ08


(08)無事に無線LANが接続されると、DHCPサーバーからIPアドレスの取得要求が実行されます。

RasbianOSセットアップ09


(09)IPアドレスが無事に付与されると、サイトからインストール可能なOS一覧が下記のように表示されます。
ここでは、一番最上段の「Rasbian Full(RECCOMMENDED)」を選択します。
※ここから、Windows 10 IoTをインストールできるような表示がありますが、当方で何度も試しましたが失敗に終わりました。

RasbianOSセットアップ10


(10)インストールボタンを押すと、この様な警告メッセージが表示されます。
SDカード内に保存している全てのファイルが消えます。

RasbianOSセットアップ11


(11)インストールが開始されます。
暫く待ちましょう。

RasbianOSセットアップ12RasbianOSセットアップ13

(12)無事インストールが終わると下記のメッセージが表示されます。
【OK】ボタンを押すことで再起動になります。

RasbianOSセットアップ14


(13)再起動中の画面。

RasbianOSセットアップ15RasbianOSセットアップ16


(14)インストールが完了しましたが、引き続き、初期セットアップが続きます。

RasbianOSセットアップ17


(15)まずは、国、言語、時刻の確認です。
上から、Japan、Japanese、Tokyoであるかを確認して下さい。
違う場合は、ドロップダウンリストから選択しましょう。

RasbianOSセットアップ18


(16)次は、rootのパスワードを変更します。
他人に推測しにくいパスワードを設定しましょう。

RasbianOSセットアップ19


(17)ネットワーク接続を行います。
有線LANの場合はでてきませんが、無線LANの場合、Wi-Fi接続を行います。

RasbianOSセットアップ20


(18)ネットワーク接続が出来ると、ソフトウェアアップデートを行います。
ここは面倒くさがらずに行いましょう。(セキュリティー保持のために。)

RasbianOSセットアップ21


(19)アップデート中の画面です。

RasbianOSセットアップ22
RasbianOSセットアップ23


(20)アップデート完了画面。

RasbianOSセットアップ24


(21)これでセットアップが完了しました。
これで、普通に使えます。

RasbianOSセットアップ25



いかがでしたか。
特段、難しい設定は無いと私は思うのですが、初めてOSをインストールする人には、要所要所でためらうかもしれません。
スマホでWi-Fi接続が出来る知識があれば、それ程難しくはないと思います。
失敗しても再度、最初からやり直すことも可能です。

だいたい作業時間は、ZIPの解凍からセットアップ完了まで30分くらいでしょうか。
インターネット速度に時間が左右されると思います。

これで、Windowsのようなインターネットやオフィスソフトを使って表計算や文書作成が出来ます。
フルパッケージですので標準的な使い方は、一通りインストールされます。
ブラウザーは、Google Chromeでした。
なので、Androidスマホを使っていたら、ブックマークの引き継ぎなどは問題ないでしょう。
ただし、まだ、このままの状態で使わないでください。
セキュリティーリスクが残っているからです。

それは、次回のちょっとこみいった設定で紹介したいと思います。
来週をお楽しみに?


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
run-parts: /etc/cron.daily/freshclam exited with return code 1
run-parts: /etc/cron.daily/freshclam exited with return code 1。
clamavの不具合とアップデート  -- 2018-05-31 Thursday

上記のアップデート以降、毎朝の定例ジョブ結果メールに、タイトルのような1行メッセージが届いていました。
run-parts: /etc/cron.daily/freshclam exited with return code 1

実は、ずっとこの問題を解決するために、Google先生に聞きに回っていたのですが、英文サイトに行っても有力な情報が得られませんでした。
/etc/cron.daily/freshclam のスクリプトに問題があることは間違いないと睨んでいたのですが、サッパリわからない。
そこでスクリプトの内容を開いてみることにしました。

【/etc/cron.daily/freshclam】
#!/bin/sh

chown root:root /var/log/clamav/freshclam.log

### A simple update script for the clamav virus database.
### This could as well be replaced by a SysV script.

### fix log file if needed
LOG_FILE="/var/log/clamav/freshclam.log"
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
chmod 666 "$LOG_FILE"
chown root:root "$LOG_FILE"
fi

/usr/bin/freshclam \
--quiet \
--datadir="/var/lib/clamav" \
--log="$LOG_FILE" \
--daemon-notify="/etc/clamav/clamd.conf"


パッと見たところ、さして間違っているように思えませんでした。
ログフォルダも間違っていない。
freshclamを実行してもサクッと動く。
じゃぁ、なぜ・・・?

( ゜o゜)ハッ。と気付きました。
もしかして、freshclamのパスが間違っているんじゃないかと。
早速、CUIでログインして which コマンドで確かめてみました。

xxxxxxxxxxxxx@xxxx:/# which freshclam
/usr/local/bin/freshclam


/usr/local/bin/freshclam

ほら。localが入っているじゃないか!
パスが間違っているんじゃないか(笑)

と言うことで修正しました。
翌日からメールは届かなく・・・なりませんでした!

同じ内容がしつこく来るなあ。
どこかが間違っているから、code 1となっていると思っているんだけど。
少し深掘りすると、次のページに遭遇しました。

Clam Antivirusに関するメモ

freshclam戻り値

この事ではないかと。
と言うことは問題ないようだ。じゃぁ、放置しておこう(^^)
ついでなので、clamavのバージョンが上がっていたんで、ソースをダウンロードしてコンパイルしてインストールしておきました。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
fail2banのlogrotateがおかしい?
/usr/bin/fail2ban-client set logtarget /var/log/fail2ban.log 2> /dev/null || true。
毎週、fail2banのログローテートでエラーメールが届く。
logrotate_script: 2: logrotate_script: gt: not found
logrotate_script: 2: logrotate_script: /dev/null: Permission denied Current logging target is:
`- /var/log/fail2ban.log


ずっとスルーしていたんだけど、気持ち悪いのでいい加減片付けようと重い腰を上げて調べた。
エラーの内容からスクリプトでgtコマンドは見つかりませんよ。
Linuxコマンドでgtコマンドなんて知らないな。と言うことで調べる前に、( ゜o゜)ハッと気付く。
もしかして、スクリプトの中に「>」を「>」に書き換えられているのではないか。と。
スクリプトを覗いてみる。

/var/log/fail2ban.log {
missingok
ifempty
weekly
compress
dateext
create 0644 root root
postrotate
/usr/bin/fail2ban-client set logtarget /var/log/fail2ban.log 2> /dev/null || true
endscript

}

( ゚д゚)ビンゴー
と言うことで次のように修正。
/var/log/fail2ban.log {
missingok
notifempty
weekly
compress
dateext
create 0644 root root
postrotate
/usr/bin/fail2ban-client set logtarget /var/log/fail2ban.log 2> /dev/null || true
delaycompress
endscript
}

スクリプトを見ての通り毎週動くスクリプトなので、翌週の実行を見てみる。
無事にエラーは出力されず、ログのローテーションがされました。
しかし、なんであんなことになっていたのか謎ですね。



記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
error: Compressing program wrote following message to stderr when compressing log
error: Compressing program wrote following message to stderr when compressing log /var/log/dovecot/dovecot.log-yyyymmdd:。
毎朝、たまにこう言うエラーメールが届く。

error: Compressing program wrote following message to stderr when compressing log /var/log/dovecot/dovecot.log-yyyymmdd:
gzip: stdin: file size changed while zipping


毎日ではなく、たまにこうしたメッセージが送られてくる。
それで、どうすれば良いのか考えたんだけど、何となくログファイルを圧縮するところで何かしらのエラーが出ている。と考える。

/etc/logrotate.d/dovecot
を参照
【修正前】
daily
missingok
dateext
rotate 52
sharedscripts
postrotate
/bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
endscript
compress
}

【修正後】
daily
missingok
dateext
rotate 52
sharedscripts
postrotate
/bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true
endscript
delaycompress
}

これで、2週間様子を見ました。
その結果、このメッセージは出なくなりました。
めでたしめでたし(^^)


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
apt-show-versionsのメッセージ
Max. recursion depth with nested structures exceeded at /usr/local/lib/x86_64-linux-gnu/perl/5.24.1/Storable.pm line 278, at /usr/bin/apt-show-versions line 274.。
/etc/cron.daily/apt-show-versions:
Max. recursion depth with nested structures exceeded at /usr/local/lib/x86_64-linux-gnu/perl/5.24.1/Storable.pm line 278, at /usr/bin/apt-show-versions line 274.
run-parts: /etc/cron.daily/apt-show-versions exited with return code 25


先日、PHP7にバージョンアップしてから、この様なメッセージが届くようになった。
実は、PHP7へバージョンアップのついでとして、PerlモジュールCPANもそれぞれバージョンアップをしたのであった。
見ての通り、「perl/5.24.1」があるので、おわかりかと思う。

このメッセージが出たら対処は簡単だ。
Storable.pmを削除(アンインストール)してしまえば良い。

ヒントはここに書いてありました。

Bug#898090: apt-show-versions

CUIからアンインストールするのが面倒くさかったので、Webminから削除しちゃいました。
これで、メッセージは出なくなりました。ちゃんちゃん。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
clamavの不具合とアップデート
run-parts: /etc/cron.daily/freshclam exited with return code 62。
5月最後は技術的な事を書き残しておこうか。
ほぼ毎日、朝の7時30分から8時30分の間に次のようなタイトルでメールが届く。

Cron <xxxxxxxx@yyyyyyyy> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

そして、内容はこんな感じ。
/etc/cron.daily/clamscan:
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.4 Recommended version: 0.100.0
/etc/cron.daily/freshclam:
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!).
run-parts: /etc/cron.daily/freshclam exited with return code 62


所見ではわからないと思うが・・・。

/etc/cron.daily/clamscan:
は、新しいバージョンがあるのでそっちを使いましょうね。
最新バージョンは、0.100.0だよ。
と言う内容。WARINING(警告)メッセージなので放置しても構わない。


/etc/cron.daily/freshclam:
は、ログファイル(/var/log/clamav/freshclam.log)のパーミッションがおかしいですよ。
いっぺん確認してみてよ。
と言うエラー。
こっちは修正する必要が有る。

まずエラー不具合の対処だが、パーミッションをいじくり回しても解決しない事が多い。
サクッとfreshclam.logを消してしまうことをお薦めする。
このログは定義ファイルを更新したときに出力されるログなので消してしまっても問題ない。
消した後で、freshclamを実行すれば新たにログが再作成されます。
過去に何度もパーミッションを変えたり、オーナーやグループを見直したが何一つ解決されませんでした。
あれこれ悩んでも仕方なし。サクッと消してしまおう!


つづいてワーニングの対処だがバージョンアップをお薦めする。
通常、Debian GNU/Linuxでは、apt-getでパッケージ化されたものをダウンロードするのだが、残念ながらstreachバージョンでは5月27日時点では更新されなかった。
もっと前からチェックしているけど、ちっともパッケージ化される見込みがなかったので、ソースをダウンロードするところから始めた。

ここで注意点
ソースをダウンロードしてインストールする場合、元パッケージと混在する可能性があるので、予めアンインストール(Purge)をしておきましょう。
aptitude purge clamav clamav-freshclam



ダウンロード元はこちら。

Source code

英語サイトだけど全く問題ない。
clamav-x.yyy.z.tar.gz(xyzにはバージョン数字が入る)をダウンロードすれば良い。
ダウンロードからインストールするまでの流れは次の通り。
青字が入力するところです。
hoge@hagehage:~# wget https://www.clamav.net/downloads/production/clamav-0.100.0.tarr.gz
--2018-05-23 11:28:59-- https://www.clamav.net/downloads/production/clamav-0.100.0.tar.gz
www.clamav.net (www.clamav.net) をDNSに問いあわせています... 104.16.187.138, 104.16.189.138, 104.16.185.138, ...
www.clamav.net (www.clamav.net)|104.16.187.138|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
clamav-site.s3.amazonaws.com (clamav-site.s3.amazonaws.com) をDNSに問いあわせています... 52.216.229.227
clamav-site.s3.amazonaws.com (clamav-site.s3.amazonaws.com)|52.216.229.227|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 16036757 (15M) []
clamav-0.100.0.tar.gz' に保存中

2018-05-27 11:29:11 (1.76 MB/s) - `clamav-0.100.0.tar.gz' へ保存完了 [16036757/16036757]

hoge@hagehage:~# cd /tmp
hoge@hagehage:/tmp# cp /root/clamav-0.100.0.tar.gz .
hoge@hagehage:/tmp# tar vxfz clamav-0.100.0.tar.gz
clamav-0.100.0/
clamav-0.100.0/COPYING.llvm

[中略]

clamav-0.100.0/configure.ac
clamav-0.100.0/COPYING.regex
clamav-0.100.0/aclocal.m4
hoge@hagehage:/tmp# cd clamav-0.100.0/
hoge@hagehage:/tmp/clamav-0.100.0# ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
creating target.h - canonical system defines
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether UID '0' is supported by ustar format... yes
checking whether GID '0' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports nested variables... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc

[中略]

configure: Summary of detected features follows
OS : linux-gnu
pthreads : yes (-lpthread)
configure: Summary of miscellaneous features
check : no (auto)
fanotify : yes
fdpassing : 1
IPv6 : yes
configure: Summary of optional tools
clamdtop : (auto)
milter : yes (disabled)
clamsubmit : no (missing libjson-c-dev AND libcurl-devel. Use the website to submit FPs/FNs.) (disabled)
configure: Summary of engine performance features
release mode: yes
llvm : no (disabled)
mempool : yes
configure: Summary of engine detection features
bzip2 : ok
zlib : /usr
unrar : yes
preclass : no (missing libjson-c-dev) (disabled)
pcre : /usr
libmspack : yes (Internal)
libxml2 : no
yara : yes
fts : yes (libc)
hoge@hagehage:/tmp/clamav-0.100.0# make
make all-recursive
make[1]: ディレクトリ '/tmp/clamav-0.100.0' に入ります
Making all in libltdl
make[2]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' に入ります
make all-am
make[3]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' に入ります
CC dlopen.lo
CCLD dlopen.la
ar: `u' modifier ignored since `D' is the default (see `U')
CC libltdlc_la-preopen.lo
CC libltdlc_la-lt__alloc.lo
CC libltdlc_la-lt_dlloader.lo
CC libltdlc_la-lt_error.lo
CC libltdlc_la-ltdl.lo
CC libltdlc_la-slist.lo
CC lt__strl.lo
CCLD libltdlc.la
ar: `u' modifier ignored since `D' is the default (see `U')

[中略]

Making all in unit_tests
make[2]: ディレクトリ '/tmp/clamav-0.100.0/unit_tests' に入ります
make[2]: 'all' に対して行うべき事はありません.
make[2]: ディレクトリ '/tmp/clamav-0.100.0/unit_tests' から出ます
make[2]: ディレクトリ '/tmp/clamav-0.100.0' に入ります
make[2]: ディレクトリ '/tmp/clamav-0.100.0' から出ます
make[1]: ディレクトリ '/tmp/clamav-0.100.0' から出ます
hoge@hagehage:/tmp/clamav-0.100.0# make install
Making install in libltdl
make[1]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' に入ります
make install-am
make[2]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' に入ります
make[3]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' に入ります
make[3]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' から出ます
make[2]: ディレクトリ '/tmp/clamav-0.100.0/libltdl' から出ます

[中略]

make[2]: ディレクトリ '/tmp/clamav-0.100.0' から出ます
make[1]: ディレクトリ '/tmp/clamav-0.100.0' から出ます
hoge@hagehage:

これで終わりハズなのだが、バージョンを確認するために実行すると次のエラーが出てきた。
hoge@hagehage:~# clamscan --version
clamscan: error while loading shared libraries: libclammspack.so.0: cannot open shared object file: No such file or directory
「libclammspack.so.0」が見つからないと言っているようだ。

ちなみに定義ファイルを更新しようとすると、同じようにエラーが出た。
hoge@hagehage:~# freshclam
freshclam: error while loading shared libraries: libclammspack.so.0: cannot open shared object file: No such file or directory

これを解決するには、次のコマンドを入力すれば一発で解決する。
hoge@hagehage:~# ldconfig

もう一度、freshclamを実行すると今度はこんなエラーが出た。
ERROR: Can't open/parse the config file /usr/local/etc/freshclam.conf
定義ファイルが無いよ。と。
これは、ショートカットファイルを作ってやればOk。
hoge@hagehage:~# cd /usr/local/etc/freshclam.conf
hoge@hagehage:~# ln -s /etc/clamav/freshclam.conf
hoge@hagehage:~# ln -s /etc/clamav/clamd.conf
これで再度実行すれば、ちゃんとパスが通って完了する。


翌日、次のような内容のワーニングメールが届いた。
/etc/cron.daily/clamscan:
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99.4 Recommended version: 0.100.0

どうやら、どこかにバージョンの古い奴が残っているんだな。
と言うことで検索して削除。そして、そこにショートカットファイルを置きました。

その翌日、次のような内容のメールが届いた。
run-parts: /etc/cron.daily/freshclam exited with return code 1


う~ん、1行だけなのでさっぱりわからん。
ググってみたところ、改行コードが違う~てあるくらい。
FTPでダウンロードして確認したところ、確かにCR+LFになっていた。
それをLFに変更して再アップロード。

これで、今日以降に届くメールで何も出なかったら終わりかな。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: (1人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
Fail2Banがようやく機能した…か?
2018-04-18 18:19:54,400 fail2ban.actions [1278]: ERROR Failed to execute ban jail 'postfix-sasl' action 'iptables-multiport' info 'ActionInfo({'bancount': 1, 'ip-rev': '31.86.166.188.', 'family': 'inet4', 'ipmatches': 'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'matches': u'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'ip': '188.166.86.31', 'ipjailmatches': 'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'ipfailures': 6, 'F-*': {'matches': [(u'', u'Apr 18 18:18:33', u' sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6'), u'Apr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', u'Apr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6'], 'failures': 3, 'ip4': u'188.166.86.31'}, 'fid': '188.166.86.31', 'time': 1524043133.0, 'failures': 3, 'ip-host': None, 'ipjailfailures': 3, 'restored': 0, 'bantime': 3600})': Error starting action Jail('postfix-sasl')/iptables-multiport。
GWが始まったときの課題の一つに、“メールサーバーに不正にアクセスしてくる奴のIPを拒否する”を完璧にする。
を掲げていました。
相方の実家へ帰省する直前に、ようやく改善の兆しが見え、帰宅後ほぼ徹夜して試行錯誤を繰り返しました。
ようやく達成したのでその備忘録として残そうと思います。


実は、当ブログでも過去にこうした記事を書いてきました。

海外ISPに苦情を申し立て(メールサーバーへの不正アクセス)(2018/03/13 06:00:00)
Postfixで相変わらずな不正アクセスを阻止(2018/02/09 06:00:00)
Fail2banの機能不全を回避(2018/01/14 06:00:00)


成功したと思っていたのですが、実は全然成功していませんでした(^^ゞ
そもそも、こう言うログが出た時点で疑うべきでした。


2018-03-27 00:24:02,155 fail2ban.observer [1278]: INFO [postfix-sasl] Found 91.200.12.152, bad - 2018-03-27 00:24:02, 3 # -> 3, Ban
2018-03-27 00:24:02,310 fail2ban.actions [1278]: WARNING [postfix-sasl] 91.200.12.152 already banned


IPアドレスを拒否!とFail2Banがやっているのに、既に設定されています。と言うワーニングメッセージで気付けよと。
まず、iptablesのバージョンが1.6.0の時点で色々問題有りでした。


Fail2Banのサービス再起動をしたところ、づらづら~っとエラーの嵐。
2018-04-18 18:19:54,400 fail2ban.actions [1278]: ERROR Failed to execute ban jail 'postfix-sasl' action 'iptables-multiport' info 'ActionInfo({'bancount': 1, 'ip-rev': '31.86.166.188.', 'family': 'inet4', 'ipmatches': 'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'matches': u'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'ip': '188.166.86.31', 'ipjailmatches': 'Apr 18 18:18:33 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6\nApr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', 'ipfailures': 6, 'F-*': {'matches': [(u'', u'Apr 18 18:18:33', u' sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6'), u'Apr 18 18:18:41 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6', u'Apr 18 18:18:53 sir-2 postfix/smtpd[12135]: warning: unknown[188.166.86.31]: SASL LOGIN authentication failed: UGFzc3dvcmQ6'], 'failures': 3, 'ip4': u'188.166.86.31'}, 'fid': '188.166.86.31', 'time': 1524043133.0, 'failures': 3, 'ip-host': None, 'ipjailfailures': 3, 'restored': 0, 'bantime': 3600})': Error starting action Jail('postfix-sasl')/iptables-multiport
2018-04-18 18:20:54,417 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- exec: iptables -w -N f2b-sasl
iptables -w -A f2b-sasl -j RETURN
iptables -w -I INPUT -p tcp --dport smtp -j f2b-sasl
cat /etc/fail2ban/jail.d/ip.blacklist | while read IP; do iptables -I f2b-sasl 1 -s
$IP -j DROP; done
2018-04-18 18:20:54,418 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- timed out after 60 seconds.
2018-04-18 18:20:54,619 fail2ban.utils [1278]: ERROR iptables -w -N f2b-sasl
iptables -w -A f2b-sasl -j RETURN
iptables -w -I INPUT -p tcp --dport smtp -j f2b-sasl
cat /etc/fail2ban/jail.d/ip.blacklist | while read IP; do iptables -I f2b-sasl 1 -s
$IP -j DROP; done -- failed with [Errno 3] No such process
2018-04-18 18:20:54,622 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- stderr: 'iptables: Chain already exists.'
2018-04-18 18:20:54,622 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- stderr: 'iptables v1.6.0: option "-s" requires an argument'
2018-04-18 18:20:54,622 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- stderr: "Try `iptables -h' or 'iptables --help' for more information."
2018-04-18 18:20:54,622 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- stderr: '/bin/sh: 5: 94.102.56.181: not found'
2018-04-18 18:20:54,622 fail2ban.utils [1278]: ERROR 7f0c1aa8ab30 -- stderr: 'iptables v1.6.0: option "-s" requires an argument'

まず、cat /etc/fail2ban/jail.d/ip.blacklist | while read IP; do iptables -I f2b-sasl 1 -s $IP -j DROP; done これの赤字部分が間違っている。$が抜けていた。
そして、iptablesでは-sのオプションはもう使えない。と。
IPv4の場合は、-4 と入れるそうだ。
でも、その後でドツボにハマり、何をやってもフィルターエラーが解決しない。
解決したと思ったら、今度は不正アクセスをキャッチしない。


試行錯誤した結果、この様に設定をしたら、全てが解決しました。

[jail.conf]


[sasl-iptables]

enabled = true
filter = postfix-sasl
port = smtp,465,submission
backend = polling
action = iptables[name=sasl, port="smtp,smtps"]
sendmail-whois[name=sasl, dest=送信者メールアドレス.sender=送信先メールアドレス]
#logpath = %(postfix_log)s
logpath = /var/log/mail.log
backend = %(postfix_backend)s



[postfix-sasl.conf]
# Fail2Ban filter for postfix authentication failures
#

[INCLUDES]

before = common.conf

[Definition]

_daemon = postfix/smtpd

failregex = (?i): warning: [-._\w]+\[<HOST>\]: SASL (?:LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed: \w
^%(__prefix_line)swarning: hostname no-reverse-dns-configured.com does not resolve to address <HOST>?\s*$

ignoreregex =

# Author: Yaroslav Halchenko

小難しいのは省いて、シンプルな攻撃だけをフィルターにかけることにした。

[iptables.conf]
[INCLUDES]

before = iptables-common.conf

[Definition]

# Option: actionstart
# Notes.: command executed once at the start of Fail2Ban.
# Values: CMD
#
actionstart = <iptables> -N f2b-<name>
<iptables> -A f2b-<name> -j <returntype>
<iptables> -I <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
cat /etc/fail2ban/jail.d/ip.blacklist | while read $IP; do iptables -I f2b-<name> 1
-s
$IP -j DROP; done

# Option: actionstop
# Notes.: command executed once at the end of Fail2Ban
# Values: CMD
#
actionstop = <iptables> -D <chain> -p <protocol> -m multiport --dports <port> -j f2b-<name>
<actionflush>
<iptables> -X f2b-<name>

# Option: actioncheck
# Notes.: command executed once before each actionban command
# Values: CMD
#
actioncheck = <iptables> -n -L <chain> | grep -q 'f2b-<name>[ \t]'

# Option: actionban
# Notes.: command executed when banning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: See jail.conf(5) man page
# Values: CMD
#
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>
echo <ip> >> /etc/fail2ban/jail.d/ip.blacklist

# Option: actionunban
# Notes.: command executed when unbanning an IP. Take care that the
# command is executed with Fail2Ban user rights.
# Tags: See jail.conf(5) man page
# Values: CMD
#
actionunban = <iptables> -D f2b-<name> -s <ip> -j <blocktype>

[Init]

-4 にすると謎のエラーになるので、再び-s に戻してやるとスッキリした。
なんでかな?


取りあえず、バンバンロックがかかっていることが、次のコマンドでハッキリした。
********@######:/var# iptables -L f2b-%%%%%%%%
Chain f2b-%%%%%%%% (1 references)
target prot opt source destination
DROP all -- mail.kwiktron.com.au anywhere
DROP all -- 71-10-113-13.dhcp.stpt.wi.charter.com anywhere
DROP all -- 178.141.251.45 anywhere
DROP all -- 103.215.211.106 anywhere
DROP all -- no-reverse-dns-configured.com anywhere
DROP all -- host3.likeithealthy.com anywhere
DROP all -- residencial-200.6.178.132.costanet.com.co anywhere
DROP all -- static-ip-1816025453.cable.net.co anywhere
DROP all -- 184.71.152.86 anywhere
DROP all -- 103.230.85.157 anywhere
DROP all -- static.vnpt.vn anywhere
DROP all -- 91.209.70.221 anywhere


あと、ログローテーションもうまく行っていなかったので修正した。
単純にファイルパスを間違えていただけで、正しく動かなかっただけだった。


それにしても、Fail2Banのフィルターの書き方が今一つ分からなかったです。
正規表現は分かったのですが、<ip>とか<HOST>なんて固有変数は、試行錯誤しないとダメでした。



記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
海外ISPに苦情を申し立て(メールサーバーへの不正アクセス)

ググっても見つからなかったので自力で解決を試みました。
昨年の12月から一部のIPアドレスにおいて、メールサーバへしつこく不正ログインを試みるヤカラがいました。
その都度、ブロックしたりしていたのですが、それでもログを見るとバンバンやってきていました。
こちらで打てる手が全部なくなったので、最終手段としてfail2banで届いたメール内容から苦情申し立てのメールアドレス(abuse@xxxxx.xxxxx)に次の内容で送りました。


-----
タイトル:Warning statement
-----
内容
A petition

The next IP address intermittently makes unauthorized access to the mail server of this site from February 2018.

94.102.50.96

I am taking measures here, but I do not have a sign to stop it.
Please take measures (stop measures) immediately there.
The attached file is a mail item that detected unauthorized access that we received so far.
-----
こんな感じです。これに、fail2banで送られて来たメールアイテムを添付し、mail.logで当該IPアドレスを引っかけて貼付して送りました。


送っても暫くは不正アクセスを試みてはいたのですが、2日後くらい見るとピタッと止まりました。
やっぱりやってみるもんだなぁ。と思います。
全ての海外ISP(プロバイダー)に通じるとは思いませんが、何もやらないよりかはマシじゃないかと思います。
もう、本当にしつこくて。
毎日、数時間おきにFail2Banのメールが届くんですよ。
もしかして、Fail2Banが機能していないんじゃないか?と思って、「Postfixで相変わらずな不正アクセスを阻止」の方法もやってみたのですが効果有りませんでした。

本来ならFail2Banで効果があるはずなのですが、どう言う訳かOSバージョンアップしてからその効果が出ていないようです。
これについては、色々調査しているのですが、断定出来る箇所が見つからないのが実情ですね。
う~ん、iptablesによるIPアドレス拒否も出来ているのになぁ。


続き▽ 記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
Posted by いぐぅ 06:00 | システム::linux | comments (0) | trackback (0)
データベースのバックアップ for MySQL
このツールに付属している記事のバックアップ&リストア機能が全然いけてなくて、当ブログ投稿されているAckinさんの指摘で気付きました。
当サイトのブログや他に関連するツールは、基本MySQLで運用しています。
特にブログは、MySQL専用のデータベースを使っています。
ブログツールは、既に開発が終了したぶろぐんPLUSを使っています。


このツールに付属している記事のバックアップ&リストア機能が全然いけてなくて、当ブログ投稿されているAckinさんの指摘で気付きました。
これまで何度かサーバー移転をしていたのですが、この時に記事の抽出(エクスポート)と挿入(インポート)を次のようにしてきました。

1.MySQLのデータが保管されているディレクトリをまるごと圧縮し、新しいサーバーのディレクトへ解凍展開
2.ぶろぐんPLUSを使ってエクスポートしてファイルをダウンロードし、新しいサーバーへアップロードしてインポート

実は、これまでは自宅サーバーでしたので、かなりごり押し技ですが「1」をやっていました。
なので、特段問題となる事象はありませんでした。


そして2年前、自宅サーバーが壊れたのとハードウェアの維持管理が億劫になってきたことを踏まえ、知人の紹介(アドバイス)でさくらVPSを使うことにしました。
お試し期間中にあらゆるデータをアップロードしていたのですが、死ぬほど遅くて諦めて再構築をしました。
そこで、ぶろぐんPLUSの記事データを「2」の方法で展開。
すると、ぶろぐんPLUS内のリンクが無茶苦茶になってしまいました。
この指摘は、随分後になって気付いたため、既に元データを消去してしまったあとではどうすることも出来ず。
Ackinさんには申し訳なく、私も自分の記事を全てチェックして貼り直すには、膨大な数から無理であるためそのままにしています。
とは言え、不意の故障でデータ消失だけは避けねばならないので、2~3ヶ月に1度、不定期にバックアップを取っています。
そのバックアップを取る方法は、最も簡単で次の通り。

3.phpMyAdminでエクスポートしてPCにダウンロードする

ものの3分で終わります。「3」の方法は、実質「1」と似たような感じで、SQLテキスト形式になります。
万一、データベースやOSが破壊されても、エクスポートした時点にまで簡単に復旧出来ます。
恐らく、次回サーバー移転をしてもぶろぐんPLUS内のリンクが、ずれることはないはずです。


記事を評価してください(★1つ=悪い、★5つ=良い)
この記事の平均評価: 未評価 (0人)
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