ASA。 ADおよびLDAPを介したインターセプト認証の構成

尊敬されるhabrachitateliのアドバイスに基づいて、ASAに関する出版物の形式を少し変更します。 詳細な説明に煩わされることなく、ここで最も興味深いものを書きます。 記事全文「ASA。 傍受認証」焼きたてのブログで読む



そして、ここでASAを使用してADで直接認証する方法を説明します



ITUでは、特定のリソースへのアクセスを許可する前にユーザーを検証するというタスクがしばしば発生します。 ASAでは、このチェックは「カットスループロキシ」と呼ばれます。



このサービスは、AAAインフラストラクチャ(認証、承認、アカウンティング)を使用します。



注:英語の単語認証では、ロシア語の「認証」に登場する音節「phi」はありません。これは、おそらく「identification」という単語との協和によるものです。 さらに、私たちの強力な言語には「真正性」もあります。 「fi」なしで:)捕まってはいけない!



認証

「そのようなユーザーはいますか?」という質問に答えます。 このユーザーは、ローカル(ローカル)データベースと外部(TACACS +、RADIUS、LDAP経由のAD)の両方で検索できます。





LDAPサーバーの構成には、ASAがLDAP、サーバータイプ、検索ルートなどにログインする際に使用するADからのユーザーアカウントの指定が含まれます。



aaa-server {SERVERNAME} protocol ldap

aaa-server {SERVERNAME} ({interface}) host {IP_SERVER}

ldap-base-dn { }

ldap-scope {subtree|onelevel}

ldap-naming-attribute { }

ldap-login-dn { ASA}

ldap-login-password { ASA}

server-type {Microsoft|Novell|OpenLDAP|sun|auto}







例:

aaa-server AD (dmz) host 172.16.1.100

ldap-base-dn ou=Employers, dc=anticisco, dc=ru

ldap-scope subtree

ldap-naming-attribute sAMAccountName

ldap-login-dn cn=ASA, cn=users, dc=anticisco, dc=ru

ldap-login-password ASALDAPPASS

server-type microsoft







サーバーを構成したら、確認する必要があるトラフィックを判別し、認証なしでスキップしないようにします。 ASAはこれに責任を負います...もちろん、許可行がそのようなトラフィックを示すアクセスリスト。 認証アクセスリスト自体は、コマンドによって適用されます



aaa authentication match {AUTHACL} {interface} {SERVERNAME}







この場合、指定されたインターフェイスの入力に到着するパケットがチェックされます。



たとえば、172.16.1.0 / 24を除くすべてのネットワークに向かうローカルネットワーク10.1.1.0/24(内部インターフェイスの背後)からのすべてのトラフィックをチェックする必要があります。

access-list AUTH deny ip 10.1.1.0 255.255.255.0 172.16.1.0 255.255.255.0

access-list AUTH permit ip 10.1.1.0 255.255.255.0 any

aaa authentication match AUTH inside RAD







しかし、ユーザーにユーザー名/パスワードを尋ねる方法は? 結局、pingはリクエストを開始できませんか?

ASAは、セッションをインターセプトし、http / https、ftp、telnetプロトコルを使用してユーザー名とパスワードを要求できます。 他のトラフィックを認証する必要がある場合は、2つのジェスチャを行う必要があります。指定されたプロトコルのいずれかを使用してASAにアクセスし、ブラウザまたはTelnetまたはFTPウィンドウでログイン/パスワードを入力します。 このようなトラフィックは、対象トラフィックのアクセスリストに表示する必要があることに留意してください。



たとえば、ユーザーがtelnetまたはhttpを介してホスト1.1.1.1にアクセスし、ログインとパスワードの入力を求められるようにします。 次に、このトラフィックをアクセスリストに含める必要があります。 これは適切ではありません、なぜなら telnet上では機能しません。

access-list AUTH permit tcp any any eq 80

access-list AUTH permit udp any any







データが正しい場合、ASAはトラフィックをスキップします。 ただし、指定された時間のみ。 デフォルトでは、タイムアウトは奇妙なことになります:絶対時間の5分、非アクティブタイムアウトは監視されません。 それらを変更することは可能であるだけでなく、必要です:



timeout uauth {HH:MM:SS} {absolute|inactivity}







例:

timeout uauth 0:15:0 inactivity

timeout uauth 20:00:00 absolute







したがって、認証を使用すると、すべてが簡単になります。他に何も指定しなければ、ユーザー、つまりコンピューターのIPアドレスがすべて可能になります。



さらに興味深い点は、 承認 、つまりユーザー権利の制限です。



LDAP認証には、「松葉杖」が必要です。これは、ASAが理解するRADIUS属性にLDAP属性をマッピングする特別な構造です。 このデザインは



ldap attribute-map {MAPNAME}

map-name {LDAPATTRIBUTE} {RADUISATTRIBUTE}

map-value {LDAPATTRIBUTE} {SENDNAME} {TRANSLATENAME}







例。 ADベースのipPhone属性をIETF-Radius-Filter-Id(アク​​セスリスト)属性に関連付けます。 また、指定された属性に「BUHG」という単語が含まれている場合、ユーザーはBUHアクセスリストを使用することを説明します。BUHアクセスリストは、ASAですでに記述されています。

ldap attribute-map AD

map-name ipPhone IETF-Radius-Filter-Id

map-value ipPhone BUHG BUH







重要:指定された属性で何も受信しなかった場合、それを無視し、この属性の値に記述されていない単語を取得した場合、アクセスは拒否されます。 したがって、AD管理者はアクセス権に影響を与えることができます。 たとえば、ASAに触れることなく、好ましくないユーザーに対してインターネットをブロックできます。



特定のLDAPサーバーでこの属性リストを適用することのみが残ります



aaa-server {SERVERNAME} ({interface}) host {IP_SERVER}

ldap-attribute-map {MAPNAME}







例:

aaa-server AD (dmz) host 172.16.1.100

ldap-attribute-map AD







親愛なるhabiscounters-tsiskolyub :)



PS私自身:「通常のOSでは、これはチームの半分で行われます」:)そのため、「異常」の管理者を支援します:)



All Articles