みなさんのアドバイスを参考にRSTパケットを誰が送信しているのか調べてみました。
環境構成ですが、クライアントPCをAのネットワーク、WEBサーバをBのネットワークに接続し、
AとBのネットワークはサーバのeth0をAに、eth1をBに接続してます。
サーバ内ではeth0あてのパケットをWEBサーバに、eth1あてのパケットをクライアントPCに転送しています。

サーバ内でtcpdumpをeth0、eth1のtcpパケットのみ記録して調べてみた所、iptables停止時は以下の状態でした。
実オペレーションは、クライアントPCからeth0に対してブラウザでアクセス

1.クライアントPCからSYNを送付し、サーバ内のプログラムでeth1からWEBサーバへ転送
2.WEBサーバから、eth1にSYN,ACKを送付
3.eth1からWEBサーバにRSTパケットを送付
4.eth1に届いたSYN、ACKをサーバ内のプログラムでeth0からクライアントPCへ転送

2と3の間に作成したプログラムは介入しておらず、3が終わった後の4で転送プログラムが転送しています。
上記から、RAWSOCKETを使っていてListenをしていないので、3番でListenしていないポートへのコネクション
確立をさせずにOSがRSTパケットを送付しているのではないのかと考えました。
iptablesを起動時は、OSがListenしていると扱ってRSTパケットを送付しないのではないかと思ったのですが、
どうすれば確認できるかわからず、もやっとしています。

netstat -Lでiptables実行時と停止時にListen状況を見たのですが、変化はありませんでした。
また、もしListenしていないポートへのアクセスにRSTパケットを送る仕様だとすると、クライアントPCから
サーバへのSYN送信時は何故RSTパケットをブラウザに返さないのか。
※サーバ上でHTTPDのサービスは起動していません。

一瞬、わかった気がしたのですが、まだ理解不足のようです。ネットワーク難しいです。