pppfz

pppfz

欢迎来到我的超酷区块链博客! https://blog.pppfz.com
telegram
x
email

一台新到手のVPS必須の十二項目の設定(Ubuntuを例に)——2024年最新版

最近、私のサーバーがパンクしました。サーバーのディスクスペースが不足していたためです(実際、この問題は長い間存在しており、ずっと改善する決心がつきませんでした)。今回はバックアップサービス中にパンクしてしまったので、ついでにシステムを再インストールし、いくつかの設定を真剣に調整し、いくつかのプロセスを記録しました。後で参照できるようにするためです。

一、コンポーネントの更新、パッケージ管理#

Ubuntu システム上でソフトウェアパッケージを更新するには、以下のコマンドを使用できます:

  • おすすめしません、インストール時間が長すぎます
apt update && apt upgrade -y 
  • 以下の 2 つのコマンドを推奨します
sudo apt update  #このコマンドはソフトウェアパッケージのリストを更新し、システムがどのパッケージを更新できるかを知ることができます。
sudo apt upgrade --only-upgrade #このコマンドはすべての利用可能なソフトウェアパッケージの更新をインストールします。

二、よく使うツール#

1、VIM エディタ#

  • VIM がインストールされているか確認します(主に私は vim エディタを使う習慣があるため、Ubuntu はデフォルトで nano が付属しています)
vim --version
  • インストールされていない場合は、コマンドを使用してインストールします
apt install vim 
  • VIM をデフォルトのシステムエディタに設定します。
    • とても簡単です。このコマンドを実行し、Vim を選択します。以後、自動的にエディタを呼び出す場所では、Vim が使用されます。
sudo update-alternatives --config editor

2、command-not-found のインストール#

多くのサーバー提供者は、簡略版の Ubuntu を提供する可能性があるため、いくつかの便利なコマンドラインツールはプリインストールされていません。例えばcommand-not-foundは、コマンドを入力したときに、対応するがインストールされていないパッケージを提示してくれます。

sudo apt install command-not-found

インストール後、コマンドラインの使用がさらに便利になります。

三、一般ユーザーの追加#

adduser {your-username}  {your-password}
visudo

User Privilege Specificationの下にubuntu ALL=(ALL) NOPASSWD: ALLという行を追加します。

  • 追加が成功したか確認します
su - newuser   #新しいユーザーに切り替え
ls /root       #/rootディレクトリ内のファイルをリスト表示(root権限がないと見れません)
sudo ls /root  #その後、普通のユーザーにroot権限を付与します(これで権限があるので見れるようになります)
exit           #終了

四、ファイアウォールの設定#

Ubuntu でufw(Uncomplicated Firewall)を使用してポート 22、80、443 を開くには、以下の手順に従って設定します:

  1. ufwがインストールされているか確認

    • まだufwがインストールされていない場合は、以下のコマンドを使用してインストールできます:sudo apt install ufw
  2. ポートを開く

    • ポート 22 を開く:sudo ufw allow 22
    • ポート 80 を開く:sudo ufw allow 80
    • ポート 443 を開く:sudo ufw allow 443
  3. ファイアウォールを有効にする

    • ufwファイアウォールを有効にする:sudo ufw enable
  4. 設定を確認

    • sudo ufw statusを実行して、ファイアウォールの状態と開いているポートを確認できます。

参考記事

五、SSH ログインと SSH サーバーのセキュリティ設定#

  • まず Windows 側で ssh 公開鍵と秘密鍵のペアを生成します
ssh-keygen -t rsa -f ~/.ssh/id_rsa_xxxx  
  • ユーザーディレクトリにauthorized_keysファイルを作成し、公鍵(pub で終わる)の内容をauthorized_keysファイルに貼り付けます
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
  • root ユーザーのログインを無効にします
    • PermitRootLogin Yesの項目を見つけて、その後ろの設定値をnoに変更します。
vim /etc/ssh/sshd_config

以下のように:

PermitRootLogin no
  • PasswordAuthentication を no に設定し、パスワードログインを禁止します。より安全です:
PasswordAuthentication no
  • SSH ポート番号を他の数字に変更します。他のポートに変更した後は、ファイアウォールの設定も更新することを忘れないでください
Port {SSHポート番号、できれば10000以上}

最後に SSH サーバーを再起動して有効にします:

sudo systemctl restart sshd.service

六、カスタムシェルインターフェースのインストール#

  • oh-my-zsh をインストールします
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

七、Docker の設定#

1、Docker のインストール#

sudo apt install \
        apt-transport-https \
        ca-certificates \
        curl \
        software-properties-common
  • 次にキーをインストールします:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 次に Docker の公式リポジトリを追加します:
sudo add-apt-repository \
     "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) \
     stable"
  • 最後に Docker をインストールできます。私は一般的に Docker Compose も同時に使用するので、一緒にインストールします!
sudo apt update
sudo apt install docker-ce docker-compose
  • Docker をインストールした後、現在のユーザーを docker ユーザーグループに追加することを忘れないでください(毎回 sudo を使わずに Docker を使用したい場合)。
sudo gpasswd docker -a username

2、Docker ログ管理#

全体のログサイズ制限を設定

  • /etc/docker/daemon.jsonファイルを作成または変更し、以下の設定を追加します(3 つのログ、各 10M)。
{
        "log-driver": "json-file",
        "log-opts": {
                "max-file": "3",
                "max-size": "10m"
        }
}
  • その後、Docker サービスを再起動します
sudo systemctl daemon-reload
sudo systemctl restart docker

ただし、既存のコンテナには効果がなく、再構築する必要があります!

個々のコンテナのログサイズ制限

  • docker-compose に記述します
logging:
  driver: json-file
  options:
    max-size: "100m"
    max-file: "3"

八、スワップ設定#

swapoff -a   #元のパーティションを削除
dd if=/dev/zero of=/root/swapfile bs=1M count=1024  #新しいパーティションのサイズを設定
mkswap /root/swapfile    
swapon /root/swapfile
  • 最後に起動時に自動的に起動するように設定します:/etc/fstabファイルを編集し、最後の行を次のように変更します:/root/swapfile swap swap defaults 0 0

参考記事:

九、logrotate のログサイズ制限#

sudo apt install logrotate
sudo apt install cron
/var/log/syslog
/var/log/mail.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/cron.log
{
        weekly  
        rotate 3
        maxsize 100M
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

参考記事:

十、Fail2ban による IP 禁止#

https://aws.amazon.com/cn/blogs/china/open-source-tool-to-protect-ec2-instances-fail2ban/
https://github.com/fail2ban/fail2ban/issues/3420

十一、パネルインストール ——1panel#

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh

sudo apt autoremove docker-compose

参考記事:

十二、定期的なセキュリティ更新#

  • unattended-upgrades をインストールしてセキュリティアップグレードを自動更新します

unattended-upgrades を使用することで、Ubuntu システムは定期的にセキュリティ関連の更新を自動的に行い、システムを常にセキュリティ状態に保つことができます。

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

参考資料:

原文アドレス:

https://blog.pppfz.com/posts/new-vps-common-setup.html

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。