{"id":1602,"date":"2014-12-08T00:12:21","date_gmt":"2014-12-07T23:12:21","guid":{"rendered":"http:\/\/blog.techmedia.pl\/?p=1602"},"modified":"2014-12-08T00:35:28","modified_gmt":"2014-12-07T23:35:28","slug":"ispconfig-3-change-squirrelmail-password","status":"publish","type":"post","link":"https:\/\/www.techmedia.pl\/blog\/ispconfig-3-change-squirrelmail-password\/","title":{"rendered":"ISPConfig 3 change squirrelmail password"},"content":{"rendered":"<h2>Konfiguracja squirrelmail umo\u017cliwiaj\u0105ca u\u017cytkownikom zmian\u0119 has\u0142a poprzez interfejs www.<\/h2>\n<h3>1. Pobieramy i instalujemy plugin do zmiany has\u0142a <span style=\"color: #ff0000;\">change_sqlpass<\/span>:<\/h3>\n<pre>root@server:\/# <strong>cd \/usr\/share\/squirrelmail\/plugins\/<\/strong>\r\nroot@server:\/# <strong>wget http:\/\/squirrelmail.org\/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz<\/strong>\r\nroot@server:\/# <strong>tar xvf change_sqlpass-3.3-1.2.tar.gz<\/strong><\/pre>\n<h3>2. Naprawiamy b\u0142\u0105d <span style=\"color: #ff0000;\">md5crypt<\/span> poprzez odpowiedni\u0105 zmian\u0119 pliku <span style=\"color: #ff0000;\">function.php<\/span>:<\/h3>\n<p><!--more--><\/p>\n<pre>root@server:\/# <strong>cd \/usr\/share\/squirrelmail\/plugins\/change_sqlpass\r\n<\/strong>root@server:\/# <strong>vim function.php<\/strong><\/pre>\n<p>Odnajdujemy poni\u017csze linie:<\/p>\n<pre>case strtolower(PASSWORD_ENCRYPTION_MD5CRYPT):\r\n\u00a0\u00a0 return '\"' . md5crypt($password, $salt) . '\"';<\/pre>\n<p>i wstawiamy pomi\u0119dzy nie kod oznaczony na czarno:<\/p>\n<pre>case strtolower(PASSWORD_ENCRYPTION_MD5CRYPT):\r\n\u00a0\u00a0 <span style=\"color: #000000;\">include_once(SM_PATH . 'plugins\/change_sqlpass\/md5crypt.php');<\/span>\r\n\u00a0\u00a0 return '\"' . md5crypt($password, $salt) . '\"';<\/pre>\n<h3>3. Tworzymy nowy plik konfiguracyjny <span style=\"color: #ff0000;\">config.php<\/span> i otwieramy go w dowolnym edytorze go:<\/h3>\n<pre>root@server:\/# <strong>touch config.php<\/strong>\r\nroot@server:\/# <strong>vim config.php<\/strong><\/pre>\n<p>Do pliku wstawiamy poni\u017cszy kod:<\/p>\n<pre>&lt;?\r\nglobal $csp_dsn, $password_update_queries, $lookup_password_query,\r\n       $force_change_password_check_query, $password_encryption,\r\n       $csp_salt_query, $csp_salt_static, $csp_secure_port,\r\n       $csp_non_standard_http_port, $csp_delimiter, $csp_debug,\r\n       $min_password_length, $max_password_length, $include_digit_in_password,\r\n       $include_uppercase_letter_in_password, $include_lowercase_letter_in_password,\r\n       $include_nonalphanumeric_in_password;\r\n\r\n$csp_dsn = 'mysql:\/\/<span style=\"color: #000000;\">mysqluser<\/span>:<span style=\"color: #000000;\">mysqlpass<\/span>@127.0.0.1\/dbispconfig';\r\n\r\n$Lookup_Password_Query = 'SELECT count(*) FROM mail_user WHERE email = \"%1\" AND crypt_password = %4';\r\n\r\n$password_update_queries = array(\r\n          'UPDATE mail_user SET password = %4 WHERE email = \"%1\"',\r\n                                );\r\n\r\n$force_change_password_check_query = '';\r\n\r\n$password_encryption = 'MD5CRYPT';\r\n\r\n$csp_salt_query = 'SELECT SUBSTRING(PASSWORD, 4, 8) FROM mail_user WHERE email = \"%1\"';\r\n\r\n$csp_secure_port = 0;\r\n\r\n$csp_non_standard_http_port = 0;\r\n\r\n$min_password_length = 6;\r\n$max_password_length = 0;\r\n$include_digit_in_password = 0;\r\n$include_uppercase_letter_in_password = 0;\r\n$include_lowercase_letter_in_password = 0;\r\n$include_nonalphanumeric_in_password = 0;\r\n\r\n$csp_delimiter = '@';\r\n\r\n$csp_debug = 0;\r\n?&gt;<\/pre>\n<p>Przed zapisaniem pliku zmieniamy mysqluser i mysqlpass na odpowiednie warto\u015bci. Najlepiej wstawi\u0107 dane odczytane z pliku konfiguracyjnego ISPConfig 3 <span style=\"color: #ff0000;\">\/usr\/local\/ispconfig\/server\/lib\/config.inc.php<\/span> ze zmiennych: <span style=\"color: #ff0000;\">$conf[\u201adb_user\u2019]<\/span> oraz <span style=\"color: #ff0000;\">$conf[\u201adb_password\u2019]<\/span>.<\/p>\n<h3>4. Pobieramy i instalujemy dodatek <span style=\"color: #ff0000;\">compatibility<\/span>:<\/h3>\n<pre>root@server:\/# <strong>cd \/usr\/share\/squirrelmail\/plugins\/\r\n<\/strong><\/pre>\n<pre>root@server:\/# <strong>wget http:\/\/www.squirrelmail.org\/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fcompatibility-2.0.14-1.0.tar.gz\r\n<\/strong><\/pre>\n<pre>root@server:\/# <strong>tar xvf .\/compatibility-2.0.14-1.0.tar.gz<\/strong><\/pre>\n<h3>5. Sprawdzamy czy mamy zainstalowane wymagane biblioteki:<\/h3>\n<pre>root@server:\/# <strong>pear install DB<\/strong><\/pre>\n<p>lub<\/p>\n<pre>root@server:\/# <code>apt-get install php-pear php-db<\/code><\/pre>\n<h3>6. Usuwamy niepotrzebne pliki:<\/h3>\n<pre>root@server:\/# <strong>cd \/usr\/share\/squirrelmail\/plugins\/<\/strong><\/pre>\n<pre>root@server:\/# <strong>rm change_sqlpass-3.3-1.2.tar.gz<\/strong><\/pre>\n<pre>root@server:\/# <strong>compatibility-2.0.14-1.0.tar.gz<\/strong><\/pre>\n<h3>7. Aktywujemy zainstalowany dodatek w konfiguracji squirrelmail:<\/h3>\n<pre>root@server:\/# <strong>squirrelmail-configur<\/strong><\/pre>\n<p>Wybieramy: 8<\/p>\n<p>Sprawdzamy jaka liczba jest na li\u015bcie <span style=\"color: #ff0000;\">Available Plugins<\/span> przy pozycji <span style=\"color: #ff0000;\">change_sqlpass<\/span> wpisujemy j\u0105 i wciskamy Enter:<\/p>\n<p>Na zako\u0144czenie konfiguracji wybieramy <span style=\"color: #ff0000;\">S<\/span> (zapis) i <span style=\"color: #ff0000;\">Q<\/span> (wyj\u015bcie).<\/p>\n<p>W tym momencie mo\u017cemy sprawdzi\u0107 czy z poziomu strony www u\u017cytkownicy mog\u0105 zmienia\u0107 has\u0142o do poczty.<\/p>\n<p>Mo\u017ce si\u0119\u00a0 zdarzy\u0107, \u017ce po zmianie has\u0142o, pomimo tego, \u017ce mamy zainstalowane wcze\u015bniej odpowiednie biblioteki wy\u015bwietla si\u0119 komunikat: <span style=\"color: #ff0000;\">Could not find Pear DB library<\/span>. MO\u017cna temu zaradzi\u0107 poprzez edycj\u0119 pliku konfiguracyjnego squirrelamail:<\/p>\n<pre>root@server:\/# <strong>vim \/etc\/squirrelmail\/apache.conf<\/strong><\/pre>\n<p>w pliku nale\u017c zakomentowa\u0107 poni\u017csze 2 linie:<\/p>\n<pre># php_value include_path .\r\n# php_admin_value open_basedir \/usr\/share\/squirrelmail:\/etc\/squirrelmail:\/var\/lib\/squirrelmail:\/etc\/hostname:\/etc\/mailname<\/pre>\n<p>Zamiast nich wstawiamy poni\u017cszy kod:<\/p>\n<pre>php_admin_value open_basedir \/usr\/share\/squirrelmail::\/etc\/squirrelmail:\/var\/lib\/squirrelmail:\/etc\/hostname:\/etc\/mailname:\/usr\/share\/php<\/pre>\n<p>Po zapisaniu pliku restartujemy apacha:<\/p>\n<pre>root@server:\/# <strong>service apache2 restart<\/strong><\/pre>\n<p>&nbsp;<\/p>\n<p>Je\u015bli po pomy\u015blnej zmianie has\u0142a w <span style=\"color: #ff0000;\">squirrelmail<\/span> przy wykorzystaniu pluginu <span style=\"color: #ff0000;\">change_sqlpass<\/span> wy\u015bwietla si\u0119 komunikat b\u0142edu:<\/p>\n<p><strong>This page request could not be verified and appears to have expired.<\/strong><\/p>\n<p>nale\u017cy dokona\u0107 modyfikacji w pliku <span style=\"color: #ff0000;\">\/usr\/share\/squirrelmail\/plugins\/change_sqlpass\/functions.php<\/span>. We fragmencie kodu jak poni\u017cej nale\u017cy zakomentowa\u0107 poni\u017csz\u0105 lini\u0119 zaznaczon\u0105 na czarno:<\/p>\n<pre>sqgetGlobalVar('csp_was_already_encrypted_port', $csp_was_already_encrypted_port, SQ_SESSION);\r\nsqgetGlobalVar('HTTP_HOST', $HTTP_HOST, SQ_SERVER);\r\nif (empty($base_uri)) $base_uri = sqm_baseuri();\r\n<span style=\"color: #000000;\">#$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=no';<\/span><\/pre>\n<p>nast\u0119pnie poni\u017cej wklejamy kod:<\/p>\n<pre>sqgetGlobalVar('csp_was_already_encrypted_port', $csp_was_already_encrypted_port, SQ_SESSION);\r\nsqgetGlobalVar('HTTP_HOST', $HTTP_HOST, SQ_SERVER);\r\nif (empty($base_uri)) $base_uri = sqm_baseuri();\r\n#$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=no';\r\n<span style=\"color: #000000;\">$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=no&amp;smtoken=' . sm_generate_security_token();<\/span><\/pre>\n<p>W kolejnym kroku przed lini\u0105 &lt;input type=&#8221;submit&#8221; &#8230; wstawiamy ukryty input:<\/p>\n<pre>&lt;td align=\"right\" colspan=\"2\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;input type=\"hidden\" name=\"csp_submit_change\" value=\"1\"&gt;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #000000;\">&lt;input type=\"hidden\" name=\"smtoken\" value=\"&lt;?php echo sm_generate_security_token(); ?&gt;\"&gt;<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;input type=\"submit\" value=\"&lt;?php echo _(\"Submit\"); ?&gt;\"&gt;<\/pre>\n<pre>Na zako\u0144czenie nale\u017cy zakomentowa\u0107 lini\u0119 zaznaczon\u0105 na czarno:<\/pre>\n<pre>if (!empty($csp_was_force_mode))\r\n      $loc = $base_uri . 'src\/right_main.php';\r\n\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #000000;\">\/\/$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=yes';<\/span><\/pre>\n<p>i poni\u017cej jej wklei\u0107 dodatkowy kod:<\/p>\n<pre>if (!empty($csp_was_force_mode))\r\n\u00a0\u00a0 $loc = $base_uri . 'src\/right_main.php';\r\nelse\r\n\u00a0\u00a0 \/\/$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=yes';\r\n\u00a0\u00a0 <span style=\"color: #000000;\">$loc = $base_uri . 'src\/options.php?optpage=xx&amp;optmode=submit&amp;csp_change_success=yes&amp;smtoken=' . sm_generate_security_token();<\/span><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Konfiguracja squirrelmail umo\u017cliwiaj\u0105ca u\u017cytkownikom zmian\u0119 has\u0142a poprzez interfejs www. 1. Pobieramy i instalujemy plugin do zmiany has\u0142a change_sqlpass: root@server:\/# cd \/usr\/share\/squirrelmail\/plugins\/ root@server:\/# wget http:\/\/squirrelmail.org\/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fchange_sqlpass-3.3-1.2.tar.gz root@server:\/# tar xvf change_sqlpass-3.3-1.2.tar.gz 2. Naprawiamy b\u0142\u0105d md5crypt poprzez odpowiedni\u0105 zmian\u0119 pliku function.php:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[281],"tags":[116,161,106],"yst_prominent_words":[],"_links":{"self":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/1602"}],"collection":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/comments?post=1602"}],"version-history":[{"count":5,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/1602\/revisions"}],"predecessor-version":[{"id":1604,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/posts\/1602\/revisions\/1604"}],"wp:attachment":[{"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/media?parent=1602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/categories?post=1602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/tags?post=1602"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.techmedia.pl\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=1602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}