Debian Lenny internet server

Тази инструкция показва как се конфигурира Debian Lenny internet сървър, който предлага основни сървърни услуги, в Интернет Apache, PHP, Perl, MySQL, Postfix, Amavisd, SpamAssassin, ClamAV, SquirrelMail и Proftpd.

Конфигуриране на мрежата

nano /etc/network/interfaces
 
auto lo
iface lo inet loopback
 
allow-hotplug eth0
iface eth0 inet static
        address 93.155.130.14
        netmask 255.255.255.240
        gateway 93.155.130.1

Конфигуриране на DNS сървъри

nano /etc/resolv.conf
nameserver 93.155.130.1
nameserver 93.155.130.4

Конфигуриране на /etc/hosts

nano /etc/hosts
 
127.0.0.1       localhost
93.155.130.14   mail.itservice-bg.net mail
 
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Конфигуриране на /etc/hostname

echo mail.itservice-bg.net > /etc/hostname

Инсталиране на необходим софтуер

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4
make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential ssh openssh-server

MySQL сървър

apt-get install mysql-server mysql-client libmysqlclient15-dev

По време на инсталацията ще бъдете запитани

New password for the MySQL "root" user: <-- паролатавинаmysql
Repeat password for the MySQL "root" user: <-- паролатавинаmysql

Инсталиране на Postfix със SMTP-AUTH и TLS

apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail

По време на инсталацията ще бъдете запитани

General type of configuration? <-- Internet Site
Mail name? <-- mail.itservice-bg.net

Настройка на postfix се прави с командата

dpkg-reconfigure postfix

По време на инсталацията ще бъдете запитани

General type of configuration? <-- Internet Site
Where should mail for root go <-- [blank]
Mail name? <-- mail.itservice-bg.net
Other destinations to accept mail for? (празно ако нямате такива) <-- mail.itservice-bg.net, localhost.net, , localhost
Force synchronous updates on mail queue? <-- No
Local networks? <-- 127.0.0.0/8
Use procmail for local delivery? <-- Yes
Mailbox size limit <-- 0
Local address extension character? <-- +
Internet protocols to use? <-- all

Продължаваме с конфигурирането на postfix изпълнявайки директно в терминала

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

Създаваме сертификат с TLS

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Конфигуриране на Postfix с TLS

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = mail.itservice-bg.net'

Рестартираме postfix

/etc/init.d/postfix restart

Автентикация със saslauthd

mkdir -p /var/spool/postfix/var/run/saslauthd

Конфигуриране на saslauthd

nano /etc/default/saslauthd
#
# Settings for saslauthd daemon
#
 
# Should saslauthd run automatically on startup? (default: no)
START=yes
 
# Which authentication mechanisms should saslauthd use? (default: pam)
#
# Available options in this Debian package:
# getpwent  -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam       -- use PAM
# rimap     -- use a remote IMAP server
# shadow    -- use the local shadow password file
# sasldb    -- use the local sasldb database file
# ldap      -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="pam"
 
# Additional options for this mechanism. (default: none)
# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""
 
# How many saslauthd processes should we run? (default: 5)
# A value of 0 will fork a new process for each connection.
THREADS=5
 
# Other options (default: -c)
# See the saslauthd man page for information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Стартираме saslauthd, добавяме на потребител и рестартиране postfix

/etc/init.d/saslauthd start
adduser postfix sasl
/etc/init.d/postfix restart

Инсталация и конфигурация на Courier-IMAP/Courier-POP3

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

По време на инсталацията ще бъдете запитани

Create directories for web-based administration ? <-- No
SSL certificate required <-- Ok

Конфигуриране на Postfix да доставя имейли до потребителя в директория Maildir *:

postconf -e 'home_mailbox = Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

Инсталиране на web сървъра Apache

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert

Инсталиране на PHP5

apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev
php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell
php5-recode php5-snmp php5-sqlite php5-suhosin php5-tidy php5-xcache php5-xmlrpc php5-xsl

Зареждане на Apache модулите (SSL, rewrite, suexec, and include):

a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod include

Нека влязат настройките на Apache сървъра в сила

/etc/init.d/apache2 restart

Инсталиране на ftp сървър Proftpd

apt-get install proftpd ucf

По време на инсталацията ще бъдете запитани

Run proftpd from inetd or standalone? <-- standalone

В конфигурационния файл /etc/proftpd/proftpd.conf трябва да се промени

UseIPv6                         off

Както и да се добавят следните редове

DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."

Рестартиме proftpd за да влязат настройките в сила

/etc/init.d/proftpd restart

Инсталация и конфигуриране на програмата за webmail – SquirrelMail

apt-get install squirrelmail
squirrelmail-configure

Ще се появи интерактивно меню с което ще конфигурирате squirrelmail според вашите нужди

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1.  Organization Preferences
2.  Server Settings
3.  Folder Defaults
4.  General Options
5.  Themes
6.  Address Books
7.  Message of the Day (MOTD)
8.  Plugins
9.  Database
10. Languages
 
D.  Set pre-defined settings for specific IMAP servers
 
C   Turn color on
S   Save data
Q   Quit

Добавяне на виртуален хост mail.itservice-bg.net в web сървъра apache

nano /etc/apache2/apache2.conf
 
NameVirtualHost 93.155.130.14:80
 
        ServerName mail.itservice-bg.net.net
        ServerAlias mail.itservice-bg.net
        DocumentRoot /usr/share/squirrelmail
        ServerAdmin support@itservice-bg.net
        ErrorLog /var/log/apache2/mail.itservice-bg.net-error_log
        CustomLog /var/log/apache2/mail.itservice-bg.net-access_log common

Прилагаме конфигурацията в сила

/etc/init.d/apache2 force-reload

Създаваме потребител с командата adduser и отиваме на адрес http://mail.itservice-bg.net където ни очаква логин форма за оторизация.
Възможно е да се наложи първо да се изпрати майл на новосъздадения акаунт за да се създаде директорията maildir в домашната директория
на потребителя.

Инсталиране на amavisd-new, SpamAssassin, и ClamAV
Всеки един пощенски сървър трябва да има защита от спам и вируси особено в днешно време където скоростите се увеличиха в пъти и всеки
сайт, блог или друго място което сте посетили ви иска мейл адрес. Някои от тези места дори ще продадат мейла ви и вие лесно ще станете мишена
за спам. Механизма описан по долу при мен работи добре макар и рядко все пак се случва да се прокрадне някое писмо което не е адресирано до мен.

apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax

Първо трябва да разрешим ClamAV и SpamAssassin в amavis

/etc/amavis/conf.d/15-content_filter_mode
 
use strict;
 
# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.
 
#
# Default antivirus checking mode
# Uncomment the two lines below to enable it back
#
 
@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
 
#
# Default SPAM checking mode
# Uncomment the two lines below to enable it back
#
 
@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
 
1;  # insure a defined return

както и да добавим $pax=’pax’;

nano /etc/amavis/conf.d/50-user
 
use strict;
 
#
# Place your configuration directives here.  They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
 
$pax='pax';
 
#------------ Do not modify anything below this line -------------
1;  # ensure a defined return

Добавяне на потребител и рестартиране на clamav и amavis

adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart

конфигуриране на Postfix да проверява входящата поща чрез amavisd-new

postconf -e 'content_filter = amavis:[127.0.0.1]:10024'
postconf -e 'receive_override_options = no_address_mappings'

След това добавете следните редове към /etc/postfix/master.cf

amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
 
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_client_restrictions=
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o mynetworks=127.0.0.0/8
        -o strict_rfc821_envelopes=yes
        -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
        -o smtpd_bind_address=127.0.0.1

След което рестартираме postfix

/etc/init.d/postfix restart

Инсталиране на Razor, Pyzor и конфигуриране на SpamAssassin

apt-get install razor pyzor

Конфигуриране на SpamAssassin като добавим следните редове

nano /etc/spamassassin/local.cf
 
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_add_header 1
 
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
 
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

Това е 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.