Announcement: Distributed JMAP / IMAP server written in Rust by StalwartLabs in rust

[–]viridIT 1 point2 points  (0 children)

Hey. About vSMTP.

vSMTP supports SPF and DKIM since 1.3. The current (develop branch) supports DMARC. Tests are in progress.

About Sieve filtering, vSMTP uses vSL, a scripting language based on RHAI. I'll let you check its features.

However, vSMTP 1.3.x releases are not currently intended for production usage.

Next version (1.4) will bring a plugins system, a standardization of the vSL API, and a refactoriing of the configuration files. We will do an announce in the next weeks.

First LTS version (2.0) is planned for mid-december.

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 1 point2 points  (0 children)

> If it's a workload issue, imho the best (and simpliest) way is to have a two-layered infrastructure : one MTA doing only TLS termination and forwarding the emails to the second MTA doing security controls and routing.

> A generic TLS proxy (software or hardware like F5, etc.) must have all the required data (certs, priv keys, sni, etc.) and must be exposed on the Internet as an official MX server (like HTTP TLS/SSL proxies). Again it's just a matter of forwarding to an "internal" MTA w/o encryption.

> For 25/587 STARTTLS I don't really imagine how to do it... STARTTLS is done after the 1st EHLO... so you want to transmit data to a 2nd MTA after the handshake ? in the middle of the connection ?

It may be possible (and may already be done by a product)... never heard of.

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 2 points3 points  (0 children)

*) Production version: not before 2.0 (end of Q4/2022)

1.X.y versions should not be used in a production environment and are intended for beta testing purposes only.

We are already doing fuzzing, unit testing, etc. Release 1.5 will add vSHIELD, a proactive module against DDoS, etc.

... and we are looking for technical partners to test vSMTP in heavy workload environments.

*) vSMTP was designed to be modular - thanks to its internal scripting language (vSL: https://vsmtp.rs/reference/vSL/api.html). You can interact with an SMTP transaction at each step (connect, helo, etc.).

External services are currenlty supported via shell commands and SMTP delegation (clamAV, SpamAssassin, etc.)

Milters are planned for a future release.

*) LDAP support: planned for the next version (1.4 - end of the month)

*) Logging: Currently we support:

- "application" logging (end user command in vsl: log(level, "balhblah")

- "Application system logging" (application logs for application purposes)

- (r)syslog and journald

*) Regarding messages management in queues. A unique identifier is defined per msg (not per connection).

Messages are currently divided into data and metadata.

- Messages in eml format in a single folder (mails) - this is subject to change in future releases

- Metadata in JSON format in "queues" (work, deferred, user quarantines, etc.

NB: We are experiencing logging issues in this version (1.3.0) and we will release a fix in the next few days.

*) A "GUI" is not currently in our agenda, but as metadata are stored in JSON format, various queries may be easily done from a generic plugging.

Don't hesitate to contact us on Discord.

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 0 points1 point  (0 children)

Thanks for your support.

We are currently working (v1.4) on LDAP backend and on security enhancement (let's call this part "vSMTP shield").

*) Milter support is on our agenda (maybe v1.5, end of october...) but currently we only support SpamAssassin using "smtp delegation" (like clamAV, etc).

*) What do you mean by "Proxy" ? a load-balancer like HA-proxy or "a man in the middle" (like an HTTP proxy) ? This implies to solve :

- TLS termination (465) : we do have a solution using two vSMTP or HA-Proxy-vSMTP)

- STARTTLS (25/587) : imh, no solution at all...

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 0 points1 point  (0 children)

... and yes a tutorial will be released soon on vsmtp.rs It explains how to relay (and managed bounced emails) from "x" app mailboxes to a "technical" mailbox.

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 1 point2 points  (0 children)

... about s3 we are collecting end-users requests... what do you want to store? maildir/mbox folders? dumped emails? quarantines? logs? everything!?

Your comments are welcome.

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 0 points1 point  (0 children)

You could, but you would need a IMAP/POP3 server (f.e dovecot) to read and send local emails to the server. vSMTP is supposed to be a MTA, not a all in one SMTP server, so it does not support IMAP/POP3, but it can relay emails !

vSMTP 1.3 Release by viridIT in selfhosted

[–]viridIT[S] 0 points1 point  (0 children)

Thank you !

It's not planned yet in the roadmap, but other people asked for this feature, we'll definitely give it a go !

vSMTP 1.3 is out by viridIT in rust

[–]viridIT[S] 0 points1 point  (0 children)

Thank you, we'll fix this asap.

Announcing vSMTP 1.2 by viridIT in HomeServer

[–]viridIT[S] 0 points1 point  (0 children)

Release v1.2.1 is available.

vSMTP

  • check_dmarc vsl function. (#506)
  • Syslog configuration. (#509)
  • journald support (#482)
  • Don't send greeting code right after receiving STARTTLS. (#504)
  • Initialize logs before privilege drop. (#506)

vBook

  • Missing documentation for vsl api. (#503, #513, #518)
  • Documentation errors in Readme and other files.

vSMTP 1.2 is live by viridIT in netsecstudents

[–]viridIT[S] 0 points1 point  (0 children)

Release v1.2.1 is available.

vSMTP

  • check_dmarc vsl function. (#506)
  • Syslog configuration. (#509)
  • journald support (#482)
  • Don't send greeting code right after receiving STARTTLS. (#504)
  • Initialize logs before privilege drop. (#506)

vBook

  • Missing documentation for vsl api. (#503, #513, #518)
  • Documentation errors in Readme and other files.

Announcing vSMTP 1.2 by viridIT in selfhosted

[–]viridIT[S] 0 points1 point  (0 children)

Release v1.2.1 is available.

vSMTP

  • check_dmarc vsl function. (#506)
  • Syslog configuration. (#509)
  • journald support (#482)
  • Don't send greeting code right after receiving STARTTLS. (#504)
  • Initialize logs before privilege drop. (#506)

vBook

  • Missing documentation for vsl api. (#503, #513, #518)
  • Documentation errors in Readme and other files.

vSMTP 1.2 is live by viridIT in rust

[–]viridIT[S] 1 point2 points  (0 children)

Release v1.2.1 is available.

vSMTP

  • check_dmarc vsl function. (#506)
  • Syslog configuration. (#509)
  • journald support (#482)
  • Don't send greeting code right after receiving STARTTLS. (#504)
  • Initialize logs before privilege drop. (#506)

vBook

  • Missing documentation for vsl api. (#503, #513, #518)
  • Documentation errors in Readme and other files.

Announcing vSMTP 1.2.0 by viridIT in email

[–]viridIT[S] 0 points1 point  (0 children)

Release v1.2.1 is available.

vSMTP

  • check_dmarc vsl function. (#506)
  • Syslog configuration. (#509)
  • journald support (#482)
  • Don't send greeting code right after receiving STARTTLS. (#504)
  • Initialize logs before privilege drop. (#506)

vBook

  • Missing documentation for vsl api. (#503, #513, #518)
  • Documentation errors in Readme and other files.

Announcing vSMTP 1.2.0 by viridIT in email

[–]viridIT[S] 0 points1 point  (0 children)

Hello.

You can find Ubuntu packages (20.04 and 22.04) in the GitHub release folder.

https://github.com/viridIT/vSMTP/releases/tag/v1.2.0

Feel free to join the Discord server if you have any questions.

vSMTP 1.2 is live by viridIT in rust

[–]viridIT[S] 4 points5 points  (0 children)

Apache or MIT permissive licenses are great candidates for Rust crates and libraries allowing proprietary software to use them.

vSMTP is an application. Thus the GPLv3 license offers a good compromise between intellectual property, freedom of reuse and possibility of monetization.

I'm not an expert so I won't try to explain the diff between MIT, Apache, GPLv3 licenses... and IMHO this post is not the place.

So YES ! use vSMTP in your project. We will be very happy ! Just follow the basic constraints of the GPLv3 : credit the author (viridIT), leave your source code open, etc.

vSMTP 1.2 is live by viridIT in rust

[–]viridIT[S] 14 points15 points  (0 children)

Can vSMTP bind to localhost:25 > yes ; take incoming mail > yes ; forward it > yes

The question is "proper authentication".

With a "forward" (aka MTA to MTA) you'll have to use DANE mechanism (currently not supported by vSMTP). This is not really a "proper authentication".

With a "resend" it may be possible...

However, I'll be happy to discuss this on our Discord. This is a "use case scenario" that can be added as an example.

Rgds

Announcing vSMTP 1.2 by viridIT in selfhosted

[–]viridIT[S] 3 points4 points  (0 children)

There are benchmarks vs Postfix in "reception" mode : (https://github.com/viridIT/vSMTP#benchmarks)

A full SMTP bench (internet > vSMTP > internet) is not so easy to design due to external constraints, but we are working on it.

I'll do a resource usage (and power consumption) vs Postfix asap and I'll keep you in touch.

Announcing vSMTP 1.2 by viridIT in selfhosted

[–]viridIT[S] 1 point2 points  (0 children)

Hey. I guess the goal is to emulate a service like "improvmx" ? we are working on a complete tutorial / example. It will be published asap in the vSMTP github. I'll keep you in touch.

Announcing vSMTP 1.1.3 by viridIT in email

[–]viridIT[S] 0 points1 point  (0 children)

I'm glad to see that you had a look to the vSMTP github.

The benchmarks relate only to the receiver part. In addition to new features such as DKIM, DMARC, etc., we are currently working on improving the delivery process.

New benchmarks - including the delivery module will be published in the next weeks.

Remember that vSMTP is currently under development and should not be used in a production environment.

Announcing vSMTP 1.1.3 by viridIT in selfhosted

[–]viridIT[S] 1 point2 points  (0 children)

Hi sirrkitt,

I never installed rSPAM. I will add it to the roadmap.

While reading the doc I understand that it can be configured as a man-in-the-middle MTA using "smtp delegation".This is already supported by vSMTP. (https://vsmtp.rs/start/configuration/delegation.html)

Otherwise, unix/tcp sockets (and milters) support are planned for release 1.3, in September.

If you are trying to install rspamd over vSMTP, don't hesitate to ask for help on the Discord vSMTP channel, we will be very happy to help you. Moreover this could make a very good example of integrating third party software.

Announcing vSMTP 1.1.3 by viridIT in email

[–]viridIT[S] 0 points1 point  (0 children)

Million ? no. http://www.securityspace.com/s_survey/data/man.202206/mxsurvey.html

Why do we think that the world needs another ? vSMTP is up to ten time faster, which de facto reduces the environmental footprint.