# 2026 Spring NASA 3! Identity Services > [!Note]Group Member > B12902016 林品齊 > B13902061 李佑安 > B13902077 李承翰 > [!Note] Operating Manual > [Architecture Documentation](https://hackmd.io/@KmnEEC-WSX-ddDE-R4ZAMQ/r17_xYlA-e) > [!Note] Midterm > [Midterm Presentation Video](https://www.youtube.com/watch?v=-XZiqv7oDTQ ) > [Midterm Presentation Slides](https://docs.google.com/presentation/d/1PZZC5HzrDJuv1FpjB6Bzniyo6h8jb7HOZzVE6zPK1ss/edit?usp=sharing) ## LDAP Mock Server (系上的模擬LDAP伺服器) ### 1. 伺服器連線資訊 | 項目 | 設定值 | | :--- | :--- | | **Domain Name** | `mockldap.nasa` | | **Host IP** | `172.16.127.151` | | **Protocol & Port** | `ldaps://` (Port `636`)(推薦)
`ldap://` (Port `389`) | | **Base DN** | `dc=csie,dc=ntu,dc=edu,dc=tw` | `mockldap_ca.crt` 在[這裡](https://drive.google.com/file/d/1hK_W6e9qOsCBzO3TCxi51WA01MK_YYs6)下載,以csie的Google帳號登入 ### 2. 結構 主要包括以下三個OU, #### ou=people 存放所有測試用個人帳號。 * **大學部**:學號格式如 `b11902991`。 * **研究生**:學號格式如 `r11922091` 或 `r11922a91`。 * **校友**:包括 `b08902991` 與 `r09922091`。 * **教職員/TA**:`ta1` 到 `ta5`, `prof1` 到 `prof4`。 * **Mail組測試帳號**:`mailtest` #### ou=group 存放 POSIX 系統群組,類別為 `posixGroup`。 * `cn=student` (GID: 450) * `cn=graduate` (GID: 400) * `cn=alumni` (GID: 500) * `cn=staff` (GID: 200) * `cn=mailAdmin` (GID: 62100),管理mail組測試帳號 #### ou=Aliases * **ObjectClasses**:`organizationalUnit`, `extensibleObject`, `groupOfUniqueNames`。 * **用途**:Mail Subscription 組管理使用 ### 3. 認證與權限規範 * 匿名存取: 可讀取所有帳號除了密碼以外的資訊。 * 測試帳號登入: 所有 `ou=people` 下的節點密碼與 uid 相同,如帳號 `uid=b11902991` 的密碼即為 `b11902991`。 * 服務帳號:`uid=mailtest,ou=people,dc=csie,dc=ntu,dc=edu,dc=tw` 具備 `ou=Aliases` 節點及其子樹狀目錄的完整寫入權限。 ### 4. HAProxy 為了達成 High Availability,在 `iden4`(`172.16.127.120`)架設了 `iden2`(`172.16.127.109`)的 Backup 伺服器,服務則統一用 `mockldap.nasa` (或省略後綴,`mockldap`)連虛擬IP `172.16.127.151` 存取。 ### 5. 查詢與操作範例 #### 查詢特定使用者資訊 ```bash LDAPTLS_CACERT=mockldap_ca.crt ldapsearch -x -H ldaps://mockldap \ -b "ou=people,dc=csie,dc=ntu,dc=edu,dc=tw" "(uid=b11902991)" ``` #### 查詢特定群組的成員 ```bash LDAPTLS_CACERT=mockldap_ca.crt ldapsearch -x -H ldaps://mockldap.nasa \ -b "cn=alumni,ou=group,dc=csie,dc=ntu,dc=edu,dc=tw" memberUid ``` ## 3! LDAP (內部使用的LDAP server) ### 1. 伺服器連線資訊 | 項目 | 設定值 | | :--- | :--- | | **Domain Name** | `nasaldap.nasa` | | **Host IP** | `172.16.127.150` | | **Protocol & Port** | `ldaps://` (Port `636`)(推薦)
`ldap://` (Port `389`)| | **Base DN** | `dc=csie,dc=ntu,dc=edu,dc=tw` | `nasaldap_ca.crt` 內容在[這裡](https://drive.google.com/file/d/1fVctB7UWwlq0X-hKjNzWcST3cKzM78bG)下載,以csie的Google帳號登入 ### 2. 更改預設密碼 ``` LDAPTLS_REQCERT=nasaldap_ca.crt ldappasswd -x -H ldaps://nasaldap.nasa -D "uid=$UID,ou=people,dc=csie,dc=ntu,dc=edu,dc=tw" -W -S ``` ### 3. 綁定服務 目前綁定VPN服務,可用這組帳號密碼登入 3! VPN。 ### 4. HAProxy 為了達成 High Availability,在 `iden3`(`172.16.127.119`)架設了 `iden1`(`172.16.127.105`)的 Backup 伺服器,服務則統一用 `nasaldap.nasa` (或省略後綴,`nasaldap`)連虛擬IP `172.16.127.150` 存取。 ## 防火牆 (OPNsense) [設定流程](https://hackmd.io/PmDU33L_RcuQyhbWxzLlPw) ### 共通網路配置 (正常情況都是連這個) * **WAN**: 140.112.187.49/27 * **LAN**: 172.16.127.254/16 * **OpenVPN**: 10.8.0.1/24 ### opnsense-master (vmid: 252) 有三張網卡 * **net0 - LAN**: * 沒有 VLAN tag * IP: 172.16.127.252/16 * Web GUI 在 8443 port * **net1 - WAN**: * VLAN tag: 187 * IP: 140.112.187.50/27 * **net2 - PFSYNC**: * VLAN tag: 254 * IP: 10.0.0.1/30 ### opnsense-backup (vmid: 253) 有三張網卡 * **net0 - LAN**: * 沒有 VLAN tag * IP: 172.16.127.253/16 * Web GUI 在 8443 port * **net1 - WAN**: * VLAN tag: 187 * IP: 140.112.187.51/27 * **net2 - PFSYNC**: * VLAN tag: 254 * IP: 10.0.0.2/30 ### 目前防火牆規則 * **WAN**: 除了 icmp, TCP port 80,443, UDP port 1194 以外的向內流量都 block。往外流量全部 pass。 * **LAN**: 所有連外的流量都 pass。 * **OpenVPN**: VPN client 可以戳 LAN 內的機器。 ## HAProxy ### 功能 * Reverse Proxy + Load Balancing * 可做 SSL offloading (SSL termination) * Health Monitor ### 目前串好的 Application | 組別 | Domain Name | IP(s) | Port(s) | |:----------- |:-------------------- |:-------------------------------------------------- |:------- | | wifi | apmap.csie.org | 172.16.127.110 | 80 | | newprinting | newprinting.csie.org | 172.16.127.103 | 80 | | mail | mailsus.csie.org | 172.16.127.118 | 80 | | cspace | cspace.csie.org | 172.16.127.101
172.16.127.107
172.16.127.108 | 80 | ## VPN [VPN Workflow](https://hackmd.io/@KmnEEC-WSX-ddDE-R4ZAMQ/HJGSVSm3Ze) 目前可以用以下幾種方式連上 VPN(請按[這裡](https://drive.google.com/file/d/1ktPKlc7FWfwspO-TX_WUCgYGsE3ab13N/view?usp=drive_link)下載 VPN 檔案): 1. 在 Terminal 中輸入 `sudo openvpn <.ovpn file>` 2. 開啟 OpenVPN Connect,上傳 `.ovpn` 檔案 3. 開啟 Tunnelblick,匯入 `.ovpn` 檔案 帳號密碼為三階帳號名稱以及用 `ldappasswd` 設定的密碼。 ## Meeting Minutes * [2026/05/28](https://docs.google.com/document/d/1ARfcXBCeLRqjLHVzGzZupCQRK7sAeSKLzTPiT85jNCw/edit?usp=sharing) * [2026/05/21](https://docs.google.com/document/d/1freAeAGUq-oQdXYFWlw6EYNNnq3z2WfFnsbxbWZach0/edit?usp=sharing) * [2026/05/14](https://docs.google.com/document/d/1GDnUcIrDouRmSQ_5e8SlJVhw2ECr7SSpzC8zKC1A0J4/edit?usp=sharing) * [2026/05/07](https://docs.google.com/document/d/1EUlGyaQLhkHxi8avwYnU8fXJ3Ibq_pp8JwAkoIeBK9g/edit?usp=sharing) * [2026/04/30](https://docs.google.com/document/d/1DWda7GNczLlAb4maia0HDSj5ilXwLnAQOSx27SrrC8k/edit?usp=sharing) * [2026/04/23](https://docs.google.com/document/d/14-Fl7ukDhsEZloc7TKzZ87YnFHrauAb-tG6n_Q15CuM/edit?usp=sharing) * [2026/04/16](https://docs.google.com/document/d/1ydvUoqCulLboY5AKqgxr5EUkTkv0SSdvI540PjZ2rwc/edit?usp=sharing) * [2026/04/09](https://docs.google.com/document/d/1DzuM7eYPpyz3xjmCJk2bb_khw4plWkYbchOFzNcLAMA/edit?tab=t.0#heading=h.x7d9zwnzwnzw) * [2026/04/02](https://docs.google.com/document/d/1zEQpeTtKhBWgrtC_0Ne_uQ-wKuPRluMT_vNTaGNALnA/edit?tab=t.0#heading=h.x7d9zwnzwnzw) * [2026/03/26](https://docs.google.com/document/d/19KkqUcxr9a_JY0TD4cCmcFJgaLqrrnUnedas17rJW58/edit?tab=t.0) * [2026/03/19](https://docs.google.com/document/d/1P-n2LhEQV0JptSm7VZkDBNxWu1P6grOJfB0zbcVOQeg/edit?tab=t.0) ## Discussion * [2026/03/20](https://docs.google.com/document/d/1ZA5VeZHvR-XxYwfBBe4GoQjkP4phQ9VK_AAW9Litdbs/edit?tab=t.0)