2016年11月23日 星期三

webdav架設

webdav提供遠端的檔案系統,是一種方便的分享方式。
webdav的架設如下:

一、建立檔案的目錄(假設為/var/www/html/dav)

mkdir /var/www/html/dav
chown apache:apache /var/www/html/dav => 要讓apache可以寫入

二、建立密碼檔,管理存取的人(假設放置在/var/www/dav/passwd.dav下)

mkdir /var/www/dav
cd /var/www/dav
htpasswd -c passwd.dav account => account是要建立的帳號
chown apache:apache passwd.dav
chmod 600 passwd.dav

三、在apache中指定 webdav目錄( 編輯 httpd.conf )

<Directory "/var/www/html/dav/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

Alias /webdav /var/www/html/dav

<Location /webdav>
    DAV On
    AuthType Basic
    AuthName "webdav"
    AuthUserFile /var/www/dav/passwd.dav
    Require valid-user
</Location>

四、重起apache

service httpd restart

其他參考:

從 mac os 連結 webdav
1. 右鍵點擊 Finder => 連接伺服器...
2. 輸入網址 http://***.***.***.***/webdav/
3. 連線後即可
PS : 如果發現可以連線卻不能寫入, 請檢查 /var/www/html/dav 的目錄 , apache 是否有寫入權限.

從window XP
1. 右鍵點擊 我的電腦 => 連線網路磁碟機...
2. 選擇 註冊線上存放或連接到網路伺服器
3. 下一步 => 選擇其他的網路位置 指定網站,網路位置,或FTP台的位址
4. 輸入 http://***.***.***.***/webdav/#
5. 之後從網路上的芳鄰可以找到

2016年11月22日 星期二

centos 建立 git ssh repository

一、建立帳號(git)
先建立一個使用者帳號來提供ssh的連線與操作:
adduser git
su git
cd ~
二、建立ssh使用者金鑰
mkdir .ssh
chmod 700 .ssh
cd .ssh
ssh-keygen -t rsa -b 4096
... // 產生 id_rsa 及 id_rsa.pub
mv id_rsa.pub authorized_keys

三、建立git專案(test.git)
在 git 的目錄下:
cd ~
mkdir test.git
cd test.git
git --bare init
cd ..

四、移除帳號的登入shell(避免遠端登入的安全疑慮)
修改/etc/passwd
git:x:...... :/user/bin/git-shell => 原來 sh 或 bash 改為 git-shell

五、client端下載私鑰(id_rsa)並安裝
以下載的id_rsa放置到.ssh下,並更改名稱:例如id_rsa_git
並增加或修改config檔:
Host git.server.com => server的ip或host name
User git
IdentifyFile ~/.ssh/id_rsa_git
最後使用git clone或push時,使用遠端呼叫:
git clone git@git.server.com/test.git
git remote add origin git@git.server.com/test.git
git push origin master
git branch --set-upstream-to=origin/master master

mac上建立git local repository

一、建立repository目錄(以mac建立在~/Documents/server為例)並初始化:
cd ~/Documents
mkdir server
cd server
git --bare init
cd ..
二、上傳已經在編輯的git工作目錄到repository

  在git工作目錄下命令:
git remote add origin file:///Users/xxxx/Documents/server
git branch --set-upstream-to=origin/master master
git pull origin master
三、從repository下載完整副本

 假設要下載的目錄叫做work:

git clone file:///Users/xxxx/Documents/server work
 work 就是複製下來的 git 副本,可以直接開始工作。

建立linux apache server 憑證

建立linux apache server 憑證的過程可以分為幾個部份:

一、 建立自己的憑證中心(CA)
二、 web server 向憑證中心(CA) 發送簽署需求,取得憑證
三、 放置憑證
四、 瀏覽器安裝憑證中心(CA)的憑證

一、 建立自己的憑證中心(CA)

一般對外開放的web server會向具有公信力的憑證中心(CA)或其下的憑證代發者申請憑證,但如果是測試網站或者在lan內部的網站,則無法這樣申請,因此要自己仿造憑證中心,並讓瀏覽器安裝此憑證中心的憑證。

憑證中心(CA)包含一個密鑰(key)及憑證(cer)。
key的生成:
mkdir -p /etc/pki/tls
cd /etc/pki/tls/ca
openssl genrsa -out ca.key.pem 2048
chmod 600 ca.key.pem
此時產生的 ca.key.pem 就是憑證中心(CA)的密鑰(key),並且它的格式是pem格式。
接著建立憑證中心(CA)的憑證(cer),先建立申請憑證的需求ca.csr
openssl req -new -key ca.key.pem -out ca.csr \
  -subj "/O=myca/OU=myca/CN=*.ca.net"
使用ca.csr向自己申請憑證
openssl x509 -req -days 3650 -sha256 \
  -extensions v3_ca -signkey ca.key.pem \
  -in ca.csr -out ca.cer.pem
openssl pkcs12 -export -cacerts -inkey ca.key.pem \
  -in ca.cer.pem -out ca.cer.p12 -passout pass:
ca.cer.pem就是憑證中心(CA)的憑證,格式為pem。
另外也產生了ca.cer.p12是格式為p12的憑證,可用於一般瀏覽器匯入用。
最後可以刪除掉不需要的ca.csr

二、 web server 向憑證中心(CA) 發送簽署需求,取得憑證

假設我們的server名稱為myserver,在此網域下為myserver.ca.net,
先建立server自己的密鑰(myserver.ca.net.key.pem)與申請憑證需求myserver.csr
openssl genrsa -out myserver.ca.net.key.pem 2048
openssl req -new -key myserver.ca.net.key.pem -out myserver.csr\
  -subj "/O=myserver/OU=myserver/CN=myserver.ca.net"
其中CN項目填寫的是要申請的domain name,必須與機器的名稱設定相同。
接著透過CA來簽署這個需求產生server的憑證(myserver.cer.pem)
openssl x509 -req -days 3650 \
  -sha256 -extensions v3_req -CA ca.cer.pem -CAkey ca.key.pem \
  -CAserial ca.srl -CAcreateserial -in myserver.csr \
  -out myserver.ca.net.cer.pem
取得server的憑證(myserver.ca.net.cer.pem)後,可以刪除需求檔myserver.csr
PS:需要特別注意,chrome已經認定sha1不安全,因此憑證的簽署可使用sha256

三、 放置憑證

將產生的憑證檔放置在安全(外部無法讀取)的地方,例如 /etc/pki/tls/,
然後設定apache的/etc/httpds/ssl.conf
SSLCertificateFile /etc/pki/tls/myserver.ca.net.cer.pem
SSLCertificateKeyFile /etc/pki/tls/myserver.ca.net.key.pem
接著記得重起apache:service httpd restart

四、 瀏覽器安裝憑證中心(CA)的憑證

將ca.cer.p12下載到需要連線到此server的client,然後安裝在瀏覽器的憑證上面就可以了。
例如chrome可以從設定的 HTTPS/SSL 憑證管理中,增加"信任的根憑證授權"來增加。