GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで攻撃対象領域を減らす3つの簡単な方法

Linuxシステムは複雑なものです。箱から出して、すべてのディストリビューションには、物事を立ち上げて実行するのを助けることを目的とした多くのサービスが含まれています。いくつかのディストリビューションはデフォルトでより少ないサービスを有効にし、いくつかはより多くを有効にします。違いは便利さです。一部のディストリビューションでは、すばやく起動して実行しようとするため、セットアップ、ログイン、および構成を簡単に行えるように、デフォルトのサービスの大規模なセットが有効になっています。他の人は反対のアプローチを取り、デフォルトではほとんど何もインストールしません。

この記事は短いシリーズの始まりです。ここでは、強化について少し説明し、セグメンテーションについて少し説明し、最後にネットワークをスキャンして正しく機能するかどうかを確認する方法について説明します。ちょっと待って、防御のいくつかの層を通してあなたに見せさせてください。

インストールするソフトウェアの数を減らす

新しいシステムをインストールするときは、できるだけインストールしないようにしています。私は基本パッケージセットから始めて、実際には何もインストールしません。インストール後にサービスを追加するのは簡単ですが、なぜプロセスが複雑になるのでしょうか。さらに、これを頻繁に行う場合は、キックスタート(またはテンプレート)システムからインストールすることをお勧めします。したがって、可能な限り単純かつ一般的に設定する必要があります。

この記事では、実際のテストを行うために、ベースのRed Hat Enterprise Linux(RHEL)7.6システムをインストールしました。 baseを選択して、インストール中に最小限の作業を行いました パッケージを設定し、パスワード、ユーザー名、ネットワークを設定します。ネットワークタイムプロトコル(NTP)も有効にしました。

開いているポートを特定する

インストール後、開いているポートのリストが表示されます。ポートは、サーバーで実行されているサービスが他のシステムがポートに接続できるようにする方法です。たとえば、Webサーバーは、ポート80と443をWebサーバーのサービスにバインドします。この記事では、基本インストールで開いているポートがあるサービスを特定し、サービスを一覧表示して不要なサービスを無効にする方法を確認します。

Red Hat Enterprise Linux 7.6システムでは、ssを使用します この情報を表示するコマンド。 netstatがまだ付属しているシステムの場合 、netstatを使用します コマンド。

ssを実行しています テストシステムでは、いくつかの開いているポートが表示されます:

[root@rhel76test ~]# ss -tulnp --no-header | awk '{print($1, $5, $7)}'
udp  *:68            users:(("dhclient",pid=3316,fd=6))
udp  127.0.0.1:323   users:(("chronyd",pid=2974,fd=1))
udp  ::1:323         users:(("chronyd",pid=2974,fd=2))
tcp  *:22            users:(("sshd",pid=3523,fd=3))
tcp  127.0.0.1:25    users:(("master",pid=3771,fd=13))
tcp  :::22           users:(("sshd",pid=3523,fd=4))
tcp  ::1:25          users:(("master",pid=3771,fd=14))

RHEL7.6ベースは悪くないようです。 2番目の列では、開いているポートの一部にIPが表示され、次にポートが表示され、その他のポートには*が表示されます。 次にポート。 127.0.0.1:25のようなエントリ つまり、ローカルホストでリッスンしているだけです。この結果は、リモートアクセスできないことを意味します。 *:22のようなサービス つまり、どのインターフェースでもリッスンしているということです。同様に、IPv6アドレスについては、::1:323があります。 、および:::22::1 エントリはlocalhost、:::です。 は広く開かれています。

これが意味するのは、このシステムには2つのIPv4ポートと1つのIPv6ポートしかなく、世界中に公開されているということです。 dhclient サービスはおそらく無効にできるもの(ポートを閉じる)の良い例ですが、サーバーがDHCPを使用してIPアドレスを取得していない場合に限ります。私のテストサーバーの場合はそうです。

サービスを無効にする

Red Hat Enterprise Linux 7では、サービスの一覧表示と停止/無効化は比較的簡単です。systemdを使用します すべてのアクティブなユニットを一覧表示してから、実行したくないユニットを停止して無効にするように指示します。

実行中のすべてのサービスを一覧表示するには、systemctl list-units --type=service --state=runningを使用できます。 。私のテストシステムでは、結果は非常に控えめな19のサービスを示しており、それらのほとんどは必要であるように見えます。ただし、デモンストレーション用に1つ選択します:

[root@rhel76test ~]# systemctl list-units --type=service --state=running
UNIT                      LOAD   ACTIVE SUB DESCRIPTION
auditd.service            loaded active running Security Auditing Service
chronyd.service           loaded active running NTP client/server
crond.service             loaded active running Command Scheduler
dbus.service              loaded active running D-Bus System Message Bus
firewalld.service         loaded active running firewalld - dynamic firewall daemon
[email protected]        loaded active running Getty on tty1
lvm2-lvmetad.service      loaded active running LVM2 metadata daemon
NetworkManager.service    loaded active running Network Manager
polkit.service            loaded active running Authorization Manager
postfix.service           loaded active running Postfix Mail Transport Agent
qemu-guest-agent.service  loaded active running QEMU Guest Agent
rhnsd.service             loaded active running LSB: Starts the Spacewalk Daemon
rhsmcertd.service         loaded active running Enable periodic update of entitlement certificates.
rsyslog.service           loaded active running System Logging Service
sshd.service              loaded active running OpenSSH server daemon
systemd-journald.service  loaded active running Journal Service
systemd-logind.service    loaded active running Login Service
systemd-udevd.service     loaded active running udev Kernel Device Manager
tuned.service             loaded active running Dynamic System Tuning Daemon

起動時にPostfixをロードしたくないとしましょう。 systemctl stop postfixを使用するだけです 、次にsystemctl disable postfix 、そのように:

[root@rhel76test ~]# systemctl stop postfix
[root@rhel76test ~]# systemctl disable postfix
Removed symlink /etc/systemd/system/multi-user.target.wants/postfix.service.
[root@rhel76test ~]# systemctl list-units --type=service --state=running | grep postfix

さて、おそらくPostfixを無効にしたくないでしょうが、要点はわかります。

まとめ

だから、あなたはそれを持っています。今日、私は何かを学びました。箱から出してすぐに、Red Hat EnterpriseLinux7.6はかなりきちんと整理されています。攻撃対象領域を下げるためのサービスを探して無効にする方法を学んだことを願っています。

このシリーズの次回の記事では、ネットワークセグメンテーションとファイアウォールについて説明します

読んでくれてありがとう!


Linux
  1. LinuxメールサービスをSSL/TLSで保護する方法

  2. Linuxシステム管理者の収益プロファイルと可能性を高める6つの方法

  3. Linux システムにログインしているユーザーを特定する 4 つの方法

  1. Linuxを使用して税金を支払う

  2. Linuxターミナルで冒険に出かけましょう

  3. Linuxで実行中のサービスを確認する

  1. Linux端末を分割する5つの方法

  2. Linuxでラップトップの過熱を減らすための最も効果的な方法

  3. Linuxでデータを簡単に暗号化する3つの方法