当试图在iptables中为outlook用户打开端口110和25时,我不能这样做,除非转发如下:
-I FORWARD -i eth0 -s 192.168.1.0/24 -j ACCEPT
-I FORWARD -i eth1 -d 192.168.1.0/24 -j ACCEPT但是这样做可以让我局域网中的其他用户绕过我的squid代理。这些转发命令的正确语法是什么,以只写端口110和25?
编辑:
这是我当前直接配置的iptables文件。它现在起作用了,但我确信它远非完美。目前,没有显式代理服务器的用户无法连接到internet。outlook端口正在工作。
# Generated by iptables-save v1.3.5 on Fri Mar 9 13:59:24 2012
*nat
:PREROUTING ACCEPT [25448:1902369]
:POSTROUTING ACCEPT [29:1625]
:OUTPUT ACCEPT [786:56571]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Fri Mar 9 13:59:24 2012
# Generated by iptables-save v1.3.5 on Fri Mar 9 13:59:24 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [1:68]
:OUTPUT DROP [0:0]
:LOGDROP - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -m state --state NEW -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 110 -m state --state NEW -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 25 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -j LOGDROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 5190 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 110 -m state --state NEW -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 25 -m state --state NEW -j ACCEPT
-I FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-I FORWARD -i eth0 -s 192.168.1.0/24 -p tcp --dport 110 -j ACCEPT
-I FORWARD -i eth0 -s 192.168.1.0/24 -p tcp --dport 25 -j ACCEPT
-A LOGDROP -j LOG
-A LOGDROP -j DROP
COMMIT
# Completed on Fri Mar 9 13:59:24 2012发布于 2012-03-09 15:26:12
好的,让我们从头再来一遍。
将前向链设置为接受(以防万一)
iptables -P FORWARD ACCEPT
清理你的前链
iptables -F FORWARD
允许您的用户检查smtp和pop。
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 110 -j ACCEPT不要添加-d 192.168.1.0/24 -j ACCEPT,因为这是不安全的。
让他们回答这些问题
iptables -A FORWARD -m state --state RELATED, ESTABLISHED -j ACCEPT
将您的前向链策略设置为“下降”。
iptables -P FORWARD DROP
现在,第一部分应该起作用了。如果没有,则不启用ip_forward。
echo 1 > /proc/sys/net/ipv4/ip_forward
关于重启问题。Iptables命令不是持久的,所以您必须使用脚本,或者使用内置于iptables的Linux发行版管理脚本。
最简单和不太优雅的方法是在配置和工作正常时运行此命令。
iptables-save >/etc/myfirewall_config
以及连接和initscript,在引导时加载它。
iptables-restore </etc/myfirewall_config
好了。
如果在所有这些之后仍然存在问题,那么发布NAT表(iptables -t nat -vnL)
发布于 2012-03-09 13:03:13
‘-我转发了-i eth1 -d 192.168.1.0/24 -j ACCEPT’enables/opens从(可能)您的出入口到内部lan。
为了允许传出连接使用- 'iptables -I转发-s 192.168.11.0/24 -p tcp --dport 110 -j ACCEPT‘。
请注意,像这样启用传出连接是错误的,您会让病毒/蠕虫/木马通过这些端口连接到internet。通过指定强制用户使用内部smtp服务器与启用AUTH的传出连接的确切目的IP来限制它。
如果他们需要远程pop3,可以通过pop3下载邮件到网络内的服务器,并通知用户使用内部pop3“镜像”副本。
也有一些pop3代理或一些邮件客户端可以通过代理运行pop3 3/smtp。
https://serverfault.com/questions/368023
复制相似问题