CUPS - Print Server
The primary mechanism for Ubuntu printing and print services is the
Common UNIX Printing System (CUPS).
This printing system is a freely available, portable printing layer
which has become the new standard for printing in most Linux
distributions.
CUPS manages print jobs and queues and provides network printing using
the standard Internet Printing Protocol (IPP), while offering support
for a very large range of printers, from dot-matrix to laser and many
in between. CUPS also supports PostScript Printer Description (PPD) and
auto-detection of network printers, and features a simple web-based
configuration and administration tool.
Installation
To install CUPS on your Ubuntu computer, simply use sudo with the apt-get
command and give the packages to install as the first parameter. A
complete CUPS install has many package dependencies, but they may all be
specified on the same command line. Enter the following at a terminal
prompt to install CUPS:
sudo apt-get install cups
Upon authenticating with your user password, the packages should be downloaded
and installed without error. Upon the conclusion of installation, the CUPS server
will be started automatically.
For troubleshooting purposes, you can access CUPS
server errors via the error log file at: /var/log/cups/error_log.
If the error log does not show enough information to troubleshoot any problems you
encounter, the verbosity of the CUPS log can be increased by changing the LogLevel directive in the configuration file (discussed below)
to "debug" or even "debug2", which logs everything, from the default of "info". If
you make this change, remember to change it back once you've solved your problem, to
prevent the log file from becoming overly large.
Configuration
The Common UNIX Printing System server's behavior is configured through the
directives contained in the file /etc/cups/cupsd.conf.
The CUPS configuration file follows the same syntax as the primary configuration
file for the Apache HTTP server, so users familiar with editing Apache's
configuration file should feel at ease when editing the CUPS configuration
file. Some examples of settings you may wish to change initially will be
presented here.
Prior to editing the configuration file, you should make a copy of
the original file and protect it from writing, so you will have the original
settings as a reference, and to reuse as necessary.
Copy the /etc/cups/cupsd.conf file and protect it
from writing with the following commands, issued at a terminal prompt:
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.original sudo chmod a-w /etc/cups/cupsd.conf.original
-
ServerAdmin: To configure the email address of the designated administrator of the CUPS server, simply edit the /etc/cups/cupsd.conf configuration file with your preferred text editor, and add or modify the ServerAdmin line accordingly. For example, if you are the Administrator for the CUPS server, and your e-mail address is 'bjoy@somebigco.com', then you would modify the ServerAdmin line to appear as such:
ServerAdmin bjoy@somebigco.com
-
Listen: By default on Ubuntu, the CUPS server installation listens only on the loopback interface at IP address 127.0.0.1. In order to instruct the CUPS server to listen on an actual network adapter's IP address, you must specify either a hostname, the IP address, or optionally, an IP address/port pairing via the addition of a Listen directive. For example, if your CUPS server resides on a local network at the IP address 192.168.10.250 and you'd like to make it accessible to the other systems on this subnetwork, you would edit the /etc/cups/cupsd.conf and add a Listen directive, as such:
Listen 127.0.0.1:631 # existing loopback Listen Listen /var/run/cups/cups.sock # existing socket Listen Listen 192.168.10.250:631 # Listen on the LAN interface, Port 631 (IPP)
In the example above, you may comment out or remove the reference to the Loopback address (127.0.0.1) if you do not wish cupsd to listen on that interface, but would rather have it only listen on the Ethernet interfaces of the Local Area Network (LAN). To enable listening for all network interfaces for which a certain hostname is bound, including the Loopback, you could create a Listen entry for the hostname socrates as such:Listen socrates:631 # Listen on all interfaces for the hostname 'socrates'
or by omitting the Listen directive and using Port instead, as in:Port 631 # Listen on port 631 on all interfaces
For more examples of configuration directives in the CUPS server
configuration file, view the associated system manual page by entering the
following command at a terminal prompt:
man cupsd.conf
Whenever you make changes to the /etc/cups/cupsd.conf configuration file, you'll need to restart the CUPS server by typing the following command at a terminal prompt:
sudo /etc/init.d/cups restart
Web Interface
CUPS can be configured and monitored using a web interface, which by default is available at http://localhost:631/admin. The web interface can be used to perform all printer management tasks.
In order to perform administrative tasks via the web interface, you
must either have the root account enabled on your server, or
authenticate as a user in the lpadmin group. For security reasons, CUPS won't authenticate a user that doesn't have a password.
To add a user to the lpadmin group, run at the terminal prompt:
sudo usermod -aG lpadmin username
Further documentation is available in the Documentation/Help tab of the web interface.
Email Services
The process of getting an email from one person to another over a network or
the Internet involves many systems working together. Each of these systems
must be correctly configured for the process to work. The sender uses a Mail
User Agent (MUA), or email client, to send the message through one or more
Mail Transfer Agents (MTA), the last of which will hand it off to a Mail Delivery Agent (MDA) for delivery to the
recipient's mailbox, from which it
will be retrieved by the recipient's email client, usually via a POP3 or IMAP server.
Postfix
Postfix is the default Mail Transfer Agent (MTA) in Ubuntu. It
attempts to be fast and easy to administer and secure. It is
compatible with the MTA sendmail. This section explains how
to install and configure postfix. It also explains how to
set it up as an SMTP server using a secure connection (for sending emails securely).
This guide does not cover setting up Postfix Virtual Domains, for information
on Virtual Domains and other advanced configurations see References.
Installation
To install postfix run the following command:
sudo apt-get install postfix
Simply press return when the installation process asks questions,
the configuration will be done in greater detail in the next stage.
Basic Configuration
To configure postfix, run the following command:
sudo dpkg-reconfigure postfix
The user interface will be displayed. On each screen, select the following
values:
- Internet Site
- mail.example.com
- steve
- mail.example.com, localhost.localdomain, localhost
- No
- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
- 0
- +
- all
Replace mail.example.com with the domain for which you'll
accept email, 192.168.0.0/24 with the actual network and class
range of your mail server, and steve with the appropriate username.
Now is a good time to decide which mailbox format you want to use. By default
Postfix will use mbox for the mailbox format.
Rather than editing the configuration file directly,
you can use the postconf command to configure
all postfix parameters. The
configuration parameters will be stored in
/etc/postfix/main.cf file. Later if you
wish to re-configure a particular parameter, you can either
run the command or change it manually in the file.
To configure the mailbox format for Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
This will place new mail in /home/username/Maildir so
you will need to configure your Mail Delivery Agent (MDA) to use the same path.
SMTP Authentication
SMTP-AUTH allows a client to identify itself through an authentication mechanism (SASL).
Transport Layer Security (TLS) should be used to encrypt the authentication process.
Once authenticated the SMTP server will allow the client to relay mail.
-
Configure Postfix for SMTP-AUTH using SASL (Dovecot SASL):
sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth-client' sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
The smtpd_sasl_path configuration is a path relative to the Postfix queue directory. -
Next, generate or obtain a digital certificate for TLS. See Certificates for details. This example also uses a Certificate Authority (CA). For information on generating a CA certificate see Certification Authority.MUAs connecting to your mail server via TLS will need to recognize the certificate used for TLS. This can either be done using a certificate from a commercial CA or with a self-signed certificate that users manually install/accept. For MTA to MTA TLS certficates are never validated without advance agreement from the affected organizations. For MTA to MTA TLS, unless local policy requires it, there is no reason not to use a self-signed certificate. Refer to Creating a Self-Signed Certificate for more details.
-
Once you have a certificate, configure Postfix to provide TLS encryption for both incoming and outgoing mail:
sudo postconf -e 'smtp_tls_security_level = may' sudo postconf -e 'smtpd_tls_security_level = may' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'myhostname = mail.example.com'
-
If you are using your own Certificate Authority to sign the certificate enter:
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'Again, for more details about certificates see Certificates.
After running all the commands, Postfix is configured for SMTP-AUTH
and a self-signed certificate has been created for TLS encryption.
Now, the file /etc/postfix/main.cf
should look like this.
The postfix initial configuration is complete. Run
the following command to restart the postfix daemon:
sudo /etc/init.d/postfix restart
Configuring SASL
Postfix supports two SASL implementations Cyrus SASL and Dovecot SASL. To enable Dovecot SASL
the dovecot-common package will need to be installed. From a terminal prompt
enter the following:
sudo apt-get install dovecot-common
Next you will need to edit /etc/dovecot/dovecot.conf. In the auth default
section uncomment the socket listen option and change the following:
socket listen {
#master {
# Master socket provides access to userdb information. It's typically
# used to give Dovecot's local delivery agent access to userdb so it
# can find mailbox locations.
#path = /var/run/dovecot/auth-master
#mode = 0600
# Default user/group is the one who started dovecot-auth (root)
#user =
#group =
#}
client {
# The client socket is generally safe to export to everyone. Typical use
# is to export it to your SMTP server so it can do SMTP AUTH lookups
# using it.
path = /var/spool/postfix/private/auth-client
mode = 0660
user = postfix
group = postfix
}
}
In order to let Outlook clients use SMTP-AUTH, in the auth default
section of /etc/dovecot/dovecot.conf add "login":
mechanisms = plain login
Once you have Dovecot configured restart it with:
sudo /etc/init.d/dovecot restart
Mail-Stack Delivery
Another option for configuring Postfix for SMTP-AUTH is using the
mail-stack-delivery package (previously packaged as dovecot-postfix).
This package will install
Dovecot and configure Postfix to use it
for both SASL authentication and as a Mail Delivery Agent (MDA). The package also configures
Dovecot for IMAP, IMAPS, POP3, and POP3S.
You may or may not want to run IMAP, IMAPS, POP3, or POP3S on your mail server. For example,
if you are configuring your server to be a mail gateway, spam/virus filter, etc. If this is
the case it may be easier to use the above commands to configure Postfix for SMTP-AUTH.
To install the package, from a terminal prompt enter:
sudo apt-get install mail-stack-delivery
You should now have a working mail server, but there are a
few options that you may wish to further customize. For example, the
package uses the certificate and key from the ssl-cert package, and in a production environment you should
use a certificate and key generated for the host. See Certificates for more details.
Once you have a customized certificate and key for the host, change the following options in /etc/postfix/main.cf:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
Then restart Postfix:
sudo /etc/init.d/postfix restart
Testing
SMTP-AUTH configuration is complete. Now it is time to test the setup.
To see if SMTP-AUTH and TLS work properly, run the following
command:
telnet mail.example.com 25
After you have established the connection to the postfix mail
server, type:
ehlo mail.example.com
If you see the following lines among others, then everything
is working perfectly. Type quit to exit.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Troubleshooting
This section introduces some common ways to determine the cause if problems arise.
Escaping chroot
The Ubuntu postfix package will by default install into a chroot
environment for security reasons. This can add greater complexity when troubleshooting problems.
To turn off the chroot operation locate for the following line in the
/etc/postfix/master.cf configuration file:
smtp inet n - - - - smtpd
and modify it as follows:
smtp inet n - n - - smtpd
You will then need to restart Postfix to use the new configuration. From a terminal prompt enter:
sudo /etc/init.d/postfix restart
Log Files
Postfix sends all log messages to /var/log/mail.log.
However error and warning messages can sometimes get lost in the normal log output so they are also logged to
/var/log/mail.err and /var/log/mail.warn respectively.
To see messages entered into the logs in real time you can use the tail -f
command:
tail -f /var/log/mail.err
The amount of detail that is recorded in the logs can be increased.
Below are some configuration options for increasing the log level
for some of the areas covered above.
-
To increase TLS activity logging set the smtpd_tls_loglevel option to a value from 1 to 4.
sudo postconf -e 'smtpd_tls_loglevel = 4' -
If you are having trouble sending or receiving mail from a specific domain you can add the domain to the debug_peer_list parameter.
sudo postconf -e 'debug_peer_list = problem.domain' -
You can increase the verbosity of any Postfix daemon process by editing the /etc/postfix/master.cf and adding a -v after the entry. For example edit the smtp entry:
smtp unix - - - - - smtp -v
It is important to note that after making one of the logging changes above the Postfix process will need to be reloaded
in order to recognize the new configuration: sudo /etc/init.d/postfix reload
-
To increase the amount of information logged when troubleshooting SASL issues you can set the following options in /etc/dovecot/dovecot.conf
auth_debug=yes auth_debug_passwords=yes
Just like Postfix if you change a Dovecot configuration the process will need to be
reloaded: sudo /etc/init.d/dovecot reload.
Some of the options above can drastically increase the amount
of information sent to the log files. Remember to return the log level
back to normal after you have corrected the problem. Then reload the
appropriate daemon for the new configuration to take affect.
References
Administering a Postfix server can be a very complicated task. At some point you may
need to turn to the Ubuntu community for more experienced help.
A great place to ask for Postfix assistance, and get involved with the Ubuntu Server community,
is the #ubuntu-server IRC channel on freenode. You
can also post a message to one of the Web Forums.
For in depth Postfix information Ubuntu developers highly recommend:
The Book of Postfix.
Finally, the Postfix website also has great documentation on all
the different configuration options available.
Also, the Ubuntu Wiki Postifx page has more information.
0 komentar:
Posting Komentar