本文试验环境是RHEL5.2+samba-swat-3.0.28。Server的IP是192.168.120.241。
1. swat介绍
SWAT:The Samba WEB Administration Tool
SWAT是Samba的图形化管理工具。我们可以通过浏览器利用swat工具来设置samba。在swat中每一个samba参数都有相应的帮助文件或解释文件,很适合初学者。
SWAT工具嵌套在xinetd超级守护进程中,要通过启用xinetd进程来启用swat。因此要先安装xinetd工具包,然后安装swat工具包。
2. 安装xinetd
如图一,查看系统是否安装了xinetd工具包。
图一:查看系统是否安装了xinetd
如果未安装,挂载系统盘安装即可。
[root@RHEL5 /]#mount /dev/cdrom /mnt/cdrom
[root@RHEL5 /]#rpm –ivh /mnt/cdrom/Servers/xinetd-2.3.14- 10.el5.i386.rpm
3. 安装swat
如图二,查看系统是否安装了swat工具包。
[root@RHEL5 /]#rpm –qa |grep swat
图二:查看系统是否安装了swat
如果未安装,挂载系统盘安装即可。
[root@RHEL5 /]#rpm –ivh /mnt/cdrom/Servers/samba-swat-3.0.28-0.el5.8.i386.rpm
4. 编辑swat配置文件
因为swat是xinetd超级守护进程的一个子进程,所以swat工具配置文件在xinetd目录中。我们要设置swat配置文件,开启此子进程,以便在启用xinetd进程是来启用swat。swat配置文件在/etc/xinetd.d目录中。
如图三,在xinetd.d目录中查看swat文件。
图三:swat配置文件在xinetd.d目录下
如图四:编辑swat配置文件。
① 将“only_from=127.0.0.1”改成“only_from=0.0.0.0”,这样该服务器就可以监听所有的来访IP。
② 将“disable=yes”改成“disable=no”,这样swat子进程就可以随xinetd超级守护进程一起启动了。可以吃用chkconfig命令查看swat是否启用了。
③ swat默认使用tcp的901端口。“port=901”,可以修改。
④ 通过web来配置samba,默认使用root账号进入。“user=root”,可以修改成其他的系统用户。
⑤ swat的执行程序默认在/usr/sbin目录下。
图四:编辑后的swat配置文件
如图五,查看系统的services中是否将tcp的901添加了进去。
图五:在/etc/services中查看tcp901
如果/etc/services文件中没有tcp901,那么就编辑该文件,添加“swat 901/tcp”即可。
5. 启动swat
因为swat是xinetd的子进程,所以只要启用了xinetd,那么swat也就会伴随xinetd启动。
图六:重启xinetd
图七:使用chkconfig查看swat状态
6. 防火墙设置
关闭防火墙或者开启swat相关端口。
【关闭防火墙】
[root@RHEL5 /]#service iptables stop
【开启swat901端口,直接写入INPUT链,重启iptables会丢失】
[root@RHEL5 /]#iptables -I INPUT -p tcp --dport 901 -j ACCEPT
【开启swat901端口,通过编辑“RH-Firewall-1-INPUT”自定义链来打开,配置不会丢失】
[root@RHEL5 /]#vi /etc/sysconfig/iptables
加入:-A RH-Firewall-1-INPUT -p tcp --dport 901 -j ACCEPT
【关闭SELinux】
[root@RHEL5 /]#vi /etc/sysconfig/selinux
设置“SELINUX=disabled”
7. 使用web登入SWAT
如果访问swat的端口没有改变,那么通过web登入的方式就是:[url]http://192.168.120.241:901[/url]。
图八:登入swat,注意加默认端口901
然后输入用户名和密码,如果进入swat的用户没有改变,那么默认就是root账号。
图九:输入有权访问swat的账号,默认为root
正常进入swat的登陆页面,可以看到有8个选项。
图十:swat页面格式
8. 通过swat配置samba
在swat页面我们可以看到有8个选项,每个选项可以配置samba的不同功能。
HOME:Samba相关程序及文件说明。
GLOBALS:设置Samba的全局参数。
SHARES:设置Samba的共享参数。
PRINTERS:设置Samba的打印参数。
WIZARD:Samba配置向导。
STATUS:查看和设置Samba的服务状况。
VIEW:查看Samba的文本配置文件,即smb.conf。
PASSWORD:设置Samba用户,可以修改密码,新建删除用户。
① HOME:介绍Samba的相关程序和文件及其使用方法
Daemons:进程,service smb start启动smbd和nmbd。
smbd - the SMB daemon
nmbd - the NetBIOS nameserver
winbindd - the winbind daemon
Configuration Files:配置文件,默认在/etc/samba目录下
smb.conf - the main Samba configuration file
lmhosts - NetBIOS hosts file
smbpasswd - SMB password file
Administrative Utilities:Samba管理工具
smbcontrol - send control messages to Samba daemons
smbpasswd - managing SMB passwords
SWAT - web configuration tool
net - tool for administration of Samba and remote CIFS servers
pdbedit - Samba user account management tool
tdbbackup - Tool for backing up TDB databases
Client Tools:Samba客户端工具
rpcclient - command line MS-RPC client
smbtar - SMB backup tool
smbclient - command line SMB client
smbmnt - helper utility for mounting SMB filesystems on Linux hosts
smbmount - user space tool for mounting SMB filesystems under Linux
smbumount - user space tool for umounting SMB filesystems under Linux
ntlm_auth - allow external programs to use NTLM authentication
smbcquotas - get or set quotas on NTFS 5 shares
smbspool - Send a print job to an SMB printer
smbtree - Text-based SMB network browsing
Diagnostic Utilities:Samba测试工具
smbstatus - monitoring Samba
testparm - validating your config file
nmblookup - NetBIOS name query tool
wbinfo - Tool for getting winbind information
Misc. Utilities:其他工具
profiles - migrating profiles from one domain to another
log2pcap - generate pcap files from samba log files
② GLOBALS:设置Samba的全局参数,即smb.conf文件的[global]。
在GLOBALS中,分为Basic(基本的)和Advanced(高级的,完全的)两个选项。
图十一:GLOBALS选项的Basic和Advanced子选项
在Basic选项中可以设置Samba的基本参数。
在每个参数项中有很多的参数可以设置。
Base Options:基础选项
Secutity Options:安全选项
Logging Options:日志选项
Protocol Options:协议选项
Browse Options:浏览选项
WIINS Options:wins选项
EventLog Options:系统日志选项
Winbind Options:winbind选项
在Advanced选项中可以设置Samba的高级参数。
Advanced在Basic的基础上又有一些参数项可供设置,并且每个参数项又有很多参数可供选择。
Tunning Options:系统运行选项
Printing Options:打印选项
Filename Handing:文件名处理
Domain Options:domain选项,在security=domain时,该参数项中参数才生效
Locking Options:锁定选项
Ldap Options:LDAP选项
Miscellaneous Options:杂项
VFS module options:VFS模块选项
在设置完这些参数后,要记得“Commit Changes”保存配置。“Reset Values”是恢复到缺省值。
图十二:设置完参数后记得保存
每个参数项里面的参数就不细说了,都有帮助。
③ SHARES:设置Samba的共享参数
在SHARES中,也分为Basic和Advanced两个选项。
如下图,可以选择共享,可以删除共享,可以创建共享。
图十三:SHARE选项的功能按钮
④ PRINTERS:设置Samba的打印共享参数
它的设置和SHARES一样。
图十四:PRINTER选项的功能按钮
⑤ WIZARD:Samba设置向导
如下图,可以看到Samba的三种类型:独立服务、域成员、域控制器
图十五:WIZARD选项的功能按钮
⑥ STATUS:查看和设置Samba服务状况
在这个选项中可以启动和停止samba服务,可以查看活动的连接、共享,打开的文件等。
如下图,有Active Connections、Active Shares、Open Files等选项。
图十六:STATUS选项的面板
⑦ VIEW:查看Samba的配置文件,即同“cat /etc/samba/smb.conf”
如下图,是我的samba的简单配置
图十七:VIEW选项中查看samba的配置
⑧ PASSWORD:密码设置
在这个选项中,可以新建用户,设置或更改密码。
如下图,“Change Password:更改密码”、“Add New User:新建用户”、“Delete User:删除用户”、“Disable User:锁定用户”、“Enable User:解锁被锁定用户”。
图十八:PASSWORD选项的功能按钮
9. 通过SSL使用安全的SWAT
默认情况下用户在登陆SWAT时,传输的密码是明文的,这样有极大的安全隐患。现在可以通过SSL来加密验证密码。
基本步骤:
① 安装OpenSSL工具。
[root@RHEL5 /]#rpm -qa |grep openssl
openssl-devel-0.9.8b-10.el5
openssl-0.9.8b-10.el5
[root@RHEL5 /]#rpm -qa |grep stunnel
stunnel-4.15-2
② 创建证书和密钥。
[root@RHEL5 /]#openssl req –new –x509 –days 365 –nodes –out /etc/stunnel/stunnel.pem –keyout /etc/stunnel/stunnel.pem
可以照着下面的填写或者直接一路回车。
Country Name (2 letter code) [GB]:CN
State or Province Name (full name) [Berkshire]:guangdong
Locality Name (eg, city) [Newbury]:shenzhen
Organization Name (eg, company) [My Company Ltd]:olym
Organizational Unit Name (eg, section) []:tech
Common Name (eg, your name or your server's hostname) []:bob
Email Address []:bob@126.com
③ 从xinetd中移除swat。
第一种方法:关闭swat子进程。
[root@RHEL5 /]#vi /etc/xinetd.d/swat
修改“disable=yes”
[root@RHEL5 /]#service xinetd restart
[root@RHEL5 /]#chkconfig –list |grep swat
图十九:swat已关闭
OK,swat已经关闭了。
第二种方法:直接停掉xinetd超级进程。
[root@RHEL5 /]#service xinetd stop
[root@RHEL5 /]#chkconfig --level 35 xinetd off
④ 启动stunnel服务。
[root@RHEL5 /]#stunnel3 –p /etc/stunnel/stunnel.pem –d 901 –l /usr/sbin/swat swat
在执行stunnel3时报错:wrong permissions on /etc/stunnel/stunnel.pem,提示权限问题。
将stunnel.pem的权限修改成600即可,不过报这个错不影响打开swat。为了不报这个讨厌的错误,我们还是把stunnel.pem的权限改成600吧。
[root@RHEL5 /]#chmod 600 /etc/stunnel/stunnel.pem
⑤ 将stunnel3写入到rc.local中,以便随系统一起启动。
vi /etc/rc.d/rc.local
添加:stunnel3 –p /etc/stunnel/stunnel.pem –d 901 –l /usr/sbin/swat swat
⑥ 使用https安全访问swat。
在web中输入:[url]https://192.168.120.241:901[/url]即可安全进入,不过在打开页面时会提示证书未经过验证,这个不用理会,直接进入即可。
输入登入swat的路径,注意是https,并且要加端口901。
图二十:使用https登入swat
在登入时,会提示此网站安全证书有问题,不用理会,直接点击“继续浏览此网站(不推荐)”即可。
图二十一:提示证书未经CA验证
弹出密码框,输入用户名root和密码确定后即可进入swat。此时这个密码会被加密传输。
图二十二:输入登入swat的用户名和密码
OK,正常并且安全的进入swat了。那就继续你的samba设置吧。
图二十三:安全的进入swat
10. 使用inetd超级进程启用SWAT
inetd是老版本Linux的超级守护进程,现在新版Linux使用的xinetd是inetd的升级版。
在此,假如你的Server装的是inetd,那么我们就配置inetd来启用swat。主要是通过配置inetd.conf文件来达到管理其他子进程的目的。
基本步骤:
① 编辑inetd.conf文件来启用swat。
[root@RHEL5.2 /]#vi /etc/inetd.conf
加入:swat stream tcp nowait.400 root /usr/sbin/swat swat
② 编辑services文件加入tcp901。
[root@RHEL5.2 /]#vi /etc/services
加入:swat 901/tcp
③ 重新启用inetd。
查看inetd进程ID。
[root@RHEL5.2 /]#ps aux |grep inetd
结束inetd进程,让inetd重新读取inetd.conf文件。
[root@RHEL5.2 /]#kill -HUP inetd进程ID
④ 访问swat。
在web中输入[url]http://192.168.120.241:901[/url]即可访问swat了。