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
Това е 🙂