не кидайтесь помидорками! прошарил все на форуме перепробовал все советы! чот непомогает
вобщем ситуация такая
есть сервер на ASP 10
на сервере стоит прозрачный Squid.
Весь HTTP траффик перенаправляется ему для подсчетов и кэширования.
также открыт ряд нужных портов.
Скрипт настройки iptables:
#! /bin/bash
IPT="/sbin/iptables"
EXT_IF="eth1"
LO_IF="lo"
LAN="xx.xx.xx.xx/23"
LOOPBACK="127.0.0.1/8"
PREF_IP="xx.xx.xx.xx/23"
INET_IP="yy.yy.yy.yy"
POLICY="DROP"
startfw() {
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -P INPUT $POLICY
$IPT -P FORWARD $POLICY
$IPT -P OUTPUT ACCEPT
$IPT -A INPUT -i $LO_IF -d $LOOPBACK -j ACCEPT
$IPT -N allowed
$IPT -F allowed
$IPT -A allowed -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A allowed -i $EXT_IF -m limit --limit 1/second -j ULOG --ulog-prefix "Bad packet from $EXT_IF"
$IPT -A allowed -j $POLICY
$IPT -N com-allow
$IPT -F com-allow
$IPT -A com-allow -p tcp -j ACCEPT
$IPT -A com-allow -p udp -j ACCEPT
$IPT -N icmp_in
$IPT -F icmp_in
$IPT -A icmp_in -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT
$IPT -A icmp_in --fragment -p icmp -j DROP
$IPT -A icmp_in -m state --state NEW -p icmp --icmp-type echo-reply -j ACCEPT
$IPT -A icmp_in -m state --state NEW -p icmp --icmp-type time-exceeded -j ACCEPT
$IPT -A icmp_in -m state --state NEW -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPT -A icmp_in -m state --state NEW -p icmp --icmp-type source-quench -j ACCEPT
$IPT -A icmp_in -p icmp -j ULOG --ulog-prefix "Bad ICMP"
$IPT -N ssh-in
$IPT -F ssh-in
$IPT -A ssh-in -p tcp --dport 22 -j ACCEPT
$IPT -N wmin-in
$IPT -F wmin-in
$IPT -A wmin-in -p tcp --dport 10000 -j ACCEPT
$IPT -A ssh-in -m limit --limit 1/second -p tcp --tcp-flags ALL RST --dport ssh -j ACCEPT
$IPT -A ssh-in -m limit --limit 1/second -p tcp --tcp-flags ALL FIN --dport ssh -j ACCEPT
$IPT -A ssh-in -m limit --limit 1/second -p tcp --tcp-flags ALL SYN --dport ssh -j ACCEPT
$IPT -A ssh-in -m state --state RELATED,ESTABLISHED -p tcp --dport ssh -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j com-allow
$IPT -A INPUT -p tcp --dport 139 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 445 -s $LAN -j com-allow
$IPT -A INPUT -p udp --dport 137 -s $LAN -j com-allow
$IPT -A INPUT -p udp --dport 138 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 411 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 51234 -s $LAN -j com-allow
$IPT -A INPUT -p udp --dport 8767 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 22 -s $PREF_IP -j ssh-in
$IPT -A INPUT -p tcp --dport 21 -s $PREF_IP -j ftp-in
$IPT -A INPUT -p tcp --dport 10000 -s $PREF_IP -j wmin-in
$IPT -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
$IPT -A INPUT -p gre -j ACCEPT
$IPT -A OUTPUT -m tcp -p tcp --dport 1723 -j ACCEPT
$IPT -A OUTPUT -p gre -j ACCEPT
$IPT -A INPUT -p tcp --dport 5222:5223 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 5280 -s $PREF_IP -j com-allow
$IPT -A INPUT -p tcp --dport 3128 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 25 -s $LAN -j com-allow
$IPT -A INPUT -p tcp --dport 110 -s $LAN -j com-allow
$IPT -A INPUT -s $LAN -p udp --dport domain -j com-allow
$IPT -A INPUT -p tcp --dport 10001 -s $LAN -j com-allow
$IPT -A INPUT -p icmp -j icmp_in
$IPT -A INPUT -j allowed
$IPT -t nat -A PREROUTING -s $LAN -d ! $LAN -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
$IPT -t nat -A POSTROUTING -s $LAN -j SNAT --to-source $INET_IP
$IPT -A FORWARD -s $LAN -d ! $LAN -j ACCEPT
$IPT -A FORWARD -d $LAN -m state --state RELATED,ESTABLISHED -j ACCEPT
}
startfw
/etc/init.d/iptables save
/etc/init.d/iptables stop
/etc/init.d/iptables start
Появилась задача прикрутить к серверу еще и PPTP. Пользователь из инета должен попадать в нашу сеть.
PPTP поднят и настроен. Без iptables пакеты внутрь проходят! Как тока пускаю iptables соединение с сервером есть, но пакеты внутрь не идут!
Помогите ПЛЗ!
С удовольствием послушаю, как правильно прокинуть pptp, в локалку. Тоже поднимал pptp, чет видимо с правилами iptables у меня трабла была, всяко пробывал, ща для доступа к локалке использую ssh, но если поднять pptp то будет ваще гуд
всё просто; предположим, что eth0 - внешний интерфейс шлюза и 192.168.1.200 - PPTP-сервер в локальной сети; тогда правила iptables такие:
iptables -t nat -A PREROUTING -i eth0 -p tcp -d внешний_IP_шлюза --dport 1723 -j DNAT --to-destination 192.168.1.200:1723
iptables -t nat -A PREROUTING -i eth0 -p 47 -d внешний_IP_шлюза -j DNAT --to-destination 192.168.1.200
но это ещё не всё; в ядре должны быть собраны и загружены такие модули:
modprobe ip_gre
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp
(в старых ядрах были ещё нужны ip_nat_proto_gre и ip_conntrack_proto_gre)
всё просто; предположим, что eth0 - внешний интерфейс шлюза и 192.168.1.200 - PPTP-сервер в локальной сети; тогда правила iptables такие:
iptables -t nat -A PREROUTING -i eth0 -p tcp -d внешний_IP_шлюза --dport 1723 -j DNAT --to-destination 192.168.1.200:1723
iptables -t nat -A PREROUTING -i eth0 -p 47 -d внешний_IP_шлюза -j DNAT --to-destination 192.168.1.200
но это ещё не всё; в ядре должны быть собраны и загружены такие модули:
modprobe ip_gre
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp
(в старых ядрах были ещё нужны ip_nat_proto_gre и ip_conntrack_proto_gre)
Это для случая когда у нас есть уже настроенный pptp сервер в локальной сети, и тут мы просто натим к нему запросы.
Как быть вот в таком случае. Пусть у нас inet_ip=yy.yy.yy.yy, lan_ip=192.168.2.50,net_lan=192.168.2.0/24, pptp поднят на этом же сервере, при подключении клиента из вне он получает pptp_ip=192.168.5.30 net_pptp=192.168.5.0/24. Нужно чтоб клиент 192.168.5.30 мог получать доступ к сети 192.168.2.0/24
Прошу прощения конечно, что влез в чужую тему, но думаю что Deicide как раз про это и спрашивал, а мне проста по путно интереcно
Пусть у нас inet_ip=yy.yy.yy.yy, lan_ip=192.168.2.50,net_lan=192.168.2.0/24, pptp поднят на этом же сервере, при подключении клиента из вне он получает pptp_ip=192.168.5.30 net_pptp=192.168.5.0/24. Нужно чтоб клиент 192.168.5.30 мог получать доступ к сети 192.168.2.0/24
если pptp поднят на самом шлюзе, это ещё проще;
во-первых, к чему изощряться с другой подсетью - пусть pptp выдаёт адреса из той же подсети; варианты здесь возможны разные, в самом простом случае в /etc/pptpd.conf указываем
localip 192.168.2.50
remoteip 192.168.2.220-245
ну и второе уже было озвучено выше - надо разрешить FORWARD между ppp- и eth-интерфейсами
iptables -A FORWARD -i eth1 -o ppp+ -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth1 -j ACCEPT