例としてCent OS 6を使用したmod_auth_ntlm_winbindを使用したOTRSの透過認証

しばらく前に、当社はOTRSカスタマーサポートシステムを導入しました。 OTRSはActive Directoryと簡単に統合できます。Habréなど、段階的な手順が多数あります。
サポートシステムの使用方法では、パスワードの入力とドメインアカウントのログインはユーザーにとっては非常に困難な作業であり、管理者は一般に受け入れられないことが示されています。

OTRSには透過的に認証する機能がありますが、Apacheにそのようなデータを許可することを教えてください。 これがrakeの始まりです。2007年以降更新されていないntlm_modのマニュアルの一部で説明されており、マニュアルの別の部分でWindowsのインストール手順が説明されています。 きれいなオープンソースが欲しかったので、OTRSマニュアルで推奨されているプラ​​ットフォームの1つであるCent OSと、標準リポジトリにあるmod_auth_ntlm_winbindが必要です。
サーバーは存在し、機能します。ユーザー(顧客)の認証方法を変更するだけで、エージェントの認証方法は変更されません。

Winbindは、認証にKerberosを使用します。 Kerberosが正しく機能するには、クロックをドメインと同期する必要があります。
これには、NTPをインストールします。
yum –y install ntp 

NTPを構成します。
 sed –i “s /^server /#server /g” /ect/ntp.conf echo “serever _” /etc/ntp.conf 

時間を同期します:
 ntpdate _ 

自動起動を設定します。
 chkconfig ntpd on 

NTPを実行します。
 service ntpd start 


時間は同期しています。 必要なパッケージをインストールします。
 yum -y install mod_auth_ntlm_winbind httpd-devel autoconfig krb5-workstation samba samba-common samba-winbind 

次のステップでは、インストール済みパッケージを構成し、サーバーをドメインに入力します。 このために、コンソールに次のように記述します。
 ADSERVER=FQDN   ( dc.company.local) DOMAIN= (company.local) WORKGROUP= company authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=$ADSERVER --krb5realm=$DOMAIN --smbservers=$ADSERVER --smbworkgroup=$WORKGROUP --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=$DOMAIN --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=Administrator --disablewins --disablecache --enablelocauthorize –updateall 

その後、サーバーがドメインマシンになったというメッセージが表示されます。
SE Linuxのルールを追加します。
 setsebool -P allow_httpd_mod_auth_ntlm_winbind on 


winbindを実行する
 service winbind start 

自動起動を設定します。
 chkconfig winbind on 

winbindの正しい動作を確認します。
 wbinfo –u    wbinfo –g    

チケットを受信することにより、Kerberosの正しい動作を確認できます。
 kinit administrator (   ),   . 

受信したチケットは、次のコマンドで表示できます。
 klist 


mod_auth_ntlm_winbindを機能させるKeepAlive=onは、 /etc/httpd/conf/httpd.confファイルでKeepAlive=offパラメーターをKeepAlive=onに変更する必要があります。

/etc/httpd/conf.dディレクトリで、次の内容のntlm_winbind.confファイルを作成します。
 LoadModule auth_ntlm_winbind_module /usr/lib64/httpd/modules/mod_auth_ntlm_winbind.so <Location ~ "(otrs/customer.pl)"> AuthName "NTLM Authentication" AuthType NTLM Require valid-user NTLMAuth on NTLMAuthHelper "/usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp" NTLMBasicAuthoritative on </Location> 

したがって、 customer.plにアクセスする場合にのみ、認証データを転送するようお願いします。
最後に行うことは、 Config.pmを変更して、LDAP認証を担当する部分をConfig.pmし、NTLM認証を追加することです。
 #  LDAP #$Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::LDAP'; #$Self->{'Customer::AuthModule::LDAP::Host'} = 'dc.company.local'; #$Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'dc=COMPANY, dc=local'; #$Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName'; #$Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'read_ad_user'; #$Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'pass_for_read_ad_user'; # NTLM $Self->{'Customer::AuthModule'} = 'Kernel::System::Auth::HTTPBasicAuth'; 


nslookup otrs-serverコマンドを実行して、OTRSサーバーがDNSサーバーに正しく登録されているかどうかを確認しnslookup otrs-server
セットアップが完了しました!
ブラウザで開く otrs-server-name/otrs/customer.pl otrs-server-name/otrs/customer.plと結果を確認します。
結果が表示されない場合、構成中に間違いがありました/etc/krb5.conf /etc/samba/smb.conf
ファイルの設定を注意深く調べます /etc/krb5.conf /etc/samba/smb.conf

Source: https://habr.com/ru/post/J182586/


All Articles