The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"VPN + NAT в IPtables"
Отправлено Ramaloke, 02-Апр-09 22:27 
>откуда проверяете, с сервера или другой машины? ping это icmp протокол, он
>разрешен? тут показаны правила только для входящих пакетов, для исходящих и
>транзитных нет ничего. и не понятно кто есть IP_VPN , а
>кто IP_VPN_route.
>показывайте уж тогда iptables-save с описанием кто есть кто. серые ip лучше
>не прятать что бы не путаться. так же таблица маршрутизации не
>будет лишней, а если проверяете не с сервера , а с
>другой машины то и ее настройки то же показывайте.

Понимаю, что запутал. Постораюсь описать все снова и по порядку.
Сервер с iptables имеет 2 сетевые:
подключенная к ДСЛ-модему: eth1 - 192.168.1.2
локальная: eth2 - 192.168.50.77
Он же подключается по впн к серверу и устройство ppp0, создающееся на время подключения получает ip: 192.168.80.40. После чего прописывается маршрут к серверу с БД - 192.168.20.30.
Пингую с сервера.
Если таблицы iptables стереть, то пингуется все нормально. При заполненных таблицах, эти 2 ip (192.168.80.40 и 192.168.20.30) не пингуются, выдается ошибка ping: sendmsg: Операция не позволяется. Но сайты, локальная сеть и т.д. пингуются.

Теперь привожу скрипт, который заполняет таблицы (лог-куски отброшу чтобы не сорить):

=====================
#!/bin/sh
#Карта смотрящая в инет через ДСЛ модем)
INET_IP="192.168.1.2"
INET_IFACE="eth1"
INET_BROADCAST="192.168.1.255"

#Карта смотрящая в локальную сеть
LAN_IP="192.168.50.77"
LAN_IP_RANGE="192.168.50.0/24"
LAN_IFACE="eth2"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="/sbin/iptables"

/sbin/depmod -a

/sbin/modprobe ip_tables
/sbin/modprobe nf_conntrack_ipv4
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG

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

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

$IPTABLES -N bad_tcp_packets

$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets

$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

# TCP rules
#SSH
$IPTABLES -A tcp_packets -p TCP -s 192.168.50.0/24 --dport 22 -j allowed
#IDENTD
$IPTABLES -A tcp_packets -p TCP -s 192.168.50.0/24 --dport 113 -j allowed
#Squid
$IPTABLES -A tcp_packets -p TCP -s 192.168.50.0/24 --dport 3128 -j allowed

# UDP ports
$IPTABLES -A udp_packets -p UDP -s 192.168.50.0/24 --destination-port 2074 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 192.168.50.0/24 --destination-port 4000 -j ACCEPT

# ICMP rules
$IPTABLES -A icmp_packets -p ICMP -s 192.168.50.0/24 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 192.168.50.0/24 --icmp-type 11 -j ACCEPT

# INPUT chain
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets

# Rules for special networks not part of the Internet
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT

# Rules for incoming packets from the internet.
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets

# FORWARD chain
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets

# Accept the packets we actually want to forward
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# OUTPUT chain
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets

# Special OUTPUT rules to decide which IP's to allow.
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT

# POSTROUTING chain
#Ходить через NAT на почту
$IPTABLES -t nat -A POSTROUTING -p TCP -s 192.168.50.0/24 --dport 25 -o $INET_IFACE -j SNAT --to-source $INET_IP
$IPTABLES -t nat -A POSTROUTING -p TCP -s 192.168.50.0/24 --dport 110 -o $INET_IFACE -j SNAT --to-source $INET_IP
#Через на на 1753 порт для VPN
$IPTABLES -t nat -A POSTROUTING -p TCP -s 192.168.50.0/24 --dport 1753 -o $INET_IFACE -j SNAT --to-source $INET_IP

=====================
Для VPN добавлял, изменял огромное кол-во вариантов цепочек, все и не упомню. Но доходит до полного абсурда и логично, что не работает :(((
Цепочки примерно такие:
$IPTABLES -A INPUT -p 47 -i eth1 -s 192.168.50.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p TCP -s 192.168.50.0/24 -j ACCEPT
$IPTABLES -A OUTPUT -p 47 -o eth2 -s 192.168.50.0/24 -j ACCEPT
$IPTABLES -A OUTPUT -p TCP -s 192.168.50.0/24 --sport 1753 -j ACCEPT

Как видите до пингования из локальной сети дело еще не дошло :(

Да, роутинг следующий:
route add -host 192.168.20.30 netmask 0.0.0.0 gw 192.168.80.40 dev ppp0

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру