NAT — это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов.
Преобразование адресов методом NAT может производиться почти любым маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым экраном.
Принимая пакет от локального компьютера, роутер смотрит на IP-адрес назначения. Если это локальный адрес, то пакет пересылается другому локальному компьютеру. Если нет, то пакет надо переслать наружу в интернет. Но ведь обратным адресом в пакете указан локальный адрес компьютера, который из интернета будет недоступен. Поэтому роутер “на лету” производит трансляцию IP-адреса и порта и запоминает эту трансляцию у себя во временной таблице. Через некоторое время после того, как клиент и сервер закончат обмениваться пакетами, роутер сотрет у себя в таблице запись о n-ом порте за сроком давности.
Прокси-сервер — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс, расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак и помогает сохранять анонимность клиента.
Чаще всего прокси-серверы применяются для следующих целей:
- Обеспечение доступа с компьютеров локальной сети в Интернет.
- Кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом запрошенной информации.
- Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер).
- Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы.
- Анонимизация доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе.
Как раздать интернет через NAT
Допустим, вам необходимо, чтобы машины из локальной сети имели доступ к интернету. В этом случае сервер должен выполнять функции роутера (маршрутизатора). В нем должно быть как минимум две сетевых карты (два сетевых интерфейса):
- один подключен к интернет-провайдеру (например, eth0);
- второй включен во внутреннюю сеть (например, eth1).
Для раздачи интернета во внутреннюю сеть можно использовать:
- NAT или, как он еще называется, IP маскарадинг
- Прокси-сервер (например, squid).
NAT в отличие от Proxy, позволяет хорошо работать не только http, но и ftp, pop3, smtp, ssh, telnet, - то ест практически любому протоколу. При этом не нужно объяснять сервису, что он работает через прокси, прописывая соответствующие настройки в клиентские программы.
Настройка Proxy сервера
Если понадобится поднять Proxy-сервер на PCLinuxOS, делаем так:
1. Через пакетный менеджер Synaptic установите пакет squid.
2. Отконфигурируйте через Midnight Commander файл /etc/squid/squid.conf, изменив, следующие параметры (остальные настройки оставьте по умолчанию):
SquidGuard - фильтрация контента
Фильтрацию рекламы и прочей гадости интернета можно осуществить через Proxy сервер. Для этого делаем следующее:
1. Через пакетный менеджер Synaptic установите пакет squidGuard. С помощью squidGuard можно отфильтровывать и переадресовывать запросы по адресам, именам и регулярным выражениям, определять пользователей по адресам и логинам, которые можно распределять по группам с заданием собственных настроек и указанием временного промежутка (например, разрешить группе посещать только ресурсы из белого списка).