Multi-Protocol Remote Login

Current Version: 0.3.0.
Author: Arturo 'Buanzo' Busleiman
(english version follows)

MPRL es una utilidad de 'login', digamos, ya que se lo configura a traves del parametro --login del mingetty, o similar. MPRL recibe lo que el usuario ingresa en el prompt de login:, lo analiza, y realiza logins remotos o locales, dependiendo de lo ingresado. Utiliza una sintaxis del estilo [protocolo:]usuario[@host][:puerto]. Entonces, por ejemplo, admitirá este tipo de 'logins':

  • buanzo - Login local normal. Se deriva a /bin/login
  • - En este caso toma al protocolo ssh por defecto. Se deriva a /usr/bin/ssh

Te invito a que visites la pagina del proyecto en Freshmeat.

Por supuesto, podés bajar el tarball del programa directamente aquí.

MPRL is, let's say, a 'login' utility, as it is configured thru the mingetty's --login parameter , or similar. MPRL gets and analyzes what the user types at the login: prompt, then it performs a remote or local login request. It syntax follows the [protocol:]user[@host][:port] fashion. These are valid 'logins':

  • buanzo - Normal local login: /bin/login gets called.
  • - SSH protocol by default: /usr/bin/ssh gets called

Feel free to drop by the project's Freshmeat page.

Of course, you can just download the tarball from here.

Changelog, Changelog


It does finally work


* Multiple bugs fixed. No vulnerability yet, anyway. All of them related to strncpy, missing memset's and such. File: buennoc.[ch]

+ Implemented an error-detecting and reporting malloc* routine, called buennoc. (yeah, funny, isn't it?). It does also set the memory to zero. By the way, the name of the function was an idea of my friend, Alan Schmidt.

+ Added some error codes to parse_mprl_conf(). It's because a prototype was modified to add a referenced variable which contains an error code. Defined in parser.h


AKA MPRL Revolutions


* Another bug. Related to the same bug in 0.2.0. So, yeah, 0.2.0-fixed was some kind of a Murphy's Law thing, you know. Omar Shariff and the damned Muñeco Mateyko!

+ Added cp/chown/chmod mprl.conf to Makefile's install target.


Onebugfix release - (also called "0.2.0-fixed")


* This should have been 0.2.0, but I missed a bug I introduced while testing an idea and forgot to clean it. It had to do with the onlylocal=1 variable, set when the mprl.conf is checked and a NULL whicp parameter is provided for this.


Major feature enhancements

+ MPRL's protocols can now be configured! Yeah! Check /etc/mprl.conf after "make install". Following versions will NOT overwrite /etc/mprl.conf when "make install" happens.

+ If NO protocol is defined, and if you installed mprl on every tty, it will ONLY allow local logins.

I Guess bugs will be reported from this version and on. I'm waiting!


Minimal feature enhancements / decisions.

+ mprl unlinks ~mprl/.ssh/known_hosts before execing ssh.

Modified from 0.1.2's TODO file: "I've decided to stick to my "ugly workaround", back from 0.1.2 which unlinked ~mprl/.ssh/known_hosts before execing() ssh.

The administrator then may add signatures globally, if he wants to, just adding the key from ~mprl/.ssh/known_hosts to the global one.(/usr/local/etc or /etc).

+ Added a "-q" command line parameter to quieten mprl's output.

+ Enabled telnet protocol. Uses the "-l" telnet parameter, which tries automatic login to the remote host with the provided username. Of course, it still asks for the password.

+ "make install-user" adds mprl user and group. IT IS NOT done by plain "make install" !!

+ "make hello" asks a couple of questions, then sends the author a nice message from you :) - Uses "mail" command and generates a bin/report file.


Add-ons, cleanup, tuning, bugfix

+ print_execfamily_error() function - its name says it all

+ print_mprl_version() function - Shows the program name, author, etc.

+ User interface beautified a bit.

+ GNU GPL source file disclaimer added to *.[ch] (How stupid from me to forget that!).

+ Tuning of the ssh parameters. Added -a to avoid ssh-agent. Check TODO.

+ Added "hostname" parameter to the exec() when doing ssh WITH port number.

- Removed "-V" command line parameter. Useless in this case.

+ ~mprl/.ssh/known_hosts are killed() before running ssh

+ Added "install" target to Makefile. Does not add mprl user and group.


Minimal changes/bugfixes

+ sleep() after error messages, as they will usually appear after hitting on login: prompts :)

+ will always accept LOCAL (i.e /bin/login) logins, no matter if the mprl user and group do exist. For people who install mprl on every tty without testing it on a pair :P


Initial Release

Announcement: on Freshmeat.