システムエンジニアの悩める日常

普通のシステムエンジニアです。インフラメインでやっています。

【Linux入門】iptablesについて

こんにちは、せつらです。

linuxのちょっとした疑問解消をログとして残そうとお思います。

今回はiptablesについて記します。

 

iptablesとは

■概要

"iptables"とは、Linuxに実装されたパケットフィルタリング型のファイアウォール機能になります。

 

■調べた経緯

Linux(CentOS 6.8)でapacheを起動した後テストページをブラウザから開こうとしたら開けなかったため。

 

■原因

デフォルトではhttpのポートが許可されていないため、apacheとの通信ができなかったため。

 

■解決方法

HTTP用設定をiptablesファイルに追記

vi /etc/sysconfig/iptables

--
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# HTTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
--

 

iptablesの反映

--
# /etc/rc.d/init.d/iptables restart
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
--

 

iptablesのナンチャッテ講座

◎主な機能(ファイアウォールの機能)
  • パケットフィルタリング
  • アドレス変換

今回使用したのはパケットフィルタリング機能になります。
アドレス変換は未確認なので、ここではフィルタリング機能のみ説明します。

 

◎パケットフィルタリング機能とは

 サーバに送付されてきた通信(パケット)をファイアウォールで確認(検査)して、
 設定した条件

 (httpは受け取るよ~とか、このIPアドレスからのパケットは拒否するよ~とか)
 に沿って設定したアクション(パケットの受領、拒否等)を実行する。
 ◆例:httpポート(80)を許可する
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT


◎アドレス変換機能とは(参考)

 サーバに送付されてきた通信(パケット)をファイアウォールで確認(検査)して、
 設定した条件(このIPアドレスからのパケットはこのIPに転送するよ~とか)
 に沿って設定したアクション(パケットの転送等)を実行する。

 

■感想

 iptableslinuxファイアウォール機能の初歩です。
 自分でwebサーバを立ち上げたとき、特定サーバのみ公開するための設定に

 なるわけですが、webだけではなく、システム間通信の領域で考えると、

 例えばDBサーバからのアクセスは許可するけど、ファイルサーバからの

 アクセスは拒否するとかの設定も出来る(はず)ので、詳細を知ると、

 セキュリティに強くなるんじゃないかと思いました。
 現場で「アクセスが通らない」とかある場合は、「iptablesは?」とか発言すると、
 「お?こいつlinux知ってるな?」と思われるかも知れませんね^^;