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

2017年11月27日 星期一

[筆記] UBUNTU 16.04 Google Compute Engine 自動自我備份

以下步驟將教學利用Google Compute Engine 自我定期備份(Backup automatically):

1. 安裝 Google Cloud ( 如果用外部機器才需要裝,如果使用Google Compute Engine內建已安裝)

# Create an environment variable for the correct distribution
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"

# Add the Cloud SDK distribution URI as a package source
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

2. 開啟該Instance的Cloud Engine API權限

# 如果還沒開機器可以再開機器的時候設定,已經開了就要停止機器用「編輯」做設定,須將Compute Engine的權限開啟為「讀寫」

停用Instance後可進行編輯,選取存取範圍為針對各個API設定存取權

找到Compute Engine開啟讀寫,其餘不需更動


3. 撰寫Script sh檔自動建立Snapshot並刪除昨日的Snapshot

# 新增一個執行檔
cd /home
sudo vim backup.sh

# 內容如下:主要是將昨日日期與今日日期標記在snapshot名稱
yesterday="$(date -d yesterday '+%Y%m%d')"
nowDate=$(date +%Y%m%d)
sudo gcloud compute disks snapshot [GOOGLE CLOUD ENGINE DISK NAME] --snapshot-names=backup-$nowDate --zone=asia-east1-a
gcloud compute snapshots delete backup-$yesterday

# 將執行檔轉為可執行
sudo chmod +x backup.sh

4. 將sh設定到Crontab中
sudo vim /etc/crontab

# 內容如下:看是要什麼時候執行該備份,以下為定期每日凌晨一點執行
0 1  * * * root /home/backup.sh


2017年9月27日 星期三

UBUNTU 16.04 安裝 Parse Server 筆記

安裝流程 (參考新裝parse的方法) UBUNTU 16

$ sudo apt-get install build-essential git python-software-properties
$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
$ sudo apt-get update
$ sudo apt-get install mongodb-org
$ cd /opt
$ sudo apt-get install git
$ git clone [parse server git]
$ cd /opt/[parse server git dir]
$ npm install
$ sudo npm install -g pm2
$ sudo pm2 start index.js --no-automation --name xxx-app (xxx-app 為自行設定名稱)

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

設定用ssh連線機器並關閉密碼功能
$ adduser [USERNAME]
$ usermod -aG sudo [USERNAME]
$ su - [USERNAME]
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ sudo chown -R "[USERNAME]" ~/.ssh
$ vim ~/.ssh/authorized_keys => 將id_rsa.pub貼入
請先確保key有輸入正確並登入正確再改以下步驟
$ sudo vim /etc/ssh/sshd_config => PasswordAuthentication no
$ sudo systemctl reload sshd

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
Related Posts Plugin for WordPress, Blogger...