iptablesconfiguration与apache2 mod_proxy一起使用

我有这样的iptablesconfiguration:

iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT 

另外,我有一个Apache虚拟主机:

 <VirtualHost *:80> ServerName wiki.myite.com <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://localhost:8901/ ProxyPassReverse / http://localhost:8901/ <Location /> Order allow,deny Allow from all </Location> </VirtualHost> 

我的主域www.mysite.com正在使用这个configuration(我不使用代理redirect)。 但是我的虚拟主机wiki.mysite.com没有响应。

请帮助我设置iptablesconfiguration以允许wiki.mysite.com工作。 我想,我需要安装iptables FORWARDING选项,但我不知道如何。

更新:

我有1个IP的1个服务器。 在服务器上我有80端口上的apache2.2。 我也有8901端口tomcat6。 在阿帕奇我设置转发域名wiki.mysite.com到tomcat(mysite.com:8901)。

我想通过禁用除了80,22和443之外的所有端口来保护我的服务器。

那么,如果你redirect到8901端口,并且你还没有通过接受所有信息将你的lo界面标记为“可信”,那么你可能只是在自己的防火墙上阻止自己。

假设你已经设置了网站在8901正确地听,你应该添加另一行:

 iptables -A INPUT -p tcp --dport 8901 -j ACCEPT iptables -A OUTPUT -p tcp --sport 8901 -j ACCEPT 

或者只是添加:

 iptables -A INPUT -i lo -j ACCEPT 

所以你的机器会知道在所有端口上接受本地主机的数据包。

我通过将下面的代码添加到我的iptablesconfiguration来解决这个问题:

 iptables -A INPUT -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT 

我打开本地主机和本地主机的所有端口。

看起来像撒旦尼说,但是:

 iptables -A INPUT -i lo -j ACCEPT 

打开所有的端口。