最近、サーバーのセキュリティの問題で少し苦しんだので、この落とし穴の結果を記録するために、Linuxサーバーの初期化に関連するいくつかの記事を書くことにしました。できるだけ早くセットアップすることで、サーバーの安全性が高まり、可用性が向上し、その後の展開手順の基盤が築かれます。
[クラウドサーバー](https://cloud.tencent.com/product/cvm?from=10680)を購入すると、コンソールからサーバーのIPとアカウントのパスワードを取得できます。この時点で合格できます
ssh root@SERVER_IP_ADDRESS
このコマンドは、サーバーに接続するために使用されます。ホストの信頼性を受け入れることについて警告がある場合は、同意することを選択します。パスワードを入力した後、ログインプロセスを完了することができます。
UnixおよびUnixに似たシステムでは、rootは、すべてのモード(シングル/マルチユーザー)のすべてのファイルおよびプログラムに対するすべての権限を持つユーザー(つまり、スーパーユーザー)の共通名です。
ルートアカウントの権限は非常に大きいため、ルートアカウントに初めてログインした後、新しいアカウントを準備し、この新しいアカウントを使用して後でログインする必要があります。したがって、次のステップでは、新しいユーザーを作成します。
たとえば、「leon」という名前の新しいユーザーを作成したいとします。
adduser leon
確認後、まずアカウントのパスワードを設定する必要があります。その後、氏名、自宅の電話番号、職場の電話番号などの情報を求められます。可能であれば、アカウントに強力なパスワードを設定して覚えておいてください。オプションで他の情報を残すこともできます。
作成したばかりのレオンは、通常のアカウント権限を持つアカウントですが、日常的に使用する場合はスーパー管理者権限が必要になる場合があります。この権限を使用する方法は、コマンドの前に「sudo」を追加することです。次に例を示します。
sudo vi /etc/hosts
不十分な権限を回避するために、必要に応じてroot権限を持つ信頼できるアカウントをいくつか与える必要があります。これはrootアカウントでログインするときに行われます。
usermod -aG sudo leon
これで、ユーザーleonにスーパーユーザー特権を実行するコマンドがあります。
sshキーを使用してサーバーにログインすると、サーバーのセキュリティを向上させることができます。この操作については以前のブログですでに書いているので、ここにリンクを投稿します。
[ ssh-keyを使用して、パスワードなしでサーバーにログインします](http://originalix.github.io/2018/04/25/%E5%9C%A8Mac%E4%B8%8A%E4%BD%BF%E7%94%A8ssh -key%E5%85%8D%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95%E6%9C%8D%E5%8A%A1%E5%99%A8 /)
SSHログインサーバーの構成が完了したら、サーバーのセキュリティを向上させるためにパスワード認証方法を無効にする方法について説明しましょう。
サーバーにパスワード認証によるログインを許可すると、アカウントパスワードを取得した悪意のあるユーザーがサーバーにログインして、破壊的な操作を実行する可能性があります。したがって、サーバーのセキュリティのために、サーバーへのログインにパスワード認証を使用することを禁止することをお勧めします。結局のところ、信頼できるコンピューターでssh-keyを構成済みです。
警告⚠️:この手順を実行する前に、サーバーにログインできるようにssh-keyを構成する必要があります。そうしないと、サーバーがログインできなくなり、再インストールと復元しかできなくなり、データが失われる可能性があります。
rootアカウントまたはsudoコマンドを使用して、ssh構成ファイルを開きます。
sudo vi /etc/ssh/sshd_config
Passwordauthentication
オプションを探し、彼の前にあるコメント#を削除してから、その値を no
に変更します。
# sshd_configdisableパスワードログイン設定
PasswordAuthentication no
次に、次の2つの構成を見つけます。それらが私のものと一致している場合は変更しないでください。それ以外の場合は同じに変更してください。デフォルトの構成は次の値です。
PubkeyAuthentication yes
ChallengeResponseAuthentication no
これらの変更を完了したら、保存して使用し、 :wq
を使用して保存して終了します。
sshプログラムを再起動します
sudo systemctl reload sshd
パスワード認証が終了しました。認証にはsshのみを使用できます。
このログイン接続からログアウトする前に、新しいウィンドウを開いて構成を確認し、sshが正常にログインできることを確認して、しばらくログインを待たないようにすることをお勧めします。パスワードアクセスが拒否された場合は、別のアカウントでサーバーにログインしてみてください。 、その後、構成は成功します。
Ubuntu 16.04サーバーは、UFWファイアウォールを使用して、特定のサービスとの接続のみが許可されるようにすることができます。このアプリケーションを使用して、基本的なファイアウォールを簡単に設定できます。
さまざまなアプリケーションが、インストール中に構成ファイルをUFWに登録できます。これらの構成ファイルにより、UFWはこれらのアプリケーションを名前で管理できます。現在サーバーに接続できるサービスであるOpenSSHは、構成ファイルをUFWに登録しています。
次のように入力すると、これを表示できます。
sudo ufw app list
あなたは以下を見ることができます
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
ファイアウォールがssh接続を許可していることを確認する必要があるため、次のコマンドを使用してこれらの接続を許可します。
sudo ufw allow OpenSSH
次のコマンドを使用して、ファイアウォールを有効にします。
sudo ufw enable
ファイアウォールのステータスを自分で確認することもできます。
sudo ufw status
見られます:
Status: active
To Action From
------------
Apache Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
Apache Full(v6) ALLOW Anywhere(v6)OpenSSH(v6) ALLOW Anywhere(v6)
たとえば、iOSのapiインターフェイス、WeChatアップルトの構成ではhttpsプロトコルを使用する必要があります。次に、アクセスのためにポート443を開く必要があります。次のコマンドを使用して、ポートを開くことができます。
sudo ufw allow 443は、ポート443への外部アクセスを許可します
この時点で、サーバーの基本構成が完了しました。次に、データベースへの安全なアクセスのために別の構成を作成できます。
Recommended Posts