При разработке червей, для их тестирования и проверки работоспособности, нужна полнофункциональная сеть со всеми поднятыми серверами типа:
- DNS;
- WWW;
- IRC;
- FTP;
- почтовый сервер;
- и т.п.
Я довольно долгое время потерял на их настройке. Здесь я хотел бы привести пример настройки домена “webserge.ru” без выхода в интернет. Просто локальная сеть. Имя webserge.ru взято не потому что я себялюб, а потому что это первое имя, которое мне пришло в голову.
Я работаю в VMWare, которая поддерживает только 4 одновременно загружаемых ОС, поэтому все сервисы я поднял на одной тачке с ОС “Slackware 10.2”. Эту машину я назвал server.webserge.ru.
Настройка DNS
В качестве сервера имен я воспользовался пакетом bind 9 версии.
Сразу же привожу его конфигурационные файлы:
1. /etc/named.conf
2. /var/named/master/webserge.zone
3. /var/named/master/localhost.zone
4. /var/named/master/named.local
5. /var/named/master/1.168.192.in-addr.arpa
Ну вот и все. Пишем rndc reload и сервер начнет обслуживать dns-запросы.
Настройка www
Конфигурационный файл Apache находится в /etc/apache/httpd.conf.
Он по умолчанию скофигурирован для нормальной работы. Просто кидаем, например в директорию /var/www/htdocs, папку со страницами нашего сайта и изменяем в кофиге строчку DocumentRoot “/var/www/htdocs/ваша папка”.
Настройка FTP
В качестве ftp сервера используется ProFTPD. Для работы анонимного пользователя закомментируем строку ftp в файле /etc/ftpusers.
Настройки конфигурационного файла /etc/proftpf.conf по умолчанию нас удовлетворяет.
Настройка почтового сервера
В качестве почтового сервера будем использовать поставляемый с Slackware sendmail. Для настройки работы одного домена sendmail легко поднять.
Переходим в каталог /usr/share/sendmail/cf/cf. Создаем конфигурационный файл webserge.mc следующего содержания:
include(`../m4/cf.m4')
VERSIONID(`default setup for Slackware Linux')dnl
OSTYPE(`linux')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
EXPOSED_USER(`root')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Делаем ./Build webserge.mc и переносим полученный файл webserge.cf в /etc/mail под именем sendmail.cf
Далее добавляем в файл /etc/mail/aliases пользователей. Например в системе есть пользователь qwerty и мы хотим, чтобы мыло на имя djon@server.webserge.ru шло этому пользователю. Тогда в этот файл добавляем djon : qwerty.
После добавления пользователей делаем newaliases.
В файл local-host-names добавляем имя сервера для которого принимаем почту:
server.webserge.ru
Все почта настроена.
Настройка IRC сервера
В качестве ирц-сервера я взял пакет Unreal3.2.4 (если кому нужно могу дать ссылку). Он довольно легок в управлении и предназначен для новичков. Вот с этим сервером я не очень разобрался, но для нормальной работы я его настроил.
Пример конфигурационного файла unrealircd.conf:
Теперь раскомментируем строки в файле /etc/inetd.conf касающиеся ftp, pop3.
Добавляем сценарии загрузки в /etc/rc.d/ (например rc.sendmail).
Если есть вопросы - спрашивайте
- DNS;
- WWW;
- IRC;
- FTP;
- почтовый сервер;
- и т.п.
Я довольно долгое время потерял на их настройке. Здесь я хотел бы привести пример настройки домена “webserge.ru” без выхода в интернет. Просто локальная сеть. Имя webserge.ru взято не потому что я себялюб, а потому что это первое имя, которое мне пришло в голову.
Я работаю в VMWare, которая поддерживает только 4 одновременно загружаемых ОС, поэтому все сервисы я поднял на одной тачке с ОС “Slackware 10.2”. Эту машину я назвал server.webserge.ru.
Настройка DNS
В качестве сервера имен я воспользовался пакетом bind 9 версии.
Сразу же привожу его конфигурационные файлы:
1. /etc/named.conf
Код:
options {
directory "/var/named";
query-source address * port 53;
};
// master nameserver config
zone "localhost" {
type master;
file "master/localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" {
type master;
file "master/named.local";
allow-update { none; };
};
zone "webserge.ru" {
type master;
file "master/webserge.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "master/192.168.1.rev";
allow-update { none; };
};
Код:
$TTL 3D
@ IN SOA server.webserge.ru. server.webserge.ru (
42
3H
15
1W
1D)
NS server
localhost A 127.0.0.1
server A 192.168.1.5
windowsXPSP2 A 192.168.1.3
router A 192.168.1.1
router A 10.0.1.1
MX 10 server.webserge.ru.
Код:
$TTL 3D
@ IN SOA server.webserge.ru. server.webserge.ru. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS server.webserge.ru.
1 IN PTR localhost.
Код:
$TTL 3D
@ IN SOA server.webserge.ru. server.webserge.ru. (
42 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
NS server.webserge.ru.
1 PTR localhost.
Код:
$TTL 3D
@ IN SOA server.webserge.ru. server.webserge.ru (
42
3H
15
1W
1D)
NS server.webserge.ru.
1 PTR router.webserge.ru.
3 PTR windowsXPSP2.webserge.ru.
5 PTR server.webserge.ru.
Настройка www
Конфигурационный файл Apache находится в /etc/apache/httpd.conf.
Он по умолчанию скофигурирован для нормальной работы. Просто кидаем, например в директорию /var/www/htdocs, папку со страницами нашего сайта и изменяем в кофиге строчку DocumentRoot “/var/www/htdocs/ваша папка”.
Настройка FTP
В качестве ftp сервера используется ProFTPD. Для работы анонимного пользователя закомментируем строку ftp в файле /etc/ftpusers.
Настройки конфигурационного файла /etc/proftpf.conf по умолчанию нас удовлетворяет.
Настройка почтового сервера
В качестве почтового сервера будем использовать поставляемый с Slackware sendmail. Для настройки работы одного домена sendmail легко поднять.
Переходим в каталог /usr/share/sendmail/cf/cf. Создаем конфигурационный файл webserge.mc следующего содержания:
include(`../m4/cf.m4')
VERSIONID(`default setup for Slackware Linux')dnl
OSTYPE(`linux')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`local_procmail',`',`procmail -t -Y -a $h -d $u')dnl
EXPOSED_USER(`root')dnl
LOCAL_DOMAIN(`localhost.localdomain')dnl
DAEMON_OPTIONS(`Port=smtp,Name=MTA')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
Делаем ./Build webserge.mc и переносим полученный файл webserge.cf в /etc/mail под именем sendmail.cf
Далее добавляем в файл /etc/mail/aliases пользователей. Например в системе есть пользователь qwerty и мы хотим, чтобы мыло на имя djon@server.webserge.ru шло этому пользователю. Тогда в этот файл добавляем djon : qwerty.
После добавления пользователей делаем newaliases.
В файл local-host-names добавляем имя сервера для которого принимаем почту:
server.webserge.ru
Все почта настроена.
Настройка IRC сервера
В качестве ирц-сервера я взял пакет Unreal3.2.4 (если кому нужно могу дать ссылку). Он довольно легок в управлении и предназначен для новичков. Вот с этим сервером я не очень разобрался, но для нормальной работы я его настроил.
Пример конфигурационного файла unrealircd.conf:
Код:
loadmodule "src/modules/commands.so";
loadmodule "src/modules/cloak.so";
include "help.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";
me
{
name "server.webserge.ru";
info "WebSerGe Server";
numeric 1;
};
admin {
"WebSerGe";
"WebSerGe";
"root@server.webserge.ru";
};
class clients
{
pingfreq 90;
maxclients 500;
sendq 100000;
recvq 8000;
};
class servers
{
pingfreq 90;
maxclients 10;
sendq 1000000;
connfreq 100;
};
allow {
ip *@*;
hostname *@*;
class clients;
maxperip 5;
};
allow {
ip *@255.255.255.255;
hostname *@*.passworded.ugly.people;
class clients;
password "serge";
maxperip 1;
};
allow channel {
channel "#WarezSucks";
};
oper serge {
class clients;
from {
userhost *@*;
};
password "serge";
flags
{
netadmin;
can_zline;
can_gzline;
can_gkline;
global;
};
};
listen *:6667;
drpass {
restart "I-love-to-restart";
die "die-you-stupid";
};
log "ircd.log" {
maxsize 2097152;
flags {
oper;
kline;
connects;
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
spamfilter;
};
};
alias NickServ { type services; };
alias ChanServ { type services; };
alias OperServ { type services; };
alias HelpServ { type services; };
alias StatServ { type stats; };
alias "services" {
format "^#" {
target "chanserv";
type services;
parameters "%1-";
};
format "^[^#]" {
target "nickserv";
type services;
parameters "%1-";
};
type command;
};
alias "identify" {
format "^#" {
target "chanserv";
type services;
parameters "IDENTIFY %1-";
};
format "^[^#]" {
target "nickserv";
type services;
parameters "IDENTIFY %1-";
};
type command;
};
set {
network-name "server.webserge.ru";
default-server "server.webserge.ru";
services-server "server.webserge.ru";
stats-server "server.webserge.ru";
help-channel "#help";
hiddenhost-prefix "rox";
cloak-keys {
"a2oAr1HnsR6gl3sJ7hVz4Zb7x4YwpW";
"a2oAr1dHnsR6gl3sJ7hVz4Zb7x4YwpW";
"a2oAr1HfnsR6gl3sJ7hVz4Zb7x4YwpW";
};
hosts {
local "server.webserge.ru";
global "server.webserge.ru";
coadmin "server.webserge.ru";
admin "server.webserge.ru";
servicesadmin "server.webserge.ru";
netadmin "server.webserge.ru";
host-on-oper-up "no";
};
};
set {
kline-address "root@server.webserge.ru";
modes-on-connect "+ixw";
modes-on-oper "+xwgs";
oper-auto-join "#opers";
dns {
nameserver 192.168.1.5;
timeout 2s;
retries 2;
};
options {
SPOILER-ulines;
/* You can enable ident checking here if you want */
/* identd-check; */
show-connect-info;
};
maxchannelsperuser 10;
anti-spam-quit-message-time 10s;
oper-only-stats "okfGsMRUEelLCXzdD";
};
Добавляем сценарии загрузки в /etc/rc.d/ (например rc.sendmail).
Если есть вопросы - спрашивайте