過去記事: samba/Sites200718
ルーターを超えて違うネットワークに存在するPCを参加させてみる
同一拠点でのサブドメインを考えてます。拠点が違う場合は Sites とか考慮する必要があるのでしょうが、ここではごくごく小さな範囲のお話です。
*Sites/subnetを利用するのは距離的に遠くてADとの通信に時間を要する際みたい. ネットワーク的に名前解決ができて接続(ping)できるのは当然のお話. それを踏まえてのSites/subnetみたい
内部ルータを介してsamba-ADを中心にしたネットワークがある.
ここに別のネットワークにあるマシン(emfs)をこのADに参加させて、アカウントを共有させたい.
*LDAPによる方法はsamba/LDAPを参照のこと. あちらはNATPルータを使ってます
AD参加するためには、ルータはNATPでは無理. 普通のルータで構築する必要がある.
静的NATも使えないみたい. とにかくIP変換は無理のご様子. なのでポートフォワードも無理みたい.
*LDAPはNATPでも大丈夫だが、kerberosが通らない
router/iptbles
既にルータには2枚のnicが装着されているとする.
Device | IP Address | Gateway | DNS servers | Search domain |
eth0 | 192.168.0.100/24 | 192.168.0.1 | 192.168.0.3 | sybyl.local |
eth1 | 10.10.0.254/24 |
[root@gate ~]# ip route
default via 192.168.0.1 dev eth0 proto static metric 100
10.10.0.0/24 dev eth1 proto kernel scope link src 10.10.0.254 metric 101
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.100 metric 100
[root@gate ~]#
[root@gate ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
[root@gate ~]# /sbin/sysctl -p
[root@gate ~]# systemctl stop firewalld.service
[root@gate ~]# systemctl disable firewalld.service
[root@gate ~]# yum install squid
[root@gate ~]# systemctl enable squid
[root@gate ~]# systemctl start squid
biosym.local(10.10.0.0/24)内のsamba-adを構築します. OSはCentOS8です.
Device | IP Address | Gateway | DNS servers | Search domain |
eth0 | 10.10.0.1/24 | 10.10.0.254 | 10.10.0.1 samba-ad設置後は127.0.0.1へ | biosym.local |
[root@ad ~]# ip route
default via 10.10.0.254 dev eth0 proto static metric 100
10.10.0.0/24 dev eth0 proto kernel scope link src 10.10.0.1 metric 100
[root@ad ~]#
[root@ad ~]# echo "proxy=http://10.10.0.254:3128" >> /etc/yum.conf
mkdir -p /opt/src && cd /opt/src
curl -O https://download.samba.org/pub/samba/stable/samba-4.12.5.tar.gz -x http://10.10.0.254:3128
tar xzf samba-4.12.5.tar.gz && cd samba-4.12.5
yum install epel-release
yum --enablerepo=epel,PowerTools install gnutls-devel gpgme-devel jansson-devel libacl-devel libarchive-devel libattr-devel lmdb-devel \
openldap-devel pam-devel perl-Parse-Yapp python3-dns python36-devel zlib-devel rpcgen
./configure --prefix=/opt/samba && make && make install
( cd /lib64 ; ln -sv /opt/samba/lib/libnss_* .)
( cd /lib64/security ; ln -sv /opt/samba/lib/security/* . )
echo "exclude=samba-winbind-modules" >> /etc/yum.conf
firewall-cmd --add-service=samba-dc --permanent
(nfsサービスも行うなら)
firewall-cmd --add-service=mountd --permanent
firewall-cmd --add-service=nfs --permanent
firewall-cmd --add-service=rpc-bind --permanent
firewall-cmd --reload
クライアントのネットワーク周りは下記のようにします
注意点は、DNS参照先がルータ越しのsamba-ADであること. そして、10.10.0.0/24へのルーティングテーブルを持っていること.
Device | IP Address | Gateway | DNS servers | Search domain |
eth0 | 192.168.0.102/24 | 192.168.0.1 | 10.10.0.1 192.168.0.3 | biosym.local sybyl.local |
nmtuiコマンドで定義する画面:
[root@emfs ~]# ip route
default via 192.168.0.1 dev ens192 proto static metric 100
10.10.0.0/24 via 192.168.0.100 dev ens192 proto static metric 100
192.168.0.0/24 dev ens192 proto kernel scope link src 192.168.0.102 metric 100
127.0.0.1 localhost.localdomain localhost
192.168.0.102 emfs.biosym.local emfs # biosym.local所属にしている. こうしないと ad.biosym.local のDNSに自動登録されない.
yum install samba-common samba-common-tools sssd krb5-workstation
[root@emfs ~]# vi /etc/samba/smb.conf
[global]
workgroup = BIOSYM
security = ADS
realm = BIOSYM.LOCAL
log file = /var/log/samba/%m.log
kerberos method = secrets and keytab
client signing = yes
client use spnego = yes
[root@emfs ~]# net ads join osName=CentOS -Uadministrator
Enter administrator's password:
Using short domain name -- BIOSYM
Joined 'EMFS' to dns domain 'biosym.local'
[root@emfs ~]#
[root@emfs ~]# vi /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = biosym.local
[domain/biosym.local]
id_provider = ad
auth_provider = ad
access_provider = ad
enumerate = True
krb5_keytab = /etc/krb5.keytab
ldap_id_mapping = False
ldap_sasl_authid = emfs$@BIOSYM.LOCAL
[root@emfs ~]# chmod 600 /etc/sssd/sssd.conf
[root@emfs ~]# authconfig --enablesssd --enablesssdauth --enableforcelegacy --update
[root@emfs ~]# systemctl start sssd && systemctl enable sssd
これでad.biosym.localで認証を受けられるようになる.
あとはbiosym.localにあるnfsをマウントしたりして環境を整える.