Instalasi PolicyD Untuk Postfix Virtualmin di Centos 7
Instalasi PolicyD Untuk Postfix Virtualmin di Centos 7 berguna untuk memberikan policy pada MTA server. Policy ini dirancang sebagian besar untuk mail server sekala besar. Tujuan utamanya adalah untuk menerapkan melawan spam dan fitur penyesuaian lalu lintas untuk menjaga portabilitas, stabilitas, dan kinerja email.
Module policyd
- Access Control
- Amavis
- CheckHelo
- CheckSPF
- Greylisting
- Quotas
- Accounting
Untuk dapat menggunakan semua module policyd terlebih dahulu policyd tersebut diinstall pada server. Berikut informasi server
- Os: Centos 7
- Domain: saad.web.id
- IP Server: 111.222.333.444
- Document Root: /home/saad/public_html/
Persyaratan sebelum instalasi policyd yang harus sudah diinstall paket sebagai berikut:
- MySQL, PostgreSQL or SQLite
- Net::Server >= 0.96
- Net::CIDR
- Config::IniFiles (debian: libconfig-inifiles-perl, rpm: perl-Config-IniFiles)
- Cache::FastmMap (debian: libcache-fastmmap-perl, rpm: perl-Cache-FastMmap)
- Mail::SPF (required for CheckSPF module)
- PHP v5+
Untuk virtualmin sendiri sudah tersedia MySQL dan PHP v5+, jadi tidak perlu diinstall kembali.
Instalasi Paket Persyaratan PolicyD
1. Instalasi paket perl-CPAN
yum install -y perl-CPAN
2. Net::Server >= 0.96
/usr/bin/perl -MCPAN -e 'install Net::Server'
3. Net::CIDR
/usr/bin/perl -MCPAN -e 'install Net::CIDR'
4. Config::IniFiles (debian: libconfig-inifiles-perl, rpm: perl-Config-IniFiles)
yum install -y perl-Config-IniFiles
5. Cache::FastmMap (debian: libcache-fastmmap-perl, rpm: perl-Cache-FastMmap)
yum install -y perl-Cache-FastMmap
6. Mail::SPF (required for CheckSPF module)
/usr/bin/perl -MCPAN -e 'install Mail::SPF'
Install Policyd
1. Download cluebringer-2.0.14-1.noarch.rpm dan install paket
yum install -y wget cd /opt/ wget https://download.policyd.org/v2.0.14/cluebringer-2.0.14-1.noarch.rpm rpm -ivh cluebringer-2.0.14-1.noarch.rpm
2. Download cluebringer-v2.0.14.zip untuk import database policyd
wget https://download.policyd.org/v2.0.14/cluebringer-v2.0.14.zip unzip cluebringer-v2.0.14.zip cd cluebringer-v2.0.14 cd database
Convert format import database policyd (transact-SQL) menjadi format file import database mysql (policyd.sql) dengan perintah berikut (copy+paste script kemudian enter)
for i in core.tsql access_control.tsql quotas.tsql amavis.tsql checkhelo.tsql checkspf.tsql greylisting.tsql; do ./convert-tsql mysql $i done > policyd.sql
Masukkan perintah berikut untuk menghapus baris TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin pada file policyd.sql dengan perintah berikut
sed -i 's/TYPE=InnoDB CHARACTER SET latin1 COLLATE latin1_bin//' policyd.sql
3. Membuat database kosong di mysql dengan nama policyd
mysqladmin -u root -p create policyd
(masukkan password user root mysql, bila root tidak memiliki password tekan enter)
4. Import file policyd.sql ke dalam database dengan perintah
mysql -u root -p policyd < policyd.sql
5. Buat user mysql untuk database policyd
Nama User: policyd
password user: r4h4s14
mysql -u root -p -e "CREATE USER 'policyd'@'localhost' IDENTIFIED BY 'r4h4s14';" mysql -u root -p -e "GRANT ALL PRIVILEGES ON policyd.* TO 'policyd'@'localhost';"
6. Mengubah username dan password database pada file cluebringer.conf
sed -i 's/#Username=root/Username=policyd/' /etc/policyd/cluebringer.conf
sed -i 's/#Password=/Password=r4h4s14/' /etc/policyd/cluebringer.conf
7. Jalankan service policyd dengan perintah
systemctl start cbpolicyd
cek status policyd dengan perintah berikut
[root@webmin public_html]# ps ax | grep policyd 14729 ? Ss 0:00 /usr/bin/perl /usr/sbin/cbpolicyd --config /etc/policyd/cluebringer.conf 14731 ? S 0:00 /usr/bin/perl /usr/sbin/cbpolicyd --config /etc/policyd/cluebringer.conf 14732 ? S 0:00 /usr/bin/perl /usr/sbin/cbpolicyd --config /etc/policyd/cluebringer.conf 14733 ? S 0:00 /usr/bin/perl /usr/sbin/cbpolicyd --config /etc/policyd/cluebringer.conf 14734 ? S 0:00 /usr/bin/perl /usr/sbin/cbpolicyd --config /etc/policyd/cluebringer.conf
cek status port yang digunakan policyd
[root@webmin public_html]# netstat -pln | grep :10031 tcp6 0 0 :::10031 :::* LISTEN 14729/perl
8. Aktifkan policyd menjadi otomatis running ketika server di restart
cek status enable policyd
[root@webmin public_html]# chkconfig --list cbpolicyd cbpolicyd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
enable policyd
chkconfig --level 2345 cbpolicyd on
9. Integerasi Policyd dengan postfix
masukkan baris berikut pada smtpd_recipient_restrictions and smtpd_end_of_data_restrictions.
check_policy_service inet:127.0.0.1:10031
Aktifkan Webui Policyd
Webui ini interface policyd yang berbasis web. Untuk dapat digunakan dibutuhkan konfigurasi agar dapat dikolaborasi dengan database policyd.
Enable Webui
1. Ubah konfigurasi webui dan sesuaikan username dan password database policyd dengan perintah berikut
sed -i 's/$DB_DSN="mysql:host=localhost;dbname=cluebringer";/$DB_DSN="mysql:host=localhost;dbname=policyd";/' /etc/policyd/webui.conf sed -i 's/$DB_USER="root";/$DB_USER="policyd";/' /etc/policyd/webui.conf sed -i 's/#$DB_PASS="";/$DB_PASS="r4h4s14";/' /etc/policyd/webui.conf
2. Karena pada public_html yang digunakan user:saad dan goup:saad maka sesuaikan penggunaan user dan group tersebut pada isi dan config webui
chown -R saad.saad /usr/share/cluebringer/webui/* chown saad.saad /etc/policyd/webui.conf
3. Buat symlink pada path /home/saad/public_html/ dengan perintah
ln -s /usr/share/cluebringer/webui/ /home/saad/public_html/webui
4. Restart postfix
systemctl restart postfix
Akses Webui dengan username dan password
1. Buat file .htaccess
vi /usr/share/cluebringer/webui/.htaccess
Masukkan baris di bawah ke dalam .htaccess
AuthUserFile /usr/share/cluebringer/webui/.htpasswd AuthGroupFile /dev/null AuthName "user and password" AuthType Basic <LIMIT GET> require valid-user </LIMIT>
2. Buat user dan password dengan perintah
htpasswd -c /usr/share/cluebringer/webui/.htpasswd admin
ket:
user: admin
password: r4h4s14
Akses policyd dengan URL http://domain-name/webui
Selesai
Berikut layanan yang ada di saadwebid terkait website
Layanan Instalasi Implementasi dan Migrasi VPS