ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Администрирование > *nix системы
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Установка и настройка Веб-сервера
  #1  
Старый 07.07.2008, 12:31
Аватар для zythar
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию Установка и настройка Веб-сервера

предположим что вы уже уставноили свою ось и пришло время устанавливать серверные приложения.
опишу установку и настройку веб-сервера апач с РНР+MySQL.
скачиваем и устанавливаем апач. ./configure запускаем с ключем --enable-so чтобы мы могли подключать модули.
скачиваем РНР. запускаем ./configure --help сначала. внимательно прочитайте.
хотя пойдет и так : ./configure --with-apxs2=/path/to/apache/bin/apxs --with-mysql.
в файл /path/to/apache/conf/httpd.conf нужно добавить строчки: LoadModule php5_module modules/libphp5.so - чтобы подключить модуль.
и
Цитата:
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
чтобы добавить расширение php как РНР скрипт. так безопаснее.
на этом этапе можно потестить все ли нормально получилось. киньте какойнить РНР скрипт в корневую директории веб сервера и зайдите на localhost. если скрип заработал как надо то пока что все нормально.
теперь устанавливаем мускуль. тут тоже ./configure без каких либо особых ключей подойдет в принципе.
теперь запустим mysqld... и обломаемся. оказывается не созданы нужные такие нужные таблицы как mysql.user например. для этого запускаем mysql_install_db, потом опять mysqld и пробуем подключиться при помощи клиента: mysql. если нормально все то считайте что все уже готово.

чтобы настроить виртуальные хосты нужно в секции virtual hosts httpd.conf-a добавить строчки которые я приведу ниже. это упрощеные синтаксис. чтобы узнать подробнее обращяйтесь к офф сайту. хотя вряд ли это вам понадобиться:
Цитата:
<VirtualHost *:80>
ServerName домен
DocumentRoot /путь/к/файлам
</VirtualHost>
не забудьте добавить "домен" в файл /etc/hosts или же если у вас есть днс сервер просто добавьте зону.

Последний раз редактировалось zythar; 09.07.2008 в 20:03..
 
Ответить с цитированием

Настройка Dns сервера
  #2  
Старый 07.07.2008, 12:31
Аватар для zythar
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию Настройка Dns сервера

если у вас фряха то с днс серверов у вас проблем возникнуть не должно.
днс сервер BIND идет с фряхой.
конф файлы сервера находятся /etc/namedb. файл named.conf - основной конф файл сервера. там определяются глобальные настройки. например как сервер должен вести себя: сразу редирекить все запросы к внещним днс серверам или сначала посмотреть у себя и только потом редиректить. имхо это наиболее удобная конфигурация. для этого в раздел options нужно добавить forward first; потом собственно список днс серверов в виде forwarders { тут_днс_серверы; };.
дальше идут файлы зон. корневую (зона "." ) трогать не будем.
просто добавим то что нам нужно.
общий синтаксис таков:
Цитата:
zone "домен" {
type master;
file "путь_к_файлу_зоны;
};
ну и формат файла зоны:
Цитата:
домен IN тип адресс
типы могут быть:
1. SOA (Start Of Authority) - главная запись зоны
2. A - связывает ип-адрес с именем
3. CNAME - связывает синонмы
4. MX - сообщяют внешним почтовым серверам о том какие компьютеры используются для доставки почты адресованной домену.
5. NS - ссылаются на серверы имен зоны.

запись soa наиболее сложная и содержит несколько элементов:
1. сервер имен
2. почта админа
3. параметры обновления данных.

примеры конф. файла сервера и зоны:

конф. файл
Цитата:
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
listen-on { 192.168.1.10; };

disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";

forward first;
forwarders {
62.89.11.133;
62.89.11.134;
};
// query-source address * port 53;
};

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

zone "nirvana.bsd" {
type master;
file "named.nirvana.bsd";
};
файл зоны
Цитата:
nirvana.bsd. IN SOA 192.168.1.10. root.nirvana.bsd. (
200807070 ; порядковый номанр
28800 ; период обновления
14400 ; инетрвал между попытками
3600000 ; интервал устаревания
86400 ; стандартное время жизни
)

zythar IN A 192.168.1.10
unix IN CNAME zythar
mail IN A 192.168.1.11
nirvana.bsd. IN MX mail
nirvama.bsd. IN NS 192.168.1.10
в приципе это мона взять за основу для небольшой сети.

Последний раз редактировалось zythar; 09.07.2008 в 20:02..
 
Ответить с цитированием

Авторизация по ключам в ssh
  #3  
Старый 07.07.2008, 16:39
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию Авторизация по ключам в ssh

Цитата:
скачиваем и устанавливаем апач. ./configure запускаем с ключем --enable-so чтобы мы могли подключать модули.
скачиваем РНР. запускаем ./configure --help сначала. внимательно прочитайте.
хотя пойдет и так : ./configure --with-apxs2=/path/to/apache/bin/apxs --with-mysql.
О Боже, зачем? Сейчас всё можно сделать через manager-пакетов/порты без потери гибкости настройки и т.п. Но за неймед +1


Авторизация по ключам в ssh:
У клиента:
$ cd ~/.ssh/ && ssh-keygen -t rsa
id_rsa.pub кладём в ~/.ssh/ сервера и переименовываем(или дописывем в конец существующего) в authorized_keys
В sshd_config сервера: PubkeyAuthentication yes(по дефолту)

Последний раз редактировалось zythar; 09.07.2008 в 20:01..
 
Ответить с цитированием

Описание установки и конфиги Irc сервера (сервер + сервисы + бот)
  #4  
Старый 25.08.2008, 14:02
Аватар для neval
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию Описание установки и конфиги Irc сервера (сервер + сервисы + бот)

Может кому и пригодится... Так как для установки всего этого нужно прочитать не одну страницу манов... А это так сказать лайт-вариант

Данное описание позволит создать и настроить собственный IRC сервер, включая установку и настройку серверов NickServ, ChanServ и пр., а также установка и настройка бота.

Поскольку пишу со своего примера, параметры, которые необходимо будет сменить для вашего сервера будут указаны.

В этом описании указан только самый необходимый минимум для работы связки сервер-сервис-бот, все остальное в оффдоках

-------------------------
1. ИСХОДНИКИ И ПОДГОТОВКА:

VDS, OS: Debian

Сам сервер - Unreal3.2.7
Сервер сервисов - anope-1.6.5
Бот - eggdrop1.6


Директория, в которой будут установлены сервера

Код:
/home/admin/
-------------------------

Создаем необходимые каталоги

anope_bin - бинарники anope
bin - бинарники Unreal
bot - конфиги + бинарники eggdrop
conf - конфиги Unreal
data - конфиги anope
source - исходники

Код:
cd /home/admin
mkdir anope_bin  bin bot  conf  data source
Скачиваем исходники в source

Код:
cd /home/admin/source
wget http://files.alexisnet.net/unreal/Unreal3.2.7.tar.gz
wget http://surfnet.dl.sourceforge.net/sourceforge/anope/anope-1.6.5.tar.gz
wget http://eggdrop.org.ru/files/eggdrop1.6.18.tar.gz
Распаковываем

Код:
gunzip -d Unreal3.2.7.tar.gz
tar xvf Unreal3.2.7.tar
gunzip -d anope-1.6.5.tar.gz
tar xvf anope-1.6.5.tar
gunzip -d eggdrop1.6.18.tar.gz
tar xvf eggdrop1.6.18.tar
Далее установка....

Последний раз редактировалось neval; 25.08.2008 в 14:09..
 
Ответить с цитированием

  #5  
Старый 25.08.2008, 14:04
Аватар для neval
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

2. СБОРКА Unreal3.2.7

Код:
cd /home/admin/source/Unreal3.2.7
./Config
Цитата:
_ _ _ ___________ _____ _
| | | | | |_ _| ___ \/ __ \ | |
| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| |
| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ |
| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| |
\___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_|

Configuration Program
for Unreal3.2.7

This program will help you to compile your IRC server, and ask you
questions regarding the compile-time settings of it during the process.
regarding the setup of it, during the process.

If you have problems regarding the setup & compile, read Unreal.nfo to get
more information on where to get help. Please, before running this setup,
read the documentation in the "doc" folder. Docs are also avail online @
http://www.unrealircd.com/unreal32docs.html

[Enter to continue]

<enter>

Пролистываем лицензионное соглашение и снова <enter>

Do you want to enable the server anti-spoof protection?
[No] -> <enter>

What directory are all the server configuration files in?
[/home/admin/conf] -> /home/admin/conf <enter>

What is the path to the ircd binary including the name of the binary?
[/home/admin/bin] -> /home/admin/bin <enter>

Would you like to compile as a hub or as a leaf?
Type Hub to select hub and Leaf to select leaf.
[Hub] -> <enter>

What is the hostname of the server running your IRCd?
[irc.mypage.ru] -> irc.mypage.ru <enter> !!!** URL вашего сервера **!!!

What should the default permissions for your configuration files be? (Set this to 0 to disable)
It is strongly recommended that you use 0600 to prevent unwanted reading of the file
[0600] -> <enter>

Do you want to support SSL (Secure Sockets Layer) connections?
[No] -> <enter>

Do you want to enable IPv6 support?
[No] -> <enter>

Do you want to enable ziplinks support?
[Yes] -> <enter>

If you know the path to zlib on your system, enter it here. If not
leave this blank
[] -> <enter>

Do you want to enable remote includes?
[No] -> <enter>

Do you want to enable prefixes for chanadmin and chanowner?
This will give +a the & prefix and ~ for +q (just like +o is @)
Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,
PJIRC, irssi, CGI:IRC, etc.)
This feature should be enabled/disabled network-wide.
[Yes] -> <enter>

What listen() backlog value do you wish to use? Some older servers
have problems with more than 5, others work fine with many more.
[5] -> <enter>

How far back do you want to keep the nickname history?
[2000] -> <enter>

What is the maximum sendq length you wish to have?
[3000000] -> <enter>

How many buffer pools would you like?
This number will be multiplied by MAXSENDQLENGTH.
[18] -> <enter>


How many file descriptors (or sockets) can the IRCd use?
[1024] -> <enter>

Would you like any more parameters to configure?
Write them here:
[]-> <enter>
По завершению:

Код:
make
По завершению:

Код:
make install
Готово...

Чистим конфигурационный файл и вбиваем туда нижеуказанный конфиг, предварительно заменив все что с коментами своими значениями

Код:
cp /dev/null /home/admin/conf/unrealircd.conf
Код:
nano home/admin/conf/unrealircd.conf

Код HTML:
loadmodule "/home/admin/conf/modules/commands.so"; // проверяем правильность
loadmodule "/home/admin/conf/modules/cloak.so";    // путей к файлам


include "help.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";


me
{
        name "irc.mypage.ru";  //имя сервера
        info "My IRC server";  //информация о сервере
        numeric 101;           
};


admin 
{
        "vovan";            //свой ник
        "vovan@kalyan.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;
};

listen *:6667;

oper    vovan  //свой ник
{
        class   clients;
        from 
        {
            userhost vovan@kalyan.ru; // свое мыло
        };
        password "12345"; //свой пароль 
        flags
        {
            global;
        };
};


link services.irc.loc 
{
    username *;
    hostname 127.0.0.1;
    bind-ip 127.0.0.1;
    port 6667;
    password-connect "qwerty"; //изменив этот пароль также нужно будет изменить 
    password-receive "qwerty"; //его в RemoteServer файла /home/admin/data/services.conf
    class servers;      
};


drpass 
{
        restart "12345"; // пароль на рестарт и
        die "12345";     // выключение сервера
};

log "ircd.log" 
{
        maxsize 2097152;
        flags 
        {
                oper;
                kline;
                connects;
                server-connects;
                kills;
                errors;
                sadmin-commands;
                chg-commands;
                oper-override;
                spamfilter;
        };
};


ban nick 
{
        mask "*C*h*a*n*S*e*r*v*";
        reason "Reserved for Services";
};

official-channels 
{
        "#test"; //имя канала
        "#help";
};

set 
{
        network-name            "mypage.ru";             // Просто 
        default-server          "irc.mypage.ru";         // смените
        services-server         "services.mypage.ru";    // mypage.ru
        stats-server            "stats.icr.mypage.ru";   // на ваш урл
        help-channel            "#help";
        hiddenhost-prefix       "xex";
        cloak-keys 
        {
                "aosdrfewtrefgrestgtrgZbSFGSEt46";
                "dgdsfergergergegregergFGSDFGes5y";
                "FDGerrt54tsgrg5yhrthththrtFDGe44";
        };
        hosts 
        {
            local           "locop.icr.mypage.ru";      //Просто
            global          "ircop.icr.mypage.ru";      // 
            coadmin         "coadmin.icr.mypage.ru";    //смените
            admin           "admin.icr.mypage.ru";      //mypage.ru
            servicesadmin   "csops.icr.mypage.ru";      //
            netadmin        "netadmin.icr.mypage.ru";   //на ваш урл
            host-on-oper-up "no";
        };
};

set { allowed-nickchars { windows-1251; }; };

set {
        kline-address "kline@irc.mypage.ru";
        modes-on-connect "+ixw";
        modes-on-oper    "+xwgs";
        options {
                hide-ulines;
                show-connect-info;
                };
        maxchannelsperuser 1;
        anti-spam-quit-message-time 10s;
        oper-only-stats "okfGsMRUEelLCXzdD";
        throttle {
                    connections 3;
                    period 60s;
                };
        anti-flood {
                    nick-flood 3:60;
                   };
        spamfilter {
                    ban-time 1d;
                    ban-reason "Spam/Advertising";
                    virus-help-channel "#help";
                    };

Сохраняем и запускаем сервер


Код:
/home/admin/bin/ircd
Коннектимся к нашему серверу и проверяем....
Если все работает - переходим к установке сервисов..
 
Ответить с цитированием

  #6  
Старый 25.08.2008, 14:05
Аватар для neval
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

3. СБОРКА anope-1.6.5

Код:
cd /home/admin/source/anope-1.6.5
./configure
Цитата:
-========================= A N O P E ==========================-
For more detailed information on the features of Anope1.6 please
read the self-named documentation found on the 'docs' directory.

Anope is a set of IRC Service expanded upon Lara's Epona, based
on Andy Church's IRC Services. For all your Anope needs please
visit our portal at http://www.anope.org/

Please read the INSTALL file for install/upgrade instructions.
Reading the FAQ and README files would be a good idea too. (all
documentation is located on directory 'docs').
-================================================== ============-

Beginning Services configuration.

Using defaults from config.cache. To ignore, either rm config.cache
or give the command-line option "-ignore-cache".

Note: press Return for the default, or enter a new value.
In what directory do you want the binaries to be installed?
[/home/admin/anope_bin] /home/admin/anope_bin <enter>

Where do you want the data files to be installed?
[/home/admin/data] /home/admin/data <enter>

Which group should all Services data files be owned by? (If Services
should not force files to be owned by a particular group, just press
Return.)
[] <enter>

What should the default umask for data files be (in octal)?
(077 = only accessible by owner; 007 = accessible by owner and group)
[077] <enter>

Select the closest to the type of server on your IRC network:
1) DreamForge 4.6.7 [dated IRCd, upgrade to a current one]
2) Bahamut 1.4.27 [or later]
3) UnrealIRCd 3.1.1 [or later]
4) UltimateIRCd 2.8.2 [or later]
5) UltimateIRCd 3.0.0 [alpha26 or later]
6) Hybrid IRCd 7.0 [experimental]
7) ViagraIRCd 1.3.x [or later]
8) PTlink 6.15.0 [experimental]
[3] 3 <enter>

Do you want to use the MD5 message-digest algorithm to encrypt passwords?
(Selecting "yes" protects your passwords from being stolen if someone
gains access to the Services databases, but makes it impossible to recover
forgotten passwords. There is no way to reverse this operation, so make
sure you really want to enable it.)
[no] no <enter>

Do you want to compile Anope with threading support?
If you want to use the proxy detector, you MUST have this. If you get
compilation errors, you should disable this feature and try again.
[no] no <enter>

Do you want to compile Anope with MySQL support?
At this time Anope is able to dump all databases into MySQL. That means
you get a read-only copy of the data. If you plan to run any module that
uses MySQL, you should enable this option as well.
[no] no <enter>

Do you want to compile Anope with Module support?
This will allow you to load and unload external modules of code without
restarting services. You can find several Anope modules on our website.
This requires libdl, if you have problems compiling disable this option.
(this option is ignored on OpenBSD for the time being)
[no] no <enter>
По завершению:

Код:
make
По завершению:

Код:
make install
Готово

Создаем файл конфига, также вписываем туда параметры, указанные ниже, предварительно заменив все что с коментами своими значениями

Код:
nano home/admin/data/services.conf
Код HTML:
RemoteServer    localhost 6667 "qwerty" // Смените пароль на тот, который указан в  link services.irc.loc в файле unrealircd.conf 
ServerName  "services.irc.loc"
ServerDesc  "Services for IRC Networks"
ServiceUser "services@localhost.net"
NickServName    "NickServ"  "Nickname Server"
ChanServName    "ChanServ"  "Channel Server"
MemoServName    "MemoServ"  "Memo Server"
BotServName     "BotServ"   "Bot Server"
HelpServName    "HelpServ"  "Help Server"
OperServName    "OperServ"  "Operator Server"
GlobalName      "Global"    "Global Noticer"
HostServName    "HostServ"  "vHost Server"
PIDFile     services.pid
MOTDFile    services.motd
NickServDB  nick.db
ChanServDB  chan.db
BotServDB   bot.db
OperServDB  oper.db
NewsDB      news.db
ExceptionDB exception.db
HostServDB  hosts.db
HelpChannel "#help"
NetworkDomain "irc.mypage.ru" //укажите свой URL
NetworkName "MyIRC.ru" //название своей сети
StrictPasswords
BadPassLimit    5
BadPassTimeout  1h
UpdateTimeout   5m
ExpireTimeout   30m
ReadTimeout 5s
WarningTimeout  4h
TimeoutCheck    3s
KeepLogs 7
KeepBackups 3
ForceForbidReason
LogUsers
HideStatsO
GlobalOnCycle
GlobalOnCycleMessage "Services are restarting, they will be back shortly - please be good while we're gone"
GlobalOnCycleUP "Services are now back online - have a nice day"
AnonymousGlobal
ProxyThreads 5
ProxyMessage1 "I will now detect if you're using an insecure proxy."
ProxyMessage2 "If you see a connection on port 23, 1080, 3128 or 8080 from"
ProxyMessage3 "my.box.net, please disregard it, as it is the detector in action."
ProxyMessage4 "See http://proxy.myirc.net/ for information about our proxy policy."
ProxyCheckWingate
ProxyCheckSocks4
ProxyCheckSocks5
ProxyCheckHTTP1
ProxyCheckHTTP2
ProxyCheckHTTP3
ProxyTimeout 15s
ProxyTestServer "1.2.3.4" 6667
ProxyExpire 30d
ProxyCacheExpire 1d
ProxyAkillReason "You're using an insecure proxy. See http://proxy.myirc.net/config.html for information about how to config your proxy in a safe manner."
WallProxy
ProxyMax 50
NSForceEmail
NSDefSecure
NSDefPrivate
NSDefHideEmail
NSDefHideUsermask
NSDefMemoSignon
NSDefMemoReceive
NSDefLanguage 11
NSRegDelay  30s
NSExpire    21d
NSMaxAliases    16
NSAccessMax 32
NSEnforcerUser  enforcer@localhost.net
NSReleaseTimeout 1m
NSListMax   50
NSGuestNickPrefix   "Guest"
NSSecureAdmins
NSStrictPrivileges
NSRestrictGetPass
CSDefKeepTopic
CSDefPeace
CSDefSecure
CSDefSecureFounder
CSDefSignKick
CSDefXOP
CSMaxReg    3
CSExpire    14d
CSDefBantype 2
CSAccessMax 1024
CSAutokickMax   32
CSAutokickReason "User has been banned from the channel"
CSInhabit   15s
CSListMax   50
CSRestrictGetPass
MSMaxMemos  20
MSSendDelay 3s
MSNotifyAll
BSDefGreet
BSDefFantasy
BSDefSymbiosis
BSMinUsers 1
BSBadWordsMax 50
BSKeepData 10m
BSSmartJoin
BSGentleBWReason
ServicesRoot   "vovan" //свой ник
SuperAdmin
LogMaxUsers
AutoKillExpiry  30d
ChanKillExpiry  30d
SGLineExpiry    30d
SQLineExpiry    30d
SZLineExpiry    30d
AkillOnAdd
KillClonesAkillExpire   30m
DisableRaw
WallOper
WallBadOS
WallOSGlobal
WallOSMode
WallOSClearmodes
WallOSKick
WallOSAkill
WallOSSGLine
WallOSSQLine
WallOSSZLine
WallOSNoOp
WallOSJupe
WallOSRaw
WallGetpass
WallSetpass
WallForbid
WallDrop
LimitSessions
DefSessionLimit 3
MaxSessionLimit 100
ExceptionExpiry 1d
SessionLimitExceeded "The session limit for your host %s has been exceeded."
MaxSessionKill 15
SessionAutoKillExpiry 30m
AddAkiller

Сохраняем и запускаем

Код:
/home/admin/anope_bin/services
Смотрим в процессах, если его там нет - смотрим логи в

Код:
/home/admin/data/logs/
Если стартанул без проблем, идем на наш канал и пишем к примеру

Код:
/msg ChanServ help
В ответ сервер выдаст список команд.... Все работает... Про команды думаю говорить не стоит...

Переходим к установке бота
 
Ответить с цитированием

  #7  
Старый 25.08.2008, 14:07
Аватар для neval
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

ПРИМЕЧАНИЕ С ОФФСАЙТА
Цитата:
Для сборки Eggdrop вам обязательно необходим и Tcl (язык программирования,
который используется в ядре бота). Проверить наличие Tcl можно набрав в
shell команду: tclsh (или tclshX.X, где X.X версия Tcl)

Если вы получите приглашение в виде символа "%", значит Tcl есть. Если нет,
то установите. Рекомендуемые к установке версии Tcl: 8.0.x или 8.3.x

Скачать Tcl в исходниках можно с ftp-сайта:
ftp://ftp.scriptics.com/pub/tcl/

Порядок сборки Tcl:
1) Распакуйте архив с Tcl (tar -zxf tcl8.x.x.tar.gz)
2) Зайдите в директорию с нужной платформой (cd tcl8.x.x/unix)
3) Наберите './configure'
4) Наберите 'make'
5) Наберите 'make install'

И в /usr/local/lib появится libtcl8.x.x.so, в /usr/local/include директория
tcl8.x.x, а в /usr/local/bin tcl-shell tclsh.

4. СБОРКА eggdrop

Код:
cd /home/admin/source/eggdrop1.6
./configure
По завершению

Код:
make config
По завершению

Код:
make install DEST=/home/admin/bot
Все. Бот установлен.

Создаем файл конфига, также вписываем туда параметры, указанные ниже, предварительно заменив все что с коментами своими значениями

Код:
nano /home/admin/bot/eggdrop.conf
Код HTML:
#! /home/admin/bot/eggdrop    //смотрим правильность путей (эта строка обязательна)
set username "TAHK"    // имя бота
set admin "vovan <email: vovan@kolyan.ru>"    //ник и мыло хозяина бота
set network "my.irc.bot.not.linked"
set timezone "EST"
set offset "5"
set my-hostname "irc.mypage.ru" //свой адрес
set max-logs 5
set max-logsize 0
set quick-logs 0
set raw-log 0
logfile mco * "logs/eggdrop.log"
logfile jpkom #test "logs/test.log" //имя нашего канала и имя файла логов для бота
set log-time 1
set keep-all-logs 0
set logfile-suffix ".%d%b%Y"
set switch-logfiles-at 300
set quiet-save 0
set console "mkcobxs"
set userfile "test.user"
set sort-users 0
set help-path "help/"
set text-path "text/"
set temp-path "/tmp"
set motd "text/motd"
set telnet-banner "text/banner"
set userfile-perm 0600
set botnet-nick "TANK" //ник бота
listen 3333 all
set remote-boots 2
set share-unlinks 1
set protect-telnet 0
set dcc-sanitycheck 0
set ident-timeout 5
set require-p 0
set open-telnets 0
set stealth-telnets 0
set use-telnet-banner 0
set connect-timeout 15
set dcc-flood-thr 3
set telnet-flood 5:60
set paranoid-telnet-flood 1
set resolve-timeout 15
set ignore-time 15
set hourly-updates 00
set owner "vovan" //свой ник 

// Перед запуском лучше всего зарегистрировать ник бота на NickServ, а затем
// этот пароль прописать здесь, что бы бот самоавторизовывался, вместо 123456 укажите пароль, который указали на NickServ
set init-server {putquick "PRIVMSG NickServ :  123456"}

set notify-newusers "$owner"
set default-flags "hp"
set whois-fields "url birthday"
set die-on-sighup 0
set die-on-sigterm 1
unbind dcc n tcl *dcc:tcl
unbind dcc n set *dcc:set
set must-be-owner 1
unbind dcc n simul *dcc:simul
set max-dcc 50
set allow-dk-cmds 1
set dupwait-timeout 5
set mod-path "modules/"
loadmodule blowfish
checkmodule blowfish
loadmodule dns
loadmodule channels
set chanfile "tank.chan"
set force-expire 0
set share-greet 0
set use-info 1
set global-flood-chan 10:60
set global-flood-deop 3:10
set global-flood-kick 3:10
set global-flood-join 5:60
set global-flood-ctcp 3:60
set global-flood-nick 5:60
set global-aop-delay 5:30
set global-idle-kick 0
set global-chanmode "nt"
set global-stopnethack-mode 0
set global-revenge-mode 0
set global-ban-time 120
set global-exempt-time 60
set global-invite-time 60

set global-chanset {
        -autoop         -autovoice
        -bitch          +cycle
        +dontkickops    +dynamicbans
        +dynamicexempts +dynamicinvites
        -enforcebans    +greet
        -inactive       -nodesynch
        -protectfriends +protectops
        -revenge        -revengebot
        -secret         -seen
        +shared         +statuslog
        +userbans       +userexempts
        +userinvites    -protecthalfops
        -autohalfop
}

channel add #test {   // название вашего канала
      chanmode "+nt-likm"
      idle-kick 0
      stopnethack-mode 1
      revenge-mode 0
      ban-time 120
      exempt-time 60
      invite-time 60
      aop-delay 5:30
      flood-chan 10:60
      flood-deop 3:10
      flood-kick 3:10
      flood-join 5:60
      flood-ctcp 3:60
      flood-nick 5:60
}


channel set #dom +enforcebans +dynamicbans +userbans +dynamicexempts
channel set #dom +userexempts +dynamicinvites +userinvites +protectops
channel set #dom +protectfriends +statuslog +revenge -protecthalfops
channel set #dom +revengebot +dontkickops +autovoice +autoop -autohalfop
channel set #dom -bitch -secret -shared +greet +cycle

loadmodule server
set net-type 0
set nick "TAHK"                               //название
set altnick "TAHK"                            //бота
set realname "TAHK bot"                       //
bind evnt - init-server evnt:init_server
proc evnt:init_server {type} {
  global botnick
  putquick "MODE $botnick +i-ws"
}

set default-port 6667
set servers {
  localhost:6667
}
set keep-nick 1
set strict-host 0
set quiet-reject 1
set lowercase-ctcp 0
set answer-ctcp 3
set flood-msg 5:60
set flood-ctcp 3:60
set never-give-up 1
set server-cycle-wait 60
set server-timeout 60
set servlimit 0
set check-stoned 1
set serverror-quit 1
set max-queue-msg 300
set trigger-on-ignore 0
set exclusive-binds 0
set double-mode 1
set double-server 1
set double-help 1
set optimize-kicks 1
set stack-limit 4
loadmodule ctcp
set ctcp-mode 0
loadmodule irc
set bounce-bans 1
set bounce-exempts 0
set bounce-invites 0
set bounce-modes 0
set max-bans 30
set max-exempts 20
set max-invites 20
set max-modes 30
set kick-fun 0
set ban-fun 0
set learn-users 0
set wait-split 600
set wait-info 180
set mode-buf-length 200
unbind msg - ident *msg:ident
unbind msg - addhost *msg:addhost
set opchars "@"
set no-chanrec-info 0
set prevent-mixing 1
set max-dloads 3
set dcc-block 0
set copy-to-tmp 1
set xfer-timeout 30
set share-compressed 1
set files-path ""
set incoming-path ""
set upload-to-pwd 0
set filedb-path ""
set max-file-users 20
set max-filesize 1024
loadmodule notes
set notefile "tank.notes"
set max-notes 50
set note-life 60
set allow-fwd 0
set notify-users 1
set notify-onjoin 1
loadmodule console
set console-autosave 1
set force-channel 0
set info-party 0
loadmodule uptime
source scripts/alltools.tcl
source scripts/action.fix.tcl
source scripts/userinfo.tcl
source scripts/botnetop.tcl
loadhelp userinfo.help

if {[info exists net-type]} {
  switch -- ${net-type} {
    "0" {
      # EFnet
      source scripts/quotepong.tcl
    }
    "2" {
      # Undernet
      source scripts/quotepass.tcl
    }
  }
}

Сохраняем. Запускаем бота...

Первый старт делаем с ключом -m и указанием файла конфига

Код:
cd /home/admin/bot
./eggdrop -m eggdrop.conf
Если все идет по плану - бото зайдет на наш канал #test

Выполним на канале команду

Код:
/msg TAHK hello
И установим пароль на авторизацию бота

После этого убиваем наш PID с ботом и запускаем его заново без каких либо ключей

Код:
cd /home/admin/bot
./eggdrop 

Вот вроде и все..


Если что то и напутал, то только из за того что многобукаф ))

Последний раз редактировалось neval; 25.08.2008 в 14:19..
 
Ответить с цитированием

Почтовый сервер на основе Postfix+Dovecot+Mysql+AMaViS Ubuntu 8.04 LTS
  #8  
Старый 09.12.2008, 09:44
Аватар для Belfigor
Belfigor
Участник форума
Регистрация: 14.11.2007
Сообщений: 195
Провел на форуме:
1210861

Репутация: 98
Отправить сообщение для Belfigor с помощью ICQ
По умолчанию Почтовый сервер на основе Postfix+Dovecot+Mysql+AMaViS Ubuntu 8.04 LTS

Почтовый сервер на основе Postfix+Dovecot+Mysql+AMaViS


Необходимые компоненты
* Postfix чтобы получать поступающие письма из internet и хранит их в почтовых ящиках пользователей на жёстком диске .
* Dovecot, Позволяет пользователям получать их письма на почтовый клиент через POP3 и IMAP
* Squirrelmail Как интерфейс webmail
* MySQL КАК база данных системы, которая загружает информацию о ваших доменах , отчетности пользователя и email пересылок
* AMaViS ДЛЯ сканирования поступающих писем на наличие вирусов, spam и нежелательных вложений .
Расписывать подробно тут про Postfix и Dovecot я не намерен , если кого то интересует дополнительная информация , добро пожаловать сюда Postfix http://afti.ru/start.html , Dovecot http://www.dovecot.org/

Для начало в /etc/apt/sources.list надо добавить нужные ссылки на допольнительные репозитарии , будем использовать редактор vim

Код:
vim /etc/apt/sources.list
в открывшемся файле добавляем следующие строки , в моём случае это локальный репозит , вы же можете использовать репозиты из интернета

далее выполняем

Код:
aptitude update или apt-get update
Теперь установим Postfix с поддержкой Mysql , устанавливать будем с зависимостями

Код:
aptitude install postfix-mysql

Затем нужно установиться сам Mysql , в котором будут храниться базы данных почтового сервера .В этих базах будут содержаться структуры таблиц доменов , транспорта , квоты , юзеры и их пароли .

Код:
aptitude install mysql-server-5.0

Ставим Dovecot , он будет обслуживать запросы пользователей с помощью протоколов imap, imaps, pop3, pop3s

Код:
aptitude install dovecot-pop3d
aptitude install dovecot-imapd
Желательно , установить спам-фильтры и антивирус , если вы не хотите , чтобы ваш почтовый сервер стал сервером рассылки спама и вирусов и попал бы в блэк-листы !

Код:
aptitude install amavisd-new libclass-dbi-mysql-perl
aptitude install spamassassin clamav-daemon cpio arj zoo nomarch lzop cabextract pax
Установим OpenSSL , он будет создавать сертификаты SSL (SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, обеспечивающий безопасную передачу данных по сети Интернет)

Код:
aptitude install openssl
Для облегчения установим PhpMyAdim , сам уже довольно редко пользуюсь им , просто он будет нужен для облегчения работы с базами данных mysql

Код:
aptitude install phpmyadmin libapache2-mod-php5 php5-mysql
Так с этим вроде бы покончили , приступаем к созданию баз данных и юзеров , для начало установим пароль на mysql
mysqladmin password ваш пароль
Создадим базу данных под названием mailserver
mysqladmin -p create mailserver
Создавать базы данных , юзеров и таблицы , можно и другими способами , не посредственно из mysql или с помощью phpmyadmin
Теперь заходим в mysql

PHP код:
mysql -u root -p ваш пароль 
и выполняем следующие команды , создаём пользователя mailuser c паролем mailuser2008 для базы данных mailserver

PHP код:
mysql>
GRANT SELECT ON mailserver.*
TO mailuser@localhost
IDENTIFIED BY 
'mailuser2008';
mysql> use mailserver;
Database changed

Создаём таблицу виртуальных доменов
mysql
CREATE TABLE `virtual_domains` (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50NOT NULL
ENGINE InnoDB;

Создадим таблицу виртуальных юзеров
mysql
>CREATE TABLE `virtual_users` (
id int(11NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11NOT NULL,
user VARCHAR(40NOT NULL,
password VARCHAR(32NOT NULL,
CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
FOREIGN KEY (domain_idREFERENCES virtual_domains(idON DELETE CASCADE
ENGINE InnoDB;

Также нужно создать таблицу виртуальных алиасов для пересылки писем с одного аккаунта на другой аккаунт

mysql
>CREATE TABLE `virtual_aliases` (
id int(11NOT NULL AUTO_INCREMENT PRIMARY KEY,
domain_id INT(11NOT NULL,
source VARCHAR(40NOT NULL,
destination VARCHAR(80NOT NULL,
FOREIGN KEY (domain_idREFERENCES virtual_domains(idON DELETE CASCADE
ENGINE InnoDB;
Выходим из mysql
exit 
################################################## ########## #####

Примеры созданных таблиц
virtual_domains id name
1 example.com
2 foobar.org
virtual_users
id domain_id user password
1 1 john summersun
2 1 steve veryloud

virtual_aliases
id domain_id source destination
1 1 steve steve.miller@gmail.com
2 2 kerstin kerstin42@yahoo.com
3 2 kerstin kerstin@mycompany.com

################################################## ########## ######

Начинаем создавать конфигурационные файлы для Postfix
vim /etc/postfix/mysql-virtual-mailbox-domains.cf
в файле прописываем следующие строки
Цитата:
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM virtual_domains WHERE name='%s'
создаём следующие файлы конфигураций
Внесём изменения в конфигурационный файл Postfix main.cf , выполняем это командой postconf -e , postconf -e добавляет конфигурационные строки в наш main.cf


Код:
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf

Возвращаемся в mysql в БД mailserver
mysql -p mailserver
Там создаём виртуальный домен

PHP код:
INSERT INTO virtual_domains (idnameVALUES (1'example.com');
exit 
Возвращаемся в консоль и проверяем правильность настроек виртуального домена командой, не забудьте сменить домен с example.com на свой.

Код:
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
Результат должен быть:
1
Добавляем юзера и группу vmail
Цитата:
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
Вносим их в main.cf
Цитата:
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
Опять возвращаемся в mysql

mail - u root -p ваш пароль
и создаём виртуально пользователя , например belfigor

PHP код:
mysql>
INSERT INTO virtual_users (iddomain_iduserpassword)
VALUES (11'belfigor'MD5('belfigorsuperstar')); 
Проверям :
PHP код:
mysql>
SELECT CONCAT(virtual_users.user'@'virtual_domains.name) AS email
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users
.domain_id=virtual_domains.id;
Mysql должно напечатать следущие :
+------------------+
email |
+------------------+
|
belfigor@example.com |
+------------------+ 
Директория для этого юзера будет создана , такого типа /home/vmail/example.com/belfigor
Выполняем запрос на поле пароля в mysql

PHP код:
SELECT CONCAT(virtual_users.user'@'virtual_domains.name) AS email,
virtual_users.password
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users
.domain_id=virtual_domains.id
Результат должен быть такой :

Код:
+------------------+----------------------------------+
| email | password |
+------------------+----------------------------------+
| belfigor@example.com | 14cbfb845af1f030e372b1cb9275e6dd |
+------------------+----------------------------------+
Потом нам необходимо создать view в базе данных для нормальной работы сервера Postfix

mysql -u root -p ваш пароль

PHP код:
mysql>use mailserver;
mysql>
CREATE VIEW view_users AS
SELECT CONCAT(virtual_users.user'@'virtual_domains.name) AS email,
virtual_users.password
FROM virtual_users
LEFT JOIN virtual_domains ON virtual_users
.domain_id=virtual_domains.id
Создадим cf файл
vim /etc/postfix/mysql-virtual-mailbox-maps.cf
Цитата:
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 1 FROM view_users WHERE email='%s'
Добавляем в main.cf эти строки
Цитата:
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
Проверяем если такой виртуальный юзер на сервере

Цитата:
postmap -q belfigor@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
Если видим результат 1 значит всё в порядке
Создадим в БД mailserver алиасы для юзера belfigor@example.com

PHP код:
mysql>
INSERT INTO virtual_aliases (iddomain_idsourcedestination)
VALUES (11'belfigor''belfigor@example.com'),
(
21'belfigor''raymond@gmail.com'); 
И тут же создаём view для виртуальных алиасов

PHP код:
mysql>
CREATE VIEW view_aliases AS
SELECT CONCAT(virtual_aliases.source'@'virtual_domains.name) AS email,
destination
FROM virtual_aliases
LEFT JOIN virtual_domains ON virtual_aliases
.domain_id=virtual_domains.id
Проверим наши алиасы:
Цитата:
mysql>
SELECT * FROM view_aliases;
Видим:
+------------------+-------------------+
| email | destination |
+------------------+-------------------+
|belfigor@example.com |belfigor@example.com|
|belfigor@example.com | raymond@gmail.com|
+------------------+-------------------+

Выходим из mysql quit;
Создём ещё один cf файл
vim /etc/postfix/mysql-virtual-alias-maps.cf
В него вносим
Цитата:
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT destination FROM view_aliases WHERE email='%s'
Тестируем postmap -q belfigor@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf

Назначения должно быть следующего вида
belfigor@example.com,raymond@gmail.com
Сотворим cf файл
vim /etc/postfix/mysql-email2email.cf
в нём пишем
Код:
user = mailuser
password = mailuser2008
hosts = 127.0.0.1
dbname = mailserver
query = SELECT email FROM view_users WHERE email='%s'
Проверяем :
Цитата:
postmap -q belfigor@example.com mysql:/etc/postfix/mysql-email2email.cf
Результат :
belfigor@example.com
Добавим также строки в наш main.cf

Выставим нужные права , на наши конфигурационные файлы

Код:
chgrp postfix /etc/postfix/mysql-*.cf
chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf
Следующий шаг , пересылка писем через Dovecot LDA
Находим файл master.cf в директории /etc/postfix/master.cf

в конце добавляем такие строки
vim /etc/postfix/master.cf
Код:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
После перегружаем Postfix
Цитата:
postfix reload
Добавляем в main.cf строки , в консоли набираем
Код:
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
################################################## ########## ####
C Postfix пока закончили , переходим к настройке Dovecot

Начнём с конфигурационного файла Dovecot который находиться в директории /etc/dovecot/
vim /etc/dovecot/dovecot.conf
Убираем # (с закомментированных строк)

Код:
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
mail_location = maildir:/home/vmail/%d/%n/Maildir
Затем найдите секцию namespace private и пропишите следующие

Код:
namespace private {
separator = .
prefix = INBOX.
inbox = yes
}
Секция "auth default"должна выглядеть так :

PHP код:
mechanisms plain login 
Эта секция
Код:
 passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
Скажет Dovecot , что пароли хранятся в SQL database :

PHP код:
userdb static {
args uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes

Идём в секцию socket listen и приводим её в такое состояние

PHP код:
socket listen {
master {
path = /var/run/dovecot/auth-master
mode 
0600
user 
vmail
}
client {
path = /var/spool/postfix/private/auth
mode 
0660
user 
postfix
group 
postfix
}

Ну и на последок в секции protocol lda
Прописываем следующие

PHP код:
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path 
= /var/run/dovecot/auth-master
postmaster_address 
postmaster@example.com
mail_plugins 
cmusieve
global_script_path 
= /home/vmail/globalsieverc

Отредактируем файл dovecot-sql.conf

Цитата:
vim /etc/dovecot/dovecot-sql.conf
Код:
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuser2007
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM view_users WHERE email='%u';
Перезагрузим Dovecot
/etc/init.d/dovecot restart
Срочно бежим в логи и проверяем /var/log/mail.log, должно быть ТАК :
Цитата:
dovecot: Dovecot v1.0.rc15 starting up
dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)
Выставим нужные права на /etc/dovecot/dovecot.conf

Код:
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf
Перезагружаем Postfix и Dovecot

PHP код:
/etc/init.d/postfix restart
/etc/init.d/dovecot restart 
################################################## ########## #####

Теперь настаёт очень ОТВЕТСТВЕННЫЙ момент , мы начинаем КВН , шутка , мы будем тестировать наши smtp
и pop сервера !


в консоли :
Цитата:
telnet localhost smtp
дожно появиться следующие
Цитата:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 example.com ESMTP Postfix (Ubuntu)
скажем серверу "привет"
Цитата:
ehlo example.com
сервер должен нам ответить так :
Цитата:
250-my-new-mailserver
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Теперь пошлём тестовое письмо :
Цитата:
mail from:<raymond@example.com>
Так , всё в порядке , сервер сказал нам:
Цитата:
250 2.1.0 Ok
Письмо адресуем belfigor@example.com
Цитата:
rcpt to:<belfigor@example.com>
И видим , что Postfix разрешил :
Цитата:
250 2.1.5 Ok
Теперь мы готовы отсылать почту:
Цитата:
data
Postfix тоже соглашается и разрешает нам посылать почту и в итоге выводит нам такие строки:
Цитата:
354 End data with <CR><LF>.<CR><LF>
Напечатаем письмо
Цитата:
Hi belfigor,
I know , that you hacked Microsoft , it's fine :d .
.
Жмём ENTER :
Postfix , сообщает нам ,что получил почту и поставил в очередь под очередью ID:
Цитата:
250 2.0.0 Ok: queued as A9D64379C4
Низкий поклон тебе Postfix и мы выходим
Цитата:
quit
Смотрим логи ,/var/log/mail.log
Цитата:
postfix/smtpd[...]: connect from localhost[127.0.0.1]
postfix/smtpd[...]: 5FF712A6: client=localhost[127.0.0.1]
postfix/cleanup[...]: 5FF712A6: message-id=<...>
postfix/qmgr[...]: 5FF712A6: from=<raymond@example.com>, size=364, nrcpt=1 (queue active)
postfix/pipe[...]: 5FF712A6: to=<belfigor@example.com>, relay=dovecot, ..., status=sent (delivered via dovecot service)
postfix/qmgr[...]: 5FF712A6: removed
postfix/smtpd[...]: disconnect from localhost[127.0.0.1]
Если всё настроено верно то должно быть так !
Но если в логах вы видите ошибки , выполните команду postfix check для проверки правильности настроек и прав доступа на файлы, команда должна отдать пустой результат.
И всё ошибки и какие то отклонения от нормального функционала , можно проглядеть тут :
/var/log/mail.log
/var/log/mail.err
/var/log/mail.warn
/var/log/mail.info
################################################## ########## #####

Идём в нашу домашнию директорию cd /home/vmail/example.com/belfigor

и видим вот такие папки
Цитата:
./cur
./new
./new/1179521979.V801I2bbf7M15352.mailtest
./tmp
Очень удобно работать с папками и директориями с помощью midnight commander
установим его
Код:
apt-get install mc
################################################## ########## #####

Тестируем POP сервер
Цитата:
telnet localhost pop3
Сервер отвечает:
Цитата:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
Логинемся:
Цитата:
user belfigor@example.com
Dovecot ответил :
Цитата:
+OK
Здорово, теперь посылаем пароль :
Цитата:
pass belfigorsuperstar
Ну вот мы и дома :
Цитата:
+OK Logged in.
Просмотрим наши письма :
Цитата:
list
Dovecot ответит нам , что у нас есть одно письмо :
Цитата:
+OK 1 messages:
1 474
Выберем письмо под номером 1:
Цитата:
retr 1
Dovecot посылает нам письмо :
Цитата:
+OK 474 octets
Return-Path: <raymond@example.com>
X-Original-To: belfigor@example.com
Delivered-To: belfigor@example.com
Received: from example.com (localhost [127.0.0.1])
by ... (Postfix) with ESMTP id 692DF379C7
for <john@example.com>; Fri, 18 May 2007 22:59:31 +0200 (CEST)
Message-Id: <...>
Date: Fri, 18 May 2007 22:59:31 +0200 (CEST)
From: steve@example.com
To: undisclosed-recipients:;
Hi Belfigor,
I know, that you hacked Microsoft , it's fine :d
.
Ну что же , как видим всё работает просто замечательно , и мы с чистой совестью и с радостным чувством , выходим с сервера
Цитата:
quit
+OK Logging out.
Connection closed by foreign host.
Тестировать IMAP у меня как то нет уже желания .

Так что начинаем созвать SSL/TLS , сертификаты доверий
в консоли :

Код:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem \
-keyout /etc/ssl/private/dovecot.pem
В консоли появятся такие строки:
Цитата:
Generating a 1024 bit RSA private key
.........++++++
............................++++++
writing new private key to '/etc/ssl/certs/dovecot.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Во время создания ключа и сертификата , вам зададут несколько вопросов, ответить на них нужно следущим образом , в моём случае это :
Цитата:
Country Name (2 letter code) [AU]:RU
State or Province Name (full name) [Some-State]:Belgorod
Locality Name (eg, city) []:Belgorod
Organization Name (eg, company) [Internet Widgits Pty Ltd]:workaround.org
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:mailtest.workaround.org
Email Address []ostmaster@workaround.org
Выставим права на этот сертификат :
Цитата:
chmod o= /etc/ssl/private/dovecot.pem
################################################## ########## #####

Аутификация по SMTP
правим наш main.cf
Цитата:
postconf -e mynetworks=192.168.0.0/24
Настройки SASL
Код:
 postconf -e smtpd_sasl_type=dovecot
postconf -e smtpd_sasl_path=private/auth
postconf -e smtpd_sasl_auth_enable=yes
postconf -e smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_a uthenticated,reject_unauth_destination
Проглядеть значение всех параметров можно используя команду
postconf

Создадим ещё один ключ/сертификат ,уже выше указанным методом:

Код:
openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem \
-keyout /etc/ssl/private/postfix.pem
Ключи и сертификаты , будут лежать у нас в директории
/etc/ssl/certs/dovecot.pem и /etc/ssl/private/dovecot.pem
Выставим права на них
Цитата:
chmod o= /etc/ssl/private/postfix.pem
Укажем Postfix на эти сертификаты
Цитата:
postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
SMTP аутификация в Postfix будет отсылаться в plain text и будет проходить в закодированной передаче верительных грамот,
установим эти параметры

PHP код:
postconf -e smtpd_use_tls=yes
postconf 
-e smtpd_tls_auth_only=yes 
__________________________________________________ _____________
Переходим к настройке AMaViS

Фильтрация spam и viruses

В файле /etc/amavis/conf.d/15-content_filter_mode , удаляем комментарии # возле

Код:
 @bypass_...
это сделает наши фитры рабочими
в файле /etc/spamassassin/local.cf добавляем строку [/code]

Код:
bayes_auto_expire 0
Этим мы отключаем автоматическое истечения срока распознования спам писем .
Перезагружаем AMaViS
Код:
/etc/init.d/amavis restart
Нужно удостовериться что AMaViS слушает TCP port 10024 :

Код:
netstat -nap | grep 10024
Вывод :
Код:
tcp 0 0 127.0.0.1:10024 0.0.0.0:* LISTEN 12345/amavisd
На наличие ошибок смотрим /var/log/mail.log

Несколько слов о функциях Аmavis ,если например нам послали письмо из интернета , то его сначало получит Postfix на порту 25 , затем если Postfix разрешит это письмо , то он перешлёт его к AMaViS на TCP порт 10024 (SMTP)и если оно соответствует теребывания политики AMaViS , то AMaViS посылает его обратно Postfix на TCP порт 10025 (SMTP)

Для этого выполним следущие команды :

Код:
postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024
postconf -e receive_override_options=no_address_mappings
Так же нужно добавить smtp-amavis службу в файл /etc/postfix/master.cf , в конце файла прописываем

vim /etc/postfix/master.cf

PHP код:
smtp-amavis unix - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20[/quote][quote]
127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/-o smtpd_error_sleep_time=-o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=-o smtpd_client_connection_rate_limit=-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks -o local_header_rewrite_clients
Перегружаем Postfix
Код:
postfix reload
Приступаем к настройке Сlamav

Добавим clamav в члены группы amavis

Цитата:
adduser clamav amavis
презагружаем демона
Цитата:
/etc/init.d/clamav-daemon restart
Отредактируем файл

vim /etc/amavis/conf.d/50-user
перед "1;"
Прописываем эти строки
Код:
@lookup_sql_dsn = ( ['DBI:mysql:database=mailserver;host=127.0.0.1;port=3306', 'mailuser', 'mailuser2008']);

$sql_select_policy = 'SELECT name FROM virtual_domains WHERE CONCAT("@",name) IN (%k)';
Ребут

Цитата:
/etc/init.d/amavis restart
Теперь посылаем письмо belfigor@example.com , если вы проверите заголовки письма , то вы найдёте строки добавленные Amavis

Цитата:
X-Virus-Scanned: Debian amavisd-new at mymailserverX-Spam-Score: 0X-Spam-Level:X-Spam-Status: No, score=0 tagged_above=-9999 required=6.31 tests=[none]
Теперь все входящие письма будут проверяться на спам и вирусы

Попробуем отослать нашему юзеру спам письмо

Цитата:
sendmail belfigor@example.com < /usr/share/doc/spamassassin/examples/sample-spam.txt
В /var/log/mail.log мы увидем строки прописынные Amavis

Цитата:
amavis[13001]: (13001-02) Passed SPAM, <...> -> <john@example.com>, ...
Выставим права на файл :

Код:
chmod o= /etc/amavis/conf.d/50-user
################################################## ###############
Ну думаю на этом я пока и остановлюсь , значит заводить новых юзеров можно , не посредственно в mysql
PHP код:
mysql>
INSERT INTO virtual_users (iddomain_iduserpassword)
VALUES (11'новый юзер'MD5('пароль юзера')); 

Или через phpMyAdmin , я выбрал скрип написынный на php mail_control.php очень лёгкий и удобный , можно легко и быстро создавать домены и юзеров .

Теперь Белку (squirrelmail) я не люблю , и просто заюзал Mozilla Thunderbird , а для Веб интерфейса пожно использовать roundcube , UebiMiau и ещё много других разных клиентов можно найти в инетерете .

От себя хочу сказать , что это не полный перевод , если кто желает подробно вникнуть с суть дела , то добро пожаловать сюда http://workaround.org/articles/ispmail-etch/ , для гуру и опытных почтоводов , этот скромный мануал думаю не пригодиться , а вот новичкам с самый раз , свои конфиги я выкладывать не буду , дабы не было банального копипаста , поверте он не даёт ничего хорошо , уже лучше поседеть суток так двое , трое и самому понять работу данного почтового сервера ! имхо

По данном мануалу , почтовый сервер был поднят и настроен 5 раз , ошибок не наблюдалось , багов пока тоже . Одновременно на другом сервера заюзал связку
Postfix, Courier, MySQL And SquirrelMail (Ubuntu 8.04 LTS) , опять же имхо , но Postfix+Dovecot+Mysql+AMaViS мне понравилась больше, хотя у каждой связки есть свои приемушества !
Желаю успехов на поднятии и настройки почтовых серверов , с уважением Belfigor .

источник http://workaround.org/articles/ispmail-etch/

Последний раз редактировалось Belfigor; 09.12.2008 в 09:59..
 
Ответить с цитированием

  #9  
Старый 19.02.2009, 07:39
Аватар для Gray_f0x
Gray_f0x
Постоянный
Регистрация: 31.05.2007
Сообщений: 308
Провел на форуме:
1863492

Репутация: 243
По умолчанию

*nix скрипт для автобэкапа баз данных mysql, их архивирование и закачка на удаленный ftp.

Код:
mkdir /usr/back/base/backup_`date "+%Y-%m-%d"`
mysqldump --user BACKUPERUSER DATABASENAME > /usr/back/base/backup_`date "+%Y-%m-%d"`/DATABASENAME.sql
gzip -r /usr/back/base/backup_`date "+%Y-%m-%d"`/
curl -T /usr/back/base/backup_`date "+%Y-%m-%d"`/DATABASENAME.sql.gz ftp://FTPUSER:PASS6@FTPHOST/
Для того чтобы это работало необходимо также создать пользователя MySQL с SELECT, LOCK TABLES привелегиями.
 
Ответить с цитированием

  #10  
Старый 13.03.2009, 19:50
Аватар для xcedz
xcedz
Познавший АНТИЧАТ
Регистрация: 14.01.2008
Сообщений: 1,165
Провел на форуме:
7229141

Репутация: 3099


По умолчанию

Защитить сервера от случайной перезагрузки или выключения поможет пакет molly-guard. При выполнении команд shutdown, reboot, halt он засечет удаленное подключение и попросит ввести имя хоста, с которым осуществляется операция. Это полезно при работе с удаленными серверами через ssh подключения, и особенно - при работе с несколькими серверами одновременно.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Внешние ссылки, обмен ссылками и получение ссылок DJ.KilleR Статьи 0 02.07.2008 18:30
Взаимовыгодный обмен RBKmoney на WMR sa~ О Работе 0 02.07.2008 13:40
Не работает обмен в вебмани, помогите, прошу оч! NetomaN Болталка 2 28.04.2008 21:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ