GNU/Linux >> Linux の 問題 >  >> Linux

Linuxサーバーを保護するための7つのステップ

この入門書では、基本的なLinuxサーバーのセキュリティについて説明します。 Debian / Ubuntuに焦点を当てていますが、ここに示されているすべてのものを他のLinuxディストリビューションに適用できます。また、この資料を調査し、該当する場合は拡張することをお勧めします。

1。サーバーを更新する

サーバーを保護するために最初にすべきことは、ローカルリポジトリを更新し、最新のパッチを適用してオペレーティングシステムとインストール済みアプリケーションをアップグレードすることです。

UbuntuとDebianの場合:

$ sudo apt update && sudo apt upgrade -y

Fedora、CentOS、またはRHELの場合:

$ sudo dnf upgrade

2。新しい特権ユーザーアカウントを作成する

次に、新しいユーザーアカウントを作成します。 rootとしてサーバーにログインしないでください 。代わりに、独自のアカウントを作成してください( " ")、 sudo 権利を取得し、それを使用してサーバーにログインします。

新しいユーザーを作成することから始めます:

$ adduser <username>

新しいユーザーアカウントをsudoにします 追加による権利( -a sudo グループ( -G )ユーザーのグループメンバーシップへ:

$ usermod -a -G sudo <username>

3。 SSHキーをアップロードする

SSHキーを使用して新しいサーバーにログインすることをお勧めします。 ssh-copy-id を使用して、事前に生成されたSSHキーを新しいサーバーにアップロードできます。 コマンド:

$ ssh-copy-id <username>@ip_address

これで、パスワードを入力しなくても新しいサーバーにログインできます。

4。安全なSSH

次に、次の3つの変更を行います。

  • SSHパスワード認証を無効にする
  • ルートを制限する リモートログインから
  • IPv4またはIPv6へのアクセスを制限する

/ etc / ssh / sshd_configを開きます 選択したテキストエディタを使用して、次の行を確認します。

PasswordAuthentication yes
PermitRootLogin yes

次のようになります:

PasswordAuthentication no
PermitRootLogin no

次に、 AddressFamily を変更して、SSHサービスをIPv4またはIPv6に制限します。 オプション。 IPv4のみを使用するように変更するには(ほとんどの人にとっては問題ないはずです)、次のように変更します。

AddressFamily inet

SSHサービスを再起動して、変更を有効にします。 SSHサーバーを再起動する前に、サーバーへの2つのアクティブな接続を確立することをお勧めします。その余分な接続があると、再起動がうまくいかなかった場合に何かを修正できます。

Ubuntuの場合:

$ sudo service sshd restart

FedoraまたはCentOS、またはSystemdを使用するもの:

$ sudo systemctl restart sshd

5。ファイアウォールを有効にする

次に、ファイアウォールをインストールして有効にし、指定したネットワークトラフィックのみを許可するように構成する必要があります。 Uncomplicated Firewall(UFW)は、 iptablesへの使いやすいインターフェースです。 これにより、ファイアウォールの構成プロセスが大幅に簡素化されます。

UFWは次のコマンドでインストールできます:

$ sudo apt install ufw

デフォルトでは、UFWはすべての着信接続を拒否し、すべての発信接続を許可します。つまり、サーバー上のすべてのアプリケーションはインターネットにアクセスできますが、サーバーにアクセスしようとするものは接続できません。

まず、SSH、HTTP、HTTPSへのアクセスを有効にしてログインできることを確認します。

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

次に、UFWを有効にします:

$ sudo ufw enable

次の方法で許可および拒否されるサービスを確認できます:

$ sudo ufw status

UFWを無効にしたい場合は、次のように入力してください。

$ sudo ufw disable

すでにインストールされ、一部のディストリビューションに統合されているfirewall-cmdを使用することもできます。

6。 Fail2banをインストールする

Fail2banは、サーバーログを調べて、繰り返される攻撃または自動化された攻撃を探すアプリケーションです。見つかった場合は、ファイアウォールを変更して、攻撃者のIPアドレスを永続的にまたは指定された時間ブロックします。

次のように入力して、Fail2banをインストールできます。

$ sudo apt install fail2ban -y

次に、含まれている構成ファイルをコピーします。

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

そして、Fail2banを再起動します:

$ sudo service fail2ban restart

これですべてです。ソフトウェアは、攻撃を探すためにログファイルを継続的に調べます。しばらくすると、アプリは禁止されているIPアドレスのかなりのリストを作成します。このリストを表示するには、SSHサービスの現在のステータスを次のコマンドでリクエストします。

$ sudo fail2ban-client status ssh

7。未使用のネットワーク向けサービスを削除する

ほとんどすべてのLinuxサーバーオペレーティングシステムでは、いくつかのネットワーク向けサービスが有効になっています。あなたはそれらのほとんどを保持したいと思うでしょう。ただし、削除したいものがいくつかあります。 ss を使用すると、実行中のすべてのネットワークサービスを確認できます。 コマンド:

$ sudo ss -atpu

ssからの出力 オペレーティングシステムによって異なります。これはあなたが見るかもしれないものの例です。 SSH(sshd)およびNgnix(nginx)サービスがリッスンしており、接続の準備ができていることを示しています。

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

未使用のサービスを削除する方法( " ")は、オペレーティングシステムと使用するパッケージマネージャーによって異なります。

Debian / Ubuntuで未使用のサービスを削除するには:

$ sudo apt purge <service_name>

Red Hat / CentOSで未使用のサービスを削除するには:

$ sudo yum remove <service_name>

その他のLinuxリソース

  • Linuxコマンドのチートシート
  • 高度なLinuxコマンドのチートシート
  • 無料のオンラインコース:RHELの技術概要
  • Linuxネットワーキングのチートシート
  • SELinuxチートシート
  • Linuxの一般的なコマンドのチートシート
  • Linuxコンテナとは何ですか?
  • 最新のLinux記事

ss -atupを実行します 未使用のサービスがインストールおよび実行されていないことを再度確認します。

最終的な考え

このチュートリアルでは、Linuxサーバーを強化するために最低限必要なものを紹介します。サーバーの使用方法に応じて、追加のセキュリティレイヤーを有効にすることができます。これらのレイヤーには、個々のアプリケーション構成、侵入検知ソフトウェア、2要素認証などのアクセス制御の有効化などが含まれます。


Linux
  1. LinuxでOpenVPNサーバーを構成する

  2. LinuxPCにOpenVPNをインストールします

  3. Linuxサーバーを監視する方法は?

  1. LinuxにNginxWebサーバーをインストールする方法

  2. LinuxサーバーでIPアドレスをブロックする

  3. Linuxサーバーのセキュリティのベストプラクティス

  1. CheckmkでLinuxサーバーを監視する

  2. Linuxサーバーで最初の10分間に行う9つのこと

  3. OpenSSHを使用してLinuxサーバーに接続する方法