トラブルシューティング

【解決】Linuxサーバーにブラウザアクセスできない原因はSELinux?確認と無効化手順を徹底解説

Linux

目次

  1. はじめに - よくある接続エラーの原因
  2. 見落としがちな原因 SELinux
  3. SELinuxとは
  4. SELinuxの状態確認方法
  5. SELinuxの無効化手順
  6. ブラウザアクセスの確認
  7. より安全な代替案 SELinuxポリシー設定 推奨
  8. SELinuxを再度有効にする方法
  9. トラブルシューティング チェックリスト
  10. まとめ

はじめに_よくある接続エラーの原因

Linuxサーバーを構築後、Webアプリケーションやサービスをインストールしてブラウザからアクセスしようとすると、「接続できませんでした」「このサイトにアクセスできません」 というエラーに遭遇することがあります。

![ブラウザ接続エラーの例](画像: 接続エラー画面) !Image Description 一般的には以下の原因が考えられます:

  • ✅ サービスが正常に起動していない
  • ✅ ファイアウォール(firewalld)で該当ポートがブロックされている
  • ✅ ポート番号の設定ミス

しかし、これらを全て確認しても接続できない場合、SELinuxが原因である可能性が高いです。


見落としがちな原因_SELinux

SELinux(Security-Enhanced Linux) は、Linux初学者が最も見落としがちなセキュリティ機能です。特に以下のような状況で問題になります:

  • CentOS/RHEL/Rocky Linuxを使用している
  • ファイアウォール設定は正しいのにアクセスできない
  • curl localhost:ポート番号はローカルで成功するのに外部からアクセスできない

SELinuxとは

SELinux(Security-Enhanced Linux) は、Linuxカーネルに実装された強制アクセス制御(MAC)のセキュリティモジュールです。

SELinuxの主な特徴

項目説明
目的システムリソースへの不正アクセスを防止
動作プロセスやファイルに対して細かいアクセス制御を実施
デフォルトCentOS/RHEL系では有効化されている
影響範囲Webサーバー、データベース、カスタムポートなど

SELinuxの3つのモード

┌─────────────────────────────────────────────┐
│ Enforcing (強制モード
│ ポリシー違反をブロック + ログ記録
└─────────────────────────────────────────────┘
                    ↓ 
┌─────────────────────────────────────────────┐
│ Permissive (警告モード) 
│ ブロックせずログのみ記録(デバッグ用) 
└─────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────┐
│ Disabled (無効モード)
│ SELinux機能を完全に無効化
└─────────────────────────────────────────────┘

SELinuxの状態確認方法

ステップ1 SELinuxの現在のステータス確認

sudo sestatus

出力例: