Blog

  • ubuntu почтовый сервер ( ubuntu mail server )

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

    Во первых, задайте себе вопрос а насколько он нужен вам?

    если у вас до 50ти ящиков то очень рекомендую воспользоваться почтой от гугла на своём домене, я уже писал об этом способе.

    Экономия времени и нервов вам обеспечена!.

    Если же вы настойчивы, то есть 2 способа, оба проделывал я на своих серверах, оба работают и не ругаются.
    Очень рекомендую первый, во втором периодически выпадали глюки и приходилось пере запускать демоны.

    Первый Postfix + Dovecot + MYSQL
    Вариант 2 более простой (postfix (smtp), sasl2 (Авторизция) cyrus-pop3d )

    Поехали
    Интерпритатора будет два, обычная командная строка (bash) и mysql

    bash:$>
    
    mysql: mysql>Code language: Bash (bash)

    Также все команды будут от root (обычно я запускаю sudo mc и жму ctrl+o и так получается консоль от root)

    Устанавливаем необходимые пакеты, также ставим phpmyadmin для более удобного управления базой + вэб интерфейс почты

    aptitude install postfix-mysql mysql-server dovecot-pop3d dovecot-imapd openssl phpmyadmin squirrelmailCode language: Bash (bash)

    Создаём БД + таблицы можно как и из консоли, так и из phpmyadmin
    Мне удобнее из phpmyadmin просто вводя запросы
    phpmyadmin

     mysql>
    create database mailserver;
    mysql>
    grant all on mailserver.* to mailuser@localhost identified by 'mailuserpasswd';
    exitCode language: SQL (Structured Query Language) (sql)

    Затем создайте таблицы в базе данных

     mysql>
    CREATE TABLE `virtual_domains` (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
    ) ENGINE = InnoDB;
    mysql>
    CREATE TABLE `virtual_users` (
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    user VARCHAR(40) NOT NULL,
    password VARCHAR(32) NOT NULL,
    CONSTRAINT UNIQUE_EMAIL UNIQUE (domain_id,user),
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE) ENGINE = InnoDB;
    mysql>
    CREATE TABLE `virtual_aliases` (
    id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    domain_id INT(11) NOT NULL,
    source VARCHAR(40) NOT NULL,
    destination VARCHAR(80) NOT NULL,
    FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE
    ) ENGINE = InnoDB;Code language: SQL (Structured Query Language) (sql)

    Создаём файлы конфигурации для Postfix’a с информацией о базе данных.

    touch /etc/postfix/mysql-virtual-mailbox-domains.cfCode language: Bash (bash)

    Вот с таким содержанием

     user = mailuser
    password = mailuserpasswd
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT 1 FROM virtual_domains WHERE name='%s'Code language: Bash (bash)

    Этот запрос выбирает виртуальные домены (да да наш почтовый сервер будет работать на несколько доменов как реальных так и виртуальных)

    Применим конфигурацию postfix

    postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cfCode language: Bash (bash)

    Добавим в БД запись о первом виртуальном сервере example.com (не забываем поставить свой)

     $>
    mysql -p mailserver
    mysql>
    INSERT INTO virtual_domains (id, name) VALUES (1, 'example.com');
    exitCode language: SQL (Structured Query Language) (sql)

    Проверим всё ли верно мы сделали

     postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cfCode language: Bash (bash)

    Появится цифра 1 — значит всё сделано правильно.

    Теперь создаём пользователей, за них будет отвечать отдельная группа. создаём её

    $>
    groupadd -g 5000 vmail
    useradd -g vmail -u 5000 vmail -d /home/vmail -mCode language: Bash (bash)

    Примиряем изменения

    $>
    postconf -e virtual_uid_maps=static:5000
    $>
    postconf -e virtual_gid_maps=static:5000Code language: Bash (bash)

    Создадим тестовый почтовый ящик, например john@example.com с паролем johnpasswd

     mysql>
    INSERT INTO virtual_users (id, domain_id, user, password)
    VALUES (1, 1, 'john', MD5('johnpasswd'));Code language: SQL (Structured Query Language) (sql)

    Потом создаём view в базе данных.

     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;Code language: SQL (Structured Query Language) (sql)

    Проверим результат

     mysql>
    SELECT * FROM view_users;Code language: SQL (Structured Query Language) (sql)

    Вы должны увидеть это:

    +------------------+----------------------------------+
    | email | password |
    +------------------+----------------------------------+
    | john@example.com | 14123123123243372b1cb9275e6dd |
    +------------------+----------------------------------+Code language: Bash (bash)

    Создадим файл конфигурации для Postfix’a в котором укажем данные для работы с почтовыми ящиками наших пользователей

    touch /etc/postfix/mysql-virtual-mailbox-maps.cfCode language: Bash (bash)

    С содержанием

     user = mailuser
    password = mailuserpasswd
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT 1 FROM view_users WHERE email='%s'Code language: Bash (bash)

    Применим изменения

     $>
    postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cfCode language: Bash (bash)

    Проверьте результат командой

    postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cfCode language: Bash (bash)

    Вы должны увидеть цифру 1 если все правильно настроено.

    Если вам не нужны алиасы, можете пропустить этот пункт, но я редко такое вижу на практике

    они нужны для пересылки почты с одного ящика на другой, или с нескольких на один

    Добавим в базу данных тестовый альяс для нашего польователя john@example.com, вся почта пришедшая на его ящик будет дополнительно пересылаться на ящик jmiller@gmail.com

     INSERT INTO virtual_aliases (id, domain_id, source, destination)
    VALUES (1, 1, 'john', 'john@example.com'),
    (2, 1, 'john', 'jmiller@gmail.com');Code language: SQL (Structured Query Language) (sql)

    Создадим view для альясов по аналогии с view для пользователей

     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;Code language: SQL (Structured Query Language) (sql)

    Проверим результат

     SELECT * FROM view_aliases;Code language: SQL (Structured Query Language) (sql)

    Вы должны увидеть это

    +------------------+-------------------+
    | email | destination |
    +------------------+-------------------+
    | john@example.com | john@example.com |
    | john@example.com | jmiller@gmail.com |
    +------------------+-------------------+Code language: SQL (Structured Query Language) (sql)
    touch /etc/postfix/mysql-virtual-alias-maps.cfCode language: Bash (bash)

    С содержанием

    user = mailuser
    password = mailuserpasswd
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT destination FROM view_aliases WHERE email='%s'Code language: Bash (bash)

    Проверим правильность настроек

     postmap -q john@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cfCode language: Bash (bash)

    Вы увидите это

    john@example.com,jmiller@gmail.comCode language: Bash (bash)
    touch /etc/postfix/mysql-email2email.cfCode language: Bash (bash)

    впишем в него

     user = mailuser
    password = mailuserpasswd
    hosts = 127.0.0.1
    dbname = mailserver
    query = SELECT email FROM view_users WHERE email='%s'Code language: Bash (bash)

    Запишем настройки в главный файл конфига Postfix

     $>
    postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cfCode language: Bash (bash)

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

    chgrp postfix /etc/postfix/mysql-*.cf
    chmod u=rw,g=r,o= /etc/postfix/mysql-*.cfCode language: Bash (bash)

    Далее настроим dovecot в качестве локального агента доставки писем, добавим в конец файла /etc/postfix/master.cf

     dovecot unix - n n - - pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}Code language: Bash (bash)

    перезапускаем postfix

    postfix reloadCode language: Bash (bash)

    И добавляем информацию о виртуальном транспорте в главный конфиг Postfix

     postconf -e virtual_transport=dovecot
    postconf -e dovecot_destination_recipient_limit=1Code language: Bash (bash)

    Перейдем к настройкам dovecot, все файлы его конфигурации хранятся в папке /etc/dovecot, начнем настройку с файла /etc/dovecot/dovecot.conf

    Найдите строку protocols и смените на

     protocols = imap imaps pop3 pop3sCode language: Bash (bash)

    Так же изменяем строку disable_plaintext_auth до состояния disable_plaintext_auth = no

    также меняем параметр mail_location

     mail_location = maildir:/home/vmail/%d/%nCode language: Bash (bash)

    Найдите строку namespace private и измените до

     namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
    }Code language: Bash (bash)

    Перейдите к секции «auth default» и отредактируйте разрешенные механизмы аутентификации

     mechanisms = plain loginCode language: Bash (bash)

    В этой же секции измените

     passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
    }Code language: Bash (bash)

    Меняем параметр userdb static

     userdb static {
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }Code language: Bash (bash)

    Переходим к секции socket listen сдесь мы укажем файлы сокета для аутентификации dovecot

     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
    }
    }Code language: Bash (bash)

    Переходим к секции protocol lda, не забудьте сменить адрес постмастера на реальный

     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
    }Code language: Bash (bash)

    На этом файл можно сохранить.
    Далее редактируем файл /etc/dovecot/dovecot-sql.conf
    Делаем как ниже

     driver = mysql
    connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuserpasswd
    default_pass_scheme = PLAIN-MD5
    password_query = SELECT email as user, password FROM view_users WHERE email='%u';Code language: Bash (bash)

    Перезапускаем dovecot

     /etc/init.d/dovecot restartCode language: Bash (bash)

    и смотрим лог файл /var/log/mail.log, там вы должны увидеть

     dovecot: Dovecot v1.0.rc15 starting up
    dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)Code language: Bash (bash)

    Правим права доступа к файлам конфигурации dovecot

     chgrp vmail /etc/dovecot/dovecot.conf
    chmod g+r /etc/dovecot/dovecot.confCode language: Bash (bash)

    Настроим TLS/SSL

     openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem \
    -keyout /etc/ssl/private/dovecot.pemCode language: Bash (bash)

    Ответьте на несколько вопросов и сертификат будет создан, не забудьте указать правльно все параметры вместо примеров привеленных ниже

     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]:Russia
    Locality Name (eg, city) []:Russia
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:example.com
    Organizational Unit Name (eg, section) []:
    Common Name (eg, YOUR name) []:mail.example.com
    Email Address []:postmaster@example.comCode language: Bash (bash)

    Выставим права доступа на файл

     chmod o= /etc/ssl/private/dovecot.pemCode language: Bash (bash)

    Создадим еще один сертификат по аналогии с предыдущим

     openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem \
    -keyout /etc/ssl/private/postfix.pemCode language: Bash (bash)

    Сменим права доступа

     chmod o= /etc/ssl/private/postfix.pemCode language: Bash (bash)

    Вносим изменения в конфиг Postfix’a

     postconf -e smtpd_tls_cert_file=/etc/ssl/certs/postfix.pem
    postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem
    postconf -e smtpd_use_tls=yesCode language: Bash (bash)

    Теперь настроим аутентификацию SMTP, не забываем сменить примеры на реальные адреса сетей! В примере используется сеть 192.168.50.0/24 ей разрешено отправлятиь почту без SMTP авторизации.

     postconf -e mynetworks=192.168.50.0/24
    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_authenticated,reject_unauth_destinationCode language: Bash (bash)

    Редактируем файл /etc/postfix/main.cf изменив параметр размера почтового ящика например на 10 мегабайт

     mailbox_size_limit = 102400Code language: Bash (bash)

    На этом почти всё 🙂
    Перезапускаем postfix и dovecot
    /etc/init.d/postfix restart
    /etc/init.d/dovecot restart

    Проверим, всё и хорошо

    postfix checkCode language: Bash (bash)

    команда должна отдать пустой результат.

    Все ошибки и прочие события из жизни вашего почтовика вы можете найти в логах

    /var/log/mail.log
    /var/log/mail.err
    /var/log/mail.warn
    /var/log/mail.infoCode language: Bash (bash)

    Ах забыл совсем :)) у нас же есть ещё вэб морда для почты и завётся она
    Настройка Squirrelmail

    squirrelmail-configureCode language: Bash (bash)

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

    cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail
    ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail
    a2ensite squirrelmailCode language: Bash (bash)

    Перезапустим апач

    /etc/init.d/apache2 force-reloadCode language: Bash (bash)

    Ну и всё готово 🙂
    Заходим на

    http://ip_servera/squirrelmailCode language: Bash (bash)

    вводим логин пароль (логин вводится целиком с доменом)
    squirrelmail

    Вариант 2 более простой (postfix (smtp), sasl2 (Авторизция) cyrus-pop3d )

    Стами postfix (smtp), sasl2 (Авторизция) cyrus-pop3d (POP3 демон)

    apt-get install postfix libsasl2-2 libsasl2-modules sasl2-bin cyrus-imapd-2.2 cyrus-pop3d-2.2 cyrus-admin-2.2Code language: Bash (bash)

    Во время первоначальной настройки postfix укажите конфигурацию для Интернет-сайта (Internet Site).
    На вопрос об имени почтового сервера-оставьте вариант по-умолчанию или укажите свой. В нашем случае это было domain.ru

    Настроим сервер авторизации saslauthd на использование базы данных паролей sasldb2.
    Для этого отредактируем файл /etc/default/saslauthd:

    START=yes
    MECHANISMS="sasldb"Code language: Bash (bash)

    Запускаем сервис

    /etc/init.d/saslauthd startCode language: Bash (bash)

    проверим работает ли он, но для начала необходимо добавить хотя бы одного пользователя.

    proxy:~# saslpasswd2 test
    Password:
    Again (for verification):Code language: Bash (bash)

    смотрим список пользователей

    proxy:~# sasldblistusers2
    test@proxy: userPasswordCode language: Bash (bash)

    Пробуем авторизироваться

    proxy:~# testsaslauthd -u test -p testCode language: Bash (bash)

    На что получаем ответ

    0: OK "Success.Code language: Bash (bash)

    У почтового сервера postfix есть одна особенность — после запуска он работает в chroot окружении, которое находится в папке /var/spool/postfix/

    Учитывая то, что для авторизации пользователей postfix будет использоваться демон saslauthd, нам нужно перенести его socket в рабочую директорию нашего сервера /var/spool/postfix/. Самый простой способ сделать это заключается в монтировании в нужную папку директории с уже созданным сокетом демона saslauthd.

    Делается это редактированием файла /etc/fstab.

    /var/run/saslauthd /var/spool/postfix/var/run/saslauthd none rw,bind 0 0Code language: Bash (bash)

    Не забудьте поставить [Enter] после последней строки.
    Создаём каталог и монтируем.

    mkdir -p /var/spool/postfix/var/run/saslauthd
    mount /var/run/saslauthdCode language: Bash (bash)

    Настраиваем postfix на работу с sasl авторизацией
    Добавим в /etc/postfix/main.cf

    smtpd_sasl_local_domain =
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    broken_sasl_auth_clients = yes
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    smtpd_sasl_authenticated_header = yes
    smtpd_sasl_application_name = smtpdCode language: Bash (bash)

    запретим отсылать почту через наш SMTP шлюз без авторизации. Для этого создадим файл /etc/postfix/sasl/smtpd.conf со следующим содержимым.

    pwcheck_method: saslauthd
    mech_list: PLAIN LOGINCode language: Bash (bash)

    Перезапустим наш postfix сервер и просмотрим следующие файлы на предмет ошибок:

    /etc/init.d/postfix restart
    tail /var/log/mail.err
    tail /var/log/mail.info
    tail /var/log/mail.warn
    tail /var/log/mail.logCode language: Bash (bash)

    Если все чисто, сухо и гладко — обратимся к утилите telnet, для того, чтобы подключиться к нашему серверу.

    root@proxy:/var/log# telnet localhost 25
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    220 krasfun ESMTP Postfix (Ubuntu)
    EHLO www.ru
    250-krasfun
    250-PIPELINING
    250-SIZE 10240000
    250-VRFY
    250-ETRN
    250-STARTTLS
    250-AUTH PLAIN LOGIN
    250-AUTH=PLAIN LOGIN
    250-ENHANCEDSTATUSCODES
    250-8BITMIME
    250 DSN
    quit
    221 2.0.0 Bye
    Connection closed by foreign host.
    root@proxy:/var/log#Code language: Bash (bash)

    Если у вас нечто похожее — продолжаем

    Для того, чтобы «подружить» saslauthd и postfix необходимо выполнить следующее:

    adduser postfix saslCode language: Bash (bash)

    Cyrus — это мощный набор POP3/NNTP/IMAP и некоторых других демонов для создания полноценных сервисов работы с электронной почтой.

    Отредактируем файл /etc/imapd.conf

    admins: cyrus
    allowplaintext: yes
    sasl_mech_list: PLAIN
    sasl_pwcheck_method: saslauthd auxprop
    sasl_auxprop_plugin: sasldbCode language: Bash (bash)

    Обратите внимание, что cyrus так же, как и saslauthd, придется взаимодействовать с postfix, поэтому их нужно сделать доступными друг другу. Воспользуемся уже известным механизмом:
    /etc/fstab :

    /var/run/cyrus /var/spool/postfix/var/run/cyrus none rw,bind 0 0Code language: Bash (bash)

    создаём каталоги для cyrus.

    mkdir -p /var/spool/postfix/var/run/saslauthd
    mkdir -p /var/spool/postfix/var/run/cyrus
    mount /var/spool/postfix/var/run/saslauthd
    mount /var/spool/postfix/var/run/cyrusCode language: Bash (bash)

    Монтируем

    mount /var/run/cyrusCode language: Bash (bash)

    предоставим возможность cyrus забирать почту у postfix и отпалять почту на куда угодно. Отредактируем файл /etc/postfix/main.cf:

    mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
    local_recipient_maps =Code language: Bash (bash)

    Добавим группу и добавим в неё постфикс

    addgroup lmtp
    adduser postfix lmtpCode language: Bash (bash)

    Дальше 2 команды

    dpkg-statoverride --remove /var/run/cyrus/socket
    dpkg-statoverride --force --update --add cyrus lmtp 750 /var/run/cyrus/socketCode language: Bash (bash)

    Добавим пользователя cyrus в нашу базу учетных записей:

    saslpasswd2 -c cyrusCode language: Bash (bash)

    Введите пароль, когда вас об этом попросят, и перезапустим наши демоны:

    /etc/init.d/postfix start
    /etc/init.d/cyrus2.2 restart
    /etc/init.d/saslauthd restartCode language: Bash (bash)

    Добавим почтового пользователя например saber и создадим ему каталоги

    saslpasswd2 –c saber
    cyradm localhost –user cyrus
    localhost> cm user.saber
    localhost> cm user.saber.INBOX
    localhost> cm user.saber.Sent
    localhost> cm user.saber.Draft
    localhost> cm user.saber.TrashCode language: Bash (bash)

    UPD1 01.02.2013 Эта часть,что выше, устарела немного и пользователь создаётся другим путём, я дословно не помню но примерно так

    saslpasswd2 saber
    
    cyradm
    login cyrus
    localhost> cm user.saber
    localhost> cm user.saber.INBOX
    localhost> cm user.saber.Sent
    localhost> cm user.saber.Draft
    localhost> cm user.saber.TrashCode language: Bash (bash)

    Вот как-то так я добалял пользователей недавно

    На этом всё, можно пользоваться, рекомендую ещё настроить шифрование, но мне оно не нужно было 😉

    Настройка клиента
    Буду на основе Аутглюк экспресс.
    Добавляем почтовый акк, в общем всё как обычно КРОМЕ
    не ставим галочку
    «Использовать безопасную бла бла SPA»

    и ставим галочку ниже Сервер исходящей почты «проверка подлинности пользователя»
    И всё можно пользоваться 🙂

  • Автоматические vpn соединение

    Задача:WindowsXP При старте системы поднимать впн и при разрывах восстанавливать.

    Создаем ярлык VPN соединения на рабочем столе.
    Открываем «Автозагрузку» в пуске (имя_диска Documents and Settings\имя_учетной_записи\Главное меню\Программы\Автозагрузка)
    Бросаем этот ярлык туда.
    Далее заходим в свойства этого VPN соединения.
    Выбираем вкладку «Параметры».
    Снимаем галочки с «Отображать ход подключения» и «Запрашивать имя, пароль, сертификат и т.д.»
    Ниже ставим число повторений набора номера — «999», Интервал между повторениями: «10 секунд». Время простоя — «Никогда»
    Ставим галочку «Перезвонить при разрыве связи».

    Готово

  • Заблокировать всплывающее окно (Блокировка всплывающих окон)

    Наверное каждого раздражают всплывающие окна на сайта, и при попытки закрытия ещё пару открывается 🙂

    размещают из для привлечения денег примерно 11$ за 1000 всплытий.
    напрмер у меня на сайте 15-20 тысяч показов, теоретически в день я могу зарабатывать 150-220 баксов неплохо да 🙂

    но они меня раздражают и сильно 🙂

    я избавился от них раз и на всегда, ещё на стадии их появления в рунете.

    что для этого надо?

    да просто!

    1 Правильный браузер — firefox
    2 плагин к нему для блокировки рекламы Adblock plus устанавливаем от суда
    https://addons.mozilla.org/ru/firefox/addon/1865
    перезапускаем файрфокс, вас спрашивают на кого подпишемся, я подписался на USA чего-то там
    3 создаём текстовый документ и кидаем в него вот этот текст.

    (Adblock Plus 0.6.1.2 or higher required) [Adblock]
    ! Checksum: Fiaj+DGO1gRd5vkEN5a0dg
    *adv.vz.ru*
    http://rose.dominanta.ru/*
    http://*.sibnovosti.ru/*banner*
    http://www.banners.krsk.ru/generator.asp*
    http://*readme.ru/*
    http://engine.adland.ru/*
    http://img2.depositfiles.com/img/adv/*
    http://r*.mail.ru/b*
    http://forum.orionnet.ru/rotator.swf
    http://noion.ru/*
    http://traf.biz/*
    http://noion.ru*
    http://adskape.ru/*
    http://advmaker.ru/*
    http://mg.dt00.net*
    http://newsblock.dt00.net/*
    http://adskape.ru*
    http://c.bigmir.net/*
    *counter*
    http://filepost.ru*
    http://*.dt00.net*
    http://top100*
    http://*.spylog.com/*
    http://iqpop.ru/*
    http://1under.ru/*
    http://1pop.ru/*
    http://clicks.*
    http://poptraf.ru/*
    http://pro-banner.ru/*
    http://sexypedia.net/*
    http://media.carnage.ru*
    http://js.anonym.to*
    *adv.js
    http://popcash.ru*
    http://clickunder.net/*
    http://*.hotlog.ru/*
    http://*redtram.com*
    http://webmasters.ruscams.com/*
    http://*.kpdn.ru/*
    http://tvoi-dosug.com/*
    http://t.proext.com/*
    http://www.kinolib.com/*
    *popuptraf.ru/script/js.php*
    http://an.yandex.ru/code/*
    http://an.yandex.ru/*
    http://slivtraff.com/*
    http://www.popuptraffic.com*
    http://89.108.72.16/*
    http://avelife.ru/*
    http://pop-bazar.com*
    http://web-rom.ru*
    *mytraf.ru*
    *adskape.ru*
    |http://adb.tbn.ru/*
    |http://auth.tbn.ru*

    Далее в файрфоксе Инструменты -> Установки Adblock plus
    фильтры — импорт фильтров и указываем созданный выше тектосывый файл.

    и всё дальше ходим и наслаждаемся чистыи инетом.
    если находим сайт где всплывает реклама можно показать его мне 🙂
    либо самим добавить в фильтр. это очень просто в верху браузера есть кнопочка «ABP» далее разберётесь

  • файловый редактор в mc

    Почему-то в любимом mc в ubuntu 8.10 по умолчанию встал редактор nano

    cd /home/.mcCode language: Bash (bash)
    sudo nano iniCode language: Bash (bash)

    Далее находим строчку

    use_internal_edit=0Code language: Bash (bash)

    заменяем 0 на 1
    сохраняем ctrl+x
    жмём Y
    и запускаем MC ^)

  • Установка mc в ubuntu 8.10

    Свежеустановленный ubuntu 8.10 server на комманду

    apt-get install mcCode language: Bash (bash)

    Сказал, что я сильно ошибаюсь.

    Оказывается надо в файл /etc/apt/sources.list
    Добавить 2 строчки

    deb http://archive.ubuntu.com/ubuntu/ intrepid main restricted universe
    deb-src http://archive.ubuntu.com/ubuntu/ intrepid main restricted universeCode language: Bash (bash)

    после чего

    apt-get updateCode language: Bash (bash)

    и

    apt-get install mcCode language: Bash (bash)