LINUX.ORG.RU
решено ФорумAdmin

Локальные ресурсы провайдера


1

1

Доброго времени суток, дорогое сообщество! Заранее прошу прощения, если такой вопрос уже рассматривался.

Имеем:

Шлюз - Ubuntu Server 14.04; Два интерфейса - p5p1 внешний; p5p2 внутренний; Интернет соединение - L2TP; DHCP - isc-dhcp-server

Всё работает замечательно, интернет на машинах сети есть. Но вот локальные ресурсы провайдера, на PC сети (p5p1), не открываются. С другой стороны - на шлюзе все хорошо пингуется и открывается (с помощью консольных браузеров).

Полагаю, проблема решается редактированием iptables. Подскажите, пожалуйста, как именно!

#!/bin/bash

IPT="/sbin/iptables"
WAN="ppp0"
LAN="eth0"
# Очистка всех цепочек iptables
$IPT -F
$IPT -F -t nat
$IPT -F -t mangle
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X
# Закрываем изначально ВСЁ
$IPT -P INPUT DROP
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT DROP
# Разрешаем локальный траффик для loopback и внутренней сети
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A INPUT -i $LAN -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A OUTPUT -o $LAN -j ACCEPT
# Пропускать все уже инициированные соединения, а также дочерние от них
$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
# Пропускать новые, а так же уже инициированные и их дочерние соединения
$IPT -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешить форвардинг для новых, инициированных и их дочерних соединений
$IPT -A FORWARD -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Отбрасывать все пакеты, которые не могут быть идентифицированы
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -A FORWARD -m state --state INVALID -j DROP
# Приводит к связыванию системных ресурсов, так что реальный
# обмен данными становится не возможным.
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
# Разрешаем доступ из внутренней сети наружу
$IPT -A FORWARD -i $LAN -o $WAN -j ACCEPT
# Локальные ресурсы внешней сети
$IPT -t nat -I PREROUTING -i eth1 -s 10.0.0.1/32 -j ACCEPT

# Запрещаем доступ снаружи во внутреннюю сеть
$IPT -A FORWARD -i $WAN -o $LAN -j REJECT
# Маскарадинг
# $IPT -t nat -A POSTROUTING -o $WAN -s $LAN_IP_RANGE -j MASQUERADE
$IPT -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
#------------------------------------
# Открываем порт для ssh
$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT
# Открытие портов для торрентов (такие же указать в torrent-клиенте)
$IPT -A INPUT -i $WAN -p tcp -m multiport --ports 49152:65535 -j ACCEPT
# Открытие 443 порта
$IPT -A INPUT -p tcp --dport 443 -j ACCEPT
# Открываем 80 порт для веб сайтов
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 80 -j ACCEPT
# Открытие портов для игровых серверов
$IPT -A INPUT -i $WAN -p tcp --dport 27010:27030 -j ACCEPT
$IPT -A INPUT -i $WAN -p udp --dport 27010:27030 -j ACCEPT

Сделайте так:

# Маскарадинг
$IPT -t nat -A POSTROUTING -o eth1 -s $LAN_IP_RANGE -j MASQUERADE
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE

а вот этого я с налету не понял:

$IPT -t nat -I PREROUTING -i eth1 -s 10.0.0.1/32 -j ACCEPT
rubic
()

А локальные ресурсы - это что? Не шары с нетбиосом, случаем?

ktulhu666 ☆☆☆
()
Ответ на: комментарий от rubic
# Уже есть и работает исправно - без нее нет интернета внутри сети p5p1:
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
# А вот эта строчка - совершенно не спасает: 
$IPT -t nat -A POSTROUTING -o eth1 -s $LAN_IP_RANGE -j MASQUERADE

Локальные ресурсы такие:

beeline.ru (10.255.64.26) / my.corbina.ru (10.255.66.3) / lk.beeline.ru (10.255.64.4)

# Ошибочка, не eth1, а p5p2 (честно говоря - совершенно бестолковая строчка):
# Локальные ресурсы внешней сети 
$IPT -t nat -I PREROUTING -i p5p2 -s 10.0.0.1/32 -j ACCEPT

Вот таблица маршрутцзации:

Destination     Gateway         Genmask         Flags MSS Window irtt Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0   0      0    ppp0
10.0.0.0        10.65.16.1      255.0.0.0       UG    0   0      0    p5p2
10.65.16.0      0.0.0.0         255.255.248.0   U     0   0      0    p5p2
10.253.0.1      0.0.0.0         255.255.255.255 UH    0   0      0    ppp0
78.107.196.0    10.65.16.1      255.255.252.0   UG    0   0      0    p5p2
192.168.0.0     0.0.0.0         255.255.255.0   U     0   0      0    p5p1

softwider
() автор топика

Сделай хотя бы трассировку и пинг до этих ресурсов с компа из локалки. Одновременно запусти tcpdump на обоих интерфейсах шлюза и посмотри трафик.

anonymous
()
Ответ на: комментарий от softwider

Вам нужно привести ваш вопрос в порядок. Сначала вы пишете, что «p5p1 внешний; p5p2 внутренний;» при этом ни тот, ни другой в листинге правил вообще не встречаются, а встречаются eth0 (LAN) и eth1. Затем приводите ТМ, из которой видно, что p5p2 таки не внутренний, а p5p1 - не внешний.

У вас адрес по DHCP от Билайна получает p5p2? Вот он и смотрит в сеть с локальными ресурсами провайдера. На нем и надо делать NAT для клиентов локальной сети:

$IPT -t nat -A POSTROUTING -o p5p2 -s $LAN_IP_RANGE -j MASQUERADE
rubic
()
Ответ на: комментарий от rubic

Да, извините, намудрил с интерфейсами. Это после того как Ubuntu поменяла у меня eth на p5p. Собственно теперь из таблицы маршрутизации видно кто есть кто.

p5p1 = eth0 = внУтренний интерфейс
p5p2 = eth1 = внЕшний интерфейс
В примерах eth потому, что взято из шпаргалки - на сервере все заменены на соответственные. Еще раз прошу прощения за запутанность.

Всё получилось!

Большое спасибо, rubic!!

$IPT -t nat -A POSTROUTING -o p5p2 -s $LAN_IP_RANGE -j MASQUERADE
Для меня это выглядит так (это для тех у кого такой же вопрос будет):
# Локальные ресурсы внешней сети
$IPT -t nat -A POSTROUTING -o p5p2 -s 192.168.0.1/24 -j MASQUERADE
Пошёл учить iptables дальше!

softwider
() автор топика
Ответ на: комментарий от softwider

Рекомендую установить ferm, будет гораздо проще поддерживать iptables-правила.

ValdikSS ★★★★★
()

Доброго времени суток

убивать

локальные ресурсы провайдера

ненужно

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