Re: server side filter plugin problem
Paul Lesniewski <[email protected]> Thu, 27 Jun 2013 01:26:00 -0700
| Newsgroups | gmane.mail.squirrelmail.plugins |
|---|---|
| Message-ID | <CAHog114Mmi=S8T7yQEuWpRojBZ3qNJQtYddQMACNEGyk6km5Qw@mail.gmail.com> |
On Thu, Jun 27, 2013 at 1:00 AM, Bu Xiaobing <[email protected]> wrote: > On 2013-6-27 15:58, Bu Xiaobing wrote: >> On 2013-6-27 15:50, Paul Lesniewski wrote: >>> On Thu, Jun 27, 2013 at 12:36 AM, Bu Xiaobing <[email protected]> wrote: >>>> On 2013-6-27 15:14, Paul Lesniewski wrote: >>>>> On Thu, Jun 27, 2013 at 12:09 AM, Bu Xiaobing <[email protected]> wrote: >>>>>> On 2013-6-25 7:14, Paul Lesniewski wrote: >>>>>>>> I think the problem with setgroups(0, NULL): Operation not permitted has >>>>>>>> been resolved. >>>>>>> >>>>>>> If you don't say *how* -- explain carefully what you changed, what >>>>>>> your current settings are, then you leave us to guess. This is >>>>>>> frustrating and you are less likely to receive any help this way. >>>>>>> >>>>>>>> At the first time I set >>>>>>>> 'SUID_LOCATION' => array('VALUE' => >>>>>>>> '/var/www/html/webmail/plugins/server_settings_backend/suid_backend/squirrelmail_server_settings_suid_backend'), >>>>>>>> >>>>>>>> I find in the /var/www/html/webmail/plugins/server_settings_backend also has >>>>>>>> a squirrelmail_server_settings_suid_backend, and the file permission is >>>>>>>> -rwsr-xr-x. >>>>>>>> >>>>>>>> So I change the SUID_LOCATION value to >>>>>>>> /var/www/html/webmail/plugins/server_settings_backend/squirrelmail_server_settings_suid_backend >>>>>>> >>>>>>> The only examples I can find point to the server_settings_backend >>>>>>> directory. The copy of the suid_wrapper in the suid_backend directory >>>>>>> shouldn't be used in your configuration. (I believe this is your >>>>>>> oversight, unless you can point out where there was a misleading >>>>>>> example.) >>>>>>> >>>>>>>> But get another error "Remote file name cannot contain "/"" in the >>>>>>>> /var/log/httpd/error_log. >>>>>>> >>>>>>> This is good in general. If you really need directory traversal >>>>>>> (why?), read the docs on how to compile the suid wrapper. And once >>>>>>> again, READ THE DOCS **BEFORE** you ask for help. >>>>>>> >>>>>>>> And if I set "$ssf_debug_server_settings_backend = 1" in the >>>>>>>> server_side_filters/config.php, and after I click "Options->Message Filters" >>>>>>>> on the web browser, the web page only display the following message: >>>>>>>> >>>>>>>> Unable to retrieve file from command >>>>>>>> "/var/www/html/webmail/plugins/server_settings_backend/squirrelmail_server_settings_suid_backend >>>>>>>> 'localhost' 'buxiaobing' 'get_file' '/home/buxiaobing/.mailfiter' >>>>>>>> '/var/local/squirrelmail/attach/xo4HqZ6WpSq6iUazfx1TLAmw3SEg6p9D'" >>>>>>>> >>>>>>>> Can't understand why will it retrieve the >>>>>>>> /var/local/squirrelmail/attach/xo4HqZ6WpSq6iUazfx1TLAmw3SEg6p9D file and >>>>>>>> this file is not exist. >>>>>>>> >>>>>>>> >>>>>>>> Bu Xiaobing >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> Thanks for your help. I read the server_settings_backend/docs/SUID_BACKEND_ERRORS >>>>>> and find the problems and it works now! >>>>> >>>>> Thanks for reading the docs. I'd just caution you again *against* >>>>> allowing directory traversal. There is no reason you should need that >>>>> and it is less secure. >>>>> >>>> >>>> Do you mean I should not use SUID backend? >>> >>> I never said such a thing. >>> >>>> For now, I need SUID to save a kickoff file .forward >>>> which contains "|exec /usr/bin/procmail || exit 75" at /home/USER, >>> >>> Let the wrapper obtain the user home directory. The SquirrelMail side >>> (the filters plugin) should only pass the name of the file (.forward) >>> and no path information. >>> >>>> So I can invoke procmail to do filter. And I compiled SUID >>>> with --enable-auth=imap to do authentication. >>> >>> >> >> I think I do as you suggest, the following is my server_side_filters/config.php >> >> $filtering_kickoff_file = array( >> 'BACKEND' => 'local_file', >> 'ACCESS_TYPE' => array('VALUE' => 'SUID'), >> 'SUID_LOCATION' => array('VALUE' => '/var/www/html/webmail/plugins/server_settings_backend/squirrelmail_server_settings_suid_backend'), >> 'FILE' => array('VALUE' => '.forward'), >> 'PARSE_PATTERN' => array('VALUE' => '#^(\"\|exec /usr/bin/procmail \|\| exit 75\")$#m'), >> 'NEW_SETTING_TEMPLATE' => array('VALUE' => "\"|exec /usr/bin/procmail || exit 75\"\n"), >> 'PATTERN_GROUP_NUMBER' => array('VALUE' => 1), >> 'MAX_SEQUENTIAL_EMPTY_LINES' => 3, >> 'TREAT_AS_EMPTY_WHEN_NOT_FOUND' => array('VALUE' => 1), >> // un-comment the following to add to the top of existing files >> //'ADD_TO_TOP' => array('VALUE' => 1), >> ); >> >> Bu Xiaobing > > And this: > > $filter_rules_storage_info = array( > 'BACKEND' => 'local_file', > 'ACCESS_TYPE' => array('VALUE' => 'SUID'), > 'SUID_LOCATION' => array('VALUE' => '/var/www/html/webmail/plugins/server_settings_backend/squirrelmail_server_settings_suid_backend'), > 'FILE' => array('VALUE' => '.procmailrc'), Yup, good job. :-) > 'PARSE_PATTERN' => array('VALUE' => "/^(.*)$/s"), > 'PATTERN_GROUP_NUMBER' => array('VALUE' => 1), > 'NEW_SETTING_TEMPLATE' => array('VALUE' => '%1'), > 'DELETE_WHEN_EMPTY' => array('VALUE' => 1), > 'TREAT_AS_EMPTY_WHEN_NOT_FOUND' => array('VALUE' => 1), > 'SUID_DEBUG_OUTPUT' => array('VALUE' => '/tmp/squirrelmail_server_settings_backend_suid_debug'), > ); > -- Paul Lesniewski SquirrelMail Team Please support Open Source Software by donating to SquirrelMail! http://squirrelmail.org/donate_paul_lesniewski.php ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev ----- squirrelmail-plugins mailing list Posting guidelines: http://squirrelmail.org/postingguidelines List address: [email protected] List archives: http://news.gmane.org/gmane.mail.squirrelmail.plugins List info (subscribe/unsubscribe/change options): https://lists.sourceforge.net/lists/listinfo/squirrelmail-plugins