LoginSignup
0
1

More than 1 year has passed since last update.

3-2_OracleVM VirtualBox_OpenLDAP、Squid

Last updated at Posted at 2023-03-25

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コマンドの実行例
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で作成した暗号化パスワードをいれる

image.png

[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 \\エントリーの追加

image.png

組織を追加

[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

image.png
image.png

[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のアクセスログが出力される
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1