今日、私たちの個人データと専門家データの多くはオンラインで利用できるため、専門家から一般的なインターネットユーザーまで、すべての人がセキュリティとプライバシーの基本を学ぶことが重要です。学生として、私は学校のCyberPatriotイニシアチブを通じてこの分野の経験を積むことができました。そこでは、業界の専門家と対話して、サイバー侵害とシステムのセキュリティを確立するための基本的な手順について学ぶ機会がありました。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
この記事では、初心者としてこれまでに学んだことに基づいて、個人使用のためにLinux環境のセキュリティを向上させるための6つの簡単な手順について詳しく説明します。旅の間中、私はオープンソースツールを利用して学習プロセスを加速し、Linuxサーバーのセキュリティ保護に関連するより高いレベルの概念に慣れてきました。
私が最もよく知っているバージョンであるUbuntu18.04を使用してこれらの手順をテストしましたが、これらの手順は他のLinuxディストリビューションでも機能します。
1。更新を実行する
開発者は、既知の脆弱性にパッチを適用することで、サーバーをより安定、高速、安全にする方法を常に模索しています。定期的に更新を実行することは、セキュリティを最大化するための良い習慣です。それらを実行する:
sudo apt-get update && apt-get upgrade
2。ファイアウォール保護を有効にする
ファイアウォールを有効にすると、サーバーの着信トラフィックと発信トラフィックを簡単に制御できます。 Linuxで使用できるファイアウォールアプリケーションは、firewall-cmdやUncomplicated Firewall(UFW)など多くあります。私はUFWを使用しているので、私の例はUFWに固有のものですが、これらの原則は、選択したすべてのインターフェースに適用されます。
UFWをインストールする:
sudo apt-get install ufw
サーバーをさらに保護したい場合は、着信接続と発信接続を拒否できます。警告:これによりサーバーが世界中から遮断されるため、すべてのトラフィックをブロックしたら、システムから許可される発信接続を指定する必要があります:
sudo ufw default deny incoming
sudo ufw default allow outgoing
個人的な使用に必要な着信接続を許可するためのルールを作成することもできます:
ufw allow <service>
たとえば、SSH接続を許可するには:
ufw allow ssh
最後に、次の方法でファイアウォールを有効にします。
sudo ufw enable
3。パスワード保護を強化する
強力なパスワードポリシーを実装することは、サーバーをサイバー攻撃やデータ侵害から保護するための重要な側面です。パスワードポリシーのいくつかのベストプラクティスには、最小の長さの適用とパスワードの有効期限の指定が含まれます。これらのタスクを実行するためにlibpam-cracklibパッケージを使用しています。
libpam-cracklibパッケージをインストールします:
sudo apt-get install libpam-cracklib
パスワードの長さを強制するには:
-
/etc/pam.d/common-password
を開きます ファイル。 -
minlen=12
を変更して、すべてのパスワードの最小文字長を変更します 必要な数の文字に合わせます。
パスワードの再利用を防ぐには:
- 同じファイル内(
/etc/pam.d/common-password
)、行remember=x
を追加します 。 - たとえば、ユーザーが最後の5つのパスワードのいずれかを再利用できないようにする場合は、次を使用します:
remember=5
。
パスワードの有効期限を設定するには:
-
/etc/login.defs
で次の行を見つけます ファイルを作成し、希望する時間(日)に置き換えます。例:
PASS_MIN_AGE: 3
PASS_MAX_AGE: 90
PASS_WARN_AGE: 14
文字仕様を適用するには:
- パスワードに文字指定を適用するための4つのパラメーターは、
lcredit
です。 (小文字)、ucredit
(大文字)、dcredit
(数字)、およびocredit
(他の文字)。 - 同じファイル内(
/etc/pam.d/common-password
)、pam_cracklib.so
を含む行を見つけます 。- この行の最後に次を追加します。
lcredit=-a ucredit=-b dcredit=-c ocredit=-d
- たとえば、次の行では、パスワードに1つを含める必要があります 各パラメータの。パスワードのセキュリティの好みのレベルに基づいて数値を変更できます:
lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
- この行の最後に次を追加します。
4。悪用されやすい不要なサービスを無効にする
不要なサービスを無効にすることをお勧めします。これにより、悪用できるポートを減らすことができます。
systemdパッケージをインストールします:
sudo apt-get install systemd
実行中のサービスを確認する:
systemctl list-units
システムに潜在的な脆弱性を引き起こす可能性のあるサービスを認識します。各サービスの場合:
- 現在実行中のサービスを停止します:
systemctl stop <service>
- 起動時にサービスを開始できないようにします:
systemctl disable <service>
- これらのコマンドを実行した後、サービスのステータスを確認します。
systemctl status <service>
5。リスニングポートを確認します
開いているポートはセキュリティリスクをもたらす可能性があるため、サーバーでリッスンしているポートを確認することが重要です。 netstatコマンドを使用して、すべてのネットワーク接続を表示します:
netstat -tulpn
アドレス列を見て、ポート番号を判別します。開いているポートを見つけたら、それらを確認して、すべて必要であることを確認します。そうでない場合は、実行しているサービスを調整するか、ファイアウォール設定を調整します(または、fail2banに調整させます)。
6。マルウェアをスキャンする
ウイルス対策スキャンソフトウェアは、ウイルスをシステムから排除するのに役立ちます。それらを使用することは、サーバーをマルウェアから保護するための簡単な方法です。私の好みのツールはオープンソースソフトウェアClamAVです。
ClamAVをインストールします:
sudo apt-get install clamav
ウイルスシグネチャを更新する:
sudo freshclam
すべてのファイルをスキャンして感染ファイルを印刷し、見つかったらベルを鳴らします:
sudo clamscan -r --bell -i /
スキャンを自動化することができ、自動化する必要があります。これにより、手動でスキャンを覚えたり、時間を費やしたりする必要がなくなります。このような単純な自動化には、systemdタイマーまたはお気に入りのcronを使用できます。
サーバーを保護する責任を1人の個人または組織に任せることはできません。脅威の状況は急速に拡大し続けているため、サーバーセキュリティの重要性を認識し、シンプルで効果的なセキュリティのベストプラクティスを採用するのは私たち一人一人の責任です。
これらは、Linuxサーバーを安全に保つために実行できる多くの手順のほんの一部です。もちろん、予防は解決策の一部にすぎません。これらのポリシーは、サービス拒否攻撃の厳密な監視、Lynisによるシステム分析の実行、および頻繁なバックアップの作成と組み合わせる必要があります。
サーバーを安全に保つためにどのオープンソースツールを使用していますか?コメントでそれらについて教えてください。