如何让 Linux 机器加入 Windows 的 AD 域

如何让 Linux 机器加入 Windows 的 AD 域,第1张

对于帐户统一管理系统或软件来说,在 Linux 下你可能知道 NIS、OpenLDAP、samba 或者是 RedHat、IBM 的产品,在 Windows 下当然就是最出名的活动目录 (AD)了,这里就来探讨一下如何让 Linux 的计算机加入 AD 域。

首先,先简单介绍一下 AD 域。自 Windows 2000 以来,AD 一直是 Windows 的身份验证和目录服务,AD 基于 LDAP 实现其功能,其使用 DNS 进行主机名的解析,使用 Kerberos V5 进行用户身份验证,使用 LDAP V3 进行统一的帐户管理。

目标:在 AD 域中,将 Linux 服务器加入 AD,以使 Domain Admins 用户组成员可以登录操作 Linux 服务器,不需要在 Linux 服务器中单独创建帐户。

环境:一台 Windows Server 2012 R2 操作系统的服务器,安装有 AD 并作为域控制器(DC),同时也作为 DNS 服务器和时间服务器;一台 RedHat Enterprise Linux 6x 的服务器,请自行配置好网络及 YUM 源。有关 AD 域服务器的搭建,由于比较简单,请自行查阅资料完成,这里不再详述。

这里以 Windows 服务器地址为 1921682122,域名为 contosocom,主机名为 adcontosocom;Linux 服务器地址为 1921682150,主机名为 lemon20contosocom。

1、安装所需软件:

# yum -y install samba samba-client samba-common samba-winbind samba-winbind-clients krb5-workstation ntpdate

2、设置服务自启动并启动服务:

# chkconfig smb on

# chkconfig winbind on

# service smb start

# service winbind start

3、修改 /etc/hosts 文件,添加主机对应记录:

127001 localhost localhostlocaldomain localhost4 localhost4localdomain4

::1 localhost localhostlocaldomain localhost6 localhost6localdomain6

1921682150 lemon20contosocom lemon20

4、设置 DNS 地址并与 AD 服务器同步时间:

# echo "nameserver 1921682122" >> /etc/resolvconf

# ntpdate adcontosocom

5、设置 Kerberos 票据(可选):

销毁已经存在的所有票据:

# kdestroy

查看当前是否还存在票据:

# klist

klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0)

生成新的票据,注意域名大写。

# kinit administrator@CONTOSOCOM

# klist

Ticket cache: FILE:/tmp/krb5cc_0

Default principal: administrator@CONTOSOCOM

Valid starting Expires Service principal

08/02/16 22:35:26 08/03/16 08:35:29 krbtgt/CONTOSOCOM@CONTOSOCOM

renew until 08/09/16 22:35:26

6、以命令方式设置 samba 与 Kerberos,并加入 AD 域:

#authconfig --enablewinbind --enablewins --enablewinbindauth --smbsecurity ads --smbworkgroup=CONTOSO --smbrealm CONTOSOCOM --smbservers=adcontosocom --enablekrb5 --krb5realm=CONTOSOCOM --krb5kdc=adcontosocom --krb5adminserver=adcontosocom --enablekrb5kdcdns --enablekrb5realmdns --enablewinbindoffline --winbindtemplateshell=/bin/bash --winbindjoin=administrator --update --enablelocauthorize --enablemkhomedir --enablewinbindusedefaultdomain

注意命令中的大小写,此步骤也可以使用 authconfig-tui 完成。

7、增加 sudo 权限(可选):

# visudo

加入下列设置:

%MYDOMAIN\\domain\ admins ALL=(ALL) NOPASSWD: ALL

8、确认是否正确加入 AD 域:

查看 AD 的相关信息

# net ads info

查看 MYDOMAIN\USERID 的使用者帐户

# wbinfo -u

补充:

如果启用 selinux 的话,需要安装 oddjobmkhomedir 并启动其服务,这样才能确保系统对创建的家目录设置合适的 SELinux 安全上下文。

Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。他可以帮您简单快速在个人,公司电脑、服务器甚至是树莓派等设备上架设一套属于自己或者团队专属的云同步网盘,所以它是一款开源网盘的绝佳解决方案

开源地址: https://githubcom/nextcloud

Home 家庭版本 (免费试用即社区版本)

Enterprises 企业版本

Nextcloud跨平台支持微软 Windows、macOS 和 Linux 的客户端应用程序,以及适用于 Android 和 apple iOS 操作系统的移动客户端下载地址。

Nextcloud文件提供了一个内置的,具有强大的协作分享功能和桌面、移动和web界面以及WebDAV形式访问。

Nextcloud群件集成了和其他生产力特性,帮助团队更快、更容易地按照您的条件完成工作。

Nextcloud Talk通过集成的屏幕共享和SIP集成,通过浏览器和移动接口提供现场、私人音频/视频会议和文本聊天()。

Nextcloud上的文件存储在一般的目录结构中,并可透过WebDAV访问。

Nextcloud可以透过OpenID或者LDAP来实现用户群组或组群间的读写权限调整,以达到分享文件的目的和利用第三方平台的OAuth2进行接入;

Nextcloud上用户可以使用基于浏览器文本编辑器、书签服务、缩放网址服务、相册以及RSS阅读器与文本查看器;

Nextcloud具有良好的扩展性,可以将文件轻松连线到DropBox、Google云端与Amazon S3中;

Tips:

Nextcloud 扩展应用安装(可离线安装):https://appsnextcloudcom

运行镜像,设置文件挂载

访问 http://19216813:8001/

安装推荐应用

首先配置nginx

重启nginx

支持Office文档在线预览编辑以及文件同步

进入 "管理"--->"Nextcloud 办公套件" --->从应用商店安装它

在精选应用里面

支持windows、安卓、IOS等重要平台,当然也可以到github官网上去下载最保险。

我认为是这样的,你要么加全路径执行

/usr/local/openldap/bin/ldapadd

要么进入到/usr/local/openldap/bin/目录里

执行 /ldapadd

我想上面两个方法都可以,如果还不行,请追问。

说实话,linux这东西不是用什么学什么就可以的。centos的lamp环境安装配置网上教程很多。pureftpd得源码编译,这个我可以大概说说

1 下载

http://downloadpureftpdorg/pure-ftpd/releases/pure-ftpd-1021targz

2 安装

# 解包到任意目录,如/home/ender

tar xzvf pure-ftpd-1021targz

cd pure-ftpd-1021/

/configure --prefix=/etc/pureftpd --with-language=simplified-chinese --with-everything

#注:

#--with-eyerything是安装所有功能

#--with-language=simplified-chinese是采用中文作为提示语言

#--prefix是安装的目标目录,可以自行修改

#编译安装:

make

make install

#设置配置工具

chmod 755 configuration-file/pure-configpl

cp configuration-file/pure-configpl /etc/pureftpd/sbin/pure-configpl

cp configuration-file/pure-ftpdconf /etc/

#配置自动启动脚本,采用官方编译样例,写得确实比较一般

vi /etc/rcd/initd/pureftpd

#!/bin/bash

#

# Startup script for the pure-ftpd FTP Server $Revision: 13 $

#

# chkconfig: 2345 85 15

# description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd

# processname: pure-ftpd

# pidfile: /var/run/pure-ftpdpid

# config: /etc/pure-ftpdconf

# Source function library

/etc/rcd/initd/functions

RETVAL=0

# Path to the pure-ftp binaries

prog=pure-configpl

fullpath=/etc/pureftpd/sbin/$prog

pureftpwho=/etc/pureftpd/sbin/pure-ftpwho

start() {

echo -n $"Starting $prog: "

$fullpath /etc/pure-ftpdconf --daemonize

RETVAL=$

[ $RETVAL = 0 ] && touch /var/lock/subsys/$prog

echo

}

stop() {

echo -n $"Stopping $prog: "

kill $(cat /var/run/pure-ftpdpid)

RETVAL=$

[ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog

echo

}

# See how we were called

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

condrestart)

if [ -f /var/lock/subsys/$prog ] ; then

stop

# avoid race

sleep 3

start

fi

;;

status)

status $prog

RETVAL=$

if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then

$pureftpwho

fi

;;

)

echo $"Usage: $prog {start|stop|restart|condrestart|status}"

RETVAL=1

esac

exit $RETVAL

#修改执行权限

chmod a+x /etc/rcd/initd/pureftpd

3中文PureFTPd配置文件

# 如果你想要使用配置文件代替命令行选项来运行 Pure-FTPd ,请运行下面的命令:

#

# /usr/local/pureftpd/sbin/pure-configpl /usr/local/pureftpd/etc/pure-ftpdconf

#

# RPM 缺省使用另外一个配置文件:

# /etc/sysconfig/pure-ftpd

#

# 请不要忘了浏览一下 http://wwwpureftpdorg/documentationhtml 的

# 文档,查看全部的选项列表。

# 限制所有用户在其主目录中

ChrootEveryone yes

# 如果前一个指令被设置为了 "no",下面组的成员(GID)就不受主目录的限制了。而其他的用户还是

# 会被限制在自己的主目录里。如果你不想把任何用户限制在自己的主目录里,只要注释掉 ChrootEveryone

# 和 TrustedGID 就可以了。

# TrustedGID 100

# 兼容ie等比较非正规化的ftp客户端

BrokenClientsCompatibility no

# 服务器总共允许同时连接的最大用户数

MaxClientsNumber 50

# 做为守护(doemon)进程运行(Fork in background)

Daemonize yes

# 同一IP允许同时连接的用户数(Maximum number of sim clients with the same IP address)

MaxClientsPerIP 8

# 如果你要记录所有的客户命令,设置这个指令为 "yes"。

# This directive can be duplicated to also log server responses

VerboseLog no

# 即使客户端没有发送 '-a' 选项也列出隐藏文件( dot-files )。

DisplayDotFiles yes

# 不允许认证用户 - 仅作为一个公共的匿名FTP。

AnonymousOnly no

# 不允许匿名连接,仅允许认证用户使用。

NoAnonymous no

# Syslog facility (auth, authpriv, daemon, ftp, security, user, local)

# 缺省的功能( facility )是 "ftp"。 "none" 将禁止日志。

SyslogFacility ftp

# 定制用户登陆后的显示信息(Display fortune cookies)

# FortunesFile /usr/share/fortune/zippy

# 在日志文件中不解析主机名。日志没那么详细的话,就使用更少的带宽。在一个访问量很大

# 的站点中,设置这个指令为 "yes" ,如果你没有一个能工作的DNS的话。

DontResolve yes

# 客户端允许的最大的空闲时间(分钟,缺省15分钟)

MaxIdleTime 15

# LDAP 配置文件 (参考 READMELDAP)

# LDAPConfigFile /etc/pureftpd-ldapconf

# MySQL 配置文件 (参考 READMEMySQL)

# MySQLConfigFile /etc/pureftpd-mysqlconf

# Postgres 配置文件 (参考 READMEPGSQL)

# PGSQLConfigFile /etc/pureftpd-pgsqlconf

# PureDB 用户数据库 (参考 READMEVirtual-Users)

# PureDB /etc/pureftpdpdb

# pure-authd 的socket 路径(参考 READMEAuthentication-Modules)

# ExtAuth /var/run/ftpdsock

# 如果你要启用 PAM 认证方式, 去掉下面行的注释。

# PAMAuthentication yes

# 如果你要启用 简单的 Unix系统 认证方式(/etc/passwd), 去掉下面行的注释。

# UnixAuthentication yes

# 请注意,LDAPConfigFile, MySQLConfigFile, PAMAuthentication 和

# UnixAuthentication 这些指令只能被使用一次,不过,他们能被混合在一起用。例如:如果你使用了

# MySQLConfigFile 和 UnixAuthentication,那么 SQL 服务器将被访问。如果因为用户名未找

# 到而使 SQL 认证失败的话,就会在/etc/passwd 和 /etc/shadow 中尝试另外一种认证,如果因

# 为密码错误而使 SQL 认证失败的话,认证就会在此结束了。认证方式由它们被给出来的顺序而被链

# 接了起来。

# 'ls' 命令的递归限制。第一个参数给出文件显示的最大数目。第二个参数给出最大的子目录深度。

LimitRecursion 2000 8

# 允许匿名用户创建新目录?

AnonymousCanCreateDirs no

# 如果系统被 loaded 超过下面的值,匿名用户会被禁止下载。

MaxLoad 4

# 被动连接响应的端口范围。- for firewalling

# PassivePortRange 30000 50000

# 强制一个IP地址使用被动响应( PASV/EPSV/SPSV replies)。 - for NAT

# Symbolic host names are also accepted for gateways with dynamic IP

# addresses

# ForcePassiveIP 19216801

# 匿名用户的上传/下载的比率。

# AnonymousRatio 1 10

# 所有用户的上传/下载的比率。

# This directive superscedes the previous one

# UserRatio 1 10

# 不接受所有者为 "ftp" 的文件的下载。例如:那些匿名用户上传后未被本地管理员验证的文件。

AntiWarez yes

# 服务监听的IP 地址和端口。(缺省是所有IP地址和21端口)

# Bind 127001,21

# 匿名用户的最大带宽(KB/s)。

# AnonymousBandwidth 8

# 所有用户的最大带宽(KB/s),包括匿名用户。

# Use AnonymousBandwidth or UserBandwidth, both makes no sense

# UserBandwidth 8

# 新建目录及文件的属性掩码值。<文件掩码>;:<目录掩码>;

# 177:077 if you feel paranoid

Umask 133:022

# 认证用户允许登陆的最小组ID(UID) 。

MinUID 100

# 仅允许认证用户进行 FXP 传输。

AllowUserFXP yes

# 对匿名用户和非匿名用户允许进行匿名 FXP 传输。

AllowAnonymousFXP no

# 用户不能删除和写点文件(文件名以 '' 开头的文件),即使用户是文件的所有者也不行。

# 如果 TrustedGID 指令是 enabled ,文件所属组用户能够访问点文件(dot-files)。

ProhibitDotFilesWrite no

# 禁止读点文件(文件名以 '' 开头的文件) (history, ssh)

ProhibitDotFilesRead no

# 永不覆盖文件。当上传的文件,其文件名已经存在时,自动重命名,如: file1, file2, file3,

AutoRename no

# 不接受匿名用户上传新文件( no = 允许上传)

AnonymousCantUpload no

# 仅允许来自以下IP地址的非匿名用户连接。你可以使用这个指令来打开几个公网IP来提供匿名FTP,

# 而保留一个私有的防火墙保护的IP来进行远程管理。你还可以只允许一内网地址进行认证,而在另外

# 一个IP上提供纯匿名的FTP服务。

#TrustedIP 10111

# 如果你要为日志每一行添加 PID 去掉下面行的注释。

# LogPID yes

# 使用类似于Apache的格式创建一个额外的日志文件,如:

# fwc9xorg - jedi [13/Dec/1975] "GET /ftp/linuxtarbz2" 200 21809338

# 这个日志文件能被 www 流量分析器处理。

# AltLog clf:/var/log/pureftpdlog

# 使用优化过的格式为统计报告创建一个额外的日志文件。

# AltLog stats:/var/log/pureftpdlog

# 使用标准的W3C格式创建一个额外的日志文件。(与大部分的商业日志分析器兼容)

# AltLog w3c:/var/log/pureftpdlog

# 不接受 CHMOD 命令。用户不能更改他们文件的属性。

# NoChmod yes

# 允许用户恢复和上传文件,却不允许删除他们。

# KeepAllFiles yes

# 用户主目录不存在的话,自动创建。

# CreateHomeDir yes

# 启用虚拟的磁盘限额。第一个数字是最大的文件数。

# 第二个数字是最大的总的文件大小(单位:Mb)。

# 所以,1000:10 就限制每一个用户只能使用 1000 个文件,共10Mb。

# Quota 1000:10

# 如果你的 pure-ftpd 编译时加入了独立服务器( standalone )支持,你能够改变 pid 文件

# 的位置。缺省位置是 /var/run/pure-ftpdpid 。

# PIDFile /var/run/pure-ftpdpid

# 如果你的 pure-ftpd 编译时加入了 pure-uploadscript 支持,这个指令将会使 pure-ftpd

# 发送关于新上传的情况信息到 /var/run/pure-ftpduploadpipe,这样 pure-uploadscript

# 就能读然后调用一个脚本去处理新的上传。

# CallUploadScript yes

# 这个选项对允许匿名上传的服务器是有用的。当 /var/ftp 在 /var 里时,需要保留一定磁盘空间

# 来保护日志文件。当所在磁盘分区使用超过百分之 X 时,将不在接受新的上传。

MaxDiskUsage 99

# 如果你不想要你的用户重命名文件的话,就设置为 'yes' 。

# NoRename yes

# 是 'customer proof' : 工作区(workaround)反对普通的客户错误,类似于:'chmod 0 public_html' 的错误。

# 那是一个有效的命令,不过,将导致无知的客户所定他们自己的文件,将使你的技术支持忙于愚蠢的的问题中。

# 如果你确信你所有的用户都有基本的Unix知识的话,这个特性将没什么用了。不过,如果你是一个主机提供商

# 的话,启用它。

CustomerProof yes

# 每一个用户的并发限制。只有在添加了 --with-peruserlimits 编译选项进行编译后,这个指令才起

# 作用。(大部分的二进制的发布版本就是例子)

# 格式是 : <每一个用户最大允许的进程>;:<最大的匿名用户进程>;

# 例如: 3:20 意思是同一个认证用户最大可以有3个同时活动的进程。而且同时最多只能有20个匿名用户进程。

# PerUserLimits 3:20

有一些东西需要注意,pure-configpl文件中的

my $PUREFTPD;

-x && ($PUREFTPD=$_, last) for qw(

这两行下面的路径安照实际情况修改,我装的时候这里卡住了1天多。

另外,添加/etc/initd/pureftpd为服务并开机启动和开启关闭ftp的命令请自行查找使用,适当的自己动动手也很不错。

先查看一下,系统有没有该命令。

1

which ldapsearch

如果没有的话安装一个

1

2

yum list "ldap"

yum install openldap-clients

再查看一下,是否安装好了。

1

2

rpm -ql openldap-clients

which ldapsearch

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何让 Linux 机器加入 Windows 的 AD 域

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情