Материальная база:- Имеем две машины на базе OpenSuSe Linux 10.3.
- В каждой машине имеем по сетевому интерфейсу (в моём случае он ещё и беспроводной, но это картины не меняет) eth0.
Сетевая конфигурация машин:- Первый
компьютер, далее именуемый как "сервер" подключен к провайдеру ДомРу
(замените на имя Вашего провайдера) через PPPoE (IP адрес вида 10.x.x.x
выдаётся динамически, но каждый раз один и тот же, адреса DNS серверов
также получаются при подключении) и в моём случае имеет внутренний IP
192.168.155.2 (в Вашем случае пропишите ему адрес 192.168.0.1, так
будет привычнее) .
- Второй компьютер, далее именуемый как
"клиент" соединён сетью с первым через свитч (с серверной стороны и
ДомРу и локалка подключены через один интерфейс) и имеет внутренний IP
192.168.155.1 (Вы же выберите лучше 192.168.0.2)
Требуется: - Обеспечить прозрачный доступ в интернет через NAT для клиентской машины
- Обеспечить поддержку внутреннего ДНС сервера в качестве ретранслятора (далее поймёте зачем это)
Некоторые данные, которые нам пригодятся:- IP адрес яндекса 213.180.204.8
- IP адрес гугла 64.233.187.99
- Утилита "ping", предназначенная для проверки сетевого соединения между узлами
- DNS сервер bind для удобной работы с DNS
- Прозрачный
прокси на squid (факультативно), позволяющий кешировать весь хттп
трафик для его экономии и увеличения скорости доступа к ресурсам.
- Suse Firewall 2, обертка для Iptables, предназначенная для удобного конфигурирования фаервола.
- Немного бутербродов и чая \ кофе, т.к. процесс не очень-то и быстрый
Для
начала предположим, что у нас уже есть настроенное и исправно
функционирующее PPPoE соединение. Убедиться в этом можно командой: ping
ya.ru и есть в ответ будет выдано нечто вида:
QUOTE 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.
Сеть работоспособна. Шаг первый, настроим трансляцию пакетов с Локальной сети в Интернет.- Открываем Yast2 -> "Пользователи и безопасность" -> "Брандмауэр".
- Переходим
на вкладку "Интерфейсы", выбираем там наше ДСЛ соединение (так зовётся
PPPoE), щёлкаем кнопку изменить и выбираем "Внешняя зона", а для сетевой
карты, подключённой к Локальной Сети (далее "ЛВС"), выбираем
соответственно "Внутренняя зона"
- Переходим на вкладку "Трансляция сетевых адресов", в верху ставим галочку "Трансляция сетевых адресов".
- Далее
щёлкаем кнопку "Добавить" и вводим следующее: сеть источника
192.168.155.0/24, протокол TCP, в полях "Требуемый порт" и
"Перенаправление в порт" прописываем нули, требуемый IP вводим
"0.0.0.0/0", т.е. любой. А в поле "Перенаправить в транслированный IP"
наш IP, который выдаётся для dsl соединения (ifconfig dsl0 и смотрите
поле inet addr:). В моём случае это адрес вида 10.65.0.x.
- Применяем настройки Брандмауэра.
- Переходим к клиентской машине.
На
клиентской машине в Yast2->"Сетевые устройства" -> Сетевая плата
вбиваем IP сервера (192.168.155.2) как шлюз по умолчанию на вкладке
Маршрутизация. Далее опять же на клиентской машине вбиваем ping
64.233.187.99 и смотрим %) Если полетели пакетики, то ура, ибо роутинг
уже работает!
Далее нам нужно сделать, чтобы вместо ping ip можно было сделать ping ya.ru. Установка локального DNS сервера- Ставим через Yast2 пакет bind и пакета для конфигурирования Бинда через yast2 (вбейте в поиске bind он будет показан)
- Открываем Yast2 -> "Сетевые службы" -> "Сервер DNS"
- Ставим
галочку "PPP Демон устанавливает направление запроса", это означает,
что если наш локальный ДНС сервер не обнаружит в своей базе IP адреса
требуемого домена, то он попросит его у ДНС провайдера, а в случае
указанной конфигурации он автоматически определит ДНС провайдера и будет
использовать его. Щелкаем далее.
- ничего не трогаем на странице "Установка DNS сервера: DNS зоны" и щелкаем далее.
- В поле "Запуск службы" ставим галочку "При загрузке системы" и жмем завершить, тем самым применяя настройки.
Возвращаемся
к клиентской машине.И снова 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) является доверенной, чтобы клиенты из
данной подсети смогли использовать прокси. Находим текст: QUOTE http_access allow localhost # And finally deny all other access to this proxy http_access deny all И изменяем на следующее следующее:
QUOTE 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="" и заменяем её на QUOTE FW_REDIRECT="192.168.155.0/24,0/0,tcp,80,3128" Далее
перезапускаем Suse Firewall2 через Yast2 и наблюдаем через команду tail
-f /var/log/squid/access.log ,что теперь все запросы на указанные порты
перекидываются на прокси
|