はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> トラブルシュート >> セキュリティが仇となる?
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / Fedora10 / Fedora11 / Fedora12 / Fedora13 / Fedora14 / Fedora15 / Fedora16 / Fedora17 / CentOS4 / CentOS5 / CentOS6 / CentOS7 ]
  1. ファイアウォール設定による通信遮断
    インストール時の設定画面 (SysV services)
    インストール後のファイアウォール設定変更 (SysV services)
    systemd services のデフォルトファイアウォール状態確認
    systemd services ファイアウォールの停止と無効化
  2. SELinuxによる遮断
    インストール時の設定画面
    インストール後のSELinux無効設定方法
    SELinuxの状態確認


■ ファイアウォール設定による通信遮断

各サービスを構築し、正常に動作しているらしいにも関わらず通信が出来ない(接続できない)等で悩まされている方は多々おられると思います。
代表的なのが、SSH・telnet・FTP・HTTPやSMTPなどが挙げられます。
Fedoraにはインストール時にファイアウォールの設定があり、大概の方は「セキュリティ重視!!」と言うことでファイアウォールを有効にしていると思います。
実は、このファイアウォールが有効になっていた事が仇となり通信できない場合があるのです。
(勿論、要因は他にもあるかもしれません。設定ミス等々・・・)

■ インストール時の設定画面 (SysV services)


画面上のファイアウォールを有効にして、以下の「リモートログイン(SSH)」「Webサーバ(HTTP,HTTPS)」「ファイル転送(FTP)」「メールサーバ(SMTP)」のチェックボックスを外してしまった場合は、そのサービスへの通信が遮断されてしまい接続できなくなります。
また、上記以外のポートも通信する事が出来ません。

■ インストール後のファイアウォール設定変更 (SysV services)

インストール時にファイアウォールを有効にしてしまっても、いつでも有効/無効に切り替える事が可能です。
一度、以下の手順でファイアウォールを無効にして動作確認する事をお勧めします。

ファイアウォールの設定
# system-config-securitylevel
    または
# system-config-firewall-tui


ファイアウォールの設定画面が開きます。

「セキュリティレベル:」を「(*)無効」にして「OK」を押下します。


余談:この設定結果は「/etc/sysconfig/iptables」に反映されています。

# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

■ systemd services のデフォルトファイアウォール状態確認

下記のようにコマンドを実行して確認すると、有効化されて起動していることがわかります

# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since 月 2014-07-14 11:25:48 JST; 4s ago
 Main PID: 46576 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─46576 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

 7月 14 11:25:48 centos.kajuhome.com systemd[1]: Started firewalld - dynamic firewall daemon.

■ systemd services ファイアウォールの停止と無効化

ファイアウォールの停止
# systemctl stop firewalld.service

ファイアウォールの無効化
# systemctl disable firewalld.service
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

設定後の確認
# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
   Active: inactive (dead)

■ SELinuxによる遮断

SELinux(Security-Enhanced Linux)とはLinuxカーネルの セキュリティ拡張モジュールでプロセスの監視や制御などを行います。
こちらもインストール時には「有効」がデフォルトになっており、構築後に思わぬ弊害になりかねません。
実は私はこの設定を見落として「有効」のまま構築後、Webサーバがアクセス拒否されかなり悩まされました。確実に動作する事が確認できてから「有効」にした方が無難です。
(私は、現在でも「無効」のまま運用しています。)

■ インストール時の設定画面(画面下方)

■ インストール後のSELinux無効設定方法

SELinux設定ファイルの変更
# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#   enforcing - SELinux security policy is enforced.
#   permissive - SELinux prints warnings instead of enforcing.
#   disabled - SELinux is fully disabled.
SELINUXを無効「disabled」にします。
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
#   targeted - Only targeted network daemons are protected.
#   strict - Full SELinux protection.
SELINUXTYPE=targeted

SELINUXの設定内容
enforcing :SELinuxを有効にする。
permissive:すべての拒否に関する警告をログ出力する。(セキュリティポリシは適用しない)
disabled :SELinuxのセキュリティ制御を無効にする。

設定を反映するにはリブートする必要があります。
# reboot

■ SELinuxの状態確認

SELinux が現在どの様な状態で動作しているか確認
# getenforce
Disabled

出力結果の意味
Enforcing :SELinux有効
Permissive:SELinux有効。但し、セキュリティポリシ違反でも実行は許可
Disabled :SELinux無効

■ コンテンツ関連

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.