Iredmail so pwerfullIredmail so pwerfull

Bagi anda IT administrator, dan menggunakan Linux server sebagai platform perusahaan anda, maka anda membutuhkan solusi instan ini, iRedMail adalah sebuah shell script yang akan membantu anda dengan mudah men deploy solusi email dengan fitur yang full dengan waktu kurang dari 2 menit. Semenjak iRedMail mencapai versi 0.5, kini program powefull ini telah mensupport Debian 5.0.1 dan Ubuntu 8.04 & Ubuntu 9.04 (keduanya untuk platform i386 dan x86_64). iRedMail kali ini telah mensupport OpenLDAP dan MySQL sebagai backends untuk menyimpan virtual domain dan user.

OpenLDAP yang menjadi backend dari iRedMail akan memudahkan anda untuk mengintegrasikan semua jenis aplikasi. guide berikut ini memperlihatkan anda bagaimana mengintegrasikan pure-ftpd kedalam iRedMail ldap backend pada CentOS 5.x, password akan disimpan didalam ldap dan anda dapat merubah password melalui webmail. Tutorial menguji berdasarkan CentOS 5.3, dengan pilihan setting minimum pada CentOS 5.3, install iRedMail 0.5 RC2 dan pilih OpenLDAP sebagai backend, seperti yang ada pada tutorial berikut ini: - iRedMail: Mail Server With LDAP, Postfix, RoundCube/SquirrelMail, Dovecot, ClamAV, SpamAssassin, Amavisd (Debian 5.0.1)

1. Install Pure-FTPd

Anda dapat menggunakan rpmforge yum repository untuk menginstall pure-ftpd.

[sourcecode language=”bash”]
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm # <– untuk i386
rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm # <– untuk x86_64
[/sourcecode]

Install pure-ftpd:
[sourcecode language=”bash”]
yum install pure-ftpd
[/sourcecode]

2. Konfigurasi Pure-FTPd

Konfigurasi Default :

  • /etc/pure-ftpd/pure-ftpd.conf
  • /etc/pure-ftpd/pureftpd-ldap.conf

Setting di /etc/pure-ftpd/pure-ftpd.conf
Pastikan anda membuat opsi CreateHomeDir dan LDAPConfigFile sudah aktif dengan bentuk seperti ini:

[sourcecode language=”bash”]
vi /etc/pure-ftpd/pure-ftpd.conf

CreateHomeDir yes
LDAPConfigFile /etc/pure-ftpd/pureftpd-ldap.conf
Set cn=vmail password
[/sourcecode]

vmail password dibentuk secara random saat dilakukan instalasi iredmail. anda dapat menemukan password ini pada direktori:

  • /etc/postfix/ldap_virtual_mailbox_domains.cf:
  • vi /etc/postfix/ldap_virtual_mailbox_domains.cf

[sourcecode language=”bash”]
bind_dn = cn=vmail,dc=example,dc=com
bind_pw = kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail password
[/sourcecode]

Konfigurasi LDAP setting di /etc/pure-ftpd/pureftpd-ldap.conf
[sourcecode language=”bash”]
vi /etc/pure-ftpd/pureftpd-ldap.conf

LDAPServer localhost
LDAPPort 389
LDAPBaseDN o=domains,dc=example,dc=com
LDAPBindDN cn=vmail,dc=example,dc=com
LDAPBindPW kZ6uB29mViWKWI9lOH3cGnF7z3Dw3B #cn=vmail password
LDAPDefaultUID 500 # <- UID of ‘vmail’ user.
LDAPDefaultGID 500 # <- GID of ‘vmail’ user.
LDAPFilter (&(objectClass=PureFTPdUser)(mail=L)(FTPStatus=enabled))
LDAPHomeDir FTPHomeDir # <- This is new attribute, we will add it
[/sourcecode]

3. Konfigurasi LDAP

Setting struktur schema

Ada 2 cara menemukan pureftpd schema yang anda dapat pilih salah satu

  • Download schema yang telah di modifikasi oleh iredmail.
  • Dapatkan schema yang berada pada paket pure-ftpd-1.0.22 dan rubah.

Download the schema yang sudah dimodif iredmail:
[sourcecode language=”bash”]
wget http://iredmail.googlecode.com/hg/extra/pureftpd.schema -P /etc/openldap/schema/[/sourcecode]

Dapatkan schema dari pure-ftpd-1.0.22:
[sourcecode language=”bash”]
cd /tmp/
wget http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.22.tar.bz2
tar xjf pure-ftpd-1.0.22.tar.bz2
cp pure-ftpd-1.0.22/pureftpd.schema /etc/openldap/schema/
[/sourcecode]

Rubah /etc/openldap/schema/pureftpd.schema
Kita hanya perlu menambahkan 1 buah attribut ‘FTPHomeDir’ sebelum mendefinisikan objectclass yang tersimpan di direktori user.

[sourcecode language=”bash”]
vi /etc/openldap/schema/pureftpd.schema

attributetype ( 1.3.6.1.4.1.6981.11.3.9 NAME ‘FTPgid’
DESC ‘System uid (overrides gidNumber if present)’
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )

Add new attributetype FTPHomeDir.

attributetype ( 1.3.6.1.4.1.6981.11.3.10 NAME ‘FTPHomeDir’
DESC ‘FTP directory’
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

New Pure-FTPd object type

objectclass ( 1.3.6.1.4.1.6981.11.2.3 NAME ‘PureFTPdUser’
DESC ‘PureFTPd user with optional quota, throttling and ratio’
SUP top AUXILIARY # <– Add this line.
MAY ( FTPStatus $ FTPQuotaFiles $ FTPQuotaMBytes $ FTPUploadRatio $
FTPDownloadRatio $ FTPUploadBandwidth $ FTPDownloadBandwidth $
[/sourcecode]

Rubah /etc/openldap/slapd.conf
[sourcecode language=”bash”]
vi /etc/openldap/slapd.conf
[/sourcecode]

masukan pureftpd.schema setelah iredmail.schema:
[sourcecode language=”bash”]
include /etc/openldap/schema/iredmail.schema
include /etc/openldap/schema/pureftpd.schema # <– Add this line.
FTPuid $ FTPgid $ FTPHomeDir ) ) # <– Add $ FTPHomeDir
[/sourcecode]

Tambahkan index untuk attribute dari pureftpd.schema:
[sourcecode language=”bash”]

Default index.

index objectClass eq,pres
index ou,cn,mail,surname,givenname,telephoneNumber eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub

<– Add the below

#Index for FTP attrs.
index FTPQuotaFiles,FTPQuotaMBytes eq,pres
index FTPUploadRatio,FTPDownloadRatio eq,pres
index FTPUploadBandwidth,FTPDownloadBandwidth eq,pres
[/sourcecode]

4. Buat FTP Home Dir

FTP data akan disimpan di /home/ftp/. buatlah /home/ftp/, dimana owner di set sebagai root.
[sourcecode language=”bash”]
mkdir /home/ftp/
ls -dl /home/ftp
drwxr-xr-x 3 root root 4096 Jun 7 20:18 /home/ftp/
[/sourcecode]

5. Restart OpenLDAP service untuk mengaktifkan pureftpd.schema

[sourcecode language=”bash”]
/etc/init.d/ldap restart
/etc/init.d/pure-ftpd restart
[/sourcecode]

Cek kalau pure-ftpd sudah running:
[sourcecode language=”bash”]
netstat -ntlp | grep pure-ftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 2062/pure-ftpd (SERVER)
tcp 0 0 :::21 :::* LISTEN 2062/pure-ftpd (SERVER)

index FTPStatus,FTPuid,FTPgid,FTPHomeDir eq,pres[/sourcecode]

comments powered by Disqus