The internet works with different rules, called protocols. These rules control
how devices connect, send data, and share information. One important protocol
is Simple Mail Transfer Protocol (SMTP), which manages sending and receiving
emails.
How SMTP Works:
1. Sending Email: When you send an email, your email service uses an
SMTP server to send it to the recipient's SMTP server.
2. Mail User Agent (MUA): This is where you write your email. It has
two parts: the header (sender, recipient, and subject) and the body (the
message).
3. Mail Transfer Agent (MTA): The MTA sends your email to the
recipient's email address. It uses the recipient's domain name (the part after
the @ symbol) to find their email server.
4. Mail Delivery Agent (MDA): The MDA receives the email from the MTA
and stores it in the recipient's mailbox, ready for them to read.
Setting up SMTP in Kali Linux:
To send emails in Linux, you need an MUA client to write the emails. The MTA
then sends these emails to the correct MDA (user mailbox).
MUA Software Installation: To install the mailx MUA client in Kali
Linux, you can use the following command:
sudo apt-get install bsd-mailx
This command will download and install the mailx package, allowing you to
use it as your MUA client.
You can install the mutt MUA client in Kali Linux using the following
command:
sudo apt-get install mutt
This command will download and install the mutt package, enabling you to use
it as your MUA client.
Installing MTA Software: Postfix and Exim are two well-known
applications used as MTA software. This article focuses on installing
Postfix and configuring it to work with Gmail SMTP.
Postfix Installation & Configuration
Kali Linux users can install Postfix using the command:
sudo apt-get install postfix
After installing the Postfix packages, a configuration window will appear
with the following options:
1. No configuration: Choose this option to keep the default Postfix
settings.
2. Internet Site: Select this option to send and receive emails using
SMTP. This is the second option in the configuration window.
You should select the "Internet Site" option to configure Postfix for
sending and receiving emails via SMTP.
Next, the system will ask for the mail name, which should be a complete domain
name to be used as the hostname. In this case, you should enter
"hackingloops.com".
Once you've completed the Postfix installation, the next step is to
configure Postfix to use Gmail's SMTP server. You can do this by editing
Postfix's main configuration file using the following command:
sudo nano /etc/postfix/main.cf
2. Scroll down to the end of the file and modify the following options:
mydestination: Set the domains used by Postfix for incoming emails:
mydestination = localhost.myhostname.com, , localhost
relayhost: Specify the Gmail SMTP server and port (587):
relayhost = [smtp.gmail.com]:587
mynetworks: Define which servers can relay through Postfix (use only
local IP addresses):
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
inet_interfaces: Specify which network interfaces can receive emails
(use loopback-only for security):
inet_interfaces = loopback-only
inet_protocols: Set the IP version supported by the server to IPv4:
inet_protocols = ipv4
home_mailbox: Specify a mailbox directory (Maildir) to store incoming
emails:
home_mailbox = Mail/
3. For secure authentication, add the following code at the end of the main
configuration file:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
4. Save the changes and exit the editor.
These configurations ensure that Postfix uses Gmail's SMTP server for
sending emails and applies necessary security measures.
In the previous code, we set the location to store passwords. Now, let's
create a file in that location:
Use this command:
sudo nano /etc/postfix/sasl/sasl_passwd
Since we're setting up Postfix for Gmail, enter your Gmail credentials in
this format:
[smtp.gmail.com]:587 gmail-address:password
To convert the sasl_passwd file into a database file, you can use the
postmap command. Here's how to do it:
sudo postmap /etc/postfix/sasl/sasl_passwd
This command will create a corresponding sasl_passwd.db file, which Postfix
will use to authenticate with the SMTP server.
After creating the database file, it's recommended to delete the original
`sasl_passwd` file. You can also restrict access to the database file
to only root users by executing the following commands:
chown root:root /etc/postfix/sasl/sasl_passwd.db
chmod 600 /etc/postfix/sasl/sasl_passwd.db
How to Launch Postfix SMTP?
Once you've finished configuring Postfix, you can start the server by using
the following command:
sudo postfix start
You can verify that Postfix is running on your machine by using the
following command:
sudo postfix status
Sending Email Using Postfix Gmail SMTP
Now, you can compose and send the email using your preferred email client. The
screenshot below shows the content of a test email sent to a Gmail account.
The email landed in the Gmail mailbox successfully.
Conclusion
Configuring an SMTP server on Kali Linux is crucial for various tasks. Tools
like the Metasploit framework often require an SMTP server to send payloads to
target users. Setting up Postfix with Gmail SMTP simplifies email handling and
enhances reliability. Additionally, most emails relayed through Gmail SMTP
using Postfix are delivered to the user mailbox rather than being flagged as
spam.