CentOS 7/firewalld


インストール諸設定データーベースWeb(apache)Mailetc
前書き
インストール
SSH(設定変更)
firewalld設定(ファイヤーウォール)
SELinux設定
起動レベル設定
NTP(時刻同期)
パッケージアップデート
リソース割り当て変更
logwatch設定
systemdについて
syslog(journal)について
追加パッケージインストール
MariaDB 5.5
(MySQL代替DB)
MySQL 5.7
Redis
mongoDB
apache 2.4
-httpd.conf
-Virtual Host
-mod_spdy
-mod_fcgid
Postfix 2.10
dovecot 2.2
VirtualBox
samba
Munin
ClamAV
rsyncによるバックアップ
Git
svn
memcached
Fluentd(td-agent)
DNSSSLPHPWeb(nginx)FTP
bind(内向け用)
Unbound
NSD
秘密鍵・証明書作成PHP 5.4
 -php-apc
 -ffmpeg
 -memcached
PHP 5.6
 -php-apcu
 -memcached
PHP 7.0
 -php-apcu
 -memcached
PHP 7.1
 -php-apcu
 -memcached
nginx
-インストール(rpm)
-インストール(ソース)
-Webサーバー設定
-リバースプロキシサーバー設定
-ラウンドロビン設定
vsftpd 3.0.2

準備中

前書き

CentOS 7 では firewalld が導入されました。
iptables の代替サービスというより、より高度な設定ができるようになり、 iptables をバックエンドにしたサービス。
firewalld は複数個ある NIC に対して仮想的なファイアウォールが設定できるところにあります。

iptables は引き続き使えるようですが、せっかくなので firewalld を使って設定を行ってみます。
なお、firewalld についての情報量が圧倒的に少ないため、いくつかのサイトを参考に、必要箇所を抜粋し加筆修正しています。

詳しい説明については Fodora Project の Wiki にドキュメントがあります。
https://fedoraproject.org/wiki/FirewallD/jp

動的ファイアウォールと静的ファイアウォール

今までの CentOS で採用されていた iptables によるファイアウォール(system-config-firewall/lokkit)は静的ファイアウォールモデルでした。
今回新しく採用された firewalld はネットワークコネクション、インターフェースの信頼度を定義するネットワーク、またはファイアウォールのゾーンに対応し、動的に管理が可能となっています。
また firewalld は、その名前が示す通りデーモンとして動作します。


※firewalld は system-config-firewall に依存していませんが、同時に利用するべきではありません。
(Fodora Project Wiki より)

作業を始める前に

SSH などを使ってリモートから設定を行う場合は注意してください。
誤った設定により SSH の接続が遮断されてしまうと、状況回復が困難になります。
十分な確認作業と手順の記録、可能な限り直接オペレーションできる環境で作業することをお勧めします。

また、firewalld になったことにより今までの iptables を使ったファイアウォールと概念、設定方法が変わっています。
仮想環境などで希望する設定と同様のオペレーションを行うことを強くおすすめします。


ゾーンについて

firewalld が提供するゾーンは下記のとおりです。
このゾーンは firewalld の大きな特徴の一つでもあります。
どのようなゾーンが用意されているか把握し、どのゾーンが設定するサーバーに適しているか確認して下さい。
下記の表は信頼度が低い順(デフォルト状態)で記載しています。

ゾーン名変更説明
drop不可全ての内向きパケットはドロップされ、応答はありません。
外向きネットワークコネクションだけが可能です。
block不可全ての内向きネットワークコネクションが、IPv4 向けには icmp-host-prohibited メッセージと共に、IPv6 向けには icmp6-adm-prohibited メッセージと共に拒絶されます。
システムによって作成されたネットワークコネクションのみが可能です。
public公共エリアで利用します。
あなたのコンピュータを侵害しないようにするため、ネットワーク上の他のコンピュータを信頼しません。
選択された内向きのコネクションのみが受け入れられます。
external特にルータ用にマスカレードが有効な外部ネットワークに利用します。
あなたのコンピュータを侵害しないようにするため、ネットワーク上の他のコンピュータを信頼しません。
選択された内向きのコネクションのみが受け入れられます。
dmzあなたの内部のネットワークへの限られたアクセスが外部からできる非武装地帯のコンピュータ用です。
選択された内向きのコネクションのみが受け入れられます。
work業務エリアで利用します。
あなたのコンピュータを侵害しないようにするため、ネットワーク上の他のコンピュータの大部分は信頼します。
選択された内向きのコネクションのみが受け入れられます。
home自宅エリアで利用します。
あなたのコンピュータを侵害しないようにするため、ネットワーク上の他のコンピュータの大部分は信頼します。
選択された内向きのコネクションのみが受け入れられます。
internal内部ネットワーク用です。
あなたのコンピュータを侵害しないようにするため、ネットワーク上の他のコンピュータの大部分は信頼します。
選択された内向きのコネクションのみが受け入れられます。
trusted不可全てのネットワークコネクションが受け入れられます。

上記の表からも分かるように、firewalld は ほとんどのゾーンが deny - allow の考え方が基本となっています。
全拒否から許可するものを追加で指定するようになります。

ゾーンの決定

運用する形態からどのゾーンに属するか決定することから始めます。
インストール後、デフォルト設定ではゾーンは public となっています。

下記のコマンドで現在のゾーンを調べることが出来ます。
デフォルト状態では public が表示されます。

# firewall-cmd --get-default-zone
public

ゾーンの一覧を表示します。

# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

デフォルトのゾーンを public から変更したい場合は下記のコマンドを使用します。

# firewall-cmd --set-default-zone=(ゾーン名)


主なコマンドについて

一般的なコマンド

永続的(固定)ゾーン

ランタイムゾーン

ダイレクトオプション

その他のコマンド

ネットワークのデバイス情報を取得

# nmcli device show
# nmcli device show (デバイス名) 

接続しているネットワークデバイスIDを取得

# nmcli connection show




Last-modified: 2017-12-20 (水) 14:20:31 (305d)