|
Контроль входящих и транзитных IP-соединенийКогда пользователь с компьютера в локальной сети обращается к сайту в Интернет, к серверу в другой локальной подсети или к компьютеру с Lan2net NAT Firewall, сетевой пакет, отправленный приложением пользователя, принимается драйвером сетевого адаптером и передается в драйвер TCP/IP. Драйвер Lan2net NAT Firewall перехватывает пакет и анализирует используемый протокол, IP-адреса и номера портов источника и назначения. Данный список параметров уникально индентифицирует каждое IP-соединение. Если значения параметров соединения описывают новое, еще незарегистрированное в списке текущих, IP-соединение, драйвер сканирует список сервисов, затем список пользователей и список правил для группы, в которую входит пользователь. В случае если соединение не попадает ни под одно из описаний сервиса или пользователя, соединение регистрируется в списке текущих соединений от имени виртуального пользователя "System 0" как запрещенное, и все пакеты для данного соединения будут отбрасываться. Если соединение удовлетворяет параметрам пользователя, но для него не найдено ни одного правила, соединение регистрируется от имени этого пользователя, но также - как запрещенное. Если же сервис или правило, удовлетворяющее параметрам IP-соединения, найдено; соединение регистрируется, и к нему применяется действие, заданное в описании сервиса или правила. Возможны три типа действий: "Разрешить", "Запретить" или "Модифицировать". Таким образом, если к соединению применено действие "Разрешить" или "Модифицировать", пакеты соединения попадают в драйвер TCP/IP. Драйвер TCP/IP анализирует IP-адрес пакета назначения и определяет, куда отправить данный пакет. Если IP-адрес назначения совпадает с одним из IP-адресов, присвоеных сетевым адаптерам данного компьютера, драйвер TCP/IP определяет, есть ли локальное приложение, готовое принимать информацию для этого соединения. Затем драйвер TCP/IP производит сборку датаграммы из принимаемых пакетов и передает данные приложению через библиотеку сокетов. Ответные данные приложения будут вначале разбиты драйвером TCP/IP на пакеты и переданы драйверу сетевого адаптера. В этот момент они будут также перехвачены драйвером Lan2net NAT Firewall. Так как, для формирования ответа, подавляющее большинство приложений использует тот же протокол, IP адреса и номера портов источника и назначения, то ответные пакеты "попадут" в то же IP-соединение, что было зарегистрировано в драйвере Lan2net NAT Firewall при получении запроса. Если к соединению применено действие "Разрешить", то пакеты будут беспрепятственно переданы в драйвер сетевого адаптера, а затем назад отправителю запроса. В случае, если к соединению применено действие "Модифицировать", перед отправкой в пакетах произойдет обратная модификация параметров. Если же IP-адрес назначения запроса не является локальным адресом компьютера, драйвер TCP/IP просматривает таблицу маршрутизации и определяет сетевой адаптер, на который необходимо перенаправить принятые пакеты, чтобы доставить их по назначению. В момент передачи пакетов в драйвер сетевого адаптера, они перехватываются драйвером Lan2net NAT Firewall. Так как IP-адрес источника не является одним из локальных адресов, пакеты считаются транзитными. Для них регистрируется новое IP-соединение. Если IP-адрес источника не попадает в диапазон IP-адресов для NAT, то все пакеты соединения беспрепятственно передаются в драйвер сетевого адаптера, а затем и компьютеру, определенному IP-адресом назначения. В противном случае, ко всем пакетам применяется модификация IP-адреса источника и номера порта источника - NAT. Эти пакеты также передаются драйверу сетевого адаптера и далее по сети до своего назначения. Так как все IP-соединения в драйвере Lan2net NAT Firewall регистрируются от имени какого-нибудь пользователя или сервиса, транизитные соединения принадлежат виртуальным системным пользователям. Просто транизитные соединения регистрируются от имени пользователя "System 1". Соединения, к которым применяется NAT, регистрируются от имени пользователей "System 2", "System 3" и т.д. При получении ответа, пакеты проходят обратный маршрут, "попадая" в уже зарегистрированное текущее соединение. Над ними выполняются те же действия в обратном порядке. В конечном итоге ответные пакеты достигают компьютера пользователя сделавшего запрос. |