Ini adalah tugas Pertamaku saat menjadi Network Engineer di Perusahaan dimana aku bekerja sekarang, agak ribet siih tapi untungnya ada mbah google yang bantu. langsung aja ya pren

Inastall Debian Etch

1. Edit sourcelist : /etc/apt/sourcelist

deb http://kambing.vlsm.org/debian/ stable main contrib non-free

deb http://kambing.vlsm.org/debian-security/ stable/updates main contrib non-free

2. jalankan line berikut untuk melengkapi instalasi yang error

aptitude -y install postfix-mysql mysql-server-5.0 dovecot-pop3d dovecot-imapd amavisd-new libclass-dbi-mysql-perl spamassassin clamav-daemon cpio arj zoo nomarch lzop cabextract pax lha unrar openssl squirrelmail phpmyadmin libapache2-mod-php5 php5-mysql telnet mutt mailman postgrey

3. masuk ke http://localhost/phpmyadmin lewat browser create database mailserver dan masukkan dump file mailserver atau sql berikut:

GRANT SELECT ON mailserver.*

TO mailuser@localhost

IDENTIFIED BY ‘password′;

CREATE TABLE `virtual_domains` (

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(50) NOT NULL

) ENGINE = InnoDB;

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;

CREATE TABLE `virtual_aliases` (

id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,

domain_id INT(11) NOT NULL,

source VARCHAR(20) NOT NULL,

destination VARCHAR(80) NOT NULL,

FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE

) ENGINE = InnoDB;

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;

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;

4. Buat database mapping

isikan pada file /etc/postfix/mysql-virtual-mailbox-domains.cf

user = mailuser

password = password

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM virtual_domains WHERE name=’%s’

isikan pada file /etc/postfix/mysql-virtual-mailbox-maps.cf

user = mailuser

password = password

hosts = 127.0.0.1

dbname = mailserver

query = SELECT 1 FROM view_users WHERE email=’%s’

isikan pada file /etc/postfix/mysql-virtual-alias-maps.cf

user = mailuser

password = password

hosts = 127.0.0.1

dbname = mailserver

query = SELECT destination FROM view_aliases WHERE email=’%s’

isikan pada file /etc/postfix/mysql-email2email.cf

user = mailuser

password = password

hosts = 127.0.0.1

dbname = mailserver

query = SELECT email FROM view_users WHERE email=’%s’

postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1
postconf -e virtual_uid_maps=static:5000
postconf -e virtual_gid_maps=static:5000
groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail -m
chgrp postfix /etc/postfix/mysql-*.cf
chmod u=rw,g=r,o= /etc/postfix/mysql-*.cf
5. edit file pada /etc/postfix/master.cf
dovecot unix – n n – – pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

6. Configure Dovecote file /etc/dovecote/dovecote.conf
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
log_timestamp = “%Y-%m-%d %H:%M:%S ”
mail_location = maildir:/home/vmail/%d/%n
mail_extra_groups = mail
namespace private {
separator = .
prefix = INBOX.
inbox = yes
}
protocol imap {
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
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
}
auth default {
mechanisms = plain login
passdb sql {
args = /etc/dovecot/dovecot-sql.conf
}
userdb passwd {
}
userdb static {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
}
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
}
}
}
dict {
}
plugin {
}

7. isi file /etc/dovecot/dovecot-sql.conf
driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=password
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM view_users WHERE email=’%u’;
8. restart dovecote /etc/init.d/dovecot restart
9. ubah group dan privilege
chgrp vmail /etc/dovecot/dovecot.conf
chmod g+r /etc/dovecot/dovecot.conf
10. setting Amavis edit file /etc/amavis/conf.d/15-content_filter_mode uncomment @bypass_…
11. tambahkan pada file /etc/spamassassin/local.cf
bayes_auto_expire 0
12. start amavis /etc/init.d/amavis restart
13. tambahkan konfigurasi postfix
postconf -e content_filter=smtp-amavis:[127.0.0.1]:10024
postconf -e receive_override_options=no_address_mappings
14. tambahkan pada file /etc/postfix/master.cf
smtp-amavis unix – – n – 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20

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/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
-o local_header_rewrite_clients=
15. create user amavis dan restart service
adduser clamav amavis
/etc/init.d/clamav-daemon restart
chmod o= /etc/amavis/conf.d/50-user
16. konfigure squirrelmail
ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf
apache2ctl restart
squirrelmail-configure –> set pop3 & imap server dengan hostname

17. setting Postgrey dan limit pada file /etc/postfix/main.cf
relayhost = (smtp provider)
mynetworks = 192.168.0..0./24 (lan)

smtpd_client_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_pipelining

hopcount_limit = 10000
delay_notice_recipient = postmaster@example.com
bounce_notice_recipient = postmaster@example.com
2bounce_notice_recipient = postmaster@example.com
error_notice_recipient = postmaster@example.com
qmgr_message_recipient_limit = 50000
default_process_limit = 100000
default_destination_recipient_limit = 20
default_destination_concurrency_limit = 1000
luser_relay = postmaster@example.com

message_size_limit = 2048000
header_size_limit = 2048
bounce_size_limit = 500000
line_length_limit = 2048000

18. restart postfix /etc/init.d/postfix restart