Ubuntu 20.04基本サーバのセットアップ(初心者チュートリアル)


導入👇


以前の2つのブログ記事では、Serverless関数の展開の容易さを探りました.これらは明らかにサーバーを維持する手間を取り除くのに最適な方法であり、ほとんどの時間はまた、ランニングコストを削減します.
しかしながら、我々が現在世界中で見ている「Serverlessな誇大広告」以外に、多くのプロジェクトはまだ伝統的な雲VMを必要とします.
あなたはより多くの柔軟性を必要とするかもしれません、あなたのアプリはServerlessなセットアップでうまく機能しません、あるいは、それはちょうどあなたのusecaseに合いません.幸いにも我々のための非クールな人々はサーバーの代わりにServerlessのサーバーに行くだけで簡単です!😄
それで、このブログ柱でそれについて行きましょう!
注意:このチュートリアルでは、端末が利用可能であると仮定します.これはLinuxマシン、Mac OSまたはWindows Linuxサブシステムにあります.

1 .オプションとは❓


仮想クラウドマシンを提供する複数のクラウドプロバイダが利用可能です.最も広く知られているもののいくつか
  • デジタルオーシャン
  • AWS EC 2
  • 超音波
  • ライノルド
  • 鎌田
  • このポストでは、私たちの個人的なお気に入りを使用します:デジタルオーシャン!❤️
    私のお気に入りのクラウドプロバイダの一つであることに加えて、あなたがthis referral link . その権利より良い得ることができませんか?
    正確に、それは私が考えたものです.さあ始めましょう!🔥

    2 .マシンにsshキーを設定する🔑


    Secure Shell(SSHとして知られている)は、ユーザーが安全でないネットワークの上で安全に多くのネットワークサービスを実行するのを可能にする暗号ネットワーク・プロトコルです.
    SSHキーは、パスワードを単独で使用するよりも、sshでサーバにログインするより安全な方法を提供します.パスワードが結局ブルートフォース攻撃でひびが入ることができる間、SSHキーは単独でブルートフォースによって解読するのがほとんど不可能です.
    キーペアを生成すると、2つの長い文字列が表示されます.任意のサーバーに公開キーを配置することができますし、既に秘密鍵を持っているクライアントとそれに接続してロックを解除します.
    つの一致すると、システムのロックを解除します.🔓

    RSAキーペア


    そこで、最初のステップは開発マシンのキーペアを作成します.
    $ ssh-keygen -t rsa
    
    端末プロンプトでキーのパスワードを設定します.必ずパスワードを設定してください!あなたがそうしないならば、誰かがあなたのマシンに無許可の接近を得ることができたならば、彼らはちょうどあなたの秘密鍵を彼ら自身のマシンにコピーして、すべてのサーバーにログインすることができました.それで、パスワードがあなたのキーを保護することを確認してください.🔐
    出力は以下のようになります.
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/raf/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/raf/.ssh/id_rsa.
    Your public key has been saved in /home/raf/.ssh/id_rsa.pub.
    The key fingerprint is:
    4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 raf@a
    The key's randomart image is:
    +--[ RSA 2048]----+
    |          .oo.   |
    |         .  o.E  |
    |        + .  o   |
    |     . = = .     |
    |      = S = .    |
    |     o + = +     |
    |      . o + o .  |
    |           . o   |
    |                 |
    +-----------------+
    
    公開鍵は現在/home/raf/.ssh/id_rsa.pub . 秘密鍵(識別)は、現在位置しています/home/raf/.ssh/id_rsa .

    3 .デジタルオーシャンアカウントへのキー追加と液滴の起動📁


    次に、私たちのデジタルオーシャンのアカウントにGUIを介して新しいキーを追加します.この利点は、あなたがドロップを回転させるたびに、それが自動的に新しいサーバーにキーをコピーすることです!簡単に人生を作る、手動で行うから保存します.
    まず最初に私たちがしなければならないことは公開鍵を手に入れることです.以下のコマンドを実行することでこれを行うことができます.
    $ cat ~/.ssh/id_rsa.pub
    
    端末の出力は長い文字列でなければなりません.以下のものと同様です.公開鍵をコピーします.
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC/aOIJUaUUiZP0KA4vslD97oNVzVYZAiZTTG2Z3ozis3pnt3ZKL5k/XvdOCyfb449BjsShiQim7h1+/m/HEQNVggOqQpWigMf+Ky+zHbQm9mAy+/PpIYMfbWI29nuBnljA9yPcTAdKQM15KNobWeawz0vxoxrncX88sadfasl3j23SFKGUuFpVHXfd4P4njisXrR8vRh07EoU5xafjXrBPYAIsc1vHpK8SpTvwZFc8NwVq2VoQ2s0ig3Fw0gLTgj7roaDEfCW0KZ6SBkAZEmCsFxTnQF8NDiafupNo9ic09xLijvwwasdlkasdfasl2an3fK4twqRcZuZQiRFIppb3kMFQmVWCXW1Udi2ph79TyEXKvmtEnynY+s9SYcGdDbYnbMKqHCrfD4D2JKWXZmuxt7QkFFGTWJeDTPKynmhfuihqQ84LxIK2Gi8sPhRdcs15Kw5A5ctpz+aqd3WUJl78dyvakIcoTNHG06zxR2X7hpz+8U2DQmort4/Dtb5XO9myE5POevdasCroPHxEslzZShHw6dSztC48j7LJ80mSYhI46Vfk5jiH2gT8IHF3JhxytNxBYwTClBYq0c2+M7o62vCVKRCoKFMomCsfME1TmwnJWOMWfnFqMXwBmanUEqJFldEOSg66+egZ5Ym1gSIdww== [email protected]
    
    現在sign up for Digital Ocean アカウントを設定します.
    ダッシュボードにログインした後、設定をヘッドオーバーし、タブセキュリティをクリックします.その後、sshキーを追加します.これは公開鍵を貼り付けることができるモードを開きます.必ずそれを保存してください.

    右上隅にあるボタンをクリックした後、ドロップダウンからドロップダウンを作成します.
    Digitalocean液滴は、仮想化されたハードウェアの上で走るLinuxベースの仮想マシン(VMS)です.あなたが作成する各液滴は、スタンドアロンまたは大規模な、クラウドベースのインフラストラクチャの一部として使用できる新しいサーバーです.
    あなたの液滴を追加するときは、イメージとしてUbuntu 20.04を選択し、標準的な5ドルプランを選択してください.スクロールダウンするときにも、あなたのアカウントに追加し、あなたのサーバーにクールなホスト名を与えるあなたのsshキーを選択してください.🆒
    完全なチュートリアルを表示するには以下のGIFを表示します.

    サーバへのログイン🚀


    我々がすでに来ていないので、我々は遠くありません?今それは本当の仕事のための時間です!
    すべてがうまくいくならば、あなたはあなたが選んだホスト名と液滴に属するIPアドレスで、Digital Oceanダッシュボードに液滴インスタンスを見るべきです.このIPアドレスをコピーしてターミナルセッションを起動し、以下のコマンドを実行します( IPアドレスをあなたのものに置き換えます).
    $ ssh [email protected]
    
    パスワードを尋ねるべきです.これはステップ2のSSHキーの設定パスワードです.それが現れるならば、ホスト信頼性に関する警告を受け入れてください.これでrootユーザーとして自分のクラウドサーバでログインする必要があります.どのようにクールです!🎉
    注意: rootはUnixとLinuxのスーパーユーザアカウントです.それは管理目的のためのユーザーアカウントであり、典型的にはシステム上で最も高いアクセス権を有する.

    基本サーバの設定💻


    最初に新しいUbuntu 20.04サーバーを作成すると、基本的な設定の一部としていくつかの重要な構成ステップを実行する必要があります.これらのステップは、あなたのサーバーのセキュリティと使いやすさを増加させて、あなたに次の行動のためにしっかりした基盤を与えます.

    I .基本的なファイアウォールの設定


    Ubuntu 20.04サーバはUFWファイアウォールを使用して特定のサービスへの接続のみを許可します.我々は非常に簡単にこのアプリケーションを使用して基本的なファイアウォールを設定することができます.
    アプリケーションは、インストール時にUFWとプロファイルを登録できます.これらのプロファイルによりUFWはこれらのアプリケーションを名前で管理することができます.OpenSSHは、サービスを私たちは現在、サーバーに接続できるように、プロファイルをUFWに登録している.
    ファイアウォールを有効にする前に、OpenSSHをファイアウォール設定に追加してください.さもなければ、我々はログインすることができません.次のコマンドを実行します.
    $ ufw allow OpenSSH
    
    今すぐ起動時にファイアウォールを有効にします
    $ ufw enable
    
    場合は、以下のコマンドを使用してファイアウォールの状態を確認すると、それを実行する必要があります.
    $ ufw status
    
    現在、ファイアウォールはsshを除くすべての接続をブロックしています.追加のサービスをインストールして設定すれば、ファイアウォール設定を調整してトラフィックを許可する必要があります.
    小さな例:あなたがウェブサーバーを走らせたいと言いましょう、そして、あなたはSSLを通してあなたのウェブサイトを外側の世界に露出させたいです.現在、ファイアウォールがすべての接続を妨げているので、あなたはウェブサイトに貢献するためにポート443を開く必要があります.実行するのと同じくらい簡単です.
    $ ufw allow 443
    
    適用する変更については、必ずファイアウォールを再読み込みしてください.次のコマンドを実行します.
    $ ufw reload
    

    IIデフォルトのsshポートの変更


    デフォルトでは、SSHはポート22で動作します.自動化ボットや悪意のあるユーザーを防ぐためにあなたのサーバーに強制的に強制的に、我々は何か他のポートに変更することができます.
    インテリジェントな攻撃者はまだそれらの上で実行中のオープンポートとサービスを決定するためにサーバーをスキャンします.しかし、デフォルトのsshポートを変更すると、Linuxサーバをターゲットにしたときにポートを回転させる時間がない何千もの自動攻撃をブロックします.😁
    この例では、使用可能な任意のポートを選択できますPort 3467 . それで、我々がする最初のことは、我々のファイアウォールがこのポートを許すことを確認することです.今まで知っているように、以下のようにします.
    $ ufw allow 3467
    
    を使ってファイアウォールをリロードします.
    $ ufw reload
    
    ここで我々のssh - configファイルに調整を行い、新しく選んだポートを使うように指示します.以下のコマンドを実行することで実行できます.
    $ nano /etc/ssh/sshd_config
    
    言う行を探す#Port 22 :
    #Port 22
    #AddressFamily any
    #ListenAddress 0.0.0.0
    #ListenAddress ::
    
    #HostKey /etc/ssh/ssh_host_rsa_key
    #HostKey /etc/ssh/ssh_host_ecdsa_key
    #HostKey /etc/ssh/ssh_host_ed25519_key
    
    コメントを外してPort 3467 . では、ファイルをctrl + x それから型y 保存して終了する.
    最後に私たちがしなければならないことは、新しい変更を適用するためにSSHサービスを再起動させることです.次のコマンドを実行します.
    $ systemctl restart sshd.service
    

    IMPORTANT:
    Whenever you make changes like this ALWAYS double check if you can get back into the server first, before you close your terminal session ❗


    それで、我々が新しいポートを通して我々のサーバーに戻ることができるかどうか見ましょう.次の手順を実行します.
    $ ssh [email protected]
    
    これはホスト拒否をもたらすでしょう.それはssh コマンドのデフォルトPort 22 , しかし、我々は明らかにそれを変えたので、それはもう使用中でありません.次に何をしなければならないのかは、ログインコマンドのポートを設定します.こうすることができます.
    $ ssh [email protected] -p 3467
    
    すべてうまくいけば、あなたはちょうど新しい港を通ってログインしました.今すぐあなたの他のターミナルセッションを閉じるのは安全です.

    パスワード認証の無効化


    あなたがSSHキーアクセスのためにサーバーをセットアップしたあと、一般的な実行はパスワード認証オプションを無効にしています.これにより、SSHキーのペアとの接続のみを許可します.
    幸いにも、私たちのために、デジタル海は既に我々のSSHキーを液滴のinitalizationで指定したので、それの世話をしました.ただし、別のクラウドプロバイダを使用する場合は、常に無効にすることを確認します.これはssh - configファイルで行うことができます.

    セキュリティの実践


    カバーにはもっと多くのことがありますが、このブログで説明した手順はサーバーを設定する際に推奨するものです.次の明白なステップは、日常使用のための定期的なユーザーを作成することです.
    セキュリティを賢くするには、ファイアウォールを改善し、Fail 2 BANのようなサービスを設定し、直接ルートのログインを無効にすることによってさらにそれを取ることができます💤, しかし、この詳細については、ウェブをチェックアウトしてください.

    結論⚡


    はい、サーバーの設定の世界に小さなダイビングをしました.
    次のブログ記事では、実際には、サーバー上のWebアプリを提供するために必要なものを通過します.また、Githubにプッシュした後、自動的に変更を展開する液滴に接続する基本的なCIパイプラインを統合します.だからそれをお楽しみください!
    また会いましょう!👋