======Install CUPS====== This page shows how to setup a print server on a CentOS 6.4 64-bit machine. =====Prerequisites===== You must have a CentOS machine already set up in accordance with the the [[linux:install_centos6|Install CentOS 6]] guide. =====Install SAMBA===== You must first follow [[Install_SAMBA| these steps]] to install SAMBA. This is a copy of our working print server 'printer' /etc/samba/smb.conf file. [global] unix charset = UTF-8 dos charset = CP932 workgroup = EXAMPLE-DOMAIN netbios name = PRINTER server string = Samba Server Version %v interfaces = lo eth0 172.16.0.0/24 hosts allow = hosts allow = 127. 172.16. log file = /var/log/samba/log.%m max log size = 50 security = share passdb backend = tdbsam load printers = yes cups options = raw [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = yes writable = no printable = yes =====Generate SSL Certificate===== su - cd /etc/pki/tls/certs openssl genrsa -out server.key 2048 openssl req -new -x509 -days 1825 -key server.key -out server.crt -subj "/C=GB/ST=County/L=City/O=Company/OU=IT/CN=`hostname -s`" chmod 400 server* =====Install CUPS===== yum -y install cups cups-libs =====Edit CUPS===== su - vi /etc/cups/cupsd.conf Line 18 Listen localhost:631 to Listen 631 From line 31 # Restrict access to the server... Order allow,deny Allow 172.16.0.0/16 # Restrict access to the admin pages... Order allow,deny Allow 172.16.0.0/16 # Restrict access to configuration files... AuthType Default Require user @SYSTEM Order allow,deny Allow 172.16.0.0/16 Add to the end of the file ServerCertificate /etc/pki/tls/certs/server.crt ServerKey /etc/pki/tls/certs/server.key Here is a copy of our working /etc/cups/cupsd.conf file MaxLogSize 0 # # "$Id: cupsd.conf.in 8805 2009-08-31 16:34:06Z mike $" # # Sample configuration file for the CUPS scheduler. See "man cupsd.conf" for a # complete description of this file. # # Log general information in error_log - change "warn" to "debug" # for troubleshooting... LogLevel warn # Administrator user group... SystemGroup sys root # Only listen for connections from the local machine. Listen 631 Listen /var/run/cups/cups.sock # Show shared printers on the local network. Browsing On BrowseOrder allow,deny BrowseAllow all BrowseLocalProtocols CUPS dnssd # Default authentication type, when authentication is required... DefaultAuthType Basic # Restrict access to the server... Order allow,deny Allow 172.16.0.0/16 # Restrict access to the admin pages... Order allow,deny Allow 172.16.0.0/16 # Restrict access to configuration files... AuthType Default Require user @SYSTEM Order allow,deny Allow 172.16.0.0/16 # Set the default printer/job policies... # Job-related operations must be done by the owner or an administrator... Require user @OWNER @SYSTEM Order deny,allow Allow 172.16.0.0/16 # All administration operations require an administrator to authenticate... AuthType Default Require user @SYSTEM Order deny,allow # All printer operations require a printer operator to authenticate... AuthType Default Require user @SYSTEM Order deny,allow # Only the owner or an administrator can cancel or authenticate a job... Require user @OWNER @SYSTEM Order deny,allow Order deny,allow # Set the authenticated printer/job policies... # Job-related operations must be done by the owner or an administrator... AuthType Default Order deny,allow AuthType Default Require user @OWNER @SYSTEM Order deny,allow # All administration operations require an administrator to authenticate... AuthType Default Require user @SYSTEM Order deny,allow # All printer operations require a printer operator to authenticate... AuthType Default Require user @SYSTEM Order deny,allow # Only the owner or an administrator can cancel or authenticate a job... AuthType Default Require user @OWNER @SYSTEM Order deny,allow Order deny,allow # # End of "$Id: cupsd.conf.in 8805 2009-08-31 16:34:06Z mike $". # ServerCertificate /etc/pki/tls/certs/server.crt ServerKey /etc/pki/tls/certs/server.key =====Open Firewall===== iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT service iptables save service iptables restart =====Start CUPS===== su - chkconfig cups on service cups start https://server:631/admin =====Add CUPS Printer===== This is just random stuff we have as notes for adding CUPS printers. cupsctl --share-printers cupsctl --share-printers --remote-any cupsctl BrowseRemoteProtocols=cups iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 631 -j ACCEPT service iptables save service iptables restart