Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166986
  • 博文数量: 22
  • 博客积分: 1495
  • 博客等级: 上尉
  • 技术积分: 586
  • 用 户 组: 普通用户
  • 注册时间: 2005-10-17 18:51
文章分类

全部博文(22)

文章存档

2011年(14)

2010年(8)

我的朋友

分类: LINUX

2011-05-30 08:54:49

用windows操作系统作为文件服务器优点是配置置简单,但是存在不稳定和安全性不高的问题。
samba作为文件服务器主要是和域的集成有点麻烦,我经过一个多星期的试验总算解决了在复杂的网络环境下samba加域的问题。

过程和要注意的事项如下(我用的是centos 5.5):

1.首先当然是该装的软件包要装上,要装哪些,自己去问哥(谷歌)

然后关掉防火墙,或者是打开防火墙中需要打开的端口。

2.配置好网络,尤其是DNS配置! (主DNS要配成域控的IP)。


3.修改/etc/krb5.conf文件,该文件是kerberos的配置文件。(Windows的密码验证用的是这个东西)

下面是我这里改的示意:
(注意这个文件大小写敏感)

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = SANY.COM.CN   //改成你的域名
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes

[realms]
SANY.COM.CN = {          //改成你的域名
  kdc = DCEXTEND.SANY.COM.CN:88      //改成你DC的FQDN(GOOGLE一下这是什么)或者是IP,网上说两者没什么区别,仩但我是改成FQDN才加成的。
  admin_server = 10.0.3.1:749        //这里建议用ip
  default_domain =SANY.COM.CN      /改成你的域名,注意和上面的不同.(大小写)
}

[domain_realm]

sany.com.cn = SANY.COM.CN //改成你的域名
.sany.com.cn = SANY.COM.CN  //改成你的域名

[appdefaults]
pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
}

测试配置文件是否有问题:

在这里要注意的小问题就是Linux本地的时间要和DC的时间差问题,我们都知道,在DC上的策略中,时间差允许的范围是5分钟,所以,在运行上述的命令前,最好先同步下Linux和DC的时间:

ntpdate -b 10.0.3.1  //同步为AD的时间

使用命令:kinit   (注意大写的部分)

遇到的一些问题:

1)

[root@Gh0st CentOS]# kinit 

kinit(v5): Cannot find KDC for requested realm while getting initial credentials

原因:客户端主DNS未指向域控制器

解决:

编辑文件/etc/resolv.conf,将nameserver的值修改成域控制器的IP地址。

2)

kinit(v5): Clock skew too great while getting initial credentials

原因:

客户端与认证服务器的时间差距太大,将客户端与认证服务器的时间同步即可

解决:

安装ntp软件,执行ntpdate  –b 10.0.3.1(域控制器的IP),时间被同步



3)

kinit(v5): KDC reply did not match expectations while getting initial credentials

解决:使用大写的域名

4. 配置samba

[global]
    workgroup = SANY  //域名(左边第一个点的左边部分)
    realm = SANY.COM.CN  //完整域名
    server string = Samba Server  //随便
    security = ADS   //这是模式
    password server = 10.0.3.1  //域控的IP
    username map = /etc/samba/smbusers
    log file = /var/log/samba/%m.log
    unix password sync = Yes
    max log size = 50
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    printcap name = /etc/printcap
    dns proxy = No
;    idmap domains = SANY
    idmap uid = 16777216-33554431
    idmap gid = 16777216-33554431
    winbind enum groups = yes
    winbind enum users = yes
    template shell = /bin/bash
    winbind separator = /      //这个也很重要我试了一下,和后面的用户授权的表达方式相关如:sany/xxxx
    winbind use default domain = Yes
    guest ok = Yes
    cups options = raw

[printers]
    comment = All Printers
    path = /var/spool/samba
    printable = Yes
    browseable = No

[① 操作系统]                           //这些共享为只要是域用户就可以查看
    path = /home/it/① 操作系统     

[② 标装软件]
    path = /home/it/② 标装软件

[③ 资产管理]
    path = /home/it/③ 资产管理

[④ 驱动程序]
    path = /home/it/④ 驱动程序

[⑤ 工具软件]
    path = /home/it/⑤ 工具软件


[内部共享]                                 //这些共享只有指定的这些用户可以查看,并且可以写。
    path = /home/it/共享
    valid users = SANY/liuj42, SANY/shaosh, SANY/yedx, SANY/dingz, SANY/ip7,itadmin
    read only = No
    create mask = 0664
    directory mask = 0775

[工具]
    path = /home/it/工具
    valid users = SANY/liuj42, SANY/shaosh, SANY/yedx, SANY/dingz, SANY/ip7,itadmin
    read only = No
    create mask = 0664
    directory mask = 0775

测试配置文件正确性:
[root@localhost ~]# testparm    //测试samba配置文件的命令

Loaded services file OK.      //语法测试通过

Server role: ROLE_DOMAIN_MEMBER     //验证级别为  域成员

Press enter to see a dump of your service definitions   //回车将显示起作用的配置


5. 启动相关的服务:

   service  winbind  restar

   service   smb  restart

   chkconfig --levels 35 winbind on

   chkconfig --levels 35 smb on

6. 将Linux加入Windows域

net rpc join -W @SANY.COM.CN -S DCEXTEND.SANY.COM.CN
-U account   //注意变色粗体部分:一定要知道域控的FQDN,不然加会报错,FQDN可以通过nslookup得到:如:nslookup 10.0.3.1
Password:
Joined domain SANY.

8. 修改Linux的密码查找顺序

  vi /etc/nsswitch.conf

passwd:     files winbind  //确定是这样的,网上把winbind放到files前面,经过我测试不行,那样不能正确验证(不能把用户名和密码缓存到本地文件中,后面几个同样,主要是passwd,group)
shadow:     files winbind
group:      files winbind

netgroup:   files winbind

测试:

  wbinfo  -t  //测试域的信任关系  

  wbinfo  -u  //查看域用户

  wbinfo  -g  //查看域用户组

修改 /etc/pam.d/system-auth (应该是登录Linux系统本机的验证方式,如果作文文件服务器,不让普通用户登录,不设置应该也可以,我的修改了,但是好像是没有起作用,不过我的域用户不需要登陆到liunx服务器所以没起作用也没关系)

下面我直接给出我的配置文件:

   vi  /etc/pam.d/system-auth

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_winbind.so   //这行是我加的
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass    
auth        sufficient    pam_winbind.so cached_login use_first_pass
auth        required      pam_deny.so

account     sufficient    pam_winbind.so   //这行也是我加的
account     required      pam_unix.so broken_shadow use_first_pass
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so cached_login
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_winbind.so cached_login use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so


阅读(6975) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~