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

Ubuntuサーバーのセットアップ–セキュリティのベストプラクティス

Debian / Ubuntuサーバーが正常にインストールされたら、サーバーのセキュリティと機能を強化するためにいくつかの構成手順が不可欠です。このガイドでは、Debian 9 /Ubuntu18.04サーバーの初期サーバーセットアップの基本的な手順を説明します。これらの基本的な手順により、サーバーが強化され、後続の操作をシームレスに実行できるようになります。

rootユーザーとしてログイン

サーバーをセットアップする最初のステップは、rootユーザーとしてログインすることです。ただし、最初に、サーバーのIPアドレスとパスワードまたは認証用の秘密鍵が必要です。ログインするには、Linuxターミナルを開き、以下のコマンドを実行します。サーバーのIPアドレスを必ずIPアドレスに置き換えてください。

ssh user@ip-address

このガイドでは、パブリックIPアドレスが38.76.11.180のUbuntu18.04サーバーを使用しています。 。

ターミナル経由でsshを使用してログインするには、コマンドは次のとおりです

ssh [email protected]

初めてログインする場合は、サーバーの信頼性を確認する必要があります。

「はい」と入力してEnterキーを押します。次に、サーバーのパスワードの入力を求められます。正しいパスワードを入力してEnterキーを押します。

これにより、以下に示すようにサーバーのシェルプロンプトが表示されます

すごい!サーバーへのログインに成功したので、2番目のステップに進みましょう

新しいユーザーを作成する

セキュリティのベストプラクティスとして、管理タスクにrootアカウントを使用することは強くお勧めしません。なぜそうなのですか?サーバーをrootとして実行すると、サーバーに悪影響を与える可能性のある、意図しないコストのかかるミスを犯しやすくなります。システムに不可逆的な損傷を与える可能性のある、システムに有害な何かを簡単に行うことができます。

このため、root以外の新しいユーザーを作成し、後で管理者権限を付与します。このように、ルートレベルのタスクを実行しようとするたびに、パスワードの入力を求められます。これにより、一時停止してコマンドの実行の結果について考え、コマンドの実行でコストのかかる間違いに気付いた場合にトラックで停止することができます。

新しいユーザーを作成するには実行

adduser user_name

新しいユーザーを追加します「james」

adduser james

ユーザーのパスワードといくつかの追加の質問の入力を求められます。必要な情報を提供する

完全!ユーザービューの作成を確認するには、/etc/passwd ユーザーの存在を確認します。

cat /etc/passwd

サンプル出力

上の最後の行には、新しく作成されたユーザーの情報が表示されます。

新しいユーザーに管理者権限を付与する

これまでのところ、新しいユーザーには通常のアカウント権限があります。 sudoを追加して管理タスクを実行できるように、新しく作成したユーザーにroot権限を設定する必要があります。 操作の前に。

これを実現するには、ユーザーを sudoに追加する必要があります 管理タスクを実行するたびにrootとしてログアウトおよびログインしないようにグループ化します。

これを実現するための構文は次のとおりです

usermod -aG sudo user_name 

この場合、ユーザー「james」にsudo権限を付与するためのコマンドは次のようになります

usermod -aG sudo james

これで、前に示したコマンドを使用して、新しいユーザーでログアウトおよびログインできます

ssh [email protected]

サーバーの信頼性を確認し、正しいパスワードを入力してログインに成功したら、コマンドの前にsudoを付けることで、スーパーユーザータスクを実行できるようになります。

たとえば、アカウントを使用してシステムを更新するには、以下のコマンドを実行します

sudo apt update

パスワードの入力を求められ、パスワードを入力すると、操作が開始されます。

基本的なファイアウォールを構成する

DebianおよびUbuntuサーバーは、UFWファイアウォールを使用して、サーバーに出入りするトラフィックを許可または拒否します。

ファイアウォールで既存の接続を表示するには、実行します

sudo ufw app list

予想どおり、現在サーバーへの接続にsshを使用しているため、OpenSSHが表示されます

出力

ファイアウォールを介した接続を許可するには、次のコマンドを実行します。

ufw allow service_name

たとえば、新しいサーバーのSSH接続を許可するには、次のコマンドを実行します。

sudo ufw allow OpenSSH

出力

ファイアウォールで特定のポートを開くには、構文を使用します

sudo ufw allow port/protocol

sudo ufw allow 80/tcp

出力

ファイアウォールの実行ステータスを確認するには

sudo ufw status

出力

ファイアウォールを有効にするには、次のコマンドを実行します。

sudo ufw enable

プロンプトが表示されたら、yesと入力します [Enter]キーを押してファイアウォールを有効にし、変更を有効にします

ファイアウォールのステータスと既存の接続/開いているポートを再度表示するには、コマンドを実行します

新しいユーザーに対してパスワードなしの認証を有効にする

現在、パスワード認証を使用したSSHプロトコルを使用してサーバーに接続しています。セキュリティのベストプラクティスとして、パスワード認証なしでSSHキーを設定することを強くお勧めします。 SSHキーは、公開キーと秘密キーのペアで提供されます。
秘密キーはクライアントマシンにあり、公開キーは接続先のサーバーにあります。 SSHキー認証を設定したら、パスワード認証を無効にする必要があります。これにより、秘密鍵を持つユーザーのみが公開鍵が存在するサーバーに接続できるようになります。

ステップ1.公開鍵を生成します

キーペアを生成するには、クライアントマシンで以下のコマンドを実行します

ssh-keygen

図のような出力が得られます

Enterキーを押して、キーペアが.ssh/ であることを保存します。 ホームディレクトリのサブディレクトリ。または、独自のパスを指定することもできます。

次に、保護層を追加することを強くお勧めする安全なパスフレーズの入力を求められます。パスフレーズなしでやりたい場合は、Enterキーを押してください。

最後に、次の出力が得られます

この時点で、秘密鍵と公開鍵の両方があります。それらは .ssh に保存されています ホームディレクトリのディレクトリ。この場合、パスは/root.sshです。

cat /root/.ssh

出力

id_rsa 秘密鍵です

id_rsa_pub 公開鍵です

ステップ2.公開鍵をコピーする

公開鍵をサーバーにコピーするには、ssh-copy-idを使用します。 コマンド。

構文は

になります
ssh-copy-id user@remote-server

この場合、実行します

ssh-copy-id [email protected]

以下のような出力が得られます

id_rsa.pub 公開鍵である鍵がサーバーにコピーされました。

ここで、構文ssh user@server-ip を使用してログインしようとすると 、パスワードの入力を求められることはありません!

パスワード認証を無効にする

パスワードを入手した場合でも、誰かがサーバーにログインできます。このリスクを排除するには、SSHパスワード認証を無効にする必要があります。

これを実現するために、SSHの構成ファイルを開きます

sudo vim /etc/ssh/sshd_config

PasswordAuthentication として示されているセクションを検索します 。

行をコメントアウトし、値を noに設定します

保存して終了します。

変更を実装するには、SSHデーモンを再起動します

sudo systemctl restart ssh

これで、新しい端末を起動し、パスワードを使用してログインして、パスワード認証が無効になっているかどうかを確認できます。

最後の言葉

この時点で、SSHパスワードを使用せずに、リモートサーバーで構成されたSSHキーベースの認証を使用してサーバーにアクセスできるはずです。

これでサーバーは完全にセットアップされ、強固なセキュリティ基盤が確立されました。公開鍵を安全に保管してください。詮索好きな目から離れて😀


Linux
  1. OpenSSHセキュリティのベストプラクティス

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

  3. LinuxでのWordpressセキュリティのベストプラクティス

  1. Ubuntu20.04でUrbackupサーバーをセットアップする

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

  3. Ubuntu 18.04 に PostgreSQL サーバーをインストールする方法

  1. セキュリティとパフォーマンスのためのDNSのベストプラクティス

  2. 10データベースセキュリティのベストプラクティス

  3. Nagiosサーバーのベストプラクティス?