讀《http權威指南》提到了ident協議。
接受客戶端連接
在這個步驟中,包括建立連接,這里Web服務器可以隨意拒絕或立即關閉任意一條連接。客戶端主機名解析部分,服務器可以用“反向DNS”對大部分Web服務器進行配置,Web服務器可以將客戶端主機名用於詳細的訪問控制和日志記錄。通過ident確定客戶端用戶,如果客戶端支持ident協議,就在TCP端口113上監聽ident請求。ident在組織內部可以很好地工作,但出於多種原因,在公共因特網上並不能很好地工作,原因包括:
- 很多客戶端PC沒有運行ident識別協議守護進程軟件;
- ident協議會使HTTP事務處理產生嚴重的時延;
- 很多防火牆不允許ident流量進入;
- ident協議不安全,容易被偽造;
- ident協議也不支持虛擬IP地址;
- 暴露客戶端的用戶名還涉及隱私問題。
ident 認證,客戶端和數據庫建立TCP會話后(假設會話的連接信息是client_ip:12345 <-> db_ip:5432),數據庫通過ident協議詢問客戶端所在IP地址的ident server (默認是113監聽端口),詢問內容:使用client_ip:12345端口連接db_ip:5432的操作系統用戶是誰?
協議可以參考一下RFC 文檔。
如圖:
https://github.com/digoal/blog/blob/master/201606/20160622_01.md