Cara Konfigurasi Squirrelmail Untuk Mengganti Password Email Pada ISPConfig 3

Bagi Anda pengguna Hosting Control Panel ISPConfig 3, ada satu masalah yang muncul untuk mengganti password e-mail anda pada halaman webmail Squirrelmail Anda, yah secara default untuk merubah password e-mail Anda harus melalui hosting control panel ISPConfig 3 Anda, namun jangan khawatir bagi Anda pengguna ISPConfig 3 pada server hosting Anda, dan Anda memiliki banyak client Mail, dan para client mail ingin merubah sendiri password e-mailnya tanpa harus melalui Anda atau mereka masuk ke hosting control panel. Pada tulisan ini saya menggunakan sistem operasi ubuntu server 11.10 , ISPConfig 3, Mysql 5.1 , Squirrelmail 1.4.22 , berikut cara menambahkan plugins change password pada Squirrelmail yang menggunakan hosting control panel ISPConfig :

Download Plugins change_sqlpass terlebih dahulu dan extract


# cd /usr/share/squirrelmail/plugins/


wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz


# tar zxvf change_sqlpass-3.3-1.2.tar.gz


cd change_sqlpass


Kemudian Edit file functions.php pada folder change_sqlpass


cari baris :



case strtolower(PASSWORD_ENCRYPTION_MD5CRYPT):
return ‘”‘ . md5crypt($password, $salt) . ‘”‘;


Kemudian diganti dengan :



case strtolower(PASSWORD_ENCRYPTION_MD5CRYPT):
include_once(SM_PATH . ‘plugins/change_sqlpass/md5crypt.php’);
return ‘”‘ . md5crypt($password, $salt) . ‘”‘;


Kemudian buat file config.php pada change_sqlpass


Berikut isi file config.php

<?php


/**
  * SquirrelMail Change SQL Password Plugin
  * Copyright (C) 2001-2002 Tyler Akins
  *               2002 Thijs Kinkhorst <kink@users.sourceforge.net>
  *               2002-2005 Paul Lesneiwski <paul@openguild.net>
  * This program is licensed under GPL. See COPYING for details
  *
  * @package plugins
  * @subpackage Change SQL Password
  *
  */




   // Global Variables, don’t touch these unless you want to break the plugin
   //
   global $csp_dsn, $password_update_queries, $lookup_password_query,
          $force_change_password_check_query, $password_encryption,
          $csp_salt_query, $csp_salt_static, $csp_secure_port,
          $csp_non_standard_http_port, $csp_delimiter, $csp_debug,
          $min_password_length, $max_password_length, $include_digit_in_password,
          $include_uppercase_letter_in_password, $include_lowercase_letter_in_password,
          $include_nonalphanumeric_in_password;






   // csp_dsn
   //
   // Theoretically, any SQL database supported by Pear should be supported
   // here.  The DSN (data source name) must contain the information needed
   // to connect to your database backend. A MySQL example is included below.
   // For more details about DSN syntax and list of supported database types,
   // please see:
   //   http://pear.php.net/manual/en/package.database.db.intro-dsn.php
   //
   $csp_dsn = ‘mysql://root:your_mysql_password@127.0.0.1/dbispconfig’;


   // lookup_password_query
   //
   // This plugin will always verify the user’s old password
   // against their login password, but an extra check can also
   // be done against the database for more security if you
   // desire.  If you do not need the extra password check,
   // make sure this setting is empty.
   //
   // This is a query that returns a positive value if a user
   // and password pair are found in the database.
   //
   // This query should return one value (one row, one column), the
   // value being ideally a one or a zero, simply indicating that
   // the user/password pair does in fact exist in the database.
   //
   //   %1 in this query will be replaced with the full username
   //      (including domain), such as “jose@example.com”
   //   %2 in this query will be replaced with the username (without
   //      any domain portion), such as “jose”
   //   %3 in this query will be replaced with the domain name,
   //      such as “example.com”
   //   %4 in this query will be replaced with the current (old)
   //      password in whatever encryption format is needed per other
   //      plugin configuration settings (Note that the syntax of
   //      the password will be provided depending on your encryption
   //      choices, so you NEVER need to provide quotes around this
   //      value in the query here.)
   //   %5 in this query will be replaced with the current (old)
   //      password in unencrypted plain text.  If you do not use any
   //      password encryption, %4 and %5 will be the same values,
   //      except %4 will have double quotes around it and %5 will not.
   //
   //$lookup_password_query = ”;
   // TERRIBLE SECURITY: $lookup_password_query = ‘SELECT count(*) FROM users WHERE username = “%1” AND plain_password = “%5″‘;
   $Lookup_Password_Query = ‘SELECT count(*) FROM mail_user WHERE email = “%1” AND crypt_password = %4’;
   //$Lookup_Password_Query = ”;


   // password_update_queries
   //
   // An array of SQL queries that will all be executed
   // whenever a password change attempt is made.
   //
   // Any number of queries may be included here.
   // The queries will be executed in the order given here.
   //
   //   %1 in all queries will be replaced with the full username
   //      (including domain), such as “jose@example.com”
   //   %2 in all queries will be replaced with the username (without
   //      any domain portion), such as “jose”
   //   %3 in all queries will be replaced with the domain name,
   //      such as “example.com”
   //   %4 in all queries will be replaced with the new password
   //      in whatever encryption format is needed per other
   //      plugin configuration settings (Note that the syntax of
   //      the password will be provided depending on your
   //      encryption choices, so you NEVER need to provide quotes
   //      around this value in the queries here.)
   //   %5 in all queries will be replaced with the new password
   //      in unencrypted plain text – BEWARE!  If you do not use
   //      any password encryption, %4 and %5 will be the same
   //      values, except %4 will have double quotes around it
   //      and %5 will not.
   //
   $password_update_queries = array(
            ‘UPDATE mail_user SET password = %4 WHERE email = “%1″‘,
//            ‘UPDATE users SET crypt_password = %4 WHERE username = “%1″‘,
//            ‘UPDATE user_flags SET force_change_pwd = 0 WHERE username = “%1″‘,
//            ‘UPDATE users SET crypt_password = %4, force_change_pwd = 0 WHERE username = “%1″‘,
                                   );


   // force_change_password_check_query
   //
   // A query that checks for a flag that indicates if a user
   // should be forced to change their password.  This query
   // should return one value (one row, one column) which is
   // zero if the user does NOT need to change their password,
   // or one if the user should be forced to change it now.
   //
   // This setting should be an empty string if you do not wish
   // to enable this functionality.
   //
   //   %1 in this query will be replaced with the full username
   //      (including domain), such as “jose@example.com”
   //   %2 in this query will be replaced with the username (without
   //      any domain portion), such as “jose”
   //   %3 in this query will be replaced with the domain name,
   //      such as “example.com”
   //
   //$force_change_password_check_query = ‘SELECT IF(force_change_pwd = “yes”, 1, 0) FROM users WHERE username = “%1″‘;
   //$force_change_password_check_query = ‘SELECT force_change_pwd FROM users WHERE username = “%1″‘;
   //$force_change_password_check_query = ‘SELECT force_change_pwd FROM mail_user WHERE email = “%1″‘;
   $force_change_password_check_query = ”;

   // password_encryption
   //
   // What encryption method do you use to store passwords
   // in your database?  Please use one of the following,
   // exactly as you see it:
   //
   //   NONE          Passwords are stored as plain text only
   //   MYSQLPWD      Passwords are stored using the MySQL password() function
   //   MYSQLENCRYPT  Passwords are stored using the MySQL encrypt() function
   //   PHPCRYPT      Passwords are stored using the PHP crypt() function
   //   MD5CRYPT      Passwords are stored using encrypted MD5 algorithm
   //   MD5           Passwords are stored as MD5 hash
   //
   $password_encryption = ‘MD5CRYPT’;


   // csp_salt_query
   // csp_salt_static
   //
   // Encryption types that need a salt need to know where to get
   // that salt.  If you have a constant, known salt value, you
   // should define it in $csp_salt_static.  Otherwise, leave that
   // value empty and define a value for the $csp_salt_query.
   //
   // Leave both values empty if you do not need (or use) salts
   // to encrypt your passwords.
   //
   // The query should return one value (one row, one column) which
   // is the salt value for the current user’s password.  This
   // query is ignored if $csp_salt_static is anything but empty.
   //
   //   %1 in this query will be replaced with the full username
   //      (including domain), such as “jose@example.com”
   //   %2 in this query will be replaced with the username (without
   //      any domain portion), such as “jose”
   //   %3 in this query will be replaced with the domain name,
   //      such as “example.com”
   //
   //$csp_salt_static = ‘LEFT(crypt_password, 2)’;
   //$csp_salt_static = ‘”a4″‘;  // use this format with MYSQLENCRYPT
   //$csp_salt_static = ‘$2$blowsomefish$’;  // use this format with PHPCRYPT

   //$csp_salt_query = ‘SELECT SUBSTRING_INDEX(crypt_password, ‘$’, 1) FROM mail_user WHERE email = “%1″‘;
   //$csp_salt_query = ‘SELECT SUBSTRING(crypt_password, (LENGTH(SUBSTRING_INDEX(crypt_password, ‘$’, 2)) + 2)) FROM users WHERE username = “%1″‘;
   //$csp_salt_query = ‘SELECT salt FROM users WHERE username = “%1″‘;
   $csp_salt_query = ‘SELECT SUBSTRING(PASSWORD, 4, 8) FROM mail_user WHERE email = “%1″‘;


   // csp_secure_port
   //
   // You may ensure that SSL encryption is used during password
   // change by setting this to the port that your HTTPS is served
   // on (443 is typical).  Set to zero if you do not wish to force
   // an HTTPS connection when users are changing their passwords.
   //
   // You may override this value for certain domains, users, or
   // service levels through the Virtual Host Login (vlogin) plugin
   // by setting a value(s) for $vlogin_csp_secure_port in the vlogin
   // configuration.
   //
   $csp_secure_port = 0;
   //$csp_secure_port = 443;

   // csp_non_standard_http_port
   //
   // If you serve standard HTTP web requests on a non-standard
   // port (anything other than port 80), you should specify that
   // port number here.  Set to zero otherwise.
   //
   // You may override this value for certain domains, users, or
   // service levels through the Virtual Host Login (vlogin) plugin
   // by setting a value(s) for $vlogin_csp_non_standard_http_port
   // in the vlogin configuration.
   //
   //$csp_non_standard_http_port = 8080;
   $csp_non_standard_http_port = 0;


   // min_password_length
   // max_password_length
   // include_digit_in_password
   // include_uppercase_letter_in_password
   // include_lowercase_letter_in_password
   // include_nonalphanumeric_in_password
   //
   // You can set the minimum and maximum password lengths that
   // you accept or leave those settings as zero to indicate that
   // no limit should be applied.
   //
   // Turn on any of the other settings here to check that the
   // new password contains at least one digit, upper case letter,
   // lower case letter and/or one non-alphanumeric character.
   //
   $min_password_length = 6;
   $max_password_length = 0;
   $include_digit_in_password = 0;
   $include_uppercase_letter_in_password = 0;
   $include_lowercase_letter_in_password = 0;
   $include_nonalphanumeric_in_password = 0;


   // csp_delimiter
   //
   // if your system has usernames with something other than
   // an “@” sign separating the user and domain portion,
   // specify that character here
   //
   //$csp_delimiter = ‘|’;
   $csp_delimiter = ‘@’;
   // debug mode
   //
   $csp_debug = 0;

cari baris berikut untuk mengisikan koneksi ke database anda :


$csp_dsn = ‘mysql://user_mysql_anda:passoword_mysql_anda@127.0.0.1/dbispconfiganda’;



Download dan install compatibility plugin



cd ..


wget http://www.squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.14-1.0.tar.gz


tar zxvf compatibility-2.0.14-1.0.tar.gz




Kemudian Install Pear DB


# pear install DB


Kemudian Bersihkan Installasi


cd ..


rm change_sqlpass-3.3-1.2.tar.gz


rm compatibility-2.0.14-1.0.tar.gz

Kemudian Aktifkan Plugins change_sqlpass pada SquirrelMail

# squirrelmail-configure


Pilih 


8. Plugins
x. change_sqlpass


kemudian tekan S untuk save dan Q untuk exit


Oke change password pada SquirrelMail Anda telah ditambahkan, lakukan pengecekan pada webmail SquirrelMail Anda , login, masuk ke menu options dan pilih Change Password


Semoga Sukses ^_^







Tidak ada Komentar

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

+ 34 = 42

ISPConfig
Tidak bisa Akses FTP Client ISPConfig 3 ketika Firewall diaktifkan (Debian & Ubuntu)

Assalamualaikum,wr,wb. Jika Anda menjalankan firewall di server Linux Anda dan ingin menggunakan koneksi FTP dan status dari koneksi client FTP Anda Timeout sementara Anda telah allow port 20,21 pada firewall Anda, maka Anda harus menentukan kisaran port pasif di pure-ftpd dan firewall Anda untuk memastikan bahwa koneksi tidak terhalang. Contoh …

ISPConfig
Membuat Slave NS dari ISPConfig 3 ke DNS Free HE.NET

Postingan kali ini saya akan sharing bagaimana cara membuat slave DNS untuk domain kita di https://dns.he.net dengan Master DNS Panel kita menggunakan ISPConfig 3 Perlu diketahui Master DNS Server saya menggunakan Bind dengan Control Panel ISPConfig 3, sedangan DNS Free yang diberikan HE.NET menggunakan PowerDNS, tidak ada kendala berarti saat …

ISPConfig
Direct Admin DNS Management VS ISPConfig DNS Management

Suatu malam saya membantu sahabat saya yang pekerjaannya sama dengan saya, yup kami sering berbagi pengetahuan, saya sering dibantu oleh sahabat saya akan network INHERENT (Jaringan Perguruan Tinggi Indonesia) masalah routing dll, maklum di INHERENT beliau pertama kenal dibanding saya, oke langsung ke topik pembahasan antara DNS Management Directadmin dan …