Configuring Samba for Windows file shares

Samba allows Windows machines to access shared areas of a Linux filesystem.

These notes are for configuration on a RedHat 9.0 linux installation and assume that the SMB services are already installed.

Startup

The two SMB daemons are /usr/sbin/smbd and /usr/sbin/nmbd. These are started from init.d.
Check if the smb service is already setup to run automatically from init.d with:

chkconfig --list

Look for SMB in this list for the level that you intend it to run at (eg 3= multiuser text mode)

If it is not in the list, add it with:

chkconfig --add smb

Configure the service to start with:
chkconfig smb on

To startup the services now (only have to do this once), use:

./etc/init.d/smb start

Configuration

Configuration is via the /etc/smb.conf file. Here is a sample basic config:

<code>
[global]
; Uncomment this if you want a guest account
; guest account = nobody
   log file = /var/log/samba-log.%m
   lock directory = /var/lock/samba
   share modes = yes
   encrypt passwords = yes
   smb passwd file = /etc/smbpasswd



[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mode = 0750

[tmp]
   comment = Temporary file space
   path = /tmp
   read only = no
   public = yes

</code>

Test the config using:
testparm – this validates that the file is correct.

Ensure ports 137, 138 and 139 are open on the Linux server. On my RedHat machine I config the firewall using Lokkit. Run this and to the list of open ports.

Further References:

Adding a Spam Blacklist filter to your Sendmail config

Add the following line to you sendmail.mc file use SpamCop’s email blacklist filter on your sendmail email server:


FEATURE(`dnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}')dnl

Regenerate your sendmail config with:

m4 sendmail.mc > sendmail.cf

then restart your sendmail server with

. /etc/init.d/sendmail restart

To block individual domains:

  • Edit /etc/mail/access
    <code>
    ...
    exmapledomain1.com    REJECT
    exampledomain2.com    REJECT
    ...
    

  • Convert access to access.db
    <code>
    makemap hash /etc/mail/access.db < /etc/mail/access
    </code>
  • Restart sendmail
    <code>
    # /etc/init.d/sendmail restart
    </code>

Resolving “mail loops back to self” issues with Sendmail

If you are getting local email (to local users, eg root) bounced back with errors stating ‘mail loops back to self’, ensure that the hostname and domainname map to localhost and localdomain respectively:

<code>
hostname localhost
domainname localdomain
</code>

If you set these to be a hostname or domainname that you have for your MX DNS entry, this seems to give the error ‘mail loops back to self’

Sendmail Configuration Basics

Sendmail configuration should be done in the /etc/mail/sendmail.mc file

To generate configuration changes, use the m4 macro processor:

<code>
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
</code>

To restart sendmail after making changes:

<code>
/etc/init.d/sendmail restart
</code>

Define the domainnames for which your mail server handles mail for in the /etc/mail/local-host-names file. For example, if you handle mail for example-abc.com, add this to the local-host-names file.
Restart sendmail after you make changes to this file.