Moodleインストール
MoodleはPHPでメモリを使用しそうなので、PHPの設定ファイルの以下パラメータの値を変更しておきます。
※ 時間が足りなくてMoodleインストールは断念しました。
# vi /etc/php.ini memory_limit = 2048M post_max_size = 16M upload_max_filesize = 4M # Moodle用のデータベースを作成 # mysql -u root -p Enter password: # パスワードを入力 mysql> create database moodle default character set utf8; mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | moodle | # moodleDBが追加 | mysql | | performance_schema | +--------------------+ # moodleユーザを作成し、moodleDBへ全権限を付与 mysql> grant all on moodle.* to moodle@localhost identified by '******'; mysql> select user from mysql.user; # moodleユーザ登録確認 +--------+ | user | +--------+ | root | | root | | moodle | # moodleユーザが追加 | root | | root | +--------+ mysql> flush privileges; # 上記設定をMySQLサーバーへ反映 mysql> exit # moodleをダウンロード # wget https://download.moodle.org/download.php/stable34/moodle-3.4.tgz # 続きは別途
LinuxサーバをActiveDirectoryに参加させる
Sambaのインストール
# yum clean all # キャッシュのクリア # yum install samba # sambaインストール # yum install samba-client # samba-clientインストール # yum install samba-winbind # winbindインストール # yum install samba-winbind-clients # winbind-clientsインストール # vi /etc/samba/smb.conf [global] workgroup = XXXXX # ドメイン名を記載 security = ads # ADドメインで認証をするという宣言 password server = XXXXXX.XXXXX.XX.ac.bw # ドメインコントローラーのFQDN realm = XXXXX.XX.AC.BW # ドメインのFQDN winbind offline logon = false # ドメインコントローラーと通信途絶時にキャッシュログオンを許可しない winbind use default domain = true # ログオン時にドメイン名を明示的に指定しない事を許可 idmap config * : range = 16777216-33554431 template shell = /bin/bash log file = /var/log/samba/log.%m max log size = 50 # systemctl start smb # sambaデーモンを起動 # systemctl start winbind # winbindデーモンを起動 # systemctl is-active smb # 起動したことを確認 # systemctl is-active winbind # systemctl enable smb # 自動起動の設定 # systemctl enable winbind # systemctl is-enabled smb # 自動起動になっていることを確認 # systemctl is-enabled winbind # systemctl list-unit-files -t service # 全てのサービスの自動起動の有無を確認する場合 # この段階ではwinbindは起動しないので、下記エラーで起動できなくても気にせず先に進みます。 # systemctl start winbind Job for winbind.service failed. See 'systemctl status winbind.service' and 'journalctl -xn' for details.
ネームサービススイッチ(NSS)の設定変更
# vi /etc/nsswitch.conf # winbindを追加 passwd: files winbind shadow: files winbind group: files winbind
バケットフィルタリングの設定
Sambaサーバの公開(外部からの通信の許可)
# firewall-cmd --permanent --add-service=samba # sambaを許可 # firewall-cmd --permanent --add-service=samba-client # samba-clientを許可 # firewall-cmd --reload # 設定を反映 # firewall-cmd --permanent --list-services # 公開されているサービスを確認
Sambaをドメインメンバとして動作させる為に、Kerberos認証の設定
–krb5kdc/–krb5realmオプションにより,XXXXX.XX.AC.BWというレルムに関する設定が追加されます。
# 設定ファイルはあるもののkinitがないので、インストールしておきます。 # yum clean all # yum install krb5-workstation # 設定ファイルの変更 # cp -p /etc/krb5.conf /etc/krb5.conf.org # authconfig --krb5kdc=10.XX.XX.XX --krb5realm=XXXXX.XX.AC.BW --update # kinitコマンドを実行してKerberosのチケットを受け取る # kinit administrator@XXXXX.XX.AC.BW Password for administrator@XXXXX.XX.AC.BW: # パスワードを入力 # Kerberos チケットが取得できたことを確認 # klist Default principal: administrator@STAFF.XXXXX.XX.AC.BW Valid starting Expires Service principal 18/11/2017 13:55:19 18/11/2017 23:55:19 krbtgt/XXXXX.XX.AC.BW@XXXXX.XX.AC.BW renew until 25/11/2017 13:55:13
Active Directory ドメインに参加
# ドメインに参加 # net ads join -U administrator Enter Administrator's password: # パスワードを入力 Using short domain name -- XXXXX Joined 'XXXXX' to dns domain 'XXXXX.XX.ac.bw' # systemctl start winbind # 再度winbindを起動 # systemctl is-active winbind # 起動を確認 # ドメイン情報表示 # net ads info LDAP server: 10.XX.XX.XX LDAP server name: XXXXX.XX.ac.bw Realm: XXXXX.XX.AC.BW Bind Path: dc=XXXXX,dc=XX,dc=AC,dc=BW LDAP port: 389 Server time: Wed, 15 Nov 2017 22:16:46 CAT KDC server: 10.XX.XX.XX Server time offset: -24 Last machine account password change: Wed, 15 Nov 2017 21:55:05 CAT # wbinfo -t # Winbind機構とADとの通信が行われていることを確認 checking the trust secret for domain XXXXX via RPC calls succeeded # wbinfo -u # ADに存在するアカウントを表示 # wbinfo -a ユーザ名%パスワード # Winbindによるユーザ認証を確認 plaintext password authentication succeeded challenge/response password authentication succeeded # ユーザのホームディレクトリを自動で作成(下記行を追記) # vi /etc/pam.d/system-auth session required /usr/lib64/security/pam_mkhomedir.so skel=/etc/skel umask=0022 # winbindの再起動 # systemctl restart winbind # AD のユーザーに遷移可能か確認 # su - administrator $ id uid=16777216(administrator) gid=16777220(domain users) groups=16777220(domain users),16777216(BUILTIN\administrators),16777217(BUILTIN\users),16777221(denied rodc password replication group),16777222(enterprise admins),16777223(schema admins),16777224(domain admins),16777225(group policy creator owners) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 # Windowsクライアントのエクスプローラーから、Linuxサーバのホームディレクトリにアクセス(\\10.XX.XX.XX) # smbstatus # 接続状態を確認 Samba version 4.6.2 PID Username Group Machine Protocol Version Encryption Signing -------------------------------------------------------------------------------------------------------------------------- 6446 XXXXXXXX domain users 10.XX.XX.XX (ipv4:10.XX.XX.XX:55653) SMB3_11 - partial(AES-128-CMAC) Service pid Machine Connected at Encryption Signing ------------------------------------------------------------------------------------- XXXXXXXX 6446 10.XX.XX.XX Sat Nov 18 16:51:53 2017 CAT - - Locked files: Pid Uid DenyMode Access R/W Oplock SharePath Name Time ---------------------------------------------------------------------------------------------------------------------- 6446 16777217 DENY_NONE 0x100081 RDONLY NONE /home/STAFF/XXXXXXXX . Sat Nov 18 16:51:52 2017
参考
Active DirectoryとLinuxの認証を統合しよう
Samba : Winbind で ADドメイン参加
UNIX ベースのアプリケーション用サブシステムのユーティリティーと SDK のインストール
ADから詳細なユーザ情報を取得するには、「UNIX ベース アプリケーション用サブシステムのユーティリティと SDK」をインストールする必要があるので、下記を参考にインストールします。
参考
UNIX ベースのアプリケーション用サブシステムのインストールと構成
Services for UNIX のインストール
ADからユーザ情報を収集
ADからユーザ情報を抜き出したかったのですが、ユーザと所属グループだけで、他のオフィス名や内線番号は取得できないことがわかりました。
# net usersidlist | grep -v "^ " # ユーザ名のみ抜き出す # net user info ユーザ名 # ユーザの詳細(グループ)を表示 Domain Users ICT SUPPORT
参考
netコマンド(ドメイン連携・管理)
Samba が動作する Linux マシンを Windows ドメインに参加させる方法
Active Directoryのアカウント情報をcsvdeコマンドでエクスポート
LinuxからADのユーザ情報を抜き出せなかったので、Windowsサーバ上でcsvdeコマンドを実行してユーザ情報を取得します。
;; Unicodeでexport.csvにエクスポートする ;; ユーザー・アカウントのみエクスポートするには、-rオプションを指定 ;; -lオプションで必要な属性をカンマで区切って指定可能 C:\> csvde -u -f export.csv -r objectCategory=user -l dn,homeDirectory,sAMAccountName,givenName,sn,physicalDeliveryOfficeName,telephoneNumber,description,userPrincipalName
参考
Active Directoryのアカウント情報をcsvdeコマンドでエクスポートする
Linux上で上記エクスポートファイルをカスタマイズ
Linuxへftp転送し、sed&awkコマンドを使用して必要な情報以外は削除し、フォーマットを整えます。
# iconv -f Unicode -t UTF-8 export.csv > export.data # 文字コードをUTF8に変換 # sed -e '1d' export.data > export.data2 # タイトル行を削除 # sed -e '/CN=Users/d' export.data2 > export.data3 # 不要行を削除 # フォーマットを編集 # sed -e 's/OU=OCAAT NON-ACCADEMIC OU/NON-ACCADEMIC/g' export.data3 > export.data4 # sed -e 's/OU=OCAAT ACCADEMIC OU/ACCADEMIC/g' export.data4 > export.data5 # sed -e 's/OU=//g' export.data5 > export.data6 # sed -e 's/L_//g' export.data6 > export.data7 # sed -e 's/\\\\\\\\NX3000STAFF\\\\//g' export.data7 > export.data8 # sed -e 's/MANAGEMENT/ADMINISTRATION/g' export.data8 > export.data9 # sed -e 's/_HOME$\\\\/,/g' export.data9 > export.data10 # 必要な列のみ抽出 # awk -F, '{print $3,$13,$2,$15,$12,$9,$10,$11,$17}' export.data10 NON-ACCADEMIC ADMINISTRATION ICT SUPPORT アカウント名 FirstName SirName ICTG05 4653 ADMG2101 :
メールサーバ構築(Postfix+Dovecot)
※ 帰国が迫り時間が足りなくて断念。。政府ドメインのメールアドレスは各職員持っていましたが届かないことが多く、Gmail(個人アカウント)と併用したりしていました。なので、メールサーバの構築はやりたかったのですが。。