我无法从由IPtables和Squid配置的局域网外部移植TCP 80。
这些是我的iptable规则:
# RESET
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Pas de filtrage sur l'interface lo
iptables -A INPUT -i lo -j ACCEPT
# Debut des reles de firewall
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# LAN VERS le NET
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
# J'autorise le port 22, 80
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# J'autorise ICMP et IGMP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p igmp -j ACCEPT
# NAT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Squid3
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.32.25.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A FORWARD -i eth1 -o eth1 -j REJECT
这是我的squid3.conf
的内容
http_port 3128 transparent
# Attention si vous modifiez les valeurs de la ligne suivante : lancez squid3 -f /etc/squid3/squid.conf -z pour reconstruire le cache !
cache_dir ufs /var/spool/squid3 8192 512 512
cache_mem 512MB
# Les journaux
cache_access_log /var/log/squid3/access.log common
cache_log /var/log/squid3/cache.log
cache_store_log /var/log/squid3/store.log
cache_swap_log /var/log/squid3/cache_swap.log
emulate_httpd_log on
# Configuration minimum recommandee
# Bloquer
#acl youtube_domains dstdomain .youtube.com .googlevideo.com .ytimg.com
#http_access deny youtube_domains
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
# Denition des reseseaux
acl network_home_010032025000 src 10.32.25.0/26
# Les acces ou non
http_access allow network_home_010032025000
http_access deny all
# On renseigne le nom de machine qui fait serveur
visible_hostname home
# Hidden my domain
append_domain .home.da....
一切都是从网络内部运作的。乌贼在工作,而纳特工作得很好。
但是,当我想从外部访问时,它不适用于端口80。我可以从外部使用SSH登录,但是当我尝试使用端口80 (网站)从外部访问时,Squid给了我一个错误。当我从外面进入我的IP时,乌贼告诉我“访问被拒绝”。
有什么帮助吗?谢谢。
eth0局域网(10.32.25.0/26)
eth1广域网网关(10.30.25.0/26) /(外部IP 69.*)
发布于 2012-06-13 15:55:54
经过更深入的研究,我发现当我将PREROUTING
重定向到端口80时,我需要指定源代码。下面是我在IPTables配置中编辑的内容:
替换这一行
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
...with这条线
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 10.32.25.0/26 --dport 80 -j REDIRECT --to-port 3128
我添加了-s 10.32.25.0/26
,所以这个规则只适用于我的内部网络。
https://serverfault.com/questions/398330
复制相似问题