いまだ名もなきサービスの開発環境構築の記録
この記事が誰かの何かの役に立つだろうか?いや、立つまい。
ここに記されるのは「 」という名前のサービスを
構築するにあたっての試行錯誤の記録。まとめでもないし
手順としても行きつ戻りつの内容だ。
だが何かのヒントにはなるかもしれない。そう願う。
では、試行錯誤を始めよう。
# はじめに
- 「 」はメールアドレスを提供する
- AWS上で動かす想定
- プロトタイプの開発に自宅のESXi環境にインフラ構築する
- 他はなんとなくで想像しておいてほしい
# 開発環境 on ESXi
- Amazon Linux 2 を仮想マシンとしてオンプレミスで起動できるように設定済みであるとする
## お膳立て(MF1/MS)
- /etc/resolv.conf (ESXi環境固有)
- Input:nameserver 192.168.11.187
- sudo yum -y upgrade
- df -hT
> /dev/sda1 xfs 25G 1.4G 24G 6% /
## @MS LVM関連
- 前提:VMコンソールで10GBのDisk追加済であること
- LVM インストール
> 参考:<https://qiita.com/abcb2/items/35f8ec509dd3916fb12b>
- sudo yum search lvm
> lvm2.x86_64 : Userland logical volume management tools
- sudo yum -y install lvm2.x86_64
> Package 7:lvm2-2.02.177-4.amzn2.0.2.x86_64 already installed and latest version
> Nothing to do
- 追加DriveのLVM設定
- 情報表示
`lsblk`
> NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
> sda 8:0 0 25G 0 disk
> ├─sda1 8:1 0 25G 0 part /
> └─sda128 259:0 0 1M 0 part
> sdb 8:16 0 10G 0 disk
- 指定した情報表示
`sudo lsblk -a -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL`
> NAME SIZE FSTYPE MOUNTPOINT UUID LABEL
> sda 25G
> ├─sda1 25G xfs / 8b852a7d-459f-4eb2-988f-5f3e2196b74a /
> └─sda128 1M
> sdb 10G
> sr0 368K iso9660 2019-09-22-10-06-15-00 cidata
- パーティショニング
- GPTにしたいのでgdiskを使う(標準で入ってた)
> 参考:<https://mattintosh.hatenablog.com/entry/20140926/1411686000>
`sudo gdisk /dev/sdb`
> Command (? for help): ?
> b back up GPT data to a file
> c change a partition's name
> d delete a partition
> i show detailed information on a partition
> l list known partition types
> n add a new partition
> o create a new empty GUID partition table (GPT)
> p print the partition table
> q quit without saving changes
> r recovery and transformation options (experts only)
> s sort partitions
> t change a partition's type code
> v verify disk
> w write table to disk and exit
> x extra functionality (experts only)
> ? print this menu
`Command (? for help): o`
`Proceed? (Y/N): y`
`Command (? for help): n`
`[Enter]`,`[Enter]`,`[Enter]`,`Hex code or GUID (L to show codes, Enter = 8300): 8e00`
`Command (? for help): p` で確認
> Disk /dev/sdb: 20971520 sectors, 10.0 GiB
> Logical sector size: 512 bytes
> Disk identifier (GUID): 03CE336D-672F-4DE0-A42B-DF19DF500F2E
> Partition table holds up to 128 entries
> First usable sector is 34, last usable sector is 20971486
> Partitions will be aligned on 2048-sector boundaries
> Total free space is 2014 sectors (1007.0 KiB)
>
> Number Start (sector) End (sector) Size Code Name
> 1 2048 20971486 10.0 GiB 8E00 Linux LVM
`Command (? for help): w` で書き込んで `proceed? (Y/N): y` で終了。
- LVMのボリューム作成
- 一応現在の情報表示
`sudo pvs`
`sudo vgs`
`sudo lvs`
`sudo lsblk -a -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL`
> sdb 10G
> └─sdb1 10G
- PV作成
`sudo pvcreate /dev/sdb1`
`sudo pvs`
> PV VG Fmt Attr PSize PFree
> /dev/sdb1 lvm2 --- <10.00g <10.00g
- VG作成(adrl-usersという名のVG)
`sudo vgcreate adrl-users /dev/sdb1`
`sudo vgs`
> VG #PV #LV #SN Attr VSize VFree
> adrl-users 1 0 0 wz--n- <10.00g <10.00g
- LV作成(LVは1つだけで、どんどん拡張していく想定)
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/logical_volume_manager_administration/lv>
`sudo lvcreate --name addrle -l 100%FREE adrl-users`
`sudo lvs`
> LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
> addrle adrl-users -wi-a----- <10.00g
- ファイルシステム作成
`sudo lvdisplay`
> LV Path /dev/adrl-users/addrle
> LV UUID REBC40-KFir-CvuK-pIXe-qa8A-dyo0-ZXkStE
`sudo mkfs.xfs /dev/adrl-users/addrle`
- マウントする
`sudo mkdir -p /adrl/USERS`
`sudo mount -t xfs /dev/adrl-users/addrle /adrl/USERS`
`findmnt`
`sudo vi /etc/fstab`
Input:`/dev/adrl-users/addrle /adrl/USERS xfs defaults,attr2,inode64,uquota 0 2`
- 再起動して確認
`sudo reboot`
ログインして
`findmnt`
## @MS NFS関連
- /adrl/USERS をエクスポートする
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/storage_administration_guide/nfs-serverconfig>
- /etc/exports
Input:`/adrl/USERS 192.168.11.0/24(rw,no_root_squash)`
- ファイル変更読み込み
`sudo exportfs -r`
`sudo lsof -i -P`
- サービス起動
`sudo systemctl start nfs-server.service`
`sudo systemctl status nfs-server.service`
- 起動時に有効化
`sudo systemctl enable nfs-server.service`
## @MF1 NFS関連
- MSの/adrl/USERSを/home/USERSとしてマウントする
- まずはコマンドで
`sudo mkdir /home/USERS`
`sudo mount -t nfs -o rw,intr 192.168.11.122:/adrl/USERS /home/USERS`
`df -hT`
> 192.168.11.122:/adrl/USERS nfs4 10G 42M 10G 1% /home/USERS
- /etc/fstab
Input:`192.168.11.122:/adrl/USERS /home/USERS nfs rw,intr 0 0`
## @MF1 ユーザー作成
- メールユーザー作成
`sudo useradd -b /home/USERS -m mailuser1`
`echo mailuser1:pss-mailuser | chpasswd`
-----
2019-09-22 ここまで
-----
## @MF1 ユーザー系設定
- Maildir作成
`sudo mkdir /etc/skel/Maildir && sudo chmod 700 /etc/skel/Maildir`
## @MS quota設定
- quota limit
- 状態確認
`sudo xfs_quota -x -c 'report -h' /adrl/USERS`
- limit 設定
`sudo xfs_quota -x -c 'limit bsoft=190m bhard=200m 1002' /adrl/USERS`
## @MS rsync関連
- ディレクトリ作成
`sudo mkdir /adrl/{_sysrepo,_bin}`
- cron設定 /etc/cron.daily/sysrepo.bash
`sudo vi /adrl/_bin/sysrepo.bash`
#!/bin/bash
###output
EXECDATE=$(date +%y%m%dT%H%M%S)
xfs_quota -x -c 'report -h' /adrl/USERS > /adrl/_sysrepo/quotarepo-${EXECDATE}.log
###CleanUP
find /adrl/_sysrepo -atime +7 > /adrl/_sysrepo/removefiles-${EXECDATE}.log
find /adrl/_sysrepo -atime +7 -exec rm {} \;
###EndofScript
`sudo chmod 750 /adrl/_bin/sysrepo.bash`
`sudo ln -s -T /adrl/_bin/sysrepo.bash /etc/cron.daily/sysrepo.bash`
## MF1/MS bashrc
`vi ~/.bashrc`
Input:
`unalias vi`
``alias ffd='find `pwd` -type d'``
``alias fff='find `pwd` -type f'``
## MF1/MS NTP @dev-offline only
`sudo vi /etc/chrony.conf`
#server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
server ntp.jst.mfeed.ad.jp iburst
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
## @MF1 コンポーネントインストール
### まず Keycloak
#### Keycloakの要件の Java 8 JDK を入れる
- Java 8 JDK
`sudo yum -y install java-1.8.0-openjdk.x86_64`
- java.security.egd で urandom
#####`java -Djava.security.egd=file:/dev/./urandom` こうするらしいが、一旦保留
- zip or gzip
→両方標準で入っている
- PostgreSQL (with JDBC)
`sudo yum -y install postgresql-server.x86_64 postgresql-jdbc.noarch postgresql.x86_64`
- Keycloak
> <https://www.keycloak.org/docs/latest/getting_started/index.html> この辺を読みながら
`cd ~ && mkdir keycloaksetup && cd keycloaksetup && wget https://downloads.jboss.org/keycloak/7.0.0/keycloak-7.0.0.tar.gz`
`tar -xzf keycloak-7.0.0.tar.gz`
`sudo mkdir /addrle`
`sudo mv keycloak-7.0.0 /addrle/keycloak`
- standalone で起動してみる
`cd /addrle/keycloak/bin`
`sudo ./standalone.sh`
- 127.0.0.1 しかLISTENしてないので /addrle/keycloak/standalone/configuration/standalone.xml 編集
`sudo vi /addrle/keycloak/standalone/configuration/standalone.xml`
/127.0.0.1 で検索して IP 修正 → 192.168.11.121
/8080 で検索して Bind Port 修正 → 9801
また、送信元IP制限を設定する場合は以下を参照。※非常に分かりにくいが standalone.xml または domain.xml を編集せよと。
> <https://www.keycloak.org/docs/latest/server_admin/index.html#ip-restriction>
- https://mf1.esxi.home.lan:9801/auth/admin でアクセスできるが、ユーザー名/パスワードを聞かれる。localhostからのアクセスでないと、イニシャライズが走らないらしい。
ガイドには bin/add-user-keycloak を実行せよとある。
#####ex.`sudo ./add-user-keycloak.sh -r master -u <username> -p <password>`
`sudo ./add-user-keycloak.sh -r master -u keymaster -p PSS-adminrole`
> Added 'keymaster' to '/addrle/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user こう出る
#### 手動起動は面倒なので sytemd にサービス登録する。
`sudo cp /usr/lib/systemd/system/chronyd.service /etc/systemd/system/keycloak.service`
`sudo vi /etc/systemd/system/keycloak.service`
だいたい書き換え
-----
[Unit]
Description=Keycloak standalone
[Service]
Type=simple
ExecStart=/addrle/keycloak/bin/standalone.sh
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
-----
`sudo systemctl start keycloak.service`
`sudo systemctl status keycloak.service`
`sudo systemctl enable keycloak.service`
- 改めてブラウザで https://mf1.esxi.home.lan:9801/auth/admin
> <https://www.keycloak.org/docs/latest/server_admin/index.html> 3.1 あたりから
- Master Realm ※ガイドにはマスターレルムではユーザー管理を行わない方がいい、とある。
- Realm Settings
- Name ※変更不可
master
- Display name
Keycloak
- HTML Display name
<div><span>Keycloak</span></div>
- Enabled
[ON]
- User-Managed Access
[OFF]
- Endpoints
OpenID ~~
SAML 2.0 ~~
- 左上の「Master」のところで「Add Realm」
- Import ... [Select file]とあるので、エクスポートしたファイルを読み込めそう。
- Name
addrle-users
- Enabled
[ON]
→[Create]
- addrle-users Realm
- Configure
- Realm Settings
- General
- Name
addrle-users
- Display name
addrle-users
- HTML Display name
- Enabled
[ON]
- User-Managed Access
[OFF] ※暫定
- Endpoints
OpenID ~~
SAML 2.0 ~~
- Login
- User registration
[OFF]→[ON]
- Email as username
[OFF]→[ON]
- Edit username
[OFF]
- Forgot password
[OFF]→[ON]
- Remember Me
[OFF]→[ON]
- Verify email
[OFF]
- Login with email
[ON]
- Require SSL
[external requests] ※暫定
→[Save]
- Keys ※今はとりあえずスルー
- Host
localhost
- Port
25
- From Display Name
addrle ID management
- From
info@esxi.home.lan
- Reply To Display Name
- Reply To
- Envelope From
- Enable SSL
[OFF]
- Enable StartTLS
[OFF]
- Enable Authentication
[OFF]
→[Save]
- Themes
- Login Theme
keycloak
- Account Theme
keycloak
- Admin Console Theme
base
- Email Theme
keycloak
- Internationalization Enabled
[OFF]→[ON]
- Supported Locales
※jaとenがあれば良いが、消す必要もないので初期値
- Default Locale
ja
→[Save]
- Cache ※キャッシュのクリアーボタンしかない
- Tokens
- Default Signature Algorithm
RS256
※あとは初期値で
→[Save]
- Client Registration
- Initial Access Tokens
→保留
- Security Defenses
- Clients
- Client Scopes
- Roles
- Identity Providers
- User Federation
- Authentication
- Manage
- Groups
- Users
- Sessions
- Events
- Import
- Export
※一旦はここまで
- Getting Start に倣っていく。3.3 New User
- https://mf1.esxi.home.lan:9801/auth/admin/ → 「addrle-users」→「User」→「Add User」
- Username
adrl-u01
adrl-u01@esxi.home.lan
- First Name
- Last Name
- User Enabled
[ON]
- Email Verified
[OFF]
- Required User Actions
- Locale
→[Save]
- Credentials タブ
- New Password
pss-standard
- Password Confirmation ※Retype
- Temporary
[ON]→[Off]
→[Reset Password]
- 3.4 User Account Service
- keymasterをサインアウトして、 https://mf1.esxi.home.lan:9801/auth/realms/addrle-users/account
#### 根本的にLinuxのシステムユーザーを管理するプロダクトではなさそう。(メールアドレスありきの登録方法)
- Domain Clustered Mode
> <https://www.keycloak.org/docs/latest/server_installation/index.html#_domain-mode>
#### 要プロダクト再検討
- keycloak再検討
- 「User Federation」でLDAP連携ができる → とはいえ、ユーザー登録にはメールアドレスが必要なことを考えると、不採用。
-----
2019-09-23 ここまで
-----
## メール関連設定
### @MF1 postfix設定
- main.cf 設定
- 現状確認
`sudo postconf -n`
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550
- main.cf編集
`sudo vi /etc/postfix/main.cf`
home_mailbox = Maildir/
recipient_delimiter = +
mail_name = addrle
maximal_queue_lifetime = 2d
myhostname = mf1.esxi.home.lan
mydomain = esxi.home.lan
mydestination = $mydomain, $myhostname, localhost
myorigin = $mydomain
mailbox_size_limit = 262144000
message_size_limit = 47185920
smtpd_recipient_limit = 13
inet_interfaces = $myhostname, localhost
- リロードして確認
`sudo systemctl reload postfix`
`sudo systemctl status postfix`
> warning: bounce_queue_lifetime is larger than maximal_queue_lifetime - adjusting bounce_queue_lifetime
- もう一回編集
`sudo vi /etc/postfix/main.cf`
bounce_queue_lifetime = 2d
- リロードして確認
`sudo systemctl reload postfix`
`sudo systemctl status postfix`
- 一応メールを送ってみる to mailuser1
`mail mailuser1`
> -bash: mail: command not found
後で。
### @MF1 dovecot設定
- dovecotインストール
`sudo yum install dovecot`
- dovecot.conf編集
`sudo vi /etc/dovecot/dovecot.conf`
protocols = imap
listen = *
login_trusted_networks = 192.168.11.0/24 127.0.0.0/8
- 起動して確認
`sudo systemctl start dovecot`
`sudo systemctl status dovecot`
- 自動起動有効化
`sudo systemctl enable dovecot`
### @PC IMAP接続可能なメーラーで確認
- Edmaxで確認
> ログインエラー。サーバーログを見よと。
- meillog
> Sep 25 01:36:14 mf1 dovecot: imap(mailuser1): Error: user mailuser1: Initialization failed: Namespace '': Mail storage autodetection failed with home=/home/USERS/mailuser1
> Sep 25 01:36:14 mf1 dovecot: imap(mailuser1): Error: Invalid user settings. Refer to server log for more information.
- dovecotの設定追加
`sudo vi /etc/dovecot/conf.d/10-mail.conf`
mail_location = maildir:~/Maildir
- リスタートして確認
`sudo systemctl restart dovecot.service`
`sudo systemctl status dovecot`
-----
2019-09-24 ここまで
-----
## ID管理系設定
### @MF1 OpenLDAP設定
- OpenLDAPインストール
`sudo yum -y install openldap-servers.x86_64 openldap-clients.x86_64`
- サービス起動・有効化
`sudo systemctl start slapd`
`sudo systemctl status slapd`
`sudo systemctl enable slapd`
- config確認
> 参考:<https://qiita.com/gigatune/items/ec6427e99df21ad2d2b4>
`sudo ldapsearch -L -Y EXTERNAL -H ldapi:/// -b cn=config dn`
`sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b 'olcDatabase={2}hdb,cn=config'`
- schema確認
`sudo ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn`
> dn: cn={0}core,cn=schema,cn=config
> コアスキーマしかない。。。
- 初期設定
- 初期設定用LDIF
`sudo vi /addrle/slapd010_setup.ldif`
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}L+j4i1HEA2OFrTeWVhrKxuQSMZaAGTuO
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=addrle,dc=info
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapmaster,dc=addrle,dc=info
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}L+j4i1HEA2OFrTeWVhrKxuQSMZaAGTuO
- 初期設定用LDIF反映
`sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /addrle/slapd010_setup.ldif`
- スキーマ追加
`sudo ldapadd -H ldapi:/// -Y EXTERNAL -f /etc/openldap/schema/cosine.ldif`
`sudo ldapadd -H ldapi:/// -Y EXTERNAL -f /etc/openldap/schema/nis.ldif`
`sudo ldapadd -H ldapi:/// -Y EXTERNAL -f /etc/openldap/schema/inetorgperson.ldif`
`sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn`
- 初期登録用LDIF
`sudo vi /addrle/slapd020_mailuser2.ldif`
dn: dc=addrle,dc=info
objectClass: dcObject
objectClass: organization
dc: addrle
o: ALTERWORKS
dn: ou=USERS,dc=addrle,dc=info
objectClass: organizationalUnit
ou: USERS
dn: uid=ldapuser,ou=USERS,dc=addrle,dc=info
objectClass: account
objectClass: posixAccount
uid: mailuser2
cn: mailuser2
userPassword: {SSHA}AYbiWUWj5f4rYOAkrBVEKG2ZGKoujcu+
loginShell: /bin/bash
uidNumber: 1003
gidNumber: 1003
homeDirectory: /home/USERS/mailuser2
- 初期登録用LDIF反映
`ldapadd -H ldapi:/// -D "cn=ldapmaster,dc=addrle,dc=info" -W -f /addrle/slapd020_mailuser2.ldif`
:: Enter Password ::
- 登録内容確認
`sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b "dc=addrle,dc=info"`
> mailuser2のdn間違えた
- 再登録用LDIF
`sudo vi /addrle/slapd021_mailuser2.ldif`
dn: uid=ldapuser,ou=USERS,dc=addrle,dc=info
changetype: delete
dn: uid=mailuser2,ou=USERS,dc=addrle,dc=info
objectClass: account
objectClass: posixAccount
uid: mailuser2
cn: mailuser2
userPassword: {SSHA}AYbiWUWj5f4rYOAkrBVEKG2ZGKoujcu+
loginShell: /bin/bash
uidNumber: 1003
gidNumber: 1003
homeDirectory: /home/USERS/mailuser2
- 再登録
`ldapadd -H ldapi:/// -D "cn=ldapmaster,dc=addrle,dc=info" -W -f /addrle/slapd021_mailuser2.ldif`
### OS認証設定
- authconfig-tui
`sudo authconfig-tui`
> User Information
>> [* ] Use LDAP
> Authentication
>> [* ] Use LDAP Authentication
[Next]
> ERROR: /usr/lib64/libnss_ldap.so.2 が無い
- 不足パッケージインストール
`sudo yum -y install nss-pam-ldapd`
- authconfig
`sudo id mailuser2`
:: id: mailuser2: no such user ::
`sudo authconfig --test --enableldap --enableldapauth --ldapserver=127.0.0.1 --ldapbasedn="ou=USERS,dc=addrle,dc=info"`
`sudo authconfig --update --enableldap --enableldapauth --ldapserver=127.0.0.1 --ldapbasedn="ou=USERS,dc=addrle,dc=info"`
`sudo id mailuser2`
:: uid=1003(mailuser2) gid=1003 groups=1003 ::
**ユーザーIDはできているが、当然$HOMEのディレクトリは存在しない**
## ここまでやってアレだけど、ipa-serverの方が良さそう
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system-level_authentication_guide/authconfig-install>
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/linux_domain_identity_authentication_and_policy_guide/index#setting-up-clients>
## ちょと寄り道cron設定 @MS
- sysrepo.bash
#!/bin/bash
####Set mail HEADER
EXECDATE=$(date +%Y%m%dT%H%M)
echo "From: mailuser1@esxi.home.lan" > /adrl/_sysrepo/quotarepo-${EXECDATE}.log
echo "To: mailuser1@esxi.home.lan" >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
echo "Subject: DiskUsageReport ${EXECDATE}" >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
echo "" >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
####output
df -h /adrl/USERS >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
echo "" >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
xfs_quota -x -c 'report -h' /adrl/USERS >> /adrl/_sysrepo/quotarepo-${EXECDATE}.log
####Sendmail
sendmail -i -f mailuser1@esxi.home.lan mailuser1@esxi.home.lan < /adrl/_sysrepo/quotarepo-${EXECDATE}.log
####CleanUP
find /adrl/_sysrepo -atime +3 > /adrl/_sysrepo/removefiles-${EXECDATE}.log
find /adrl/_sysrepo -atime +3 -exec rm {} \;
####EndofScript
- /etc/cron.d/sysrepo
`sudo vi /etc/cron.d/sysrepo`
#Run adrl USERS report
SHELL=/bin/bash
PATH=/usr/bin:/bin:/usr/sbin
0 4,12,20 * * * root /adrl/_bin/sysrepo.bash
## MSはローカル配送ではないのでDNSにMXレコードを登録しておく
-----
2019-09-27 ここまで
-----
## @MF1 OpenLiteSpeed
- yumリポジトリ登録
`sudo wget https://rpms.litespeedtech.com/centos/litespeed.repo -P /etc/yum.repos.d/`
- repo編集($releaseverが"2"になってしまう)
`sudo vi /etc/yum.repos.d/litespeed.repo`
litespeed.repo 書き換え:$releasever → 7
- openlitespeedインストール
`sudo yum -y install openlitespeed`
`sudo yum install lsphp73 lsphp73-common lsphp73-mysql lsphp73-gd lsphp73-process lsphp73-mbstring lsphp73-xml lsphp73-mcrypt lsphp73-pdo lsphp73-imap lsphp73-soap lsphp73-bcmath`
> Error: Package: lsphp73-7.3.9-1.el7.x86_64 (litespeed)
> Requires: libargon2.so.0()(64bit)
> Error: Package: lsphp73-pecl-mcrypt-1.0.1-1.el7.7.3.x86_64 (litespeed)
> Requires: libmcrypt.so.4()(64bit)
> Error: Package: lsphp73-imap-7.3.9-1.el7.x86_64 (litespeed)
> Requires: libc-client.so.2007()(64bit)
- さて、どうするか。
- AmazonLinux2でEPEL
`sudo amazon-linux-extras install -y epel`
- openlitespeedインストールリトライ
`sudo yum install lsphp73 lsphp73-common lsphp73-mysql lsphp73-gd lsphp73-process lsphp73-mbstring lsphp73-xml lsphp73-mcrypt lsphp73-pdo lsphp73-imap lsphp73-soap lsphp73-bcmath`
> Complete!
### lsphp73-mysqlはダメみたい。使う予定は無いので無視
`sudo ln -sf /usr/local/lsws/lsphp73/bin/lsphp /usr/local/lsws/fcgi-bin/lsphp5`
- サービス起動するには
起動コマンドは以下(終了は stop)
`/usr/local/lsws/bin/lswsctrl start`
- /etc/systemd/system/openlitespeed.service 作成
`sudo vi /etc/systemd/system/openlitespeed.service`
[Unit]
Description=OpenLiteSpeed Web Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/lsws/bin/lswsctrl start
ExecStop=/usr/local/lsws/bin/lswsctrl stop
Restart=on-failure
RestartSec=15s
[Install]
WantedBy=multi-user.target
- 起動・自動起動設定
`sudo systemctl start openlitespeed.service`
`sudo systemctl enable openlitespeed.service`
- WebConsoleにブラウザでアクセス
- Admin Console
https://mf1.esxi.home.lan:7080/
- こっちはExsampleサイト
https://mf1.esxi.home.lan:8088/
- 設定について勉強
- 基本
> <https://blog.apar.jp/linux/10079/>
> <https://mf1.esxi.home.lan:8088/docs/index.html>
> <https://www.itzgeek.com/how-tos/linux/how-to-create-virtual-hosts-in-openlitespeed-web-server.html>
## @MF1 OpenLiteSpeed 設定していくよ
- まずはListener。port 80で。
https://mf1.esxi.home.lan:7080/
- リスナー名
vm-dev-80
- IP アドレス
ANY
- ポート
80
- バインディング
[デフォルト] ※チェック無し。すべてに関連付けられる
- セキュア
いいえ
- ノート
addrleの開発インフラonローカルVM
→「保存」(フロッピーアイコン)
- 次にVirtul Host
> 全てのディレクトリがあらかじめ存在する必要があります。 このWebインターフェイスでは、ディレクトリは作成されません。
- 先行作業
- addrle.esxi.home.lan のCNAMEレコードを作っておく
- ディレクトリ作成
- Virtual Host Rootディレクトリ
`sudo mkdir /addrle/www`
- 設定ファイルディレクトリ
`sudo mkdir /usr/local/lsws/conf/vhosts/addrlewww`
`sudo chown root:lsadm /usr/local/lsws/conf/vhosts/addrlewww`
`sudo chmod 775 /usr/local/lsws/conf/vhosts/addrlewww`
- バーチャルホスト名(オススメはバーチャルホストのドメイン名)
addrle.esxi.home.lan
- Virtual Host Root
/addrle/www
- 設定ファイル($SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.confをお勧めします。)
/usr/local/lsws/conf/vhosts/addrlewww/vhconf.conf
- ノート
addrleの開発インフラonローカルVM
- シンボリックリンクを許可する
はい
- スクリプト/外部アプリを有効にする
はい
- 抑制された
いいえ
- 最大キープアライブ要求
15 ※暫定値
- スマートキープアライブ
はい
- 外部アプリのUIDモードの設定
DocRoot UID
- suEXEC User
- suEXEC Group
- 静的リクエスト/秒
- 動的 リクエスト/秒
- 送信帯域幅(バイト/秒)
- 受信帯域幅(バイト/秒)
→「保存」
> file /usr/local/lsws/conf/vhosts/addrlewww/vhconf.conf does not exist. CLICK TO CREATE
- [CLICK TO CREATE]をクリック
> /usr/local/lsws/conf/vhosts/addrlewww/vhconf.conf has been created successfully.
→ 「保存」
- Listenerとマッピング
- [リスナー] - 「vm-dev-80」の行の「表示」(虫眼鏡)クリック
- バーチャルホストマップ
「+」で追加
- バーチャルホスト
addrle.esxi.home.lan
- ドメイン(バーチャルホストが1つだけの場合は"*"の使用が薦められている)
addrle.esxi.home.lan
→「保存」
- 設定反映(緩やかな再起動)
左上のホスト名「MF1」をクリック
- [緩やかな再起動]をクリック
→ 「実行」
- サーバー設定
- 一般
- サーバープロセス
右上の「編集」をクリック
- HTTP/2 Over Cleartext TCPを有効にする
はい
- [緩やかな再起動]を
→ 「実行」
- ドキュメントルートディレクトリ
- ディレクトリ作成
`sudo mkdir -p /addrle/www/{html,logs}`
`sudo chown -R lsadm:lsadm /addrle/www`
`sudo chmod -R 2775 /addrle/www`
- index.html(仮)作成
`sudo vi /addrle/www/html/index.html`
`<html lang=ja>`
`<head>`
`<title>addrle</title>`
`</head>`
`<body><p>Building NOW!</p></body>`
`</html>`
- パーミッション設定
`sudo chown lsadm:lsadm /addrle/www/html/index.html`
`sudo chmod 664 /addrle/www/html/index.html`
- ブラウザでバーチャルホストに接続
https://addrle.esxi.home.lan/
> 404
- ログを見る
[ツール] - [サーバーログビューア]
- ``[config:server:vhosts:vhost:addrle.esxi.home.lan] missing <docRoot> in <virtualHostConfig>``
- Admin Console
- バーチャルホスト
- addrle.esxi.home.lan
- 一般
- 一般
- Document Root
$VH_ROOT/html
- ドメイン名
addrle.esxi.home.lan
- ドメインエイリアス
- 管理者Eメール
- 圧縮を有効にする
- IPジオロケーションを有効にする
- cgroups
→「保存」
- ログ
- バーチャルホストログ
- サーバーログを使用する
はい
- ファイル名
$VH_ROOT/logs/addrle-access.log
- ログレベル
WARNING
- ローテーションサイズ(バイト)
100M
→「保存」
- [緩やかな再起動]を
→ 「実行」
- ブラウザでバーチャルホストに接続
https://addrle.esxi.home.lan/
> Building NOW!
-----
2019-09-28 ここまで
-----
## お膳立て(IDM0)
- /etc/resolv.conf (環境固有)
`sudo vi /etc/resolv.conf`
Input:nameserver 192.168.11.187
- Update
`sudo yum -y upgrade`
- df -hT
- bashrc
`vi ~/.bashrc`
Input:
unalias vi
alias ffd='find `pwd` -type d'
alias fff='find `pwd` -type f'
`sudo vi /etc/bashrc`
※PS1=のとこに\Aを入れる
- NTP @dev-offline only
`sudo vi /etc/chrony.conf`
#server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
server ntp.jst.mfeed.ad.jp iburst
server ntp.nict.jp iburst
server 0.jp.pool.ntp.org iburst
- TimeZone
公式手順:<https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html>
`sudo vi /etc/sysconfig/clock`
ZONE="Japan"
`sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime`
`sudo reboot`
- 強制的に時刻変更
`sudo date -s "2019-09-30 00:33:30"`
→ chrony(?)ですぐに9時間ずれてしまう
- こうかな?
`sudo date -s "2019-09-30 00:45" && sudo hwclock -w`
→ chrony(?)ですぐに9時間ずれてしまう。よくわからん。
- ntpdateで
`sudo yum -y install ntpdate.x86_64`
`sudo ntpdate ntp.jst.mfeed.ad.jp`
`timedatectl`
> Local time: Mon 2019-09-30 01:20:26 JST
> Universal time: Sun 2019-09-29 16:20:26 UTC
> RTC time: Mon 2019-09-30 01:25:40
> Time zone: Japan (JST, +0900)
> NTP enabled: yes
> NTP synchronized: no
> RTC in local TZ: no
> DST active: n/a
直った直後に戻ってしまう。
- VMware Tools オプションでESXiホストと同期してた・・・。仮想マシン設定でチェックオフして正常になった、はず。
-----
2019-09-29 ここまで
-----
## @MF1 ldapauthを無効化しておく
`sudo authconfig --test --disableldap --disableldapauth`
`sudo authconfig --update --disableldap --disableldapauth`
`sudo systemctl disable slapd`
-----
2019-09-30 ここまで
-----
# ipa-server ipa-client (FreeIPA)
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/linux_domain_identity_authentication_and_policy_guide/index>
## 内部DNSを使う。内部DNS名は「addrle.pinn」
### ipa-server要件により各マシンのhostname変更(小文字でFQDN)
- MF1 hostname
`sudo hostnamectl set-hostname mf1.addrle.pinn`
- MS hostname
`sudo hostnamectl set-hostname ms.addrle.pinn`
- IDM0 hostname
`sudo hostnamectl set-hostname idm0.addrle.pinn`
### @IDM0 ipa-server インストール
- install
x `sudo yum -y install ipa-server ipa-dns`
o `sudo yum -y install ipa-server ipa-server-dns`
-----
2019-10-01 ここまで
-----
- @IDM0 サーバーインストール
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/linux_domain_identity_authentication_and_policy_guide/index#p.install>
- 初期設定
`sudo ipa-server-install`
- Do you want to configure integrated DNS (BIND)? [no]:
[yes]
- Server host name [idm0.addrle.pinn]:
- Please confirm the domain name [addrle.pinn]:
- Please provide a realm name [ADDRLE.PINN]:
- Directory Manager password:
[**managerPass**]
- IPA admin password:
[**adminPass**]
エラーになった
> ipa.ipapython.install.cli.install_tool(CompatServerMasterInstall): ERROR Integrated DNS requires 'ipa-server-dns' package
> ipa.ipapython.install.cli.install_tool(CompatServerMasterInstall): ERROR The ipa-server-install command failed. See /var/log/ipaserver-install.log for more information
インストール時のパッケージ名間違えてた。
`sudo yum -y install ipa-server-dns`
- 再実行
`sudo ipa-server-install`
...続き
- Do you want to configure DNS forwarders? [yes]:
- Following DNS servers are configured in /etc/resolv.conf: 192.168.11.187
Do you want to configure these servers as DNS forwarders? [yes]:
- Enter an IP address for a DNS forwarder, or press Enter to skip:
- Do you want to search for missing reverse zones? [yes]:
> The IPA Master Server will be configured with:
> Hostname: idm0.addrle.pinn
> IP address(es): 192.168.11.123
> Domain name: addrle.pinn
> Realm name: ADDRLE.PINN
>
> BIND DNS server will be configured to serve IPA domain with:
> Forwarders: 192.168.11.187
> Forward policy: only
> Reverse zone(s): No reverse zone
- Continue to configure the system with these values? [no]:
[yes]
エラーになった
> ipa.ipapython.install.cli.install_tool(CompatServerMasterInstall): ERROR Certificate issuance failed (CA_UNREACHABLE)
> ipa.ipapython.install.cli.install_tool(CompatServerMasterInstall): ERROR The ipa-server-install command failed. See /var/log/ipaserver-install.log for more information
#### エラーの調査
`yum list ipa-server`
> Loaded plugins: langpacks, priorities, update-motd
> 191 packages excluded due to repository priority protections
> Installed Packages
> ipa-server.x86_64 4.5.0-22.amzn2.0.1 @amzn2-core
参考:<https://bugzilla.redhat.com/show_bug.cgi?id=1455561>
参考:<https://pagure.io/freeipa/c/9c1ab3ca5015317091f40ac8c352823a75849cef>
バグやん・・・
version 4.6を待つか、手で直すか
-----
2019-10-02 ここまで
-----
### ファイル拾って差し替え
`locate cainstance.py`
`wget https://pagure.io/freeipa/raw/9c1ab3ca5015317091f40ac8c352823a75849cef/f/ipaserver/install/cainstance.py`
`sudo cp -p /usr/lib/python2.7/site-packages/ipaserver/install/cainstance.py /usr/lib/python2.7/site-packages/ipaserver/install/cainstance.py_org`
`sudo cp cainstance.py /usr/lib/python2.7/site-packages/ipaserver/install/cainstance.py`
- 一度アンインストール
`sudo ipa-server-install --uninstall`
- 再々実行
`sudo ipa-server-install`
ステップは先に進んだが、またエラー。
> [error] AttributeError: 'module' object has no attribute 'pkcs7_to_certs'
- 一度アンインストール
`sudo ipa-server-install --uninstall`
さてさて、どうするか。
## 公式からダウンロードしようか?
> <https://www.freeipa.org/page/Downloads>
## IDM をCentOSにしようか?
> ipa-server.x86_64 4.6.5-11.el7.centos base
### AL2使ってたけど、IDMは一回 CentOS 8 でやってみる
#### CentOS 8 仮想マシン作成
- インストールタイプは「サーバー」で
#### ログインできるようになってから、
- まずPASSなしsudoできるようにする
`sudo visudo`
%wheel ALL=(ALL) NOPASSWD: ALL
- ~/.ssh/authorized_keys作成
- パスワードでsshログイン
- ファイル作成
`ssh-keygen -t rsa`
`vi ~/.ssh/authorized_keys`
`chmod 600 ~/.ssh/authorized_keys`
- お膳立て
- プロンプトに時刻表示
`sudo vi /etc/bashrc`
PS1に \A 追加
- ~/.bashrc
`vi ~/.bashrc`
`unalias vi`
``alias ffd='find `pwd` -type d'``
``alias fff='find `pwd` -type f'``
- /home/USERSマウント
`sudo mkdir /home/USERS`
`sudo vi /etc/fstab`
Input:
192.168.11.122:/adrl/USERS /home/USERS nfs rw,intr 0 0
> エラー:mount: /home/USERS: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.
パッケージが足りてないみたい。
- 検索して
`sudo yum search nfs`
> これかな?:nfs-utils.x86_64
- インストール
`sudo yum -y install nfs-utils.x86_64`
ついでにアップデート
`sudo yum -y update`
- mountして
`sudo mount /home/USERS`
`df -hT`
> ファイルシス タイプ サイズ 使用 残り 使用% マウント位置
> devtmpfs devtmpfs 1.9G 0 1.9G 0% /dev
> tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
> tmpfs tmpfs 1.9G 17M 1.9G 1% /run
> tmpfs tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
> /dev/mapper/cl_idm1-root xfs 45G 2.0G 43G 5% /
> /dev/sda2 ext4 976M 158M 751M 18% /boot
> /dev/sda1 vfat 599M 6.7M 593M 2% /boot/efi
> tmpfs tmpfs 379M 0 379M 0% /run/user/1000
- 再起動
`sudo reboot`
#### AL2に比べてメモリ使用率が高い・・・
#### @idm1 FreeIPAパッケージインストール
- サーバーパッケージインストール
- EPELをれておく
`sudo yum install epel-release.noarch`
- 確認
`yum search ipa-server`
> Extra Packages for Enterprise Linux 8 - x86_64
> 一致する項目はありませんでした。
いない・・・だと?!
#### とりあえず検索
> <https://computingforgeeks.com/how-to-install-and-configure-freeipa-server-on-rhel-centos-8/>
これを見ると、、、
- モジュール検索してからパッケージインストール
`sudo dnf module list idm`
`sudo dnf module info idm:DL1`
`sudo dnf -y install @idm:DL1`
`sudo dnf -y -y install freeipa-server ipa-server-dns bind-dyndb-ldap`
> ... ipa-server-4.7.1-11.module_el8.0.0+79+bbd20d7b.x86_64
> 完了しました!
#### ipa-server-install
- コマンド実行
`sudo ipa-server-install`
- Do you want to configure integrated DNS (BIND)? [no]:
[yes]
- Server host name [idm1.addrle.pinn]:
- Please confirm the domain name [addrle.pinn]:
- Please provide a realm name [ADDRLE.PINN]:
- Directory Manager password:
**managerPASS**
- IPA admin password:
**adminPASS**
- Do you want to configure DNS forwarders? [yes]:
- Following DNS servers are configured in /etc/resolv.conf: 192.168.11.187
Do you want to configure these servers as DNS forwarders? [yes]:
- Enter an IP address for a DNS forwarder, or press Enter to skip:
- Do you want to search for missing reverse zones? [yes]:
[no]
- Continue to configure the system with these values? [no]:
[yes]
> ==============================================================================
> Setup complete
>
> Next steps:
> 1. You must make sure these network ports are open:
> TCP Ports:
> * 80, 443: HTTP/HTTPS
> * 389, 636: LDAP/LDAPS
> * 88, 464: kerberos
> * 53: bind
> UDP Ports:
> * 88, 464: kerberos
> * 53: bind
> * 123: ntp
>
> 2. You can now obtain a kerberos ticket using the command: 'kinit admin'
> This ticket will allow you to use the IPA tools (e.g., ipa user-add)
> and the web user interface.
>
> Be sure to back up the CA certificates stored in /root/cacert.p12
> These files are required to create replicas. The password for these
> files is the Directory Manager password
> The ipa-server-install command was successful
やったぜ!!
- kinit
`sudo kinit admin`
Password for admin@ADDRLE.PINN:
**IPA admin PASS**
#### firewalldが有効だ。止めてもいいが
> 参考:<https://qiita.com/t-morisoba/items/d8702015f92a0dcb7280>
- ポート開け
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=80/udp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=443/udp
sudo firewall-cmd --permanent --add-port=389/tcp
sudo firewall-cmd --permanent --add-port=389/udp
sudo firewall-cmd --permanent --add-port=636/tcp
sudo firewall-cmd --permanent --add-port=636/udp
sudo firewall-cmd --permanent --add-port=88/tcp
sudo firewall-cmd --permanent --add-port=88/udp
sudo firewall-cmd --permanent --add-port=464/tcp
sudo firewall-cmd --permanent --add-port=464/udp
sudo firewall-cmd --permanent --add-port=53/tcp
sudo firewall-cmd --permanent --add-port=53/udp
sudo firewall-cmd --permanent --add-port=123/tcp
sudo firewall-cmd --permanent --add-port=123/udp
`sudo firewall-cmd --reload`
`sudo firewall-cmd --list-all`
#### クライアントインストール(MF1/MS)
- クライアントインストール
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/client-install>
- 当然だが/etc/resolv.confを編集
`sudo vi /etc/resolv.conf`
Change:nameserver 192.168.11.187 → nameserver 192.168.11.124
- クライアントパッケージインストール
`sudo yum -y install ipa-client`
- クライアントインストール
- ipa-client-install ユーティリティー
`sudo ipa-client-install`
> $ sudo ipa-client-install
> WARNING: ntpd time&date synchronization service will not be configured as
> conflicting service (chronyd) is enabled
> Use --force-ntpd option to disable it and force configuration of ntpd
>
> Discovery was successful!
> Client hostname: mf1.addrle.pinn
> Realm: ADDRLE.PINN
> DNS Domain: addrle.pinn
> IPA Server: idm1.addrle.pinn
> BaseDN: dc=addrle,dc=pinn
- Continue to configure the system with these values? [no]:
[yes]
- User authorized to enroll computers:
[admin]
- Password for admin@ADDRLE.PINN:
**IPA admin PASS**
> The ipa-client-install command was successful
- ipa-client-automount ユーティリティー
`sudo ipa-client-automount`
- Continue to configure the system with these values? [no]:
[yes]
- ID管理
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/linux_domain_identity_authentication_and_policy_guide/index#p.part-administration-guide-identities>
- HOMEディレクトリは自動作成**されない**らしい
- @MF1 ipa config-mod
`sudo ipa help config-mod`
> --homedirectory=STR Default location of home directories
`sudo ipa config-mod --homedirectory=/home/USERS`
> ipa: ERROR: did not receive Kerberos credentials
- 調べると
> 参考:<https://thinkit.co.jp/article/13194>
クライアントでも kinit admin が必要
`kinit admin`
**IPA admin PASS**
- 戻って
`ipa config-mod --homedirectory=/home/USERS`
- mailuser2 ユーザー作成
`ipa user-add mailuser2`
- First name:
[user2]
- Last name:
[mail]
> ----------------------
> Added user "mailuser2"
> ----------------------
> User login: mailuser2
> First name: user2
> Last name: mail
> Full name: user2 mail
> Display name: user2 mail
> Initials: um
> Home directory: /home/USERS/mailuser2
> GECOS: user2 mail
> Login shell: /bin/sh
> Principal name: mailuser2@ADDRLE.PINN
> Principal alias: mailuser2@ADDRLE.PINN
> Email address: mailuser2@addrle.pinn
> UID: 970600001
> GID: 970600001
> Password: False
> Member of groups: ipausers
> Kerberos keys available: False
`sudo mkdir -p /home/USERS/mailuser2/Maildir`
`sudo chown -R mailuser2 /home/USERS/mailuser2`
- パスワード設定
`ipa passwd mailuser2`
- ユーザー作成コマンドセット username:mailuser3 の場合
`ipa user-add mailuser3 --first="user3" --last="日本語は?" --email="mailuser3@addrle.esxi.home.lan" --password`
***パスワード設定がインタラクティブ***
`sudo mkdir -p /home/USERS/mailuser3/Maildir`
`sudo chown -R mailuser3 /home/USERS/mailuser3`
- パスワードポリシー設定
- 初期値
`ipa pwpolicy-show`
> Group: global_policy
> Max lifetime (days): 90
> Min lifetime (hours): 1
> History size: 0
> Character classes: 0
> Min length: 8
> Max failures: 6
> Failure reset interval: 60
> Lockout duration: 600
- 変更
`ipa pwpolicy-mod --maxlife=99999 --minlength=12`
> ipa: ERROR: invalid 'maxlife': can be at most 20000
`ipa pwpolicy-mod --minlife=0 --maxlife=20000 --minlength=12`
> Group: global_policy
> Max lifetime (days): 20000
> Min lifetime (hours): 1
> History size: 0
> Character classes: 0
> Min length: 12
> Max failures: 6
> Failure reset interval: 60
> Lockout duration: 600
- サーバー管理
> 参考:<https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/linux_domain_identity_authentication_and_policy_guide/index#p.admin-guide-servers>
- 停止・起動
> 停止:ipactl stop
> 起動:ipactl start
> 再起動:ipactl restart
## @MF1 そういえばホスト名変えたので main.cf 変えなきゃ
- 編集
`sudo vi /etc/postfix/main.cf`
Change:myhostname
## @MS なんかDNSフォワーダーが利かなくなってる
- いろいろ調べて、結果 dnssec-validation:no にすべし @idm1 ということに。
`sudo vi /etc/named.conf`
Change:dnssec-validation
## @MS ipa user-find コマンド出力の頭3行だけ拾ってメールしたい。rootでkinitしとけば行けるか?
- やってみる
`sudo su -`
`kinit admin`
**IPA admin PASS**
`vi /adrl/_bin/sysrepo.bash`
#!/bin/bash
####Set mail HEADER
EXECDATE=$(date +%Y%m%dT%H%M)
echo "From: mailuser1@esxi.home.lan" > /adrl/_sysrepo/sysrepo-${EXECDATE}.log
echo "To: mailuser1@esxi.home.lan" >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
echo "Subject: DiskUsageReport ${EXECDATE}" >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
echo "" >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
####output
df -h /adrl/USERS >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
echo "" >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
ipa user-find | head -n 3 >> /adrl/_sysrepo/sysrepo-${EXECDATE}.log
####Sendmail
sendmail -i -f mailuser1@esxi.home.lan mailuser1@esxi.home.lan < /adrl/_sysrepo/sysrepo-${EXECDATE}.log
####CleanUP
find /adrl/_sysrepo -atime +3 > /adrl/_sysrepo/removefiles-${EXECDATE}.log
find /adrl/_sysrepo -atime +3 -type f -exec rm {} \;
####EndofScript
## ちょっと動作確認
- mailuser2でIMAPログインしようとしたらpassword expiredのログが。何で?
> auth: pam_sss(dovecot:account): User info message: Password expired. Change your password now.
- パスワード再設定してみる
`ipa passwd mailuser2`
> Oct 4 00:10:12 mf1 dovecot: auth-worker(7100): Error: pam(mailuser2,192.168.11.33): pam_acct_mgmt() failed: Authentication token is no longer valid; new one required
> Oct 4 00:10:14 mf1 dovecot: imap-login: Aborted login (password expired): user=<mailuser2>, method=PLAIN, rip=192.168.11.33, lip=192.168.11.121, secured, session=<+UNn+wKU4gDAqAsh>
- 一回suする
`su - mailuser2`
Password:
Password expired. Change your password now.
Current Password:
New password:
Retype new password:
-sh-4.2$
- この後はIMAPでもログイン成功する。。。うざい
> 次回のログイン時にパスワード変更のプロンプトを表示しないでパスワードのリセットを有効化する方法
> <https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/user-authentication#user-passwords-no-expiry>
あった。
- 設定してみる @idm1
`ldapmodify -x -D "cn=Directory Manager" -W -h idm1.addrle.pinn -p 389`
- Enter LDAP Password:
**Directory Manager PASS**
dn: cn=ipa_pwd_extop,cn=plugins,cn=config
changetype: modify
add: passSyncManagersDNs
passSyncManagersDNs: uid=admin,cn=users,cn=accounts,dc=addrle,dc=pinn
> modifying entry "cn=ipa_pwd_extop,cn=plugins,cn=config"
Ctrl+Dで抜ける
- mailuser3でパスワード設定
`ipa passwd mailuser3`
- Sylpheed でログインしてみる
OK。
- mailuser4を作成 @idm1
`ipa user-add mailuser4 --first="user4" --last="test4" --email="mailuser4@esxi.home.lan" --password`
`sudo mkdir -p /home/USERS/mailuser4/Maildir`
`sudo chown -R mailuser4 /home/USERS/mailuser4`
> chown: ユーザ指定が不正: `mailuser4'
ipa-clientをインストールしていないと、ユーザー認識されない。
- @MF1
`sudo chown -R mailuser4 /home/USERS/mailuser4`
- Sylpheed でログインしてみる
いけた。
-----
2019-10-03 ここまで
-----