本文试验环境是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工具包。
[root@RHEL5 /]#rpm –qa |grep 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配置文件。
① 将“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目录下。
查看系统的services中是否将tcp的901添加了进去。
如果/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登入的方式就是:
http://192.168.120.241:901
登入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中输入: 图二十:使用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 ③ 重新启用inetd。 查看inetd进程ID。 [root@RHEL5.2 /]#ps aux |grep inetd 结束inetd进程,让inetd重新读取inetd.conf文件。