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はかなりきちんと整理されています。攻撃対象領域を下げるためのサービスを探して無効にする方法を学んだことを願っています。
このシリーズの次回の記事では、ネットワークセグメンテーションとファイアウォールについて説明します
。読んでくれてありがとう!