« August 2003 | 首页 | December 2003 »
November 18, 2003
apache服务器实现用户验证
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.5ilinux.com/apache03.html
--------------------------------------------------------------------------------
关键字 apache htpasswd .htaccess AllowOverride AuthConfig 用户验证
apache服务器实现用户验证
apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证。大家只要跟着我一步步做下来就应该能轻松实现用户验证。
前期准备,必须已经安装apache,如果还没安装,或者对安装很模糊的话,请先预习http://www.5ilinux.com/apache01.html
第1步:
我们在/var/www(apache的主页根目录)下建立一个test目录
mkdir /var/www/test
第2步
然后我们编辑httpd.conf
添加
Alias /test"/var/www/test"
Options Indexes MultiViews
AllowOverride AuthConfig #表示进行身份验证
Order allow,deny
Allow from all
#AllowOverride AuthConfig 表示进行身份验证 这是关键的设置
第3步
在/var/www/test创建.htaccess文件
vi /var/www/test/.htaccess
AuthName "frank share web"
AuthType Basic
AuthUserFile /var/www/test/.htpasswd
require valid-user
#AuthName 描述,随便写
#AuthUserFile /var/www/test/.htpasswd
#require valid-user 或者 require user frank 限制是所有合法用户还是指定用户
#密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。
第4步
就是创建apache的验证用户
htpasswd -c /var/www/test/.htpasswd frank
#第一次创建用户要用到-c 参数 第2次添加用户,就不用-c参数
如果你们想修改密码,可以如下
htpasswd -m .htpasswd frank
第5步:
ok,重启apache服务,然后访问 http://你的网站地址/test 如果顺利的话,应该能看到一个用户验证的弹出窗口,只要填入第4步创建的用户名和密码就行
后话,为了服务器的性能,一般不推荐使用AllowOverride AuthConfig或者AllowOverride ALL,因为这会使服务器会不断的去寻找.htaccess,从而影响服务器的效能,一般我们把一些后台管理界面或者其他特殊目录可能需要加验证这个需求。
由 frank 发表于 5:46 AM
November 17, 2003
Samba3.0轻松搞定PDC域服务器
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.5ilinux.com/samba01.html
Fedora Core 1服务器调试手记<二>
关键字 linux samba fedora smb PDC smbclient smbpasswd 域控制器
Samba3.0轻松搞定PDC域服务器
前面我们已经讲了关于samba服务器如何充当一个局域网的文件服务器,以满足平时的工作需要,在看本文档之前,大家最好先看看那篇文档《Samba3.0服务器实战调试》(http://www.5ilinux.com/samba.html),大家只有领会了那篇文档以后,再来看用samba实现PDC就不死很困难了。
其实早在samba2.2版本已经能非常好的支持samba做PDC(主域控制器),只不过到了3.0对域的支持更加好,到现在为止最新的版本3.0,已经支持AD,并且支持Microsoft Kerberos 认证、完全重写和可配置的认证子系统等新功能。
好了,我们来开始今天的任务,我们今天只是实现简单的域控制器PDC的建立,至于他支持的AD和Kerberos等功能大家慢慢的自己去研究,我也不是很懂哦:)
1。安装samba,这个很简单了,如果你是fedora,就可以从光盘直接安装samba的rpm包。
rpm -ivh samba-3.0.0-15.i386.rpm
大家也可以直接到samba的官方网站(http://www.samba.org)去下载最新的软件包
或者下载最新的tar包,http://us1.samba.org/samba/ftp/samba-3.0.0.tar.gz
那就最好按下面的方法编译
tar zvxf samba-3.0.0.tar.gz
cd samba-3.0.0
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--libexecdir=/usr/libexec \
--datadir=/usr/share/samba \
--sysconfdir=/etc/samba \
--localstatedir=/usr/local/samba/var \
--libdir=/usr/lib \
--with-lockdir=/var/locks/samba \
--with-swatdir=/usr/share/samba/swat \
--with-codepagedir=/etc/samba/codepages \
--with-configdir=/etc/samba \
--with-smbwrapper \
--with-automount \
--with-smbmount \
--with-pam \
--with-pam_smbpass \
--with-winbindmake
make intall
ok!安装完以后,下面才是我们的重点,修改/etc/samba/smb.conf,大家最好在原来的基础上修改。
[global]
workgroup = bmit
netbios name = proxy
server string = Samba PDC running %v
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192# 这里的workgroup = bmit就代表bmit域,当然如果用bmit.com那就更加规范,但为了客户端输入的方便,还是直接bmit的好,netbios name = proxy表示这台服务器的netbios名,socket options选项设置控制 TCP/IP 性能。所显示的设置就可以与基于 Linux 的系统一起很好地工作了。
os level = 64
preferred master = yes
local master = yes
domain master = yes#domain master 选项是一个“开关”,通告 Samba 将成为主域控制器。(local master browser)是维护局域网机器列表的服务器被称为本地主浏览器。
security = user
encrypt passwords = yes
domain logons = yes
log file = /var/log/samba/log.%m
log level = 2
max log size = 50
hosts allow = 127.0.0.1 192.168.1.0/255.255.255.0#这里我们还是使用user验证方式,不要悬在所谓的domain,至于hosts allow大家可以根据自己的需求写那些网段可以访问你的服务器,或者索性不写也行。
logon home = \\%L\%U\.profile
logon drive = H:
logon path = \\%L\profiles\%U
logon script = netlogon.bat#以上是漫游设置和登录脚本,logon path = \\%L\profiles\%U,会于下面我们要说的 [profiles] 共享成对应关系。
[homes]
comment = Home Directories
browseable = no
writeable = yes[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700[netlogon]
comment = Network Logon Service
path = /home/netlogon
read only = yes
browseable = no
write list= root以上是关于共享的手腕子,其中profile是用来存放每个登录用户的设置文件,以便用户以后登录可以从服务器读取以前的桌面设置,netlogon是用来存放登录脚本的,所以要限制写的权限,假设这里只有root用户可以有权限。
至于其他共享,完全可以参照《Samba3.0服务器实战调试》(http://www.5ilinux.com/samba.html)这篇文章共享设置,我就不再重复讲了
接着是将用户和机器帐户添加到域控制器。
先建立创建了下列各组以及创建两个必要目录,并设置正确的所有权。
groupadd admin
groupadd machines
mkdir -m 0775 /home/netlogon
chown root.admins /home/netlogon
mkdir /home/samba /home/samba/profiles
chown 1757 /home/samba/profiles
对上述目录设置正确的权限和所有权是保护服务器的关键一步哦 :)
手工添加机器帐号
比如我的客户端的机器名是ibm240,那么我们可以这么做
useradd -g machines -d /dev/null -c "machine id" -s /bin/false ibm240$
passwd -l ibm240$
输入两遍密码;
不要忘记标上美元符号;这是必需的,它将该项标识为信任帐户
创建 linux 帐户后,我们现在可以将该机器添加到 /etc/samba/smbpasswd
smbpasswd -a -m ibm240
当然你也可以让系统自动添加机器帐号,用下面的方法,不过大家最好先试手动添加,成功后再试验系统自动添加
自动添加只要在[global]添加
add user script = /usr/sbin/useradd -d /dev/null -g machines -s /bin/false -M %u
添加用户帐号
首先添加的是root帐户,把root加入到smb帐户中
smbpasswd -c root
这一步很重要,因为后面的加入域要用到有管理员的帐号加入域的权限,否则用普通用户好像不能顺利加入域
然后添加普通用户
useradd frank
passwd frank
smbpasswd -a frank
为了方便以后的管理,最好smb的用户密码和unix系统密码一样,这样我们还可以用到samba的密码同步功能
#下面的选项语句将允许用户从 Windows 客户机上更改他们的 Samba 密码,这样会随即更新他们的 UNIX 密码以与新的 Samba 项相匹配。但是如果更改了 UNIX 密码,那么同一技术不能逆向工作;必需手工同步更改 Samba 密码。也是在[global],初学者可以先不做这个工作。
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *Enter*new*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *passwd: *all*authentication*tokens*updated*successfully*#上述语句中唯一值得一提的是 passwd chat 选项,不管这里如何显示它,都要将它输入成一行。还要注意有些选项使用“password”,而有些使用“passwd”。
Samba PDC 的配置就这样完成了。剩下唯一要做的是将客户机加入到域中。记得重启samba服务哦!
客户端的设置,这里由于条件的限制,我只试验了windows2000客户端加入域,至于winxp和win98的加入大家自己去试验。
(win200机器最好先重启一下,可以避免一些不必要的问题)然后转至 控制面板 -> 网络-> 网络标示,如果机器目前被配置在 工作组 选项下,那么选中 域 单选按钮并输入域名bmit。
现在,通过使用用户名 root 和相应的密码登录到域。必需初始化服务器和客户机机器之间的“秘密”。从此时起,任何已认证的用户都可以从这台机器登录。
应该出现一个欢迎您来到 XX域的消息恭喜你已经成功将samba配置成PDC
据说xp加入samba建立的域有点复杂,我没试验过,大家有兴趣的话,最好去samba的老家看看文档,好像是要设置安全选项,并修改注册表,好麻烦哦,幸亏我没有xp :)
相关参考文档
Samba3.0服务器实战调试 http://www.5ilinux.com/samba.html
将 Samba 用作 PDC http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/linux-onlinecourse-bytitle/60281E1423A2B876C8256D04001C9374?OpenDocument
作者:张微波
2003年11月17日晚于北京
由 frank 发表于 5:41 AM
November 12, 2003
Samba3.0服务器实战调试
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
http://www.5ilinux.com/samba.html
Fedora Core 1服务器调试手记<一>
关键字 samba fedora smb smbclient smbpasswd
Samba3.0服务器实战调试
fedora预装的samba已经是samba-3.0.0-15,功能已经非常强大了,今天我们调试的重点不是samba3.0的新功能,我们还是先来实现他的基本功能,文件共享服务,至于域控制器功能我会在以后的调试手记中阐述。
我们今天要实现的环境是,假如公司有财务,技术,领导3个部门,我们分别为3个部门建立3个用户组为caiwu,network,lingdao;
三个部门里各有2个用户,我们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02
然后我们分别就公司的具体情况建立相应的目录及访问权限,通过以下的例子,希望大家能在平时的工作中灵活的应用samba的安全权限来设置你们的samba文件服务器。
1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。
2。建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。
3。建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录
4。建议一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。
5。建议一个公共的只读文件夹public,所有人只读这个文件夹的内容。
好,我们先来前期的工作
#groupadd caiwu
#groupadd network
#groupadd lingdao
#useradd caiwu01 -g caiwu
#useradd caiwu02 -g caiwu
#useradd network01 -g network
#useradd network02 -g network
#useradd lingdao01 -g lingdao
#useradd lingdao02 -g lingdao
然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中
#mkdir /home/samba
#mkdir /home/samba/caiwu
#mkdir /home/samba/lingdao
#mkdir /home/samba/exchange
#mkdir /home/samba/public
我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,我们通过samba灵活的权限管理来设置上面的5点要求。
以下是我的smb.conf的配置文件
[global]
workgroup = bmit
#我的网络工作组
server string = Frank's Samba File Server
#我的服务器名描述
security = user
#使用用户验证机制
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
#使用加密密码机制,在win95和winnt使用的是明文其他的基本上可以按照默认的来。
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0664
directory mode = 0775#homes段满足第1条件
[caiwu]
comment = caiwu
path = /home/samba/caiwu
public = no
valid users = @caiwu,@lingdao,network02
write list = caiwu01
printable = no#caiwu段满足我们的第2要求
[lingdao]
comment = lingdao
path = /home/samba/lingdao
public = no
browseable = no
valid users = @lingdao,network02
printable = no#lingdao段能满足我们的第3要求
[exchage]
comment = Exchange File Directory
path = /home/samba/exchange
public = yes
writable = yes#exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行
chmod -R 1777 /home/samba/exchange
注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求
[public]
comment = Read Only Public
path = /home/samba/public
public = yes
read only = yes#这个public段能满足我们的第5要求。
到此为止我们的设置已经能实现我们的共享文件要求,记得重启服务哦
#/etc/rc.d/init.d/smb restart
如果大家没有winodws,不妨先用samba的cilent端命令来测试一下
命令的用法我在这里只举几个例子,具体的大家去试验
smbclient -L 服务器ip -N
guest帐户查询你的服务器的samba共享情况,你可以检验一下是否lingdao目录时候能被guest帐户看到,应该是看不到的,当然你也可以以某个用户的名义查看
smbclient -L 服务器ip -U caiwu01
系统会提示密码,只要输入smb密码就行。
smbclient //服务器ip/caiwu -U caiwu01
#以caiwu01用户的名义登录caiwu目录
smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01
#把服务器的财务目录映射到本地的/mnt/caiwu目录
关于samba的其他用法我会在后续的文章中继续,请大家等待!
参考资料
Samba 配置 http://www.linuxfocus.org/ChineseGB/March2002/article177.shtml
O'Reilly 线上书籍:http://www.oreilly.com/catalog/samba/chapter/book/index.html
Samba3.0轻松搞定PDC域服务器 http://www.5ilinux.com/samba01.html
作者:张微波
2003年11月12日于北京
由 frank 发表于 5:38 AM