CentOS7でファイアウォールを設定する(firewalld)

スポンサーリンク

はじめに

CentOS7のファイアウォールのフィルタをfirewalldで設定するためのまとめです。

注意事項

  • コマンドはすべてroot権限での操作です。

環境

VPS さくらVPS 1G SSD
OS CentOS 7.3

firewalldとは

CentOS7からファイアウォールの設定がiptablesを使用したものからfirewalldを使用するものに変更されました。firewalldはiptablesのラッパーでiptablesのルールを簡単に管理できるようにしています。

iptablesとfirewalldの違い

iptablesとfirewalldとの違いは以下のようになっています。

  • ゾーンとサービスによる設定
  • 既存のセッションや接続を停止することなく更新できる

firewalldの起動

CentOS7ではfirewalldがデフォルトでインストールされているため以下のコマンドで開始します。

# systemctl start firewalld

サーバ起動時にfirewalldサービスが開始されるように設定します。

# systemctl enable firewalld

firewalldの設定

firewalldの設定はfirewall-cmdコマンドで行い設定を永続化するためには–permanentオプションを付ける必要があります。コマンドには以下のようなものがあります。

firewalldを再起動します。

# firewall-cmd --reload

ゾーンについてのコマンド

デフォルトのゾーンを確認します。

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

デフォルトのゾーンを変更します。

# firewall-cmd --set-default-zone=internal
success

使用しているネットワークインターフェースを確認します。

# firewall-cmd --get-active-zones
public
  interfaces: eth0

指定したゾーンの設定を確認します。

# firewall-cmd --zone=public --list-all
public (active)
  target: default
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports:
  masquerade: no
  foward-ports:
  icmp-blocks:
  rich rules:

サービスについてのコマンド

使用可能なサービスの一覧を確認します。

# firewall-cmd --get-services
RH-Satellite-6 amanda-client …(略)

publicゾーンにhttpsのサービスを追加します。

# firewall-cmd --zone=public --add-service=http --permanent

publicゾーンからhttpsのサービスを削除します。

# firewall-cmd --zone=public --remove-service=http --permanent

ポート・プロトコルについてのコマンド

publicゾーンのTCPポートの12345番を許可します。

# firewall-cmd --zone=public --add-port=12345/tcp --permanent

publicゾーンのTCPポートの12345番を拒否します。

# firewall-cmd --zone=public --remove-port=12345/tcp --permanent

同一サーバ内で80番ポートから12345番ポートへポートフォワーディングを行ないます。

# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=12345

リッチルールについてのコマンド

IPアドレスが192.168.0.1のIPv4トラフィックを許可します。

# firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" suorce address=192.168.0.1 accept'

IPアドレスが192.168.0.2でポートが22のIPv4トラフィックを拒否します。

# firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" suorce address=192.168.0.2 port port=22 protocol=tcp jeject'

iptablesを直接設定するコマンド

カスタムチェインを確認します。

# firewall-cmd --direct --get-all-chains

カスタムルールを確認します。

# firewall-cmd --direct --get-all-rules
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする