Linuxシステムのセキュリティ管理は、堅牢なサーバ運用に欠かせません。この記事では、ホストのセキュリティを保つために最低限押さえるべき設定項目を、実務ベースで解説します。
目次
1. シャドウパスワードとその役割
通常のパスワード管理
従来、ユーザーのパスワードは/etc/passwdに保存されていました:
user1:x:1000:1000::/home/user1:/bin/bash
このxは、実際のハッシュ化されたパスワードが/etc/shadowに保存されていることを意味します。
/etc/shadowの特徴
user1:$6$A1...:19357:0:99999:7:::
- 読み取りはrootのみ
- パスワードの有効期限、最短変更間隔なども設定可能
この仕組みをシャドウパスワード方式と呼び、セキュリティ強化の基本です。
ログイン禁止設定 /etc/nologin
メンテナンスなどで一時的にログインを禁止したい場合、以下を使います:
touch /etc/nologin
ログインしようとした一般ユーザーに拒否メッセージが表示されます(rootは影響を受けません)。
2. 不要なネットワークサービスを無効化
攻撃者に狙われやすいサービスは、使っていなければ無効化するのが原則です。
xinetd/inetd によるサービス制御
古いLinuxでは、以下のファイルでサービス制御を行っていました。
/etc/xinetd.conf/etc/xinetd.d/*/etc/inetd.conf/etc/inetd.d/*
例:telnetサービスを停止する
# xinetd形式
disable = yes
設定後に再起動:
systemctl restart xinetd
3. systemd / SysVinit によるサービス管理
近年のLinuxディストリビューションは、systemdを使用してサービスを管理しています。
systemctlでの操作(systemd対応)
# サービスの停止
sudo systemctl stop httpd
# 自動起動を無効化
sudo systemctl disable httpd
# 現在の状態確認
systemctl status httpd
古いディストリビューション(SysVinit)の場合
# サービスの停止
service httpd stop
# chkconfigによる自動起動制御
chkconfig httpd off
4. ファイアウォール(iptables / firewalld)の概要
iptables(旧方式)
iptablesは、パケットの送受信を制御するコマンドラインツールです。
例:80番ポートをブロック
iptables -A INPUT -p tcp --dport 80 -j DROP
設定を永続化するには、iptables-saveを使用します。
firewalld(新方式)
CentOS 7以降ではfirewalldが主流です。動的なルール管理が可能です。
基本コマンド:
# firewalld の状態確認
sudo firewall-cmd --state
# 現在のゾーン確認
firewall-cmd --get-active-zones
# 80番ポートの許可
firewall-cmd --add-port=80/tcp --permanent
# 設定を再読み込み
firewall-cmd --reload
GUIでの管理(Cockpitなど)も可能。
5. ホストセキュリティ設定チェックリスト
| 項目 | 内容 |
|---|---|
| ✅ シャドウパスワードの使用 | /etc/shadowの有効活用 |
| ✅ 不要サービスの無効化 | systemctl, /etc/xinetd.dなど |
| ✅ ファイアウォールの設定 | iptablesまたはfirewalld |
| ✅ root以外のログイン制御 | /etc/nologinの利用 |
まとめ
ホストレベルのセキュリティ強化は、「使わないものは無効にする」「アクセスを最小限にする」が鉄則です。本記事のチェック項目を定期的に確認し、システムの健全性を保ちましょう。

コメント