Тази инструкция показва как се конфигурира 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 |
Това е 🙂