OS のセキュリティは、Web サイト、Web アプリケーション、オンライン ビジネスと同じくらい重要です。
サイト (レイヤー 7) を保護するために、セキュリティ プラグイン、WAF、クラウドベースのセキュリティに費用を費やしているかもしれませんが、OS を強化しないままにしておくのは 危険 です。
傾向は 変わりつつ あります。
ウェブは、複数の利点を得るために共有ホスティングからクラウドに移行しています。
- リソースが他のユーザーと共有されないため、応答時間が短縮されます。
- 技術スタックを完全に制御
- オペレーティング システムの完全な制御
- 低コスト
「大いなる力には大いなる責任が伴う」
クラウド VM 上で Web サイトをホストすると、 より高度な制御が 可能になりますが、VM を管理するには少しのシステム管理者のスキルが必要です。
準備 はできていますか?
注: 時間を投資したくない場合は、AWS、Google Cloud、Digital Ocean、Linode、Vultr、Kup VM を管理する Cloudways を選択できます。
Ubuntu と CentOS VM を保護するための 実践的なガイド を見てみましょう。
SSHのデフォルトポートの変更
デフォルトでは、SSH デーモンは ポート番号 22 でリッスンします。これは、誰かがあなたの IP を見つけた場合、あなたのサーバーへの接続を試みることができることを意味します。
複雑なパスワードで保護されている場合、サーバーにアクセスできない可能性があります。ただし、ブルート フォース攻撃を開始してサーバーの動作を妨害する可能性があります。
最善の方法は、SSH ポートを別のポートに変更して、誰かが IP を知っていても、デフォルトの SSH ポートを使用して 接続を試行できないよう にすることです。
Ubuntu/CentOS での SSH ポートの変更は非常に簡単です。
- root 権限で VM にログインします。
- sshd_config (/etc/ssh/sshd_config) のバックアップを作成します。
- VIエディタを使用してファイルを開きます
vi /etc/ssh/sshd_config
Port 22
を持つ行を探します (通常はファイルの先頭にあります)。
# What ports, IPs and protocols we listen for
Port 22
- 22 を別の番号に変更します (接続する際に必要となるので、必ず 覚えておいて ください)。 5000としましょう
Port 5000
- ファイルを保存し、SSH デーモンを再起動します。
service sshd restart
これで、あなたも誰もが SSH のデフォルト ポートを使用してサーバーに接続できなくなります。代わりに、新しいポートを使用して接続できます。
SSH クライアントまたは MAC 上のターミナルを使用している場合は、
-p
使用してカスタム ポートを定義できます。
ssh -p 5000 username@128.199.100.xxx
簡単 ですね。
ブルートフォース攻撃からの保護
ハッカー がオンライン ビジネスを制御するために使用する一般的なメカニズムの 1 つは、サーバーや WordPress、Joomla などの Web プラットフォームに対してブルート フォース攻撃を開始することです。
これは真剣に考えないと 危険 です。 Linux をブルート フォースから保護するために使用できる人気のあるプログラムが 2 つ あります。
SSH ガード
SSHGuard は、 システム ログ ファイルから実行中のサービスを監視し、繰り返される不正なログイン試行をブロックします。
当初は SSH ログイン保護 を目的としていましたが、現在は他の多くの保護をサポートしています。
- ピュア FTP、プロ FTP、VS FTP、FreeBSD FTP
- エクシム
- メールの送信
- 鳩小屋
- クシポップ
- UWiマップ
次のコマンドを使用して SSHGuard をインストールできます。
Ubuntu:
apt-get install SSHGuard
セントOS :
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/hornos:/centos/CentOS_CentOS-6/x86_64/sshguard-1.5-7.1.x86_64.rpm
rpm -ivh sshguard-1.5-7.1.x86_64.rpm
フェイル 2 バン
Fail2Ban も SSH を保護するための人気のあるプログラムです。 Fail2Ban は、失敗したログイン試行が定義されたしきい値に達すると、iptables ルールを自動的に更新します。
Ubuntu に Fail2Ban をインストールするには:
apt-get install fail2ban
CentOS にインストールするには:
yum install epel-release
yum install fail2ban
SSH ログインを保護するには、SSH Guard と Fail2Ban で十分です。ただし、さらに詳しく調べる必要がある場合は、以下を参照してください。
パスワードベースの認証を無効にする
1 台または 2 台のコンピュータからサーバーにログインする場合は、 SSH キー ベースの認証を使用できます。
ただし、複数のユーザーがいて、複数の公共のコンピュータから頻繁にログインする場合、毎回キーを交換するのは面倒かもしれません。
したがって、状況に応じて、パスワードベースの認証を無効にする場合は、次のようにすることができます。
注: これは、SSH キー交換がすでに設定されていることを前提としています。
-
vi
エディターを使用して
/etc/ssh/sshd_config
を変更します - 次の行を追加するか、存在する場合はコメントを解除します
PasswordAuthentication no
- SSH デーモンをリロードする
DDoS 攻撃からの保護
DDoS (分散型サービス拒否) は どの層 でも発生する可能性があり、これはビジネスオーナーとして最も避けたいことです。
発信元 IP を見つけることは可能です。ベスト プラクティスとして、サーバー IP を公共のインターネットに公開しないでください。クラウド/VPS サーバーでの DDoS を防ぐために「 オリジン IP 」を非表示にする方法は複数あります。
ロード バランサー (LB) を使用する – サーバー IP がインターネットに公開されないように、インターネットに接続されたロード バランサーを実装します。 Google Cloud LB、AWS ELB、Linode Nodebalancer、DO LB など、多くのロード バランサーから選択できます。
CDN (コンテンツ配信ネットワーク) を使用する – CDN は、Web サイトのパフォーマンスとセキュリティを向上させる優れた方法の 1 つです。
CDN を実装するときは、CDN プロバイダーによって提供されるエニーキャスト IP アドレスを使用して DNS A レコードを構成します。これを行うと、ドメインの CDN プロバイダー IP をアドバタイズすることになり、 オリジンは公開されません 。
Web サイトのパフォーマンス、DDoS 保護、WAF、その他多くの機能を高速化する CDN プロバイダーが数多くあります。
- クラウドフレア
- スタックパス
- スクリ
- キーCDN
したがって、パフォーマンスとセキュリティの両方を提供する CDN プロバイダーを選択してください。
カーネル設定と iptables を調整します。iptables を利用して、不審なリクエスト、非 SYN、偽の TCP フラグ、プライベート サブネットなどをブロックできます。
iptables とともに、カーネル設定を構成することもできます。 Javapipe の 手順で詳しく説明されているので、ここでは重複しません。
ファイアウォールを使用する – ハードウェア ベースのファイアウォールを使用できる場合は優れていますが、そうでない場合は、iptables を利用して VM への受信ネットワーク接続を保護する ソフトウェア ベースのファイアウォール を使用することをお勧めします。
たくさんありますが、最も人気のあるものの 1 つは、 Ubuntu の UFW (Uncomplicated Firewall) と CentOS の FirewallD です。
定期的なバックアップ
バックアップはあなたの友達です!何もうまくいかない場合は、バックアップがあなたを 救い ます。
問題が 発生 する可能性がありますが、復元に必要なバックアップがない場合はどうすればよいでしょうか?ほとんどのクラウドまたは VPS プロバイダーは、少しの追加料金でバックアップを提供しているため、常に検討する必要があります。
バックアップ サービスを有効にする方法については、VPS プロバイダーに確認してください。 Linode と DO では、バックアップに対してドロップレット価格の 20% が請求されることは知っています。
Google Compute Engine または AWS を使用している場合は、毎日のスナップショットをスケジュールします。
バックアップを作成すると、 VM 全体をすぐに復元できる ため、業務に戻ることができます。または、スナップショットを利用して、VM のクローンを作成できます。
定期的なアップデート
VM OS を最新の状態に保つことは、サーバーが 最新のセキュリティ脆弱性にさらされていないことを保証するための重要なタスクの 1 つです。
Ubuntu
では、
apt-get update
を使用して最新のパッケージがインストールされていることを確認できます。
CentOS では
yum update
使用できます
開いたポートを放置しないでください
言い換えれば、必要なポートのみを許可します。
攻撃者を攻撃者に利用させるように、不要なポートを開いたままにします。 VM 上で Web サイトをホストしているだけの場合は、ポート 80 (HTTP) または 443 (HTTPS) が必要になる可能性があります。
AWS を使用している場合は、必要なポートのみを許可するセキュリティ グループを作成し、それらを VM に関連付けることができます。
Google Cloud を使用している場合は、「 ファイアウォール ルール 」を使用して必要なポートを許可します。
また、VPS を使用している場合は、 Linode ガイド で説明されているように、基本的な iptables ルールセットを適用します。
上記は、 オンラインの脅威からの保護を強化する ためにサーバーを強化および保護するのに役立ちます。
また 、VM を管理する準備ができていない場合は、複数のクラウド プラットフォームを管理する Cloudways を選択することもできます。特にプレミアム WordPress ホスティングをお探しの場合は、これをお勧めします。