OpenLDAPについて
・サービス名はslapd(Standalone LDAP Daemon)
・今回はドメイン名を77test.com、OUをldaptest、ユーザ名を77test01とする。
・slappasswdでldapサーバの管理者パスワードを設定する。
・.ldifファイルという設定ファイルを作成し、ldapaddコマンドなどで読み込ませることでLDAPサーバに情報を反映させる
(ldifファイルの表記例)
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}1WIX/d2vLgHcOaju+/BZFW+f9G9Tz5c0
・LDAPへデータを登録する場合ldapadd、登録済みのデータを修正する場合はldapmodify
登録したデータを検索する場合はldapsearchコマンドを使う
ldapadd -Y EXTERNAL -H ldapi:/// -f /var/temp/add_rootpw.ldif
-Y EXTERNAL パスワード入力を省略する
-H LDAPサーバの指定(ldapi:///⇒ローカルホストを指定)
-f ファイルの指定
・OpenLDAPとSwuidを連携する場合、/var/etc/squid.confに以下の設定を追記する
auth_param basic program /usr/lib64/squid/basic_ldap_auth -v 3 -b
"dc=ldaptest,dc=com" -f "(&(uid=%s)(host=192.168.114.162))" localhost
・ACL設定に以下を追記する
(acl 名前 条件)
acl ldap-auth proxy_auth REQUIRED
・http_access設定の一番上に以下を追記する
http_access allow ldap-auth
OpneLDAPのインストール
[root@localhost ~]# yum install openldap openldap-servers openldap-clients
[root@localhost ~]# rpm -qa | grep openldap
3行
slappasswordの設定
[root@localhost ~]# cp -p /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@localhost ~]# chown ldap. /var/lib/ldap/DB_CONFIG
[root@localhost ~]# systemctl start slapd
[root@localhost ~]# systemctl enable slapd
[root@localhost ~]# slappassword
New password:
{SSHA}個別に違うパスが出力される
add_rootPw.ldif
[root@localhost ~]# cd ; pwd
[root@localhost ~]# mkdir ./ldap_work
[root@localhost ~]# ls -l
[root@localhost ~]# vi ./ldap_work/add_rootPw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}1WIX/d2vLgHcOaju+/BZFW+f9G9Tz5c0 \\slappasswordで作成した暗号化パスワードをいれる
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f ./ldap_work/add_rootPw.ldif
\\書き換えの時はldapreplaceに変える?
[root@localhost ~]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b olcDatabase={0}config,cn=config
olcDatabase: {0}config
~省略~
olcRootPW: {SSHA}1WIX/d2vLgHcOaju+/BZFW+f9G9Tz5c0 \\ここが変わる
ドメイン名を変更する
[root@localhost ~]# vi ./ldap_work/change-domain.ldif
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=77test,dc=com" readby * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=77test,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=77test,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}1WIX/d2vLgHcOaju+/BZFW+f9G9Tz5c0
[root@localhost ~]# ldapmodify -x -D cn=config -w password -f ./ldap_work/change-domain.ldif \\エントリーの追加
組織を追加
[root@localhost ~]# vi ./ldap_work/base.ldif
dn: dc=77test,dc=com
objectClass: dcObject
objectClass: organization
dc: 77test
o: 77test Inc.
dn: ou=ldaptest,dc=77test,dc=com
objectClass: organizationalUnit
ou: ldaptest
[root@localhost ~]# ldapadd -x -D "cn=Manager,dc=77test,dc=com" -w password -f ./ldap_work/base.ldif
adding new entry "cn=Manager,dc=77test,dc=com"
adding new entry "ou=ldaptest,dc=77test,dc=com"
schemaの追加
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
[root@localhost ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
・ユーザの作成
[root@localhost ~]# vi ./ldap_work/add_user.ldif
dn: uid=77test01,ou=ldaptest,dc=77test,dc=com
objectClass: account
objectClass: simpleSecurityObject
uid: 77test01
userPassword: {SSHA}1WIX/d2vLgHcOaju+/BZFW+f9G9Tz5c0
host: 192.168.56.2 \\teratermでCentOSに接続する際のホストOSアドレス
[root@localhost ~]# ldapadd -x -D "cn=Manager,dc=77test,dc=com" -w password -f ./ldap_work/add_user.ldif
[root@localhost ~]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b 'dc=77test,dc=com''uid=77test01'
・Squidと連携させる
[root@localhost ~]# cp -p /etc/squid/squid.conf /etc/squid/squid.conf.bk2
[root@localhost ~]# ls -l /etc/squid/squid.conf*
[root@localhost ~]# vi /etc/squid/squid.conf
◆修正点その1 下記3行追加する
#Openldap認証設定
auth_param basic program /usr/lib64/squid/basic_ldap_auth -v 3 -b "dc==77test,dc=com" -f (&(uid=%s)(host=192.168.56.2))" localhost
◆修正点その2
# Example rule allowing~
# Adapt localnet in the ACL section~
# from where browsing~
acl ldap_auth proxy_auth REQUIRED \\コメントイン
http_access allow ldapauth \\コメントイン
#http_access allow localnet \\コメントアウト
#http_access allow localhost \\コメントアウト
http_access allow mynetwork
[root@localhost ~]# systemctl restart squid
プロキシの設定を行う
アドレス:teraterm接続のときのアドレス
ポート:8080
*.local(いるのかな?)
>保存
http://192.168.56.2:8080
認証画面が出るので
ユーザ名:77test01
パスワード:password
認証されウェブ画面が表示される
[root@localhost ~]# tail -f /var/loga/squid/access.log
⇒77test01のアクセスログが出力される