First up, a new user called samba_logs will be adding to the system. From this user, the server machine will be able to hook up to the log directory via Samba. This user will not have neither a personal directory within home nor a shell.
[root@client ~]# useradd -d /dev/null -s /sbin/nologin samba_logs
In turn, this user will also be used to create an ACL (Access Control List) on the /var/log directory, granting read permissions to that user.
[root@client ~]# setfacl -R -m d:u:samba_logs:r /var/log/
[root@client ~]# getfacl /var/log/
...
default:user:samba_logs:r--
...
Then the samba package will be installed and configured.
[root@client ~]# yum install samba
[root@client ~]# cat /etc/samba/smb.conf
[global]
...
hosts allow = 192.168.1.
...
[logs]
comment = Log directory
path = /var/log
read only = yes
valid users = samba_logs
Finally, the samba service will be restarted and marked as persistent. Furthermore, the user will be added to the local smbpasswd file.
[root@client ~]# service smb restart
[root@client ~]# chkconfig smb on
[root@client ~]# smbpasswd -a samba_logs
So as to shield the server by iptables, the following rules will be set into the /etc/sysconfig/iptables file (Samba uses the ports 137, 138 and 139 TCP/UDP).
[root@client ~]# cat /etc/sysconfig/iptables
...
-A RH-Firewall-1-INPUT -s server.local -p tcp --dport 137:139 -j ACCEPT
-A RH-Firewall-1-INPUT -s server.local -p udp --dport 137:139 -j ACCEPT
...
[root@client ~]# service iptables restart
Remember that is important to keep SELinux and TCP wrappes on. In order SELinux to let read the exported files, it is necessary to activate the variable samba_export_all_ro.
[root@client ~]# getenforce
Enforcing
[root@client ~]# setsebool -P samba_export_all_ro on
And below you can observe the configuration for iptables.
[root@client ~]# cat /etc/sysconfig/iptables
...
-A RH-Firewall-1-INPUT -s server.local -p tcp --dport 137:139 -j ACCEPT
-A RH-Firewall-1-INPUT -s server.local -p udp --dport 137:139 -j ACCEPT
-A RH-Firewall-1-INPUT -s server.local -p tcp --dport 445 -j ACCEPT
...
Now we can try out that everything is properly configured by running the next command on server.
[root@server ~]# yum install samba-client cifs-utils
[root@server ~]# smbclient -U samba_logs -L client.local
Enter samba_logs's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
Sharename Type Comment
--------- ---- -------
logs Disk Log directory
IPC$ IPC IPC Service (Samba Server Version 3.5.10-125.el6)
samba_logs Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.10-125.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
No comments:
Post a Comment