引言
当我第一次在Solaris上安装Samba软件包时,结果发现该软件包中没有ADDC角色。 在Internet上进行长时间的搜索后,我找到了这种答案-Solaris上的Samba软件包不支持该角色,有些人写道,在Solaris上通常无法实现此角色。 进一步的研究使我得出这样一个事实:一切都取决于zfs和Solaris中使用的python中缺少Posix ACL。 要解决这些问题,您必须将硬盘与ufs文件系统一起使用,并从源代码构建python(以及Samba)。
准备工作
在安装系统之前,我在VMware ESXI中执行的所有操作都将另一个硬盘添加到虚拟机。 接下来,您需要下载Python和Samba的源代码(到文件系统的根目录)。
wget https://download.samba.org/pub/samba/stable/samba-4.8.8.tar.gz wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
解压缩档案并重命名文件夹,以更方便
gzip -d samba-4.8.8.tar.gz gzip -d Python-2.7.15.tgz tar -xvf Python-2.7.15.tar tar -xvf samba-4.8.8.tar mv Python-2.7.15 python mv samba-4.8.8 samba
接下来,您需要安装gcc和一些依赖项
pkg install gcc pkg install pkgconfig pkg install automake pkg install autoconf
设置变量以构建x64版本
export CPP="/usr/gcc/7/bin/gcc -E" export CC="/usr/gcc/7/bin/gcc" export CFLAGS="-m64 -std=gnu99 -fPIC -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" export LDFLAGS="-m64 -L/usr/lib -R/usr/lib" export CXXFLAGS="-m64"
在其他硬盘驱动器上创建ufs文件系统(指定您使用的名称)
newfs /dev/dsk/c1t1d0s2
接下来,您需要在vfstab文件中注册该硬盘驱动器(不是错字,在Solaris中,该文件被称为那样)。 将此行添加到此文件。
/dev/dsk/c1t1d0s2 /dev/dsk/c1t1d0s2 /ADDC ufs fsck yes -
创建安装目录并将硬盘驱动器安装到其中
mkdir /ADDC mount /dev/dsk/c1t1d0s2 /ADDC
组装与安装
您可以开始构建Samba和Python。 转到包含解压缩的Solaris源代码的目录并进行构建。 Samba组装需要很长时间。
cd /samba ./configure --prefix=/ADDC gmake gmake install
您不需要指定其他参数来构建python,安装将在/ usr / local目录中执行
cd /python ./configure gmake gmake install
构建python之后,您需要在path变量中将路径添加到刚构建的python中
export PATH="/usr/local/bin:/usr/sbin:/usr/bin"
重要说明:为了使一切正常工作,必须如本示例中所示指定PATH变量,路径/ usr / local / bin应该放在首位。
完成这些步骤之后,将Samba用作ADDC不会有问题,为此,您需要运行samba-tool脚本
/ADDC/bin/samba-tool domain provision --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=office.virusslayer.su --domain=virusslayer --host-name=ad --host-ip=192.168.1.105 --function-level=2008_R2 --adminpass=Password123456
在用于此主机的host-ip中指示所需的领域,域,主机名。
下一步是配置kerberos,为此您需要更改以下文件
/etc/krb5/krb5.conf /etc/krb5/kdc.conf
需要将krb5.conf文件转换为
[libdefaults] default_realm = OFFICE.VIRUSSLAYER.SU dns_lookup_realm = false dns_lookup_kdc = true default_tgs_enctypes = aes256-cts-hmac-sha1-96 default_tkt_enctypes = aes256-cts-hmac-sha1-96 permitted_enctypes = aes256-cts-hmac-sha1-96 [realms] OFFICE.VIRUSSLAYER.SU = { kdc = kdc.office.virusslayer.su admin_server = kdc.office.virusslayer.su }
kdc.conf
[realms] OFFICE.VIRUSSLAYER.SU = { profile = /etc/krb5/krb5.conf acl_file = /etc/krb5/kadm5.acl kadmind_port = 749 max_life = 8h 0m 0s max_renewable_life = 7d 0h 0m 0s default_principal_flags = +preauth }
对于自动启动和停止,我不得不在bash中编写一个简单的脚本
#!/usr/bin/bash case $1 in start|-start) /ADDC/sbin/samba /ADDC/sbin/smbd /ADDC/sbin/nmbd ;; stop|-stop) rm /ADDC/var/run/*.pid pkill -15 samba pkill -15 smbd pkill -15 nmbd ;; v|-v) /ADDC/sbin/samba -V ;; config|-config) cat /ADDC/etc/smb.conf ;; restart|-restart) rm /ADDC/var/run/*.pid pkill -15 samba pkill -15 smbd pkill -15 nmbd /ADDC/sbin/samba /ADDC/sbin/smbd /ADDC/sbin/nmbd ;; esac
将此脚本放置在文件(先前已创建)/ usr / bin / sambactl中,使其可执行,然后将其复制到rc3.d,rc0.d目录中以自动运行并停止Samba
touche /usr/bin/sambactl chmod +x /usr/bin/sambactl cp /usr/bin/sambactl /etc/rc3.d/Ssambactl cp /usr/bin/sambactl /etc/rc0.d/Ksambactl
为了进一步正确操作,您需要更改系统的dns服务器(不需要更改resolve.conf文件,所做的更改仅保存到重新启动之前),为此,我们将编辑服务并更新状态(将当前系统的IP地址指定为服务器)。
svccfg -s dns/client setprop config/nameserver="192.168.1.105" svcadm refresh dns/client
完成这些操作后,您可以启动Samba,还可以添加dns条目
/usr/bin/sambactl /ADDC/bin/samba-tool dns add office.virusslayer.su -U administrator office.virusslayer.su kdc.office.virusslayer.su A 192.168.1.105
检查kerberos的工作
kinit administrator
如果一切正确并且密码输入正确,那么将在/ tmp / volatile-user / 0目录中创建票证
Kerberos设置尚未完成,您还需要配置时间同步服务器,为此,创建/etc/inet/ntp.conf文件,启动时间服务并对此文件进行必要的更改
server 127.127.1.0 prefer server 0.europe.pool.ntp.org server 1.europe.pool.ntp.org server 2.europe.pool.ntp.org server 3.europe.pool.ntp.org driftfile /var/ntp/ntp.drift restrict 192.168.1.0 255.255.255.0 nomodify notrap
在限制行中,指定允许访问时间服务器的子网
启动并更新服务
svcadm enable ntp svcadm refresh ntp
要编辑组策略,您可以使用远程管理工具(RSAT),可以从此处下载这些工具。
Windows 8.1 https://www.microsoft.com/ru-ru/download/details.aspx?id=39296 Windows 10 https://www.microsoft.com/ru-RU/download/details.aspx?id=45520 Windows 7 https://www.microsoft.com/ru-ru/download/details.aspx?id=7887
在Windows 7中安装RSAT之后,必须在控制面板中启用这些工具(打开或关闭Windows功能)。 将计算机输入域后,启动组策略编辑器,在“默认域策略”中,编辑负责时间服务器的策略

在此部分中,必须启用选项“启用Windows NTP客户端”,“配置Windows NTP客户端”,设置NTP类型,指定NtpServer office.virusslayer.su
另外,您可以配置防火墙,编辑文件/etc/firewall/pf.conf(将其转换为以下格式)。
set skip on lo0 pass quick on lo0 from any to any no state pass in quick on net0 proto {tcp,udp} from any to any port {22,53,123,135,137,464,389,515,636,631,445,139,88,3268,3269,49152:65535} flags S/SA modulate state pass out quick on net0 proto tcp from any to any port {80,443,21,20,53} flags S/SA modulate state pass out quick on net0 proto udp from any to any port=53 keep state pass out quick on net0 proto icmp from any to any block from any to any fragment block from any to any block all
启动服务并使用规则指定文件
svcadm enable firewall pfctl -f /etc/firewall/pf.conf
结论
从Solaris的该出版物中可以看到,可以将Samba用作ADDC,尽管它比任何其他操作系统都要复杂得多。