У меня есть Ubuntu 10.04 box, который когда-то был настроен как Squid Transparent Proxy. Навигация была идеальной: мои клиенты Windows не испытывали никаких проблем.
Проблема, с которой я столкнулся, заключалась в том, что пользователи не могли отправлять или получать почту с помощью Outlook (и Outlook Express). Поэтому я погуглил тут и там и нашел решение:
sudo iptables -t nat -A POSTROUTING -p TCP --dport 25 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -p TCP --dport 110 -j MASQUERADE
Все прошло отлично.
Теперь я включил аутентификацию squid (простую, с использованием текстового файла), и мой outlook и outlook express снова перестали работать. Я читал, что проблема на самом деле не связана со squid, потому что он не проксирует smtp или pop... Но мне все еще нужно ее решить. NAT? Переадресация портов?
Какие команды мне следует использовать?
Сервер Squid имеет одну сетевую карту и может подключаться к Интернету и разрешать имена с помощью серверов OpenDNS без проблем.
конфигурация на сервере: ip 192.168.1.210 подсеть 255.255.255.0 шлюз 192.168.1.5
На клиентах я использую: ip 192.168.1.x подсеть 255.255.255.0 шлюз 192.168.1.210
Я могу добавить дополнительные подробности, поэтому, пожалуйста, спрашивайте, но я не знаю, что может потребоваться для решения этой проблемы.
РЕДАКТИРОВАТЬ:
судо iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-ssh (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
sudo iptables -L -t нат
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- anywhere anywhere tcp dpt:www redir ports 3128
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE tcp -- anywhere anywhere tcp dpt:smtp
MASQUERADE tcp -- anywhere anywhere tcp dpt:pop3
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
решение1
Я не уверен, чего именно вы собираетесь добиться. Насколько я понимаю, вы собираетесь использовать машину со squid в качестве маршрутизатора/брандмауэра для следующего сценария:
- разрешить веб-протоколы (http/ftp) только через squid
- разрешить доступ к smpt/pop3 из вашей внутренней сети наружу через NAT.
- Ваш шлюз в интернет — 192.168.1.5
Обычно NAT транслирует из одной сети (192.168.1.0/24) в другую (т. е. 84.145.77.23/32) и наоборот. Поэтому вам может потребоваться настроить правила NAT на вашем шлюзе 192.168.1.5, чтобы все работало.
Итак, исходящий путь:
client -> 192.168.1.210 ->NAT-> 192.168.1.5 ->NAT-> mailserver
А входящий путь для ответов:
mailserver -> 192.168.1.5 ->NAT-> 192.168.1.210 ->NAT-> client
Как видно из рисунка, 192.168.1.210 можно исключить, а шлюз можно настроить на прием и трансляцию NAT исходящего трафика smtp/pop3 от всех клиентов и прием исходящего трафика http(s)/ftp только от 192.168.1.210.
По моему скромному мнению, второй NAT между 192.168.1.210 и 192.168.1.5 может вызвать проблемы (та же сеть) и не нужен.
Чтобы включить NAT в целом на 192.168.1.210, попробуйте сначала сделать следующее:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
При необходимости измените eth0 на имя вашего сетевого интерфейса.