【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に転送するよ~とか)
に沿って設定したアクション(パケットの転送等)を実行する。
■感想
iptablesはlinuxのファイアウォール機能の初歩です。
自分でwebサーバを立ち上げたとき、特定サーバのみ公開するための設定に
なるわけですが、webだけではなく、システム間通信の領域で考えると、
例えばDBサーバからのアクセスは許可するけど、ファイルサーバからの
アクセスは拒否するとかの設定も出来る(はず)ので、詳細を知ると、
セキュリティに強くなるんじゃないかと思いました。
現場で「アクセスが通らない」とかある場合は、「iptablesは?」とか発言すると、
「お?こいつlinux知ってるな?」と思われるかも知れませんね^^;