LINUX.ORG.RU
ФорумAdmin

Работа внутреннего sql-сервера и iptables.


0

0

Существует сеть, в которой несколько внутренних подсеток (192.168.1.1/24, 192.168.2.1/24, 192.168.3.1/24, 192.168.4.1/24, 192.168.5.1/24, 192.168.6.1/24). Ip адресация в сети статическая! На локальных станциях, в качестве шлюза прописан соответствеющий ip-адрес сервера (если пользователь в 1-ой подсети-например 192.168.1.24, то адрес его шлюза 192.168.1.1, а если 192.168.5.143 -тогда 192.168.5.1 и т.д.). На этом сервере-шлюзе установлены все эти 6 сетевых карт и 1 карта, которая смотрит в Inet c реальным ip-адресом (217.3.Х.Х); вроде бы все что требуется для работы прописано в iptables. Внутри сети имеется Windows2000 c sql-сервером (например 192.168.2.10), с которым должны работать пользователи из разных подсетей. Если пользователь находится в той же подсети что и сервер,то все прекрасно работает. Но если к sql-серверу обращаются с других подсеток, то через какое то время происходит разрыв связи и он перестает даже пинговаться :-( Если во время этих сбоев посмотреть какой пользователь подключен и с какого ip он работает, виден почему-то ip-адрес шлюза (причем реальный адрес 217.3.Х.Х), а должен быть ip-адрес той машины с которой идет запрос... Подозреваю что у меня не хватает правил в iptables и в следствии этого возникают проблемы с маршрутизацией. Буду очень признателен в исправлении моего конфига!

#!/bin/bash IPTABLES="/sbin/iptables" LOCALNET1="192.168.1.0/24" LOCALNET2="192.168.2.0/24" LOCALNET3="192.168.3.0/24" LOCALNET4="192.168.4.0/24" LOCALNET5="192.168.5.0/24" LOCALNET7="192.168.7.0/24" REAL_LAN_IP="217.3.X.X"

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -Z

# Accept forward packets $IPTABLES -A FORWARD -s $LOCALNET1 -d 0/0 -j ACCEPT $IPTABLES -A FORWARD -s $LOCALNET2 -d 0/0 -j ACCEPT $IPTABLES -A FORWARD -s $LOCALNET3 -d 0/0 -j ACCEPT $IPTABLES -A FORWARD -s $LOCALNET4 -d 0/0 -j ACCEPT $IPTABLES -A FORWARD -s $LOCALNET5 -d 0/0 -j ACCEPT $IPTABLES -A FORWARD -s $LOCALNET7 -d 0/0 -j ACCEPT

$IPTABLES -A INPUT -s $LOCALNET7 -d 0/0 -p tcp --dport 21 -j ACCEPT $IPTABLES -A INPUT -s $LOCALNET7 -d 0/0 -p udp --dport 21 -j ACCEPT $IPTABLES -A INPUT -s $LOCALNET7 -d 0/0 -p tcp --dport 20 -j ACCEPT $IPTABLES -A INPUT -s $LOCALNET7 -d 0/0 -p udp --dport 20 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 22 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 25 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 53 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p udp --dport 53 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 80 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 110 -j ACCEPT $IPTABLES -A INPUT -d 0/0 -p tcp --dport 443 -j ACCEPT

$IPTABLES -A INPUT -p icmp --icmp-type 0 -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type 3 -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type 5 -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type 11 -j ACCEPT

$IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET1 -d 0/0 -j SNAT --to-source $REAL_LAN_IP $IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET2 -d 0/0 -j SNAT --to-source $REAL_LAN_IP $IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET3 -d 0/0 -j SNAT --to-source $REAL_LAN_IP $IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET4 -d 0/0 -j SNAT --to-source $REAL_LAN_IP $IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET5 -d 0/0 -j SNAT --to-source $REAL_LAN_IP $IPTABLES -t nat -A POSTROUTING -p ALL -s $LOCALNET7 -d 0/0 -j SNAT --to-source $REAL_LAN_IP #Redirect all users on transparent proxy $IPTABLES -t nat -A PREROUTING -s $LOCALNET1 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128 #$IPTABLES -t nat -A PREROUTING -s $LOCALNET1 -d 0/0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

$IPTABLES -t nat -A PREROUTING -s $LOCALNET2 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128 $IPTABLES -t nat -A PREROUTING -s $LOCALNET2 -d 0/0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

$IPTABLES -t nat -A PREROUTING -s $LOCALNET3 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128 $IPTABLES -t nat -A PREROUTING -s $LOCALNET3 -d 0/0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

$IPTABLES -t nat -A PREROUTING -s $LOCALNET4 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128 $IPTABLES -t nat -A PREROUTING -s $LOCALNET4 -d 0/0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

$IPTABLES -t nat -A PREROUTING -s $LOCALNET5 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128 #$IPTABLES -t nat -A PREROUTING -s $LOCALNET5 -d 0/0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

$IPTABLES -t nat -A PREROUTING -s $LOCALNET7 -d 0/0 -p tcp --dport 80:88 -j REDIRECT --to-port 3128

$IPTABLES -A INPUT -i $REAL_LAN_IP -j LOG $IPTABLES -A FORWARD -i $REAL_LAN_IP -j LOG

Сделайте просто одним правилом (eth5 - внешний инетрфейс):

$IPTABLES -t nat -A POSTROUTING -o eth5 -j SNAT --to-source $REAL_LAN_IP

jonatan
()

Вы говорите о форвандинге который настраивается iptables, а нужно использовать route.

Что выдает route -n?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.