CentOSセキュリティ対応の為、iptablesの設定をします。
iptablesはパケットフィルタリングとNATの管理ツールとなっています。
設定はルータのアクセスリストを設定する感覚に近いです。
使い方によってはすごく便利なツールです。
iptablesの使い方
iptablesの初期設定でtcpパケットはsource、destinationはすべて宛先ポート22を指定しておけばパケットを許可する設定となっています。
# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 10618 1370K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 292 10536 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 3 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 19917 2581K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 4934 packets, 567K bytes) pkts bytes target prot opt in out source destination
上記のように、宛先ポート22番に対するtcpパケットはiptable上で全て許可となっています。
ちなみに、”iptables -nvL”コマンドの意味は
-nが「アドレスとポートの数値出力」
-vが「詳細出力。今回で言えばバケット数とバイト数を表示」
-Lが「iptablesに書かれている全てのリストを出力」
となっています。
各コマンドとオプション説明
iptablesのコマンドは以下で確認できます。
# iptables --h
コマンド
- -A, –append //指定したチェインの語尾に追加設定
- -D, –delete //マッチしたルールを指定したチェインの削除
- -D, –delete //チェインの中の番号 (最初のルールを 1 とする) を指定してチェインを削除
- -I, –insert //チェインの中の番号を指定してルールを挿入する。デフォルトはルール1となる
- -R, –replace //選択されたチェインを置き換える。デフォルトはルール1となる
- -L, –list //選択されたチェインのルールをすべて表示する
- -S, –list-rules //選択されたチェインのルールをすべて表示する”iptablesファイル内の設定”
- -F, –flush //選択されたチェインの内容を全削除する
- -Z, –zero //全てのパケットカウンタの値を0にする
- -N, –new //新規にチェインを作成する
- -X, –delete-chain //選択されたチェインを削除する
- -P, –policy //選択されたチェインのポリシーを指定したターゲットに設定する
- -E, –rename-chain //ユーザ定義のチェインを指定した名前に変更する
オプション
- -p, –proto
設定例:-p proto //プロトコルを定義 - -s, –source
設定例:-s address[/mask][…] //送信元アドレス指定 - -d, –destination
設定例:-d address[/mask][…] //宛先アドレス指定 - -i, –in-interface
設定例:-i input name[+] //IN側インターフェースを指定(eth0など) - j, –jump
設定例:-j target //特定のパケットが一致した場合に指定されたターゲットにジャンプする - -o, –out-interface
設定例:-o output name[+] //OUT側インターフェースを指定(eth0など) - -t, –table
設定例:-t table //操作するテーブルを指定(デフォルトfilter) - -v, –verbose //詳細に出力する
- –line-numbers //ルール番号で一覧表示する
- -x, –exact //正確な数値を表示する
- -f, –fragment //2つ目のフラグメント移行をマッチさせる
- -V, –version //iptablesのパッケージバージョン確認
ターゲット
- ACCEPT //パケットを許可
- DROP //パケットを破棄
- SNAT //送信元のアドレスを変換
- DNAT //送信先のアドレスを変換
- LOG //ログを採取
- REJECT //パケットを拒否し、ICMPメッセージを返信
- REDIRECT //特定ポートにリダイレクト
設定コマンド例
指定した送信元IPアドレスのセグメントからくるTCPパケットを許可する設定をします。
# iptables -A INPUT -s 192.168.1.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 12534 1627K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 325 11724 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 3 156 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 22186 2889K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 0 0 ACCEPT tcp -- * * 192.168.1.0/24 0.0.0.0/0 state NEW tcp dpt:22 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 28 packets, 6062 bytes) pkts bytes target prot opt in out source destination
iptablesコマンドで作成したテーブルは、メモリに格納されますが、システムを再起動するとメモリに格納されたiptableコマンドは全て削除されます。
この設定がシステム再起動後も記事され続けるようにするには、以下コマンドで設定します。
# service iptables save
以上です。
サーバーを構築するならVPSがおすすめです。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す