Краткое описание организации доступа в Internet на базе выделенного сервера...


Vladislav V. Gorodynko

Есть смонтированная сеть FastEhernet-100Mb собранная исключительно на оборудовании Intel:

Кроме того:
Принимаем, что внутренняя сеть будет 192.168.100.xxx / 255.255.255.0.

СЕРВЕР

Для коммуникаций используется выделенный сервер с установленным программным обеспечением IBM WarpServer 4.0 Advanced for SMP. Установлены следующие сетевые протоколы : NETBIOS. TCP/IP. IPX, VINES.

Собственно установку MPTN и TCP/IP мы рассматривать не будем, отметим лишь, что в нашем примере конфигурация TCP/IP следующая :

TCP/IP config
LAN0
192.168.100.1/255.255.255.0
этот адрес выбираем просто чтобы потом не путаться
loopback Interface
127.0.0.1
многие программы требуют включения инверсного интерфейса
Default route
194.87.200.49
следующий хоп
IP Forwarding
включен
так как это шлюзовая машина
Hostname
cs
это сокращение от "connection server"
Local domain name
yukos.bryansk.ru
имя нашего домена
Nameserver addresses
192.168.100.1
DNS сервер будет на этой-же машине

Далее достаточно запустить PPP.EXE (я его обычно выношу приямо в файл STARTUP.CMD):

START "PPP Server" /B /WIN /MIN /N PPP.EXE com2 38400 rtscts modem defaultroute mru 4096 194.87.200.1:194.87.200.49 netmask 255.255.255.255 passive

Почему именно так?
START
запустить в другом сеансе
"PPP Server"
заголовок окна
/B
в неактивном сеансе
/WIN
в оконной сессии (только для не PM задач)
/MIN
свернув (минимизировав) окно задачи
/N
после завершения закрыть окно
PPP.EXE
это программа позволяющая устанавливать соединение по протоколу PPP
com2
логическое имя порта к которому подключен наш модем
38400
скорость лочки порта (рекомендуется устанавливать ее не менее удвоенной максимальной скорости передачи данных вашего модема)
rtscts
аппаратный контроль потока данных
modem
-
defaultroute
установить роутинг пакетов по умолчанию
mru
размер пакета для передачи
194.87.200.1
адрес IP на нашей стороне (на интерфейсе ppp0)
194.87.200.48
адрес IP на другой стороне (у провайдера)
netmask
описание маски подсети
255.255.255.255
см. выше (для PPP можно и .255)
passive
-

В принципе этого достаточно, чтобы работать с Internet с этой машины.

Для того-же, чтобы предоставлять другим машинам этой сети доступ в Internet потребуется установка дополнительного программного обеспечения.

Отступление : существует огромное количество программных продуктов для Сети - многие (если не большинство) были изначально написаны (и пишутся) для UNIX систем. Однако есть возможность путем незначительной модификации исходного кода перенести эти программные продукты под другие операционные системы, в том числе и под OS/2.

Большая часть программ из UNIX, перенесенных под OS/2, требуют для своей работы EMX Runtime Library.

EMX RUNTIME


Найти эту библиотеку можно на многих ftp архивах. Установка заключается в переписывании *.DLL с одну из директорий из LIBPATH и *.EXE в одну из директорий из PATH указанных в CONFIG.SYS. Так-же можно сразу в CONFIG.SYS добавить следующую строку :

SET EMXOPT=-c -h500

Опция -h500 указывает на максимально возможное количество открытых файлов - для SQUID эта значение должно быть не менее 200.

DNS СЕРВЕР


Чтобы постоянно за резрешением ссылок не лазить к провайдеру ставим локальный сервер DNS.

DDNS (IBM)

В Warp Server штатно идет DynamicDNS (named) сервер. Его конфигурационные файлы располагаются в директории \mptn\etc\named.

named.bt
domain yukos.bryansk.ru
cache . c:\\mptn\\etc\\namedb\\named.ca
primary yukos.bryansk.ru c:\\mptn\\etc\\namedb\\named.dom
primary 200.87.194.in-addr.arpa c:\\mptn\\etc\\namedb\\named.rev
forwarders 194.87.200.48

Строка forwarders указывает на адрес сервера DNS, которому будут переадресовываться запросы, не разрешенные нашим сервером.

named.ca
. 99999999 IN NS ns.yukos.bryansk.ru
in-addr.arpa. 99999999 IN NS ns.yukos.bryansk.ru
ns.yukos.bryansk.ru 99999999 IN A 194.87.200.1

named.dom
;
; Файл пpямой достижимости.
;
;
@ IN SOA ns.yukos.bryansk.ru. gvv.yukos.bryansk.ru.

; Адрес лица ответственного за сервер
; символ '@' в адpесе заменяется на '.'
(
97061603 ; Serial number for this data (yymmdd##)
86400 ; Refresh value for secondary name servers
3600 ; Retry value for secondary name servers
86400 ; Expire value for secondary name servers
3600 ; Minimum TTL value
)

IN NS ns.yukos.bryansk.ru.
IN NS ns.bryansk.ru.
MX 10 mx.yukos.bryansk.ru.

;********************************
;* Domain Address Information *
;********************************

localhost IN A 127.0.0.1
loopback IN A 127.0.0.1
ns IN A 194.87.200.1
mx IN A 194.87.200.1
cs IN A 194.87.200.1
news IN A 194.87.200.1
www IN A 194.87.200.1
ftp IN A 194.87.200.1
proxy IN A 192.168.100.1

named.rev
;
;
; _Обpатное_ описание хостов
;
;
@ IN SOA ns.yukos.bryansk.ru. gvv.yukos.bryansk.ru.

; Адрес лица ответственного за сервер
; символ '@' в адpесе заменяется на '.'
(
97061603 ; Serial number for this data (yymmdd##)
86400 ; Refresh value for secondary name servers
3600 ; Retry value for secondary name servers
86400 ; Expire value for secondary name servers
3600 ; Minimum TTL value
)

IN NS ns.yukos.bryansk.ru.
IN NS ns.bryansk.ru.
MX 10 mx.yukos.bryansk.ru.

1.0.0.127.in-addr.arpa. IN PTR localhost.
1 IN PTR ns

Также можно использовать и другие DNS сервера.

BIND 8.1.2 for OS/2 DNS сервер.

Является портом под OS/2 широко распространенного сервера BIND.
Установка данного программного продукта достаточно проста.
Отметим лишь, что для его функционирования необходима библиотека EMX.

Конфигурационные файлы BIND также располагаются в директории \mptn\etc\named.
В нашем случае конфигурация будет следующая :

named.conf
// This is an example configuration file for the OS/2 port of
// named (from BIND 8.1 or later).
// It would normally be installed as x:\tcpip\etc\named.conf.

options {
directory "c:\mptn\etc\namedb"; /* may use drive letters and backslashes */
check-names master warn; /* default. */
forwarders {
194.87.200.50;
194.87.200.48;
};
datasize 1M;
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
query-source address * port 53;
};

zone "localhost" IN {
type master;
file "localhost.zone";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "localhost.rev";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};

zone "yukos.bryansk.ru" IN {
type master;
file "my.zone";
check-names fail;
allow-update { none; };
allow-transfer { any; };
};

zone "." IN {
type hint;
file "root.hint";
};


root.hint
; <<>> DiG 2.2 <<>> @192.5.5.241
; (1 server found)
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER <<- opcode: QUERY, status: NOERROR, id: 10
;; flags: qr aa rd; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 9
;; QUERY SECTION:
;; ., type = NS, class = IN

;; ANSWER SECTION:
. 6D IN NS C.ROOT-SERVERS.NET.
. 6D IN NS D.ROOT-SERVERS.NET.
. 6D IN NS E.ROOT-SERVERS.NET.
. 6D IN NS I.ROOT-SERVERS.NET.
. 6D IN NS F.ROOT-SERVERS.NET.
. 6D IN NS G.ROOT-SERVERS.NET.
. 6D IN NS A.ROOT-SERVERS.NET.
. 6D IN NS H.ROOT-SERVERS.NET.
. 6D IN NS B.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12
D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90
E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10
I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17
F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241
G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4
A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4
H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53
B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107

;; Total query time: 8 msec
;; FROM: wisdom.home.vix.com to SERVER: 192.5.5.241
;; WHEN: Fri Nov 22 00:08:05 1996
;; MSG SIZE sent: 17 rcvd: 312


localhost.rev
$ORIGIN 0.0.127.in-addr.arpa.

@ 1D IN SOA localhost. root.localhost. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

1D IN NS localhost.
1 1D IN PTR localhost.


localhost.zone
$ORIGIN localhost.
@ 1D IN SOA @ root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum

1D IN NS @
1D IN A 127.0.0.1


my.zone
; $ORIGIN yukos.bryansk.ru
;
@ IN SOA ns.yukos.bryansk.ru. root.yukos.bryansk.ru. (
100008 ; serial
10M ; refresh
5M ; retry
1w3d ; expiry
1D ) ; minimum

@ IN NS ns.yukos.bryansk.ru.
@ IN NS ns.bryansk.ru.
@ IN NS ns1.bryansk.ru.

@ IN MX 0 mx.yukos.bryansk.ru.
@ IN MX 5 mx.bryansk.ru.
@ IN MX 10 mx1.bryansk.ru.
@ IN MX 20 relay1.kiae.su.
@ IN MX 30 relay2.kiae.su.

cs IN A 194.87.200.1
ns IN A 194.87.200.1
mx IN A 194.87.200.1
proxy IN A 192.168.100.1
news IN CNAME cs.yukos.bryansk.ru.
www IN CNAME cs.yukos.bryansk.ru.
ftp IN CNAME cs.yukos.bryansk.ru.


Запуск DNS сервера можно так-же вынести в STARTUP.CMD:

START "DNS Server" /B /WIN /MIN /N NAMED.EXE

DHCP СЕРВЕР


DHCP (Dynamic Host Configuration Protocol) сервер может понадобиться вам для автоматического конфигурирования IP интерфейсов на большем количестве подключенных клиентов. Например у вас 30 рабочих станций и вы хотите каждой назначить уникальный IP адрес, с которого-бы потом эта станция осуществляла доступ в Internet. Этo легко можно сделать, указав в конфигурации TCP/IP стека станции, что для назначения IP адреса используется протокол DHCP.

В упрощенном варианте это работает следующим образом:
- DHCP клиент станции посылает широковещательный запрос на выдачу адреса.
- DHCP сервер на основе извесной ему информации о нераспределенных адресах выдает этой станции конфигурацию ее IP стека.
- DHCP клиент принимает конфигурацию, в соответствии с ней конфигурирует IP интерфейс станции и .... все ....

DHCP сервер идет в штатной поставке с WarpServer и располагается в директории \tcpip\bin (файл DHCPSD.EXE).
Конфигурируется этот сервис с помощью утилиты DHCPCFG.EXE, которая формирует файл \mptn\etc\dhcpsd.cfg.

Ниже приведен пример динамической раздачи пользователям сети 192.168.100.0 адресов из диапазона 192.168.100.50-192.168.100.150.


\mptn\etc\dhcpsd.cfg
numLogFiles 2
*
logFileSize 50
*
logFileName dhcpsd.log
*
leaseTimeDefault 3 days
*
leaseExpireInterval 2 hours
*
supportBOOTP yes
поддержка
загрузки по
протоколу
BOOTP*
supportUnlistedClients yes
поддержка и
неописанных клиентов
logItem SYSERR
*
logItem OBJERR
*
#.indent 12
*
network 192.168.100.0 192.168.100.50-192.168.100.150 #.name (blank)
адреса
option 1 255.255.255.0 #.name 1 Subnet Mask
маска подсети
option 51 -1 #.name 51 Lease Time
*

Запуск DHCP сервера также вынесем в STARTUP.CMD:

START "DHCP Server" /B /WIN /MIN /N DHCPSD.EXE


HTTP и FTP ПРОКСИ СЕРВЕР



Squid 1.1.15 ported to OS/2 release b

Squid - объектный прокси/кеш позволяет проксировать http/ftp протоколы. В нашем случае он обеспечит работу рабочих станций с www/ftp сайтами используя для выхода в интернет только одну машину (сервер).

Устанавливается он в директорию \tcpip\squid\. Все *.EXE файлы были перенесены в директорию \tcpip\squid\bin. Туда-же был скопирован squid.conf. Опций настройки и оптимизации очень много и экспериментировать с ними можно добесконечности. Поэтому в качестве примера просто приведем откоментированные опции:

squid.conf
cache_host cache.dol.ru parent 3128 3130
доменное имя следующего в иерархии сервера squid
local_domain yukos.bryansk.ru
имя локального домена
local_ip 192.168.100.0
локальный IP адрес
hierarchy_stoplist cgi-bin ?
-
cache_stoplist cgi-bin ?
-
cache_swap 200
максимальны размер кеша
client_netmask 255.255.255.0
маска подсети из которой могут обслуживаться запросы
ftpget_program /tcpip/squid/bin/ftpget.exe
имя и полный путь до программы выполняющей ftp запросы
cache_dns_program /tcpip/squid/bin/dnsserver.exe
имя и полный путь до программы вполняющей множественные запросы к DNS серверам
unlinkd_program /tcpip/squid/bin/unlinkd.exe
-
pinger_program /tcpip/squid/bin/pinger.exe
-
wais_relay localhost 8000
-
acl manager proto cache_object
-
acl localhost src 127.0.0.1/255.255.255.255
адрес и маска локального IP интерфейса
acl all src 0.0.0.0/0.0.0.0
ACL - Access Control List описание всех IP адресов
acl SSL_ports port 443 563
защищенные порты
acl Dangerous_ports port 7 9 19
опасные порты
acl CONNECT method CONNECT
-
http_access deny manager !localhost
-
http_access deny CONNECT !SSL_ports
-
http_access deny Dangerous_ports
по http протоколу запретить соединения на порты описанные как Dangerous_ports
http_access allow all
по http разрешить всем
icp_access allow all
-
miss_access allow all
-
dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu
при запуске тестировать наличие следующих доменов
append_domain .yukos.bryansk.ru
добавлять домен .yukos.bryansk.ru
minimum_direct_hops 4
-

Для того, чтобы squid создал необходимое ему окружение (директории и служебные файлы) его нужно один раз запустить :

squid -z -f /tcpip/squid/bin/squid.conf

В дальнейшем его запуск так-же можно вынести в STARTUP.CMD:

START "SQUID Object Cache" /B /WIN /MIN /N squid -D -V -s -f /tcpip/squid/bin/squid.conf

SOCK СЕРВЕР


Socks сервер имеет очень широкий спектр применения. Например в качестве сервера ограничения доступа, прокси сервера и т.д. На его базе можно строить закрытые защищенные корпоративные сети. В нашем-же случае он используется исключительно как прокси сервер для клиентов IRC (Internet Relay Chat).

Существует несколько реализаций Socks сервера для OS/2. Из наиболее развитых - SocksD от