设为首页 收藏本站
查看: 617|回复: 0

[经验分享] 本文将实现Windows+Linux的异构环境

[复制链接]

尚未签到

发表于 2018-6-12 09:25:39 | 显示全部楼层 |阅读模式
本文将实现Windows+Linux的异构环境  Windows的AD在企业中的广泛应用,和Linux的稳定性,我们各取所长,构建一个既方便又安全、稳定的环境。
  配置方法一:
  Linux在启动级别3, 所有的操作都是在命令行下。
  Windows正常环境,升级为AD,同时集成了DNS,提升林功能级别为2003纯模式,林级别为20003 纯模式。
  1.在Linux系统中安装相应的软件包
  samba-3.0.23c-2
  samba-common-3.0.23c-2
  samba-client-3.0.23c-2     //samba的相关包
  krb5-libs-1.5-17
  krb5-workstation-1.5-17
  krb5-devel-1.5-17
  pam_krb5-2.2.11-1
  2.禁用selinux
  vi /etc/selinux/config
  修改  SELINUX=enforcing (强制)
  改成  SELINUX=disable   (禁用)
  修改iptables
  清空iptables规则命令如下:
  iptables -F
  3. 配置dns
  vi /etc/resolve.conf
  nameserver  192.168.1.2   //windows DNS服务器的ip地址
  4. 修改/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 = A.COM         //改成你的域名   
dns_lookup_realm = false   
dns_lookup_kdc = false
  [realms]   
A.COM = {                     //改成你的域名   
  kdc = 192.168.1.2:88            //改成你DC的FQDN或者是IP,两者没什么区别   
  admin_server = 192.168.1.2:749 //这里建议用ip   
  default_domain = a.com       //改成你的域名,注意和上面的不同.(大小写)   
}
  [domain_realm]   
.example.com = A.COM   
example.com = A.COM            //接着改
  [kdc]   
profile = /var/kerberos/krb5kdc/kdc.conf
  [appdefaults]   
pam = {   
   debug = false   
   ticket_lifetime = 36000   
   renew_lifetime = 36000   
   forwardable = true   
   krb4_convert = false   
}
  测试:
  在这里要注意的小问题就是Linux本地的时间要和DC的时间差问题,我们都知道,在DC上的策略中,时间差允许的范围是5分钟,所以,在运行上述的命令前,最好先同步下Linux和DC的时间:
  ntpdate -b 192.168.1.2  //同步为AD的时间
  使用命令:kinit administrator@A.COM  (注意大写的部分)
  遇到的一些问题:
  1)
  [root@Gh0st CentOS]# kinit test111@a.com
  kinit(v5): Cannot find KDC for requested realm while getting initial credentials
  原因:客户端主DNS未指向域控制器
  解决:
  编辑文件/etc/resolv.conf,将nameserver的值修改成域控制器的IP地址。
  2)
  [root@Gh0st CentOS]# kinit test111@a.com
  Password for test111@a.com:
  kinit(v5): Clock skew too great while getting initial credentials
  原因:
  客户端与认证服务器的时间差距太大,将客户端与认证服务器的时间同步即可
  解决:
  安装ntp软件,执行ntpdate  –b 192.168.6.37(域控制器的IP),时间被同步
  [root@Gh0st CentOS]# ntpdate  -b 192.168.6.37
  17 Sep 12:32:05 ntpdate[10302]: step time server 192.168.6.37 offset 2537.194742 sec
  3)
  [root@Gh0st CentOS]# kinit test111@a.com
  Password for test111@a.com:
  kinit(v5): KDC reply did not match expectations while getting initial credentials
  解决:使用大写的域名
  [root@Gh0st CentOS]# kinit administrator@A.COM
  Password for administrator@A.COM:
  [root@Gh0st CentOS]#
  4)net rpc join -W @A.COM -S 192.168.1.50 -U administrator   
    出现 错误:NT_STATUS_INVALID_COMPUTER_NAME
  解决办法:把ip地址改为dc的FQDN即可
  5. 配置samba
  vi /etc/samba/smb.conf
  [global]   
workgroup = A                    //需要加入的域的netbios名,注意是域的netbios名,要大写   
netbios name = Linux                   //本机器的netbios名,有的版本没有这一项会没有这个,   
                                            要手动添加   
   server string = Samba Server //对该服务器的描述   
   printcap name = /etc/printcap   
   load printers = yes   
   cups options = raw
  log file = /var/log/samba/%m.log   
   max log size = 50
  security = ads                     //ads验证方式必须有realm项
  realm = A.COM                //增加这一行,注意这里是域名.   
password server = 192.168.1.2           //这里是DC的FQDN,也可以写ip,但是有时候会出   
                                                问题,建议写IP
  encrypt passwords = yes                 //加密在网络上传输的用户密码   
   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
  dns proxy = no
  winbind separator = /                  //用户的域名和用户名之间的间隔,用什么随你心情   
   idmap uid = 1000000-2000000         
   idmap gid = 1000000-2000000            //域用户映射成Linux本地用户时所有的uid和gid范围.   
   template homedir = /home/%D/%U            //与home文件夹中定义的作用相同.两者定义一个就行   
   template shell = /bin/bash             //用户登陆后所使用的shell   
   winbind use default domain = yes       //用户登陆使用默认的域   
   winbind enum users = yes   
   winbind enum groups = yes              //有人说是自动创建用 getent passwd[group]看到的   
                                            用户和组的信息.具体有什么用,我也说不清楚
  winbind cache type = x    (winbind同步账户时间,可以没有)
  [homes]
  comment = Home Directories   
   browseable = no   
   writable = yes   
create mode = 0777   
   directory mode = 0777   //创建的文件和目录的默认权限   
   path = /home/%D/%U     //用户主目录的相关设置
  [printers]   
   comment = All Printers   
   path = /var/spool/samba   
   browseable = no   
   guest ok = no   
   writable = no   
   printable = yes
  测试:[root@localhost ~]# testparm    //测试samba配置文件的命令
  Load smb config files from /etc/samba/smb.conf
  Processing section "[homes]"
  Processing section "[printers]"
  Loaded services file OK.      //语法测试通过
  Server role: ROLE_DOMAIN_MEMBER     //验证级别为  域成员
  Press enter to see a dump of your service definitions   //回车将显示起作用的配置
  [global]
  workgroup = A
  netbios name = LINUX
  realm = A.COM
  server string = Samba Server
  security = ADS
  password server = 192.168.1.2
  encrypt passwords = yes
  log file = /var/log/samba/%m.log
  max log size = 50
  dns proxy = no
  idmap uid = 16777216-33554431
  idmap gid = 16777216-33554431
  template shell = /sbin/nologin
  winbind separator = /
  winbind enum users = yes
  winbind enum groups = yes
  winbind use default domain = yes
  cups options = raw
  [homes]
  comment = Home Directories
  path = /home/%D/%U
  read only = no
  create mask = 0777
  directory mask = 0777
  browseable = no
  [printers]
  comment = All Printers
  path = /usr/spool/samba
  printable = yes
  browseable = no
  6. 启动相关的服务:
  service  winbind  restar
  service   smb  restart
  chkconfig --levels 35 winbind on
  chkconfig --levels 35 smb on
  7. 将Linux加入Windows域
  net ads join -W  A.COM  -S  dc1(AD的主机名)   -U administrator
  有时候用net ads join 会不好使,这时候就试试net rpc join 这种方式.
  有时候会出现这样的错误信息,解决办法如下:
  先停掉winbind和smb服务:
  service smb stop
  service winbind stop
  然后删除下面两个目录里的.tdb文件:         /etc/samba   和   /var/cache/samba
  据我理解,这些应该是在加入域过程中,产生的一些缓存
  文件,但是有时候这些缓存会造成一些错误信息,就象我们刚才看到的那样,删除后,重启服务,让他重新
  生成就行了.
  重新启动相关的服务,在执行加入域操作。
  测试:
  wbinfo  -t  //测试域的信任关系
  wbinfo  -u  //查看域用户
  wbinfo  -g  //查看域用户组
  8. 修改Linux的密码查找顺序
  vi /etc/nsswitch.conf
  修改相关记录
  passwd:    winbind files   
     shadow:    files winbind   
     group:     winbind files
  修改 /etc/pam.d/system-auth (应该是登录Linux系统本机的验证方式,如果作文文件服务器,不让普通用户登录,不设置应该也可以)
  vi  /etc/pam.d/system-auth
  auth        sufficient    pam_winbind.so          //增加这一行
  account     sufficient    pam_winbind.so       //增加这一行,注意这两行的位置
  9. 建立相关用户文件
  修改完毕后,根据上面smb.conf文件的配置,我们就可以实现用户的登陆了,不过还有一点要说明,就是在用户登陆前,必须手动创建他们的登陆主目录,并且赋予他们完全控制的权限.
  比如,我想让administrator用户登陆Linux,实现步骤如下:
  cd /home
  mkdir A
  cd A    mkdir administrator
  chown administrator: administrators  administrator      //在home目录下创建YANCHUN域目录,并在该目
  录下创建要登陆用户administrator的目录,更改目录权限.
  这样在终端上就可以实现域用户账户的登陆了.
  做到这里,恭喜你Linux和Windows的整合已经完成。
  小提示:Linux做文件服务器,没必要让域用户在Linux本地登录。所有[homes]字段可以没有,家目录也可以没有。
  此文档由  秘飞虎 (qq:815889476 mail:mifeihu@163.com) 花了很长时间,查了好多资料才完成的,如果转载,请保留作者,及联系方式。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-522564-1-1.html 上篇帖子: [Windows编程] DLL_THREAD_DETACH 认识误区 下篇帖子: System.Windows.Forms.TabControl控件有关
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表