私は現在、自宅のLinuxマシンにApache Webサーバーをセットアップしています。ユーザーがログインして特定の作業を完了することができるウェブサイトプロジェクトに取り組んでいます。このウェブサイトにはオープン登録はありません。アカウントは管理者(現在は私)が発行する必要があります。
私はこのサーバーをセットアップしたので、自分の能力を最大限に発揮させるために、サーバーが安全であることを確認したいと思います。 Edgeのセキュリティを削減することに関して、私の知識は比較的限られています。
疑わしい接続を監視してアクティブにブロックするために、いくつかのLinuxパッケージをインストールしています。
私は自分のログを調べていますが、読んでいることをすべて理解しているかどうかは完全にはわかりません。 iptables
とfail2ban
があります。以下の例と同様に、毎時間約3ページのログエントリがあります。この情報から、セキュリティが適切に設定されているように見えますか?私に関係するエントリは、既知のJavaエクスプロイト)であるcom.jcraft.jsch.JSchException
を含むエントリです。
正直なところ、私が正しい質問をしているのかどうかさえわかりません。私は喜んで学びます。私は単にガイダンスとそこから学ぶためのリソースが必要です。私は建設的な批判を扱うことができます。
ここに私が見ているエントリのタイプの例をいくつか示します。
Apr 10 10:02:10 gcems sshd[29230]: Unable to negotiate with 103.79.143.42 port 52068: no
+matching key exchange method found. Their offer: diffie-hellman-group1-sha1 [preauth]
Apr 10 10:03:08 gcems sshd[29398]: Did not receive identification string from
+212.83.140.166 port 46529
Apr 10 10:03:43 gcems sshd[29548]: Invalid user support from 163.172.114.203 port 54291
Apr 10 10:03:45 gcems sshd[29548]: error: Received disconnect from 163.172.114.203 port
+54291:3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Apr 10 10:03:45 gcems sshd[29548]: Disconnected from 163.172.114.203 port 54291 [preauth]
あなたができる唯一のことは、ログに飛び込み、すべてのレコードについてそれが何を意味し、どのような影響があるかを確認することです。それは大変な作業です。私は知っています、そしてあなたはあなたのセキュリティ知識を拡大します。
表示するレコードは、失敗を示しています。厄介ですが、一般的に、障害は問題ではありません。セキュリティ対策が機能していることを示しています。ファイアウォールルール(またはiptables、ルーターACL、または...)を使用すると、特定のメインpoサブネットが本当に迷惑になった場合、それらへのアクセスを拒否できます。
また、成功した接続試行も確認する必要があります。彼らは論理的ですか?このサブネット/アドレスからのこのタイプの接続を期待しましたか?
期待する接続の種類のベースラインを作成する必要があります。そして、単純なホームベースのサイトであっても、誰か奇妙な人がリソースにアクセスした場合の危険度を決定する必要があります。つまり、リスク分析を行います。
表示するログレコードは、SSHサーバーが開いていることを示しています。通常のリモート管理を行わない限り、これは悪い考えです。リモート管理を行う場合でも、OpenVPNの使用を検討してください。
Sshポートが開いていると、多くの接続試行が行われます。この場合、103.79.143.42はキー交換を行うことができず、163.172.114.203はユーザーsupport
としてログインしようとしましたが、正しく認証できませんでした。私の経験(インターネット上のホーム接続のSSHサーバー)では、SSHでのログイン試行の失敗が平均して1時間に少なくとも10回表示されるはずです。あなたのウェブサイトがもう少し目立つなら、より高いです。
Apacheアクセスログも確認する必要があります。そこでは、私の経験上、1時間に複数回(ホームWebサイトの場合)、すべてのスクリプトキディが知っているいくつかの標準的なURLが表示されます。それは次のようなものになります:
118.89.38.35 - - [03/Mar/2019:08:09:53 +0000] "GET /s/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:53 +0000] "GET /MyAdmin/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:54 +0000] "GET /phpMyAdmin1/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:54 +0000] "GET /phpMyAdmin123/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:56 +0000] "GET /pwd/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:57 +0000] "GET /phpMyAdmina/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:57 +0000] "GET /phpMydmin/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:57 +0000] "GET /phpMyAdmins/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
118.89.38.35 - - [03/Mar/2019:08:09:58 +0000] "GET /program/index.php HTTP/1.1" 404 442 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0)"
この場合の404は、ページが見つからないことを意味します。