top
logo


Создание сервера для раздачи инета в локалку на базе Opensuse 10.3 PDF Печать E-mail
09.12.10 14:14

Создание сервера для раздачи инета в локалку на базе Opensuse 10.3

Материальная база:


  1. Имеем две машины на базе OpenSuSe Linux 10.3.
  2. В каждой машине имеем по сетевому интерфейсу (в моём случае он ещё и беспроводной, но это картины не меняет) eth0.

Сетевая конфигурация машин:


  1. Первый компьютер, далее именуемый как "сервер" подключен к провайдеру ДомРу (замените на имя Вашего провайдера) через PPPoE (IP адрес вида 10.x.x.x выдаётся динамически, но каждый раз один и тот же, адреса DNS серверов также получаются при подключении) и в моём случае имеет внутренний IP 192.168.155.2 (в Вашем случае пропишите ему адрес 192.168.0.1, так будет привычнее) .
  2. Второй компьютер, далее именуемый как "клиент" соединён сетью с первым через свитч (с серверной стороны и ДомРу и локалка подключены через один интерфейс) и имеет внутренний IP 192.168.155.1 (Вы же выберите лучше 192.168.0.2)

Требуется:


  1. Обеспечить прозрачный доступ в интернет через NAT для клиентской машины
  2. Обеспечить поддержку внутреннего ДНС сервера в качестве ретранслятора (далее поймёте зачем это)

Некоторые данные, которые нам пригодятся:


  1. IP адрес яндекса 213.180.204.8
  2. IP адрес гугла 64.233.187.99
  3. Утилита "ping", предназначенная для проверки сетевого соединения между узлами
  4. DNS сервер bind для удобной работы с DNS
  5. Прозрачный прокси на squid (факультативно), позволяющий кешировать весь хттп трафик для его экономии и увеличения скорости доступа к ресурсам.
  6. Suse Firewall 2, обертка для Iptables, предназначенная для удобного конфигурирования фаервола.
  7. Немного бутербродов и чая \ кофе, т.к. процесс не очень-то и быстрый

Для начала предположим, что у нас уже есть настроенное и исправно функционирующее PPPoE соединение. Убедиться в этом можно командой: ping ya.ru и есть в ответ будет выдано нечто вида:

nrg@dell:~> ping google.com
PING google.com (72.14.207.99) 56(84) bytes of data.
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=1 ttl=244 time=171 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=2 ttl=244 time=173 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=3 ttl=244 time=184 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=4 ttl=244 time=172 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=5 ttl=244 time=170 ms


То все отлично, можно идти дальше. Далее проверим соединение между машинами наберём на сервере команду ping 192.168.155.1, а на клиенте соответственно ping 192.168.155.2 и в ответ должны посыпаться ответы, указанные выше. Насчёт IP, как я уже сказал выше, используейте 192.168.0.1 вместо 192.168.155.2 и 192.168.0.1 вместо 192.168.155.1.

Сеть работоспособна. Шаг первый, настроим трансляцию пакетов с Локальной сети в Интернет.


  1. Открываем Yast2 -> "Пользователи и безопасность" -> "Брандмауэр".
  2. Переходим на вкладку "Интерфейсы", выбираем там наше ДСЛ соединение (так зовётся PPPoE), щёлкаем кнопку изменить и выбираем "Внешняя зона", а для сетевой карты, подключённой к Локальной Сети (далее "ЛВС"), выбираем соответственно "Внутренняя зона"
  3. Переходим на вкладку "Трансляция сетевых адресов", в верху ставим галочку "Трансляция сетевых адресов".
  4. Далее щёлкаем кнопку "Добавить" и вводим следующее: сеть источника 192.168.155.0/24, протокол TCP, в полях "Требуемый порт" и "Перенаправление в порт" прописываем нули, требуемый IP вводим "0.0.0.0/0", т.е. любой. А в поле "Перенаправить в транслированный IP" наш IP, который выдаётся для dsl соединения (ifconfig dsl0 и смотрите поле inet addr:). В моём случае это адрес вида 10.65.0.x.
  5. Применяем настройки Брандмауэра.
  6. Переходим к клиентской машине.

На клиентской машине в Yast2->"Сетевые устройства" -> Сетевая плата вбиваем IP сервера (192.168.155.2) как шлюз по умолчанию на вкладке Маршрутизация.
Далее опять же на клиентской машине вбиваем ping 64.233.187.99 и смотрим %) Если полетели пакетики, то ура, ибо роутинг уже работает!

Далее нам нужно сделать, чтобы вместо ping ip можно было сделать ping ya.ru.
Установка локального DNS сервера


  1. Ставим через Yast2 пакет bind и пакета для конфигурирования Бинда через yast2 (вбейте в поиске bind он будет показан)
  2. Открываем Yast2 -> "Сетевые службы" -> "Сервер DNS"
  3. Ставим галочку "PPP Демон устанавливает направление запроса", это означает, что если наш локальный ДНС сервер не обнаружит в своей базе IP адреса требуемого домена, то он попросит его у ДНС провайдера, а в случае указанной конфигурации он автоматически определит ДНС провайдера и будет использовать его. Щелкаем далее.
  4. ничего не трогаем на странице "Установка DNS сервера: DNS зоны" и щелкаем далее.
  5. В поле "Запуск службы" ставим галочку "При загрузке системы" и жмем завершить, тем самым применяя настройки.

Возвращаемся к клиентской машине.И снова Yast2 -> "Сетевые настройки" -> "Сетевая карта" -> Имя узла DNS и там ставим галочку "Изменить /etc/resolv.conf вручную", после этого в поле Сервер имён №1 вбиваем IP нашего сервера - 192.168.155.2 и применяем.

Теперь делаем ping ya.ru и радуемся увиденному %) Всё, мои поздравления, сервер настроен, можете открывать браузер на клиентской машине и юзать Инет %)

Добавление прозрачного прокси на базе squid (опционально).

Теперь можно улучшить скорость доступа к ресурсам и уменьшить потребляемый трафик посредством кэширующего прокси на базе squid.
Установите прокси сервер squid и запустите его командой service squid start (или поместите в автозагрузку на 3й либо 5й уровень запуска).
После этого нам требуется немного модифицировать его конфигурацию, открываем любым текстовым редактором файл /etc/squid/squid.conf
Потом отыскиваем там строку "http_port 3128" и меняем её на "http_port 3128 transparent", тем самым мы указали, что прокси теперь может использоваться как прозрачный.

Далее нам нужно указать, что подсеть 192.168.155.0/24 (а в Вашем случае 192.168.0.0/24) является доверенной, чтобы клиенты из данной подсети смогли использовать прокси. Находим текст:

http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all


И изменяем на следующее следующее:

acl our_networks src 192.168.155.0/24
http_access allow our_networks
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all


Тем самым мы как раз и добавили нашу подсеть в список допустимых и перезапускаем squid командой service squid restart дабы применить произведённые настройки.

И, наконец, укажем SuSe Firewall`у, что для портов 80 и 8080 нужно использовать прокси. Для этого открываем /etc/sysconfig/SuSEfirewall2
Там ищем строку вида FW_REDIRECT="" и заменяем её на

FW_REDIRECT="192.168.155.0/24,0/0,tcp,80,3128"


Далее перезапускаем Suse Firewall2 через Yast2 и наблюдаем через команду tail -f /var/log/squid/access.log ,что теперь все запросы на указанные порты перекидываются на прокси :)

Последнее обновление 09.12.10 14:30
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика