こんにちは、やすです。
この記事では、iptablesを使ったファイアーウォールの設定方法をご紹介します。
RHEL7/CentOS7以降では、「firewalld」がLinux標準のファイアーウォールなのですが、これまでの「iptables」で設定したいという場合もあるかと思いますので、使い方をみていきましょう!
ちなみに「firewalld」と「iptables」は併用できないので、どちらでファイアーウォールを設定するかは選ぶ必要があります。
通信要件を決める
最初はフワッとした依頼なことが多いので、内容を詰める所から始まるんですよねー(笑)
ココが難しかったりします。
パケットフィルタリングの考え方
FWの考え方は、下記の2パターンです。
- 「基本許可」で特定の通信だけ拒否。
- 「基本拒否」で特定の通信だけ許可。
※WEBAPサーバのようなたくさんの人に見て欲しい用途のサーバは「基本許可」を、DBサーバのような特定の相手だけと通信をすればいいサーバは「基本拒否」で良いと思います。
通信要件のヒアリングシート
通信要件を話し合う際は、下記の内容をクリアにしましょう。
ポリシー(デフォルト)
INPUT | ||
OUTPUT | ||
FORWARD |
ルール
方向 (IN/OUT) | プロトコル (tcp/udp/icmp/all) | 送信元 | 送信元ポート | 宛先 | 宛先ポート | アクション | 説明 |
---|---|---|---|---|---|---|---|
関連キーワード
iptablesを使うにあたって、いくつか理解しておきたいキーワードがあるので、見ていきましょう。
チェイン
チェインとは、フィルタリングの設定をする対象のことです。
外から中への通信なら「INPUT」チェイン、中から外へなら「OUTPUT」チェインに設定をします。
チェイン | 内容 |
---|---|
INPUT | 外から中への通信 |
OUTPUT | 中から外への通信 |
FORWARD | 転送 |
ポリシー
ポリシーとは、チェインの基本方針のことです。
「基本すべての通信を許可する」のか、「基本すべての通信を拒否する」のかといったデフォルトのアクション(ターゲット)を設定するのがポリシーです。
ポリシー | 内容 |
---|---|
ACCEPT | |
DROP | |
REJECT |
ルール
設定ファイルと関連コマンド
設定ファイル
設定ファイルは主に下記の2つ。
ファイル | 説明 |
---|---|
/etc/sysconfig/iptables | iptablesの設定ファイル(IPv4) |
/etc/sysconfig/ip6tables | iptablesの設定ファイル(IPv6) |
関連コマンド
iptables関連のコマンドについては、下記の記事を参考にどうぞ。
具体的な設定
1、「iptables-services」パッケージをインストール
RHEL7、CentOS7以降だとfirewalldが基本なので、デフォルトだと入っていないです。
#「iptables-service」がないことを確認
[root@localhost ~]# rpm -qa | grep iptables
iptables-1.4.21-35.el7.x86_64
[root@localhost ~]#
#このままだと「iptables.serviceがないよ」と言われる。
[root@localhost ~]# systemctl status iptables
Unit iptables.service could not be found.
[root@localhost ~]#
#「iptables-services」をインストール
[root@localhost ~]# yum -y install iptables-services
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.yz.yamagata-u.ac.jp
* extras: ftp.yz.yamagata-u.ac.jp
* updates: ftp.yz.yamagata-u.ac.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ iptables-services.x86_64 0:1.4.21-35.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
===================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
===================================================================================================================================================
インストール中:
iptables-services x86_64 1.4.21-35.el7 base 52 k
トランザクションの要約
===================================================================================================================================================
インストール 1 パッケージ
総ダウンロード容量: 52 k
インストール容量: 23 k
Downloading packages:
iptables-services-1.4.21-35.el7.x86_64.rpm | 52 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : iptables-services-1.4.21-35.el7.x86_64 1/1
検証中 : iptables-services-1.4.21-35.el7.x86_64 1/1
インストール:
iptables-services.x86_64 0:1.4.21-35.el7
完了しました!
[root@localhost ~]#
#インストールできましたね。
[root@localhost ~]# rpm -qa | grep iptables
iptables-services-1.4.21-35.el7.x86_64
iptables-1.4.21-35.el7.x86_64
[root@localhost ~]#
#うん、ちゃんと使えるようになった。
[root@localhost ~]# systemctl status iptables
● iptables.service - IPv4 firewall with iptables
Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@localhost ~]#
まとめ
今回は、iptablesの設定について紹介してみました。
ではまた、バイバーイ♪