[PREVIOUS CHAPTER]
[NEXT CHAPTER]
4 Remote Maintenance/Administration
See the file "help-admin" for more details on commands used in remote.
4.1 Introduction
FML provides remote maintenance/administration, which implies remote
control of member lists, files. In default FML accepts the control
command mail from an address listed in $ADMIN_MEMBER_LIST and desires
password (password authentication). You can use PGP authentication and
use this without authentication (only From: address check is applied).
It is useful to use "makefml" to initialize a maintainer password and
add a member to maintainers. For PGP authentication you need to use
"makefml" to prepare PGP configurations since FML assumes each mailing
list has each PGP pubrings. For it makefml uses each PGPPATH for each
ML.
SMTP (Simple Mail Transfer Protocol) cannot certify who are you. We
cannot trust password authentications since the password is plain
text and the mail is not encrypted, so some people read error mails or
files in mqueue spool. Using the "Approval: password" field in a
header is out of discussion.
In that sense I do not recommend remote maintenance. But actually such
needs exist. So FML provides them.
PGP authentication is better than others.
FYI: draft-myers-smtp-auth-11.txt ?
4.2 For More security
Firstly, remote maintenance should not be used :-). Secondly in lower
layer, you must use more secure tools. For example, It may be better
to use "ssh" to log in a remote host or to execute "makefml" remotely.
$DIR/etc/password for each ML's password file is crypted for a little
little more security. In default the encryption is traditional "crypt"
$REMOTE_ADMINISTRATION_AUTH_TYPE = "crypt"; (default)
The encryption of this file uses "md5" If you set
$REMOTE_ADMINISTRATION_AUTH_TYPE = "md5";
To edit $DIR/etc/password it is better to use "makefml passwd ML".
4.3 Enable Remote Administration Mode
You can use "makefml". To enable remote administration, configure in
config.ph
$REMOTE_ADMINISTRATION = 1;
You can control these variables with "makefml".
In default, remote administration requests both address and password
authentication. It is defined as
$REMOTE_ADMINISTRATION_AUTH_TYPE = "crypt";
If only address authentication is enough (NOT RECOMMENDED), set
$REMOTE_ADMINISTRATION_AUTH_TYPE = "address";
$REMOTE_ADMINISTRATION_AUTH_TYPE is one of them
address From: address authentication.
crypt From: address + password authentication.
etc/passwd is crypted.
md5 From: address + password authentication.
etc/passwd is md5-crypted.
4.4 Admin Command
To do remote maintenance, commands for it has the following syntax
admin command command-options
or
approve password command command-options
If $REMOTE_ADMINISTRATION_AUTH_TYPE is "crypt" or "md5", commands
begin with the authentication line.
admin pass password
If $REMOTE_ADMINISTRATION_AUTH_TYPE is "pgp", the command mailbody is
clear-signed.
"approve" syntax is explained in the next section.
Example:
admin pass password
admin addadmin fukachan@sapporo.iij.ad.jp
admin add fukachan@sapporo.iij.ad.jp
4.5 Approve Password Command Syntax
"admin" format is once authenticated, FML requests no more password.
e.g.
admin pass password
admin addadmin fukachan@sapporo.iij.ad.jp
The following "approve password" format corresponds to the line
above
approve password addadmin fukachan@sapporo.iij.ad.jp
This is added for listserv style compatibility.
4.6 Remote Administration Configurations
The list of remote maintainers is
$ADMIN_MEMBER_LIST = "$DIR/members-admin";
The help file for remote administration is
$ADMIN_HELP_FILE = "$DIR/help-admin";
The authentication type is
$REMOTE_ADMINISTRATION_AUTH_TYPE = "crypt";
or
$REMOTE_ADMINISTRATION_AUTH_TYPE = "md5"; (perl 5 only)
The password file of authentication (crypt or md5 case) is
$PASSWD_FILE = "$DIR/etc/passwd";
4.7 Add or remove remote maintainers (except for PGP)
See Chapter ../encryption 4.0 for the PGP case. When add
fukachan@sapporo.iij.ad.jp as a remote maintainer
In the case of "only address authentication", (not need password)
admin addadmin fukachan@sapporo.iij.ad.jp
If both address and password authentication, an administrator needs to
initialize password for fukachan@sapporo.iij.ad.jp.
admin addadmin fukachan@sapporo.iij.ad.jp
admin initpass fukachan@sapporo.iij.ad.jp password
It is better to set up password using makefml.
% makefml passwd ML fukachan@sapporo.iij.ad.jp
4.8 Remove a remote maintainer
admin byeadmin fukachan@sapporo.iij.ad.jp
4.9 Administraion commands list
Please see help-admin.
admin pass password
admin password password
admin passwd new-password
admin initpass address password
admin help
admin log
admin add address
admin off address
admin on address
admin bye address
admin chaddr old-addr new-addr
admin change old-addr new-addr
admin change-address old-addr new-addr
admin skip address
admin addadmin address
admin addpriv address
admin byeadmin address
admin byepriv address
admin dir
admin ls options
admin remove filename
admin get filename
admin resend filename address
admin put filename
admin rename filename1 filename2
admin newinfo
admin newguide
admin unlink-article ID
admin remove-article ID
admin pgp options
4.10 Add or remove remote commands
The definitions is very similar to usual %Procedure.
1 If @PermitAdminProcedure, FML disables all commands and permits
commands defined in it. If not defined, %AdminProcedure (default)
is used which is automatically set in the first phase of FML
command routine
2 %LocalAdminProcedure overwrites %AdminProcedure.
3 If @DenyAdminProcedure is defined, remove commands defined in
@DenyAdminProcedure from %Procedure.
4 Evaluate $ADMIN_COMMAND_HOOK
* permit only "admin help" and "admin addadmin".
@PermitAdminProcedure = ('admin:help', 'admin:addadmin');
* add my "admin hack" command. You need to define
ProcAdminHack somewhere (e.g. in config.ph).
%LocalAdminProcedure = ('admin:hack', 'ProcAdminHack');
* Disable "admin addadmin".
@DenyAdminProcedure = ('admin:addadmin');
4.11 Initialize a password
To initialize the "address"'s password,
makefml passwd <ML> address options
Of course this method requires you can log in the ML server host.
4.12 Change a password remotely
admin pass password
admin passwd new-password
If "approve" command style,
approve password present-password new-password
4.13 Send Welcome Message Automatically When 'Admin Add' Runs.
$ADMIN_ADD_SEND_WELCOME_FILE = 1; (default 0)
4.14 Restriction on addresses to register
$REGISTRATION_ACCEPT_ADDR restricts acceptable addresses to
register both in automatic registration and remote administration.
Example 1;
$REGISTRATION_ACCEPT_ADDR = 'domain.co.jp';
Example 2;
$REGISTRATION_ACCEPT_ADDR = 'domain1.co.jp|domain2.co.jp';
4.15 Remote Administration Mode And Address Multiple Matchings
For user commands, FML requests the exact matching of multiple
matching addresses. For example consider the following two addresses
fukachan@aoi.chan.panic
fukachan@uja.aoi.chan.panic
FML cannot distinct that fukachan@aoi.chan.panic is the same as or
another person of fukachan@uja.aoi.chan.panic? (the address has only
an additional hostname?)
If non-remote administration mode, FML recursively tries to select one
address of them with recursive severe checks of domain levels (reverse
domain levels from root "."). So FML tries the address identification
like
fukachan@panic 1 level
fukachan@chan.panic 2 level
fukachan@aoi.chan.panic 3 level
fukachan@uja.aoi.chan.panic 4 level
...
If check level is 3, FML thinks that fukachan@aoi.chan.panic and
fukachan@uja.aoi.chan.panic is the same address.
If FML do 4 level check, they differs.
Let you are fukachan@aoi.chan.panic and send a command "unsubscribe"
with the mail header "From: fukachan@aoi.chan.panic".
If two addresses
fukachan@aoi.chan.panic
fukachan@uja.aoi.chan.panic
is in a member list, FML cannot remove fukachan@aoi.chan.panic since
both matches fukachan@aoi.chan.panic in 3 levels. In this case the
command fails. So removing it by (maintainer's) hand is required.
In remote administration mode, it is not useful. So one command
admin bye fukachan@aoi.chan.panic
can remove both addresses since FML permits multiple matchings in this
case.
4.16 Which files you can replace in remote?
For security arbitrary files should not be replaced remotely. The
flies listed in @REMOTE_RECONFIGURABLE_FILES can be replaced under
remote commands.
In default @REMOTE_RECONFIGURABLE_FILES has
$INDEX_FILE $WHOIS_DB
$ADMIN_MEMBER_LIST $ADMIN_HELP_FILE
$PASSWD_FILE $LOG_MESSAGE_ID
$MEMBER_LIST $ACTIVE_LIST
$OBJECTIVE_FILE $GUIDE_FILE
$HELP_FILE $DENY_FILE
$WELCOME_FILE $CONFIRMATION_FILE
$LOGFILE $MGET_LOGFILE
$SMTPLOG $SUMMARY_FILE
$SEQUENCE_FILE $MSEND_RC
$LOCK_FILE
$FILE_TO_REGIST
$FTP_HELP_FILE $WHOIS_HELP_FILE
@ACTIVE_LIST @MEMBER_LIST
To add files,
push(@REMOTE_RECONFIGURABLE_FILES, "$DIR/file-to-add");
When you use commands, please use the relative full path of file name
under $DIR!
4.17 On Logfile
FML uses $LOGFILE for 'admin' commands log. You need to rewrite the
code directly.
4.18 version up from very old FML
*** not translated ***
[PREVIOUS CHAPTER]
[NEXT CHAPTER]