歡迎喜歡文章的朋友們自行轉錄,請在轉錄開頭註明出處與連結感謝各位的尊重與支持!^_^

2016年10月13日 星期四

Mongo DB PHP Extension 安裝筆記

UBUNTU環境 (14.04)


sudo apt-get install pkg-config

sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev pkg-config libsasl2-dev libpcre3-dev

sudo pear install pecl/mongodb


成功畫面:








Synology NAS環境

待補

UBUNTU 14.04 Apache2 設定Proxy至其他Port


1. 更新程式庫

aptitude    update
aptitude -y upgrade


2. 取得編譯工具

aptitude install -y build-essential


3. 安裝插件與關聯

aptitude install -y libapache2-mod-proxy-html libxml2-dev


4. 設定Apache

a2enmod
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html


5. 新增Virtual Host設定檔

 <VirtualHost *:80>
    ProxyPreserveHost On

    # Servers to proxy the connection, or;
    # List of application servers:
    # Usage:
    # ProxyPass / http://[IP Addr.]:[port]/
    # ProxyPassReverse / http://[IP Addr.]:[port]/
    # Example: 
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/

    ServerName localhost
</VirtualHost>


6. 重開Apache

service apache2 restart

7. 出現Notice提示要多裝mod_xml2enc


[proxy_html:notice] [pid 26434] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.

sudo apt-get install apache2-prefork-dev libxml2 libxml2-dev apache2-dev
mkdir ~/modbuild/ && cd ~/modbuild/
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.c
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.h
sudo apxs2 -aic -I/usr/include/libxml2 ./mod_xml2enc.c
cd ~
sudo rm -rfd ~/modbuild/
sudo service apache2 restart




參考文件:

  • https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension


  • https://gist.github.com/oskarnrk/1c9e436408aacf7671c3

2016年10月4日 星期二

網頁資安問題解決筆記

一、Slow HTTP Denial of Service Attack

俗稱的DDOS攻擊,解決方法有很多種。


  • 方法一:以Apache來說的話,可安裝套件 Mod_Antiloris。
1. 下載檔案


cd /usr/local/src
wget http://sourceforge.net/projects/mod-antiloris/files/mod_antiloris-0.4.tar.bz2
tar -xvjf mod_antiloris-0.4.tar.bz2
cd mod_antiloris-*
apxs -a -i -c mod_antiloris.c

2. 重啟apache
service httpd restart

3. 檢查是否有掛載mod_antiloris
httpd -M | grep antiloris


  • 方法二:更改防火牆設定

      iptables -I INPUT -p tcp --dport 80 \ -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP


二、RC4 cipher suites detected、SSL weak ciphers

在conf檔裡加上以下的設定:

 SSLProtocol all -SSLv2 -SSLv3
 SSLHonorCipherOrder on
 # Compression is disabled by default on my distribution (CentOS 6)
 # SSLCompression off
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

三、The FREAK attack (export cipher suites supported)



四、SSL certificate public key less than 2048 bit

openssl genrsa -out test.key 2048
openssl genrsa -des3 -out test.key 2048
openssl req -new -key test.key -out test.csr
  

Install IPKG on a Synology NAS

安裝機種 DS1815+

1. 檢查CPU型號
INTEL Atom C2538

2. 下載安裝檔: http://ipkg.nslu2-linux.org/feeds/optware/ 
DS1815+機種可相容的型號為: http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh.

3. 打開NAS的SSH進入Command Line

4. 下載並安裝

cd /tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh
chmod +x syno-i686-bootstrap_1.2-7_i686.xsh 
sh syno-i686-bootstrap_1.2-7_i686.xsh

5. 刪除暫存檔
rm syno-i686-bootstrap_1.2-7_i686.xsh

6. 測試安裝是否完成
ipkg update

2016年9月19日 星期一

實用網頁小工具連結


MD5 Online Hash 小工具:

http://www.web4design.net/tool/general/tools/md5hash

JSON Convert To String Online 小工具:

http://www.web4design.net/tool/general/tools/jsonConverter

網頁調色盤:

http://www.web4design.net/tool/general/tools/colorPicker

2016年9月5日 星期一

UBUNTU防火牆設定


vim /etc/sysconfig/iptables
service iptables restart

:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -s 141.111.12.123 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

2016年8月23日 星期二

NodeJS學習筆記(一): 環境安裝

大致了解NodeJS運作概念,便開始安裝主機!

參考NodeJS入門資料: http://www.nodebeginner.org/index-zh-tw.html#hello-world

目前的開發環境OS是Ubuntu14.04,搭配MongoDB 與 Express。

安裝流程參考Digital Ocean的神文,只要剪下貼上按部就班就可以使用了。

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-an-
ubuntu-14-04-server

安裝MongoDB:

https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-14-04

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

安裝完後,重開mongo db竟然發現開不開?!(service mongod start 跑了但去status看卻是stop的)

出現下方的錯誤log,發現應該是資料夾權限問題。


E NETWORK  [initandlisten] Failed to unlink socket file /tmp/mongodb-27017.sock errno:1 Operation not permitted

前往/tmp資料夾修改權限,就可以正常跑起來了!

sudo chown root:root /tmp
sudo chmod 777 /tmp


首次使用mongodb著實不知道怎麼下手,

sudo service mongod start 跑起來後,下指令 mongo 即可進入。

要記得確保資料夾在本機存在且權限正確,不然mongodb跑不起來。

ls -ld /data/db/
sudo chmod 0755 /data/db

跑起來後為了安全,新增一下系統使用者。(預設mongodb是沒有做使用者權限的,有點危險)

進入mongo後,用以下語法切換到admin資料表,再新增系統使用者:
use admin
db.createUser(
  {
    user: "xxx",
    pwd: "xxx",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

新增一個想要連接的db:(在mongo db中,use會直接判斷存在否,不存在直接新增一個)
use log

以上大致完成mongodb的安裝。

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

因為要使用MongoDB,安裝了一套Mongo Express,方便網頁檢視資料庫,有點類似phpmyadmin的作用。

下安裝指令


npm install mongo-express

卻回傳了


npm WARN engine mongo-express@0.31.0: wanted: {"node":">=4.0.0","npm":">=3.0.0"} (current: {"node":"0.10.46","npm":"2.15.1"})

內心OS:不是有安裝6.4版本了嗎?orz

原來是因為搞混node指令與nodejs指令。

這兩個是不同的東西~

node -v 看到的是 nvm (nodejs server) 的版本。

nodejs -v 看到的是nodejs的版本。


所以,再用以下指令更新nodejs版本就可以順利安裝了。

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs

安裝好後,需設定mongo express的設定檔。

cd node_modules/mongo-express
vim config.default.js

裡面有兩個部分要改:

1. mongo db user與資料庫設定

mongo = {
    db:       'log',
    host:     'localhost',
    password: 'xxx',
    port:     27017,
    ssl:      false,
    url:      'mongodb://localhost:27017/log',
    username: 'xxx',

  };

2. 連接網頁位置 (Web網址或IP),預設是localhost,如果不在localhost連接請務必修改這部分,不然會access不到~


host:   process.env.VCAP_APP_HOST    || '192.168.0.209'  

設定完成後,直接在該資料夾下

node app.js

就會出現成功字樣,恭喜您跑起來啦!(淚奔...)


Welcome to mongo-express
------------------------


Mongo Express server listening at http://192.168.0.209:8081
Database connected
Connecting to log...
Database log connected

網頁端會長成這樣:




最後,為了讓機器重開會自動跑起來。

安裝pm2讓node js服務能自動化跑起來。

sudo npm install pm2 -g


pm2 start app.js

以上指令等同於 node app.js 可執行起mongo express。

sudo env PATH=$PATH:/usr/local/bin pm2 startup -u someuser

設定自動開機檔案,讓該執行緒在重啟的時候會自動重啟。

(參考自:https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps)



接著將mongodb 啟動指令放到rc.local中,讓mongodb也會自動重啟。

sudo vim /etc/rc.local

service mongod start


2016年8月18日 星期四

主機安裝設定網路 - UBUNTU

DHCP設定方式

sudo vim /etc/network/interfaces

內容:

auto eth0
iface eth0 inet dhcp


固定IP設定方式

sudo vim /etc/network/interfaces

內容:

auto eth0
iface eth0 inet static
address 192.168.1.123
netmask 255.255.255.0
gateway 192.168.1.1


*gateway 填寫router那台的ip



設定完成後重啟網路:

sudo /etc/init.d/networking restart

2016年6月17日 星期五

Digital Ocean雲端主機 購買教學

1. 註冊Digital Ocean的帳號:(尚未有帳號點此連結註冊,可取得$10美金試用金 :官方註冊位置,兩個月試用不無小補!!)



2. 登入帳號 ,新增Droplet(主機)


3. 選擇主機OS(基本上要看你的應用,如果只是要架站,Ubuntu 14.04.4 x64 預設的就好)



假設你一開始就確定自己是要放什麼東西,安裝甚麼套件,也可以用快速安裝。點上方的One-click App,就可以選擇。

一般網頁使用Apache的話就直接選 LAMP,開起來該有的都會有,超方便!




4. 選擇主機規格(牽扯到一個月多少錢,一開始可以先選$5的就好,之後關機就可以擴大

主機規格選擇

5. 選擇主機位置(台灣的話就選新加坡Singapore最近)
主機位置選擇


6. 設定SSH keys(目前雲端主機ssh連線驗證蠻基本又安全的方式,一開始只要在個人ssh設定好,這邊可以用勾選的,非常方便)



個人SSH設定位置:https://cloud.digitalocean.com/settings/security

個人SSH設定
SSH KEY輸入

不知道怎麼生成自己的 SSH key可參考:官方教學文件


7. 確定新增完成!就可以用SSH連入把程式放進去了(SFTP軟體也可以連入喔!)



點此連結註冊可取得$10美金試用金:
官方註冊位置


Digital Ocean 雲端主機租賃


最近才將客戶主機搬上DO,價格很漂亮,機器也還蠻穩定的。

以SSD主機租賃來說,目前用過 Digital Ocean 與 Linode,不得不讚賞一下 DO在安裝的便利性與介面美觀上做得比Linode好不少。

使用網頁介面就可以先把主機基本元件灌好(同時ssh key的設定與 root password也都可以在網頁上都設定好)。

選擇OS與月租方案

選擇內建軟體
上圖的One-click Apps在初始化機器上很方便,假設我是簡單網頁跑php、mysql 可以直接安裝 LAMP on 14.04 就會幫我把 Apache Mysql PHP這三個需要用的東西都先灌在機器裡了。

Digital Ocean讓整個機器開啟對新手、Linux苦手的開發者來說都顯得容易不少。

如果想要安裝一台測試主機不妨可以註冊使用看看。

一般簡單網頁大概只要$5美金一個月就很夠用了,如果覺得效能不夠之後也可以往上加開(一旦往上就無法降級,除非砍掉整個機器重開)

以下連結註冊帳號可以馬上取得$10美金的試用。(等於有兩個月的試用額度)

Digital Ocean註冊

歡迎大家一起使用!!

題外話,Digital Ocean 出了很多很多的教學文件,多到我每次在查詢機器怎麼灌的時候都會搜尋到他們家的文章......@@


Related Posts Plugin for WordPress, Blogger...