【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

[初心者向け]iptablesコマンドでアクセス制限をかける/かけない方法

こんにちは! システムソリューション部のしめじです。
入社してから3ヶ月が経過しましたが未だに分からないことばかりであたふたしています。
しかし beyond の先輩方がとても親切で日々、様々な「気づき」を与えて下さります。
本当に皆さんに感謝です。

本日は CentOS6 系で使われている iptables コマンドを使ったアクセス制限についてザックリと簡単に記載しようと思います。

iptablesとは

Linux に実装されているパケットフィルタですね。
所謂、ファイアウォールのことです。
特定のアクセスを制限したり、逆に許可したりできる機能です。
簡単に言うと、

  • 悪い人からのアクセスはお断りする。
  • いい人からのアクセスは歓迎する。

ということですね!!
そして iptables を操作するコマンドが iptables コマンドということです!
そのままですね。

iptables で制限をかける

まずは以下をご覧ください。

[root@localhost vagrant]# iptables -L
Chain INPUT (policy ACCEPT)
target  prot opt source    destination

Chain FORWARD (policy ACCEPT)
target  prot opt source   destination

Chain OUTPUT (policy ACCEPT)
target  prot opt source    destination

上記は【iptables -L】コマンドの実行結果です。

上から3つのフィールドに分かれているのを確認できると思うのですが、順に
[INPUT]は入力、[FORWARD]は転送、[OUTPUT]は出力に関わるチェインです。
チェインとはパケットを検査するルールだと思ってください。

Chain INPUTの横を見てください。
(policy ACCEPT)とあります。
これは「ポリシー」といいます。
ポリシーとはチェイン全体に適応されるルールのことです。
ACCEPT はすべての入力を許可することを意味します。

逆に制限したい時はこちらを DROP に変えます。
コマンドは、

iptables -P INPUT DROP

で OK です!!
(自分自身の SSH 接続もできなくなります。下部に記載している iptables でアクセスを許可するコマンドを先に実行してください)

【iptables -L】コマンドで確認してみましょう!

[root@localhost vagrant]# iptables -L
Chain INPUT (policy DROP)
target  prot opt source    destination

Chain FORWARD (policy ACCEPT)
target  prot opt source    destination

Chain OUTPUT (policy ACCEPT)
target  prot opt source    destination

DROP に変わりましたね。

これで外部からのすべてのアクセスを制限できました!!

iptables でアクセスを許可する

以下をご覧ください。

[root@localhost vagrant]# iptables -L
Chain INPUT (policy DROP)
target  prot opt source    destination
ACCEPT  all -- 192.168.33.1    anywhere

Chain FORWARD (policy ACCEPT)
target  prot opt source    destination

Chain OUTPUT (policy ACCEPT)
target  prot opt source    destination

【ACCEPT all -- 192.168.33.1 anywhere】

という記述が増えていますね!
こちらは「192.168.33.1からのアクセスは全て許可するよ」という意味になります。
これを「ルール」といいます。

アクセスを許可するルールを追加するには以下のコマンドを実行してください。

iptables -A INPUT -s [アクセスを許可するIPアドレス] -j ACCEPT

これで全てのアクセスを禁止した上で特定のIPアドレスからのアクセスを許可できました。

ちなみに「ある特定のポートへのアクセスを許可する」なんていう設定も可能です。

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

こちらは80番ポート(WEBサーバ)のアクセスを許可するコマンドになります。
--dport の後の数字を変えることで他のポートに変更することも可能です!!

これらの設定の変更はマシンを再起動すると元に戻ってしまいます。
永続的に設定を行いたい場合は、

service iptables save

こちらのコマンドで設定を保存してください。

こういった全てのアクセスを禁止した上で特定のアクセスのみを許可することを
「ホワイトリスト方式」といいます。

まとめ

かなりザックリ簡潔に記載しましたが以上が簡単な iptables コマンドの使い方になります。
iptables コマンドを使わない設定方法だったり、もっと細かな設定方法があったりもするのですが今回は割愛させていただきます。

みなさんも是非 iptables コマンドを使ってよきパソコンライフを!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
6
読み込み中...
6 票, 平均: 1.00 / 16
43,450
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

しめじ

  CERTIFICATE:
    - TOEIC 835
    - LPIC304
    - AWS Solution Architect Associate
    - AWS Solution Architect Professional
    - GCP Professional Cloud Architect
    - IPA SC ( 未登録 )

かーごめ、かーごめ、
後ろのおじさん、だぁあれ。

おじさんだよぉ。( 2018 )