- PR -

iptablesの設定がおかしい?

1
投稿者投稿内容
マリン
常連さん
会議室デビュー日: 2006/05/28
投稿数: 41
投稿日時: 2007-11-26 16:12
CentOS 5.0で以下のようなiptablesの設定スクリプトを作ってWebサーバーを運用しているのですが、443ポートへの接続がDROPされているログがけっこう頻繁(?)にあることに最近気付きました。ESTABLISHED, RELATEDは無条件でACCEPT行き、80と443へのNEWパケットも許可しているのでWebサーバーへの接続がLOGGINGチェインまで到達することはない…つもりなのですが何か見落としている点がありますでしょうか?

コード:
#!/bin/sh

# iptables location
IPTABLES='/sbin/iptables'

# Accept Network
LAN='192.168.0.0/16'

# Initialize
$IPTABLES -F
$IPTABLES -X

# Deny all
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# Accept list
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -p icmp --icmp-type any -j ACCEPT
$IPTABLES -A INPUT -p udp --dport ntp -j ACCEPT
$IPTABLES -A INPUT -p udp --dport 67:68 --sport 67:68 -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -s $LAN -j ACCEPT

# HTTP/HTTPS
$IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

$IPTABLES -N LOGGING
$IPTABLES -A LOGGING -m limit -j LOG --log-level warning --log-prefix "DROP: "
$IPTABLES -A LOGGING -j DROP
$IPTABLES -A INPUT -j LOGGING
$IPTABLES -A FORWARD -j LOGGING

# Save settings
/sbin/service iptables save



/var/log/messagesからDROP:をgrepしたリストの一部
引用:


Nov 26 09:20:02 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=34290 PROTO=TCP SPT=61901 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 09:20:05 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=34306 PROTO=TCP SPT=61900 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 11:36:20 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=7423 PROTO=TCP SPT=61326 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 11:37:18 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=7706 PROTO=TCP SPT=61330 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 11:37:23 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=7729 PROTO=TCP SPT=61332 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 11:38:21 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=27889 PROTO=TCP SPT=62633 DPT=443 WINDOW=0 RES=0x00 RST URGP=0
Nov 26 11:41:41 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=14174 PROTO=TCP SPT=61839 DPT=443 WINDOW=0 RES=0x00 ACK RST URGP=0
Nov 26 11:56:32 www kernel: DROP: IN=eth0 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=110 ID=14943 PROTO=TCP SPT=61890 DPT=443 WINDOW=0 RES=0x00 ACK RST URGP=0



Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2007-11-26 16:27
ルールとログには特に矛盾は無いように見えます。

ACKもしくはACK RSTなパケットですよね。
stateがNEWなパケットではなさそうですし、
DROPされて正常かと思います。

かつ、ESTABLISHED,RELATEDでも引っかからないんだったら
他の通信に関連しない通信なんでしょう。


あとは、それがどんな通信か、ですが、これはDROPログだけじゃ分かりません。
マリン
常連さん
会議室デビュー日: 2006/05/28
投稿数: 41
投稿日時: 2007-11-30 12:17
遅くなりましたがご回答ありがとうございます。

その後も調査を続けたところ、このWebサーバーは通常のブラウザからのアクセスの他にWinInet.dllを使用したプログラムからHTTPアクセスされるC/Sシステムのサーバーでもあるのですが、DROPされたログのアクセス元IP等から判断してどうもそのプログラムを使っているユーザーからのアクセスのようでした。ただ、ユーザー側からそのプログラムの動作がおかしいというような報告が来ていないのがとりあえず救い(?)ではあるのですが…

また、HTTP/HTTPSに関する処理ルールを以下のようにNEWに限定しないようにもしてみたのですが、依然としてDPT=80やDPT=443へのACK RST・RST・ACK FINをDROPしたログが出続けており、これも原因がよくわかりません。
コード:
# HTTP/HTTPS
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT


1

スキルアップ/キャリアアップ(JOB@IT)