В этом разделе описана настройка сервера, предназначенного для доступа в глобальную сеть Интернет.
Предлагаемый вариант позволяет:
- организовать доступ пользователей локальной сети к глобальной сети Интернет
- ограничить доступ пользователей к определенным ресурсам Интернет
- использовать кэширование часто открываемых ресурсов с помощью прокси-сервера для уменьшения трафика
- установить в локальной сети сервер имен доменов (DNS)
Для начала опишем, как настроить в сети сервер DNS. Думаю, всем понятно, зачем это надо
.
Для реализации этого необходим пакет
Named (BIND), входящий в любой стандартный дистрибутив Linux.
Обычно его файл настройки
named.conf хранится в папке
/etc. Ниже приведен пример файла
named.conf с комментариями:
Пример файла
localhost.zone (в большинстве случаев, вам ничего в нем изменять не придется):
Пример файла
named.local (в большинстве случаев, вам ничего в нем изменять не придется):
Пример файла
office.local:
Пример файла
office.rev:
Примечание: имена файлов могут быть произвольными.
Итак, DNS-сервер настроен. Далее необходимо запустить его командой:
# /etc/rc.d/init.d/named start
и прописать в настройках сетевых соединений на компьютерах локальной сети адрес сервера имен (DNS Server):
192.168.0.254.
Далее займемся IP-маршрутизацией.
Мы не будем здесь останавливаться на описании того, что такое NAT и маскарадинг (Masquerading), а просто обратим внимание на конкретные настройки. Отметим, что при настройке таблиц ip-маршрутизации используется утилита
iptables, применяемая в ядрах Linux, начиная с версии
2.4.
Примеры настроек с использованием
ipchains (ядра версии меньше, чем 2.4) имеются в Интернете в большом количестве.
Итак, скрипт для настройки маскарадинга:
После запуска этого скрипта, машины в локальной сети (в настройках сетевых соединений которых необходимо указать шлюз (gateway)
192.168.0.254), должны иметь доступ в сеть Интернет.
Теперь рассмотрим настройку прокси-сервера.
Наилучшим прокси-сервером (proxy-server) для UNIX-систем на сегодняшний день является пакет
Squid. Он обладает огромными возможностями по манипуляции http-трафиком (и не только). Мы здесь опишем только минимальную его конфигурацию, необходимую для кэширования трафика, а также для ограничения доступа к различным ресурсам.
Файл конфигурации
squid.conf обычно находится в папке
/etc/squid. Ниже приведен пример минимального конфигурационного файла Squid с комментариями:
Пример содержания файла блокировки определенных доменов:
Пример содержания файла блокировки определенных расширений файлов:
Итак, прокси-сервер настроен, можно запускать его командой:
# /etc/rc.d/init.d/squid start
Осталось только либо прописать в настройках браузеров пользователей работу через прокси-сервер 192.168.0.254 (порт 3128), либо настроить так называемый "
прозрачный прокси", то есть не заметный для конечного пользователя.
Для этого необходимо перенаправить весть http-трафик в локальной сети с порта 80 на порт 3128. С помощью
iptables это делается так:
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128