セキュリティは、Linuxシステム管理者の間で人気のあるトピックです。私が読んだすべてのフォーラム、参加したすべての会議、そして私が参加しているすべてのIT中心の議論は、常にセキュリティに向けられ、その後、会話は必然的にLinuxのセキュリティに向けられます。これが私の経験であり、Linuxに関する技術的な会話を盗聴するのを防ぐことができないことがこの記事の起源です。これらは、箱から出してすぐに、より安全なLinuxインストールを開始するための5つの推奨事項です。
[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]
最小限に抑える
Linuxをインストールするときは、常に可能な限り最小のバージョンをインストールします。 CentOSまたはRedHatEnterprise Linuxの場合、これは最小限のインストールを意味します。不要なものを削除するよりも、小さく始めてから必要なものを追加する方が好きです。最小限のインストールを選択することの追加の利点は、システムのフットプリントも最小限になることです。ディスクスペースは安価ですが、後でセキュリティの問題に悩まされる可能性のある余分なアプリケーションでディスクスペースを無駄にしたい人はいますか?最初に必要なのは、SSHサーバーに接続してリモートで管理できるように、SSHサーバーを使用した基本インストールだけです。後でDNFを介して必要なものを追加できます。
サーバーはGUIフリーゾーンです
Linuxシステムがサーバーとして機能する場合は、グラフィカルユーザーインターフェイスをインストールしないでください。何人かの人々はこの点を主張します。セキュリティの観点から、GUIをインストールするには、たとえ小さなものであっても、多くの追加のソフトウェアパッケージが必要です。これらはいずれもセキュリティの問題の影響を受けやすい可能性があります。一部のGUIパッケージは、システムのポートを開くことができます。これは、そのアクションによって攻撃対象領域が増えるため、望ましくありません。最後に、GUIは多くのシステムリソースを消費するため、システムのパフォーマンスはグラフィカルインターフェイスの影響を受ける可能性があります。
GUIはデスクトップに任せます。コマンドラインを学ぶ。
ファイアウォールは必須です
Red Hatベースのシステム(Red Hat Enterprise Linux、Fedora、およびCentOS)では、firewalld
デフォルトのファイアウォールです。これを使って。このホストベースのファイアウォールは、明示的に許可したものを除いて、すべてのポートを介した不要な侵入からシステムを保護します。ファイアウォールを通過する発信トラフィックを選択的に制限することもできます。
ただし、発信トラフィックを制限するための最も安全な方法は、内部インターネットプロキシサーバーを設定し、そのシステムへの発信トラフィックのみを許可することです。あるシステムから別のシステムに接続する必要がある場合に備えて、ローカルサブネットへのSSHトラフィックを許可することもできます。ホストベースのファイアウォールは、特に新しく構成されたサービスの場合、システム間の接続をテストするときにイライラする可能性がありますが、少しイライラするだけの価値はあります。キュービクルのモニターのすぐ上に「ファイアウォールを確認してください」と書かれた看板を掛ければ、大丈夫です。
SELinuxは学ぶ価値があります
ああ、大いに嫌われ、誤解されているSELinuxです。通常、システム管理者は、SELinuxが生み出す極端なセキュリティ強化の不安に対処するのではなく、SELinuxを完全に無効化または削除します。私のアドバイスは、このサービスをオンのままにして、有効にして、強制に設定することです。
SELinuxは必須アクセス制御(またはMAC)と呼ばれるものを使用しますが、ファイアウォールはルールベースのアクセス制御を使用し、標準の*nixアクセス許可は随意アクセス制御と呼ばれます。 SELinuxをあきらめて無効にする前に、その構成に関するいくつかのドキュメントをお読みください。ほとんどのシステムは少数のサービスセットしか実行しないため、このサービスを有効にしないという危険性とは対照的に、構成はそれほど面倒ではありません。
SELinuxは特定の方法でセットアップする必要があります。これにより、ファイルにラベルを付け、セキュリティコンテキストでセットアップし、数回再起動して問題を解決できます。ドキュメントを読んでください。 SELinuxは、一般的な信念に反して、ファイアウォール(またはファイアウォールの代替)、マルウェア対策ソリューション、多要素認証などの認証メカニズムの代替、または想像力の範囲によるセキュリティ万能薬ではありません。
SELinuxは、rootユーザーとして実行されるサービスからの特権昇格に対する防御です。オフにするのはおそらく悪い考えです。 SELinuxを正しく使用することは、高度な持続的脅威とよりスマートなマルウェアの最近で必要とされる追加の保護レイヤーです。
リモートルートログインは悪い考えです
デフォルトでは、Red Hatベースのシステムでは、rootユーザーはSSHを介してリモートでログインできます。新しくインストールしたシステムでこの機能がデフォルトで設定されている理由は理解できますが、システムが起動して操作可能になり、sudoアクセス権を持つアカウントが作成されたら無効にする必要があります。
リモートルートログインを無効にすると、攻撃者がブルートフォース方式を使用してルートパスワードを推測するのを防ぐことができます。試行はログに記録されますが、rootアカウントはリモートでログインできないため、セキュリティには影響しません。また、侵入防止スクリプトまたはサービスがインストールされている場合、試行を繰り返すと、自動的に新しいDROPルールが作成されるか、/etc/hosts.deny
が作成されます。 エントリ。
リモートルートログインが有効になっているかどうかを確認します:
$ sudo grep -i root /etc/ssh/sshd_config
PermitRootLogin yes
# the setting of "PermitRootLogin without-password".
#ChrootDirectory none
PermitRootLogin yes
が表示された場合 、その後、rootユーザーはSSH経由でリモートログインできます。 /etc/ssh/sshd_config
を編集します ファイルを作成して#
を配置します 行をコメントアウトするか、yes
を変更します no
。 sshd
を再起動します 新しい構成を受け入れるサービス:
$ sudo systemctl restart sshd.service
rootユーザーはSSH経由でログインできなくなります。
まとめ
過去10年間の調査を読むと、セキュリティがシステム管理者にとって最優先事項または懸念事項であることがわかります。 あなたの システムを本番環境に移行する前に、少なくともこれら5つのヒントを使用してシステムを保護することを優先します。セキュリティは、延期したりリラックスしたりできるものではありません。これらの5つのヒントは、より安全なシステムをオンラインにし、ネットワークをより安全な職場にするのに役立ちます。