帳號管理

使用者帳號

系統必須提供每個使用者帳號兩種類型的資訊:

.帳號資訊:UID 編號、預設的 Shell、家目錄、使用者群組、GID 編號等。

.認證資訊:分辨使用者登入時提供的密碼正確與否的方式。

帳號的資訊儲存在 /etc/passwd 檔案中,而認證資訊則儲存在 /etc/shadow 之中,每筆資訊存在獨立一行之中。

一般的應用程式或名稱服務(如 LDAP、NIS )不會直接存取 /etc/passwd 檔案,而是透過系統中的 C 函式庫中 libc 所提供的方法,如 getpwnam() 來取存 /etc/passwd 的資訊。

==============================

閱讀全文

SSH Tunnel 替代方案 Stunnel

用 SSH 建立 tunnel 很好用,可是終端機就不能關了,必須維持在連線狀態,如果終端機關掉了,SSH 連線也會跟著中止,這時使用 Stunnel 可以改善這項缺點。

Stunnel Server

#mkdir /var/run/stunnel (先建立 run pid 的目錄)

#chown nobody:nobody /var/run/stunnel (將目錄的權限改成 nobody 的)

#cd /etc/pki/tls/certs/ (到這裡來建立加密金鑰)

閱讀全文

SSH Port Forwarding 安全連線通道

使用 SSH 及 SSHD 可以建立安全連線通道,做法有兩種:

.ssh user@SSHDServer -L SSHClientPort:RemoteHost:RemotePort

(我本身會監聽 SSHClientPort,然後將它轉送到 SSHDServer,再由 SSHDServer 將封包送到 RemoteHost 的 RemotePort)

.ssh user@SSHDServer -R SSHDServerPort:RemoteHost:RemotePort

(你,SSHDServer 要負責監聽 SSHDServerPort 這個埠,然後將它轉送給我,我再將它送到 RemoteHost 的 RemotePort)

1. 由 SSH Client 本身監聽特定埠,由 SSHD 負責轉送到指定的主機:埠

# ssh localhost -L 8888:mail.so-net.net.tw:25 (由 ssh client 監聽 8888 埠,再由 sshd 轉送到 mail.so-net.net.tw 的 25 埠)
root@localhost’s password:
Last login: Sun Mar 22 20:55:28 2009 from 127.0.0.1

閱讀全文

OpenSSH Server SSHD

SSH 通訊協定有 Version1 和 Version2,即 V1 和 V2,V1只支援 RSA 加密,而 V2 支援 RSA 和 DSA 加密方式。

SSHD 有兩對金鑰:

Host Key:放在 /etc/ssh/ 之下,預設長度為 1024 bits,可設定加長至 2048 bits。

Server Key:儲存在 RAM 之中,預設長度為 768 bits,可設定加長至 1024 bits,Server Key 每小時會更新一次。

整個 SSH 通訊加密流程如下:

1. [SSH Client] ---(要求建立 SSH 連線)---> [SSH Server]

2. [SSH Client] <---(傳遞 HostKey 和 ServerKey 的公開金鑰)--- [SSH Server]

3. [SSH Client] ---(產生 SessionKey,再用 HostKey 和 ServerKey 加密:ServerKey(HostKey(SessionKey)),傳至 Server)---> [SSH Server]

4. [SSH Server]:用 HostKey 及 ServerKey 的私密金鑰,將 SessionKey 解密出來。ServerKey.Pri(ServerKey(HostKey(SessionKey))) --> HostKey.Pri(HostKey(SessionKey)) --> SessionKey。

5. [SSH Client] <---(使用 Session Key 加密進行連線)---> [SSH Server]

6. Session Key 每隔固定時間或傳遞了固定大小之後,亦會更換一次,再用同樣的方式傳遞給 SSH Server。

=========================================

閱讀全文

OpenSSH SSH 連線

在以往使用 telnet 連線時,在通訊過程中所傳的所以資訊都可以被有心人士監聽,因此出現了 SSH (Secure SHell protocol) 通訊協定,而 OpenSSH 則是支援 SSH 的一套工具軟體。

.OpenSSH 取代了一般較不安全的網路通訊應用程式。

.提供了使用者及密碼驗證方式(token-based authentication)。

.能建立加密安全通道讓不安全的通訊使用。

.基本設定檔放在 /etd/ssh 底下。

=========================================

閱讀全文

Red Hat 資料安全(五)

使用 openssl 製作數位憑證

一、先製作一把私密金鑰 (Private Key)

# openssl genrsa -out server1.key.pem 1024 (以 1024 位元長度製作一把 RSA 加密的金鑰,名稱為 server1.key.pem)
Generating RSA private key, 1024 bit long modulus
.++++++
……………………++++++
e is 65537 (0x10001)

看一下產生的金鑰長得什麼樣子……

閱讀全文

Red Hat 資料安全(四)

使用 CA 製作數位憑證

有第三方認證的需求,就產生了專門為人認證的組織 ,比較大的憑證機構的公開金鑰就會內建在瀏覽器中,如 VeriSign、VISA、IPS、Entrust、America Online、DST 等。

取得 CA 憑證流程:

=========================================

一、產生 CertReq 憑證申請書

WebServer 產生 Cert Req 憑證申請書,內含 WebServer 的 UserInfo、WebServer 的 Public Key。

# cd /etc/pki/tls/misc (進入本目錄)

# ls -al
drwxr-xr-x 2 root root 4096  3月 19 22:06 .
drwxr-xr-x 5 root root 4096  1月 12 07:34 ..
-rwxr-xr-x 1 root root 3758 12月  1  2006 CA      (產生 Cert Req 的執行檔)
-rwxr-xr-x 1 root root  119 12月  1  2006 c_hash
-rwxr-xr-x 1 root root  152 12月  1  2006 c_info
-rwxr-xr-x 1 root root  112 12月  1  2006 c_issuer
-rwxr-xr-x 1 root root  110 12月  1  2006 c_name

閱讀全文

Red Hat 資料安全(三)

非對稱加密 (Asymmetric Encryption)

加密和解密的金鑰 (key) 是不一樣的,會有兩把 key,一把負責加密、一把負責解密。

公開/私密金鑰

=========================================

方法一:

接收者:產生兩把金鑰,一把是公開金鑰(public key),一把是私密金鑰(private key)妥善保管,將 public key 傳送給對方,要對方以這把 public key 將傳送的資料加密。

傳送者:以收到的 public key 將資料加密 Public Key(Data),開始傳送給接收者。就算有人 sniffer 也沒有解密金鑰,拿到 public key 也無法解密。

接收者:收到加密過的資料,用自已的 private key 將資料解密。Data = Private Key ( Public Key (Data))。

資料:Data

公開金鑰:Public Key

私密金鑰:Private Key

=========================================

閱讀全文