Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Интернет сервер на OS/2

  Интернет сервер на OS/2

Илфат Кутдусов, Russian/2 projectOS/2.ru

Хотелось бы мне рассказать про Интернет сервер, собранный под OS/2.

Может быть, опыт моей работы кому-то поможет собрать полноценный сервер.

Через эту машину больше 100 человек выходят в интернет, забирают почту по POP3; ведется Primary DNS . Конфигурация машины: Процессор: 2*PII-233 Память: 128Mb SCSI: Adaptec 7880 на борту матери Video: Не особо важно. Все равно режим 640x480x16. Вроде S3Trio64V+ стоит. HDD: Seagate Chitah 4.3 Gb Ethernet: 3Com905 (не путать с 3Com905B - это еще то глюкало под ось) MultiPorts: Какая-то беспородная на 8 портов и с одни IRQ

OS/2 Warp Server RUS Advanced без единого фикса. Просто в свое время я сильно устал от экспериментов с фиксами. Главное - чтобы работало. Установленный софт: OS/2 v3.0 Warp Server Advanced RUS v4.0 rev 8.234 Perl: 5.005_53 Fossil: SIO v1.60c 16 ports Шедулер: Rsched v.1.5.beta Internet: EMX: v0.9c DNS: BIND 8.1.1 Proxy: Squid v1.1.15 SMTP: SendMail 1.3.14 (т.е. родной от оси) POP3: OS2Pops v2.02 HTTP: Apache_1.3.3ruspl27.3-php-3.0.5-mysql SQL: Mini SQL Version 2.0.4.1 FTP: FtpServer (Peter Moylan's FTP daemon) v0.60 TFTP: TFTP Server 24/10/95 (родной от оси) SNTP: Time Server, Revision: 1.8 SysLogD: SysLog демон от 03/06/95 (с хоббесов) TelnetD: Родной от оси. Для авторизации используется APLogin v1.00с NNTP: SQ2NN (too raw, ver. 0.1) (правда глубокая альфа, но на чтение работает) Сбор статистики: Proxy: cache-stats-1.4 (Perl) Daily usage statistics for Netscape Proxy & Squid Cache - v1.4 961006 SNMP: Сбор статистики с маршрутизаторов Cisco MRTG v2.5.3 Теперь как все это работает:

CONFIG.SYS: То что отличает от родного конфига REM ********************************************* AUTOFAIL=YES SUPPRESSPOPUPS=C REIPL=ON PROTECTONLY=YES REM TimeSlice=32,256 REM TRAPDUMP=ON,E: REM TRAPDUMP=RO,E: REM DUMPPROCESS=E SET STARTUP=C: REM ********************************************* SET TZ=EKB-5UTC,3,-1,0,7200,10,-1,0,7200,3600 SET HOSTNAME=STATION SET USE_HOSTS_FIRST=1 SET RESTARTOBJECTS=STARTUPFOLDERSONLY SET EMXOPT=-h1536 SET PERL5LIB=C:/Utility/perl5/lib SET SHELLHANDLESINC=5

Остальное согласно документациям программ.

StartUp Folder: OS2Pops;

StartUp.CMD: :: ============= Подключение сетевых дисков и старт сервера :: старт Варп-сервера NET START SERVER @if errorlevel 2 C:IBMLANNETPROGlserr.exe logon userid /p:password /v:d :: Логин в Novel-дерево C:netwarenwtools.exe C:netwareposter.nws autoexit :: ============== Запуск серверов и сервисов :: Это старт SysLogD-демона detach c:UtilitySysLogDsyslogd.exe -d -f C:UtilitySysLogDsyslog.cnf :: ============== старт DNS-сервера d: cd Bindbin detach named -cC:MPTNETCnamed.conf :: ============== Старт Mini SQL сервера (он нужен для WWW-сервера start /c D:PublicmSQL2BINdbstart.cmd :: ============== Telnet-сервер на нестандартном порту 3333 для :: ============== удаленного доступа до сервера SET ATLPAC_PASSWD_FILE=C:TCPIPAPLOGINPASSWD SET ATLPAC_GREETING_FILE=C:TCPIPAPLOGINGREETING.TXT SET ATLPAC_WELCOME_FILE=C:TCPIPAPLOGINWELCOME.TXT SET ATLPAC_BADLOGIN_FILE=C:TCPIPAPLOGINBADLOGIN.TXT SET ATLPAC_LOG_FILE=c:TCPIPAPLOGINMYLOG.TXT start /c "Telnet by port 3333" telnetd -p 3333 :: ============== Синхронизация времени с тайм-сервером в интернете detach daytime.exe -s -u -c 3600 128.173.14.71 :: ============== Запуск TimeServer-а. :: Чтобы другие могли по мои часам синхронизироваться. detach c:utilitydaytimed -S :: ============== Запуск TFTP-сервера cd TFTP_Server detach tftpd :: ============== FTP-server cd FTPServer Detach ftpd D3 F10000 L1 :: ============== NNTP-сервер cd bbs.os2s2n detach sq2nn :: ============== Mail-server Detach sendmail -bd -q30m -CC:MPTNETCsendmail.cf :: ============== Proxy-сервер cd Squid Detach squid.exe :: ============== Запуск шедулера. :: Он создает полы на адреса, создает флаги для сбора статистики :: и многое другое. Возможности его довольно широки. cd bbs.os2rsched start /c "Shuduler" RSched.exe

Настройки фидошного софта приводить здесь не имеет смысла. Мои настройки никому, кроме меня, не интересны.

Так что загрузка достаточно большая. Правда на сегодняшний день работает только одна модемная линия, остальные забрали :( Настройка Internet-софта.

Стек TCPIP

Эта машина имеет адрес 10.2.3.200 (внутренний), во внешнем мире (за файрволом) она видна под адресом 212.220.26.71

Вообщем-то ничего оригинального.

Файл MPTNBINSETUP.CMD выглядит примерно так: route -fh arp -f ifconfig lo 127.0.0.1 ifconfig lan0 10.2.3.200 netmask 255.255.255.0 route add default 10.2.3.4 1 route add net 10 10.2.3.4 1 ipgate off

Т.е. ничего экзотического. Разве что запушен LoopBack интерфейс. Он необходим для многих програм.

DNS

В качестве DNS-сервера у меня работает Bind. Он держит одну сеть Класса А (10.0.0.0) и одну сеть класса C (интернетскую 212.220.26.0). Также является Secondary DNS-ом для еще одной сетки класса А (15.0.0.0). Работает он практически сразу и никаких проблем не создает. Пробежимся по настройкам: =================== Named.conf ================================= options { directory "c:/MPTN/etc/namedb"; pid-file "c:/MPTN/etc/PID/named.pid"; dump-file "c:/MPTN/etc/namedb/named.dump"; statistics-file "c:/MPTN/etc/namedb/named.stats"; forwarders { 195.38.32.2 ; 195.38.33.2 ; 195.58.1.145 ; 193.124.176.158 ; }; check-names master fail; datasize 2M; /* * 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 "." IN { type hint; file "root.hint"; }; zone "ukib." IN { type master; file "sgb.dom"; }; zone "10.in-addr.arpa." IN { type master; file "10.in-addr.arpa"; }; zone "15.in-addr.arpa." IN { type slave; file "15.in-addr.arpa"; masters { 15.3.0.10;}; }; zone "sgb.ru." IN { type master; file "sgb.ru"; }; zone "26.220.212.in-addr.arpa." IN { type master; file "26.220.212.in-addr.arpa"; };

Остальные файлы я здесь приводить не буду, но часть, касающуюся мирового интернета - покажу: ========================= файл sgb.ru ========================== $ORIGIN ru. sgb IN SOA ns.sgb.ru. postmaster.sgb.ru. ( 19990210 ; Serial number for this data (yyyymmdd) 28800 ; Refresh value for secondary name servers 7200 ; Retry value for secondary name servers 604800 ; Expire value for secondary name servers 86400 ; Minimum TTL value ) IN NS ns.sgb.ru. IN NS ns.etel.ru. IN NS ns1.etel.ru. IN A 212.220.26.71 IN MX 20 mail.sgb.ru. IN MX 30 ns.etel.ru. IN MX 40 ns1.etel.ru. $ORIGIN sgb.ru. ;******************************** ;* Domain Address Information * ;******************************** dark IN A 212.220.26.76 work IN CNAME dark ns IN A 212.220.26.71 mail IN CNAME ns www IN CNAME ns ftp IN CNAME ns binkd IN CNAME ns bbs IN CNAME ns irc IN CNAME ns ru2 IN CNAME ns ===================== файл 26.220.212.in-addr.arpa ================= ;******************************** ;* Start of Authority Records * ;******************************** $ORIGIN 26.220.212.in-addr.arpa. @ IN SOA ns.sgb.ru. postmaster.sgb.ru. ( 19990211 ; Serial number for this data (yyyymmdd) 28800 ; Refresh value for secondary name servers 7200 ; Retry value for secondary name servers 604800 ; Expire value for secondary name servers 86400 ; Minimum TTL value ) IN NS ns.sgb.ru. IN NS ns.etel.ru. IN NS ns1.etel.ru. $ORIGIN 26.220.212.in-addr.arpa. 71 IN PTR ns.sgb.ru. 76 IN PTR dark.sgb.ru.

Все до ужаса просто. С такими настройками все начинает сразу работать. Как видно из приведенного конфига - эта же машина является почтовым сервером для домена SGB.RU. Для приема почты с внешенго мира и отправки во внешний мир используется SendMail из комплекта поставки OS/2. Как он запускается - видно из строчки в StartUp.CMD. Здесь я приведу только строчки с конфига SendMail.CF, отличающиеся от конфига по умолчанию: ============================================================= # Эти строчки в самом начале конфига Dwsgb.ru Cwsgb.ru # нижеследующую строчку нужно подправить в конфиге MLocal, P=D:os2popspopsmail.exe, F=lsm, S=10, R=20, A=D:os2pops $u $f Mprog, P=xxx, A=Required by sendmail but unused =============================================================

Все. Напомню, что в качестве POP3-сервера у меня работает OS2Pops, соответственно, и последние строчки в sendmail.cf настроены для него.

POP3-сервер никаких настроек не требует и начинает работать сразу после инсталяции. Только стоит добавить в настройках администратора для удаленного администрирования. Для администрирования я использую его родную програмку для удаленного администрирования, которая тоже не требует настроек. Разве что просить ввести пароль администратора и сервер администрирования.

Прокси-сервер.

Почему-то у многих возникают проблемы при его запуске. Единственная особенность. Должен быть поднят LoopBack интерфейс. У нас в банке установлено два таких прокси-сервера. Они работают в паре. Так же используется прокси-сервер провайдера. Приведу отличия от стандартных конфигов со своими комментариями: ======================= файл Squid.Conf =================== # Это прокси-сервер провайдера. Если нет странички ни в своем кеше, # ни на втором прокси-сервере, то эта страничка запрашивается у №; # провадерского прокси-сервера. Замечу, что у провайдера тоже # установлен Squid, но под юниксом. cache_host 195.38.32.3 parent 3128 3130 # Это дружественный прокси-сервер на другой территории cache_host 15.3.0.10 sibling 3128 3130 # Это локальный домен. Кешировать его тоже не надо. local_domain ukib # Это локальные IP-адреса. # Сервера с этими адресами кешировать не надо. local_ip 10.0.0.0 # Указывает количество демонов для DNS-резолвинга, # стартуемых по умолчанию dns_children 3 # Время, в течение которого открытые сокеты будут # держаться за клиентом после обращения. Это значение нужно # регулировать в зависимости от количества клиентов. # У меня установлено 20 минут. client_lifetime 20 acl localhost src 127.0.0.1/255.255.255.255 # Этот параметр определяет ACL-запись для администраторов. # комментарии - ниже. acl gate src 10.2.3.201/255.255.255.255 acl gate src 10.2.3.220/255.255.255.255 http_access allow manager gate # Эту строчку нужно сразу же закомментировать, чтобы # все кому не лень не пользовались вашим прокси-сервером # acl all src 0.0.0.0/0.0.0.0 # Определяет адреса, которые могут пользоваться вашим # прокси-сервером acl all src 10.1.0.9/255.255.255.255 acl all src 10.1.0.10/255.255.255.255 acl all src 10.1.0.11/255.255.255.255 # Определяет сервера, с которых ничего не качается # (нафиг нам наматывать трафик абсолютно ненужными банерами ;-) ) acl badsite url_regex ^http://www.banners.ru acl badsite url_regex ^http://www.reklama.ru acl badsite url_regex ^http://www.exchange.centre.ru acl badsite url_regex ^http://www1.reklama.ru http_access deny badsite # Разрешает всем адресам группы "all" # пользоваться вашим сервером http_access allow all icp_access allow all # Определяет права администраторов для удаленного администрирования # и пароль "_security_" для того, чтобы выключить прокси. cachemgr_passwd _security_ shutdown cachemgr_passwd none all # Определяет уровень вложенности каталогов для кеша. # Будет создано 8 каталогов, в каждом из которых еще 8 каталогов. swap_level1_dirs 8 swap_level2_dirs 8 ================================================================

Все. Первый запуск Squid-а нужно выполнить с параметром "-z" чтобы он создал все дерево каталогов для кеша. Если скинуть файл CacheMgr.EXE в "cgi-bin" каталог WWW-сервера, то по запросу к этой CGI-шке можно будет смотреть через браузер настройки и статистику прокси-сервера. Больше никаких особенностей нет.

HTTP-сервер.

В роли HTTP-сервера работает Apache. В особенности его настройки я не особо вдавался. Но то, что я использую, - расскажу. Apache обслуживает 2 виртуальных сервера с именами: www.sgb.ru и ru2.sgb.ru и внутренними адресами: www.ukib и ru2.ukib соответственно. В файле httpd.conf имеются следующие настройки на этот счет: ===================== файл httpd.conf =================== NameVirtualHost 10.2.3.200 <VirtualHost 10.2.3.200> ServerName www.ukib DocumentRoot /WWW_Server/WWW ErrorLog log/ww.error_log TransferLog log/www.access_log AccessConfig etc/www.access.conf ResourceConfig etc/www.srm.conf #Include conf/charset.conf </VirtualHost> <VirtualHost 10.2.3.200> ServerName ru2.ukib DocumentRoot /WWW_Server/merlin.itep.ru/~ru2main ErrorLog log/ru2.error_log TransferLog log/ru2.access_log AccessConfig etc/ru2.access.conf ResourceConfig etc/ru2.srm.conf #Include conf/charset.conf </VirtualHost> <VirtualHost 10.2.3.200> ServerName ru2.sgb.ru DocumentRoot /WWW_Server/merlin.itep.ru/~ru2main ErrorLog log/ru2.error_log TransferLog log/ru2.access_log AccessConfig etc/ru2.access.conf ResourceConfig etc/ru2.srm.conf #Include conf/charset.conf </VirtualHost> <VirtualHost 10.2.3.200> ServerName www.sgb.ru DocumentRoot /WWW_Server/WWW ErrorLog log/www.error_log TransferLog log/www.access_log AccessConfig etc/www.access.conf ResourceConfig etc/www.srm.conf #Include conf/charset.conf </VirtualHost> ================================================================== В итоге если пользователь с внешнего мира набирает http://www.sgb.ru - то он попадает на один сервер. Если http://ru2.sgb.ru, то влетает на другой сервер. Для реализации этой возможности нужно, чтобы в DNS были строчки примерно такого вида: ns IN A 212.220.26.71 www IN CNAME ns ru2 IN CNAME ns

Вот собственно и все по поводу настроек Apache. Замечу, что для него тоже нужно, чтобы интерфес LoopBack был поднят.

Mini SQL.

SQL сервер для WWW-сервера особых настроек тоже, собственно, не имеет. Для его нормальной работы я сделал следующие настройки: =========================== файл dbstart.cmd ===================== set user=kutdusov rem set msql_debug=general:query:error: detach D:publicmSQL2binmsql2d ==================================================================

Предварительно нужно создать базу. У меня база уже была, поэтому я ее просто подключил примерно так: msqladmin.exe create Euxx msql Euxx < euxx.msql

Где Euxx - это имя базы, euxx.msql - это та база, которую мне дали. Все!

TFTP. вообще никаких настроек не требует и работает только с тем каталогом, из которого стартовал. Я его использую для сохранения конфигурационных файлов и IOS_ов от маршрутизаторов Cisco.

FTP-сервер. Все прозрачно до безобразия. Даже не знаю, где могут возникнуть проблемы.

SNTP. Сервер и клиент служат для синхронизации своего времени по интернету и предоставления возможности внутренним клиентам синхронизировать свои часы по вашему компьютеру. Нужно установить переменную TZ в файле CONFIG.SYS: SET TZ=EKB-5UTC,3,-1,0,7200,10,-1,0,7200,3600

Здесь все можно оставить так же, только в выделенном месте нужно указать свою разницу с гринвичем. Буквы значения не имеют. Главное, чтобы их было три. Можете, к примеру, для Москвы, указать такое начало это переменной T=MSK-3UTC...

Остальные цифры отвечают за переход времени летнее/зимнее.

Клиент запускается такой строчкой: detach daytime.exe -s -u -c 3600 128.173.14.71


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте