2017年6月30日 星期五

ownCloud 掛載 Google Drive、DropBox

Google 端設定:
1.要申請 Google API 認證 key 前,Chrome 先登入要申請的 Gmail 帳號

2.申請 Google API key 網址


3.這裡是申請 ownCloud 讀取 Google Drive 的認證 key

選擇啟用 Google Drive API

出現要建立專案的提示

建立專案

專案成功建立後,再選擇啟用 Google Drive API

建立 憑證




要不要下載 JSON 認證檔案都沒關係,可從網頁內查詢得到

完成的畫面

ownCloud 端設定:

出現錯誤訊息頁面:
表示要先加入 Google 的  Allow Risky Access Permissions By Unreviewed Apps 群組

加入群組後,再回到 ownCloud 按<允許存取>重新連結 Google Drive 一次。
重新連結就會出現:

ownCloud 成功加上 Google Drive 後,就可以退出 Allow Risky Access Permissions By Unreviewed Apps 群組了。

DropBox APPS 認證 KEY 網頁:

DropBox 的作法更簡單,目前 ownCloud v10 只支援 OAuth1 認證。

按 Create app 後,就產生一組認證 KEY & 金鑰


DropBox 二個步驟搞定,再到 ownCloud 儲存區掛載 DropBox 空間。

新增 DropBox 儲存區,輸入 APP key 及 金鑰後,按<允許存取>






2017年6月29日 星期四

ownCloud 安裝 OnlyOffice Plug-in


ownCloud 安裝 OnlyOffice Plug-in:
# cd /var/www/owncloud/apps/
# git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice
# chown -R www-data:www-data onlyoffice



切換到 owncloud web 設定:

設定 ownCloud OnlyOffice Plug-in 連結 OnlyOffice Document Server:






2017年6月23日 星期五

Ubuntu 16.04 安裝 OnlyOffice Document Server 整合 ownCloud 雲端硬碟

官網安裝步驟介紹:

在 CentOS 及 Ubuntu 安裝試過,結果 CentOS 怎麼設定都無法正常整合 OnlyOffice。
改用 Ubuntu 裝好後不用調整設定,直接可用。

更新 Ubuntu
# apt-get update && apt-get upgrade && apt-get dist-upgrade
# apt-get install -y curl

新增套件庫來源
# echo "deb http://archive.ubuntu.com/ubuntu xenial main universe multiverse" | tee -a /etc/apt/sources.list

安裝 nodejs 套件
# curl -sL https://deb.nodesource.com/setup_6.x | bash -
# apt-get install -y nodejs

安裝 PostgreSQL
# apt-get install -y postgresql

PostgreSQL 建立 onlyoffice 資料庫及帳號
# sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
# sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
# sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

安裝 redis
# apt-get install -y redis-server

安裝 RabbitMQ
# apt-get install -y rabbitmq-server

安裝 Document Server
新增 GPG key
# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5

新增 Document Server 套件庫
# echo "deb http://download.onlyoffice.com/repo/debian squeeze main" | tee /etc/apt/sources.list.d/onlyoffice.list
# apt-get update
# apt-get install -y onlyoffice-documentserver

新增字型(可不新增字型):
# mkdir /usr/share/fonts/chinese
# cd /usr/share/fonts/chinese
# 上傳字型
# mkfontscale
# mkfontdir
# apt-get install fontconfig
# fc-cache -fv
# documentserver-generate-allfonts.sh

Ubuntu 16.04 安裝 中文字型:
# apt-get install -y cabextract fonts-linuxlibertine ttf-mscorefonts-installer

字型英文名稱:
微軟正黑體:Microsoft JhengHei
標楷體:DFKai-SB
細明體:MingLiU
新細明體:PMingLiU


限制使用 Document Server 的 ownCloud 主機:

# vi /etc/onlyoffice/documentserver/default.json
# systemctl restart supervisor.service



ownCloud 整合 OnlyOffice 設定部份:
ownCloud 安裝 OnlyOffice Client:
# cd /var/www/owncloud/apps/
# git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice
# chown -R www-data:www-data onlyoffice

切換到 owncloud web 設定:
啟用 OnlyOffice Plug-in
設定 OnlyOffice Document Server 位址:

備註:
1.如使用 SSL 連線 ownCloud,在開啟文件編輯時,會被擋掉;出現錯誤訊息:
ONLYOFFICE cannot be reached. Please contact admin

原因是: 沒有有效的 SSL 認證

Edge、IE 按 <檢視所有內容> 或 Chrome 按 <載入不安全的指令碼>,就可以啟文件編輯畫面。

2.亂碼問題
將字型放入 Document Server 後,文件檔案裡還是有亂碼出現時,可以試著更改字型。有些亂碼可以借由變更字型獲得解決。





2017年6月21日 星期三

ownCloud 雲端硬碟 整合 Windows(AD)、Samba(AD) LDAP

安裝 php LDAP module
# apt-get install php7.0-ldap

安裝 ownCloud LDAP module
尋找 < LDAP user and group backend > 按 install

安裝後,按右上角的 admin 裡的 <設定>
會在左側多了一項< User Authentication >
看到測試連線 AD LDAP 的提示亮綠色,表示已正常連線 AD LDAP 了。

ownCloud 登入畫面輸入 AD 帳號、密碼(不須 Domain Name)






Ubuntu 16.04 安裝 ownCloud 雲端硬碟

ownCloud 雲端硬碟支援多種作業系統:如 Windows, IOS, Android


安裝相關套件
# apt-get update
# apt-get install -y php libapache2-mod-php php7.0-mysql php7.0-zip php7.0-dom php7.0-xml php7.0-gd php7.0-curl php7.0-mb php7.0-fpm php-apcu php-intl mysql-server apache2
# /etc/init.d/apache2 restart && /etc/init.d/mysql restart

下載 ownCloud 套件
# wget https://download.owncloud.org/community/owncloud-10.0.2.tar.bz2
# tar -xf owncloud-10.0.2.tar.bz2
# mv owncloud /var/www/
# mkdir /ownCloud_data    //存放使用者檔案資料
# chown -R root:www-data /var/www/owncloud
# chown -R www-data:www-data /var/www/owncloud/{apps,config}
# chown -R www-data:www-data /ownCloud_data

修改 /etc/apache2/sites-available/000-default.conf 變更 DocumentRoot
# vi /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/owncloud

# /etc/init.d/apache2 restart

開啟瀏覽器連到 ownCloud 伺服器

http://owncloud_ip/


依畫面設定:
ownCloud 強烈建議將 資料目錄 移出 WEB 根目錄下:

根據 ownCloud 建議,做以下處理:
1.移動 data 目錄
移動 data 目錄後,修改 /var/www/owncloud/config/config.php
'datadirectory' => '/var/www/owncloud/data'
修改為新的位置:
'datadirectory' => '/ownCloud_data'

2.修改 owncloud DB 的 oc_accounts、oc_storages 兩個 Table 相關欄位

3.安裝 redis-server 及連結 php
# apt-get install -y php7.0-dev redis-server unzip
# wget https://github.com/phpredis/phpredis/archive/php7.zip -O phpredis.zip
# unzip -o phpredis.zip && mv phpredis-* phpredis && cd phpredis && phpize && ./configure && make && make install
# mkdir -p /etc/php/mods-available
# touch /etc/php/mods-available/redis.ini && echo extension=redis.so > /etc/php/mods-available/redis.ini
# ln -s /etc/php/mods-available/redis.ini /etc/php/7.0/apache2/conf.d/redis.ini
# ln -s /etc/php/mods-available/redis.ini /etc/php/7.0/fpm/conf.d/redis.ini
# ln -s /etc/php/mods-available/redis.ini /etc/php/7.0/cli/conf.d/redis.ini

4.重啟相關服務
# /etc/init.d/php7.0-fpm restart && /etc/init.d/apache2 restart

測試 redis-server 安裝是否正常運作"
# php -r "if (new Redis() == true){ echo \"OK \r\n\"; }"

5.修改 /var/www/owncloud/config/config.php 設定 filelocking
# vi /var/www/owncloud/config/config.php
加入以下設定:
  'filelocking.enabled' => true,
  'memcache.locking' => '\\OC\\Memcache\\Redis',

  'redis' => array(
    'host' => 'localhost',
    'port' => 6379,
    'timeout' => 0.0,
    'password' => '',  //Optional, if not defined no password will be used.
  ),

6.cron 排程工作
# crontab -u www-data -e
*/15  *  *  *  * /usr/bin/php -f /var/www/owncloud/cron.php

7.啟用 SSL
# a2enmod ssl
# mkdir /etc/apache2/ssl
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
# vi /etc/apache2/sites-available/000-default.conf
<VirtualHost *:443>
      SSLEngine on
      DocumentRoot /var/www/owncloud

      <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
      </IfModule>

      SSLCertificateFile /etc/apache2/ssl/apache.crt
      SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>

# cd /etc/apache2/mods-enabled/
# ln -sf ../mods-available/headers.load headers.load
# /etc/init.d/apache2 restart

8.其他額外設定值,可參考 /var/www/owncloud/config/config.sample.php

9.其他 Plug-in https://apps.owncloud.com/





2017年6月19日 星期一

Let's Encrypt 免費 SSL 憑證設定(Nginx,Apache,Postfix,Dovecot)

Let's Encrypt:

Let's Encrypt 每張免費憑證期限是90天,但廠商提供了自動更新 script,可排程檢查 SSL 期限並自動更新 SSL 憑證。

須停用 WEB 服務:
systemctl stop nginx.service (Let's Encrypt 程式會模擬  web 給 SSL 發行的網站確認用,80 port 不能被使用,所以要停 web)

下載、安裝  Let's Encrypt 套件:
CentOS:
# yum install epel-release
# yum install certbot

Ubuntu:
$ sudo apt install -y git bc wget
$ sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt (安裝 Let's Encrypt 程式到 /opt/letsencrypt)


# /opt/letsencrypt/certbot-auto certonly --standalone --email xxx@example.com --agree-tos -d example.com (可利用 -d 加多個Domain)


憑證檔案 :
安裝完的憑證會依照申請的 domain 當作資料夾名稱放到 /etc/letsencrypt/live/ 目錄下
如果同時申請了 example.com 與 www.example.com,那麼憑證檔案就會分別放在 /etc/letsencrypt/live/example.com/ 及 /etc/letsencrypt/live/www.example.com/ 目錄下

憑證檔案分別會有 4 個
檔案名稱說明
cert.pem申請網域的憑證
chain.pemLet's Encrypt 的憑證
fullchain.pemcert.pem 及 chain.pem 合併檔案
privkey.pem申請網域的憑證密鑰

設定 nginx 使用 SSL 憑證:
vi /etc/nginx/templates/ssl.tmpl
內容:
server {
    # 設定憑證檔案
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    .......
}

設定 nginx 80 port 自動轉址導向 SSL 443 port
# vi /etc/nginx/sites-enabled/00-default.conf
內容:
server {

     location ~ /\.well-known\/acme-challenge {
      allow all;
    }

    if ($request_uri !~ /\.well-known) {
      return 301 https://$host$request_uri;
    }
}

設定 Postfix 使用 SSL 憑證:
# vi /etc/postfix/main.cf
修改:
# Force TLS-encrypted SASL authentication.
smtpd_tls_auth_only = yes
smtpd_tls_security_level = may
smtpd_tls_loglevel = 0
smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/cert.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/example.com/fullchain.pem
tls_random_source = dev:/dev/urandom

設定 dovecot 使用 SSL 憑證:
# vi /etc/dovecot/dovecot.conf
修改:
ssl_cert = </etc/letsencrypt/live/example.com/cert.pem
ssl_key = </etc/letsencrypt/live/example.com/privkey.pem
ssl_ca = </etc/letsencrypt/live/example.com/fullchain.pem


重啟相關 Service:
# systemctl restart nginx.service postfix.service dovecot.service

測試自動更新憑證:


/opt/letsencrypt/certbot-auto renew --dry-run

加入 Crontab 排程執行憑證更新 :
crontab -e
設定每個禮拜一的凌晨 2:30 (排程自訂)進行一次憑證的檢查及更新
30 2 * * Mon /opt/letencrypt/certbot-auto renew >> /var/log/le-renewal.log; systemctl restart nginx.service postfix.service dovecot.service


這樣就有了一個半永久的 SSL 憑證


建立 Let's Encrypt 設定檔 :
複製在原本 letsencrypt 目錄下的範例設定檔 /opt/letsencrypt/examples/cli.ini
cp /opt/letsencrypt/examples/cli.ini /usr/local/etc/le-renew-webroot.ini

編輯自訂設定檔:
vi /usr/local/etc/le-renew-webroot.ini
修改:
rsa-key-size = 4096
email = xxxxx@example.com
domains = example.com, example1.com
webroot-path = /var/www/html/    # www預設目錄


使用 Script 自動更新憑證:
下載憑證更新 shell script,並將 Script 設定為可執行檔案 :
apt-get install -y curl

curl -L -o /usr/local/sbin/le-renew-webroot https://gist.githubusercontent.com/thisismitch/e1b603165523df66d5cc/raw/fbffbf358e96110d5566f13677d9bd5f4f65794c/le-renew-webroot

chmod +x /usr/local/sbin/le-renew-webroot

le-renew-webroot Script 讀取 /usr/local/etc/le-renew-webroot.ini 設定資料並進行憑證更新,若憑證還有 30 天以上才過期,則不更新憑證。

手動執行,測試 shell script 更新憑證 :
/usr/local/sbin/le-renew-webroot

Checking expiration date for example.com...
The certificate is up to date, no need for renewal (89 days left).
...........................................

如有需要可強制更新憑證:
/opt/letsencrypt/certbot-auto renew --force-renew 



設定 Apache 使用 SSL 憑證:
1.確認 Apache httpd.conf 有載入 mod_ssl 模組,如果沒有安裝 SSL 模組:
yum install -y mod_ssl openssl

2.修改要套件 SSL 的網頁 conf 設定檔:
Apache 設定使用 SSL 憑證:
<VirtualHost *:443>
  ServerName example.com
  DocumentRoot /var/www/html/example

  SSLEngine on
  SSLCertificateFile    /etc/letsencrypt/live/example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem

  <Directory "/var/www/html/example">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

3.設定 80 port 轉址 443 port:
<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www/html/example
  Redirect permanent / https://example.com/
  <Directory "/var/www/html/example">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>




Ubuntu 16.04 安裝 OpenVAS 9 開源工具(弱點掃瞄工具軟體)

建立 Container 掛載的本機資料夾 (安裝在本機請略過此步驟)
# mkdir -p /openvas/{cert-data,plugins,scap-data}    //OpenVAS 存放更新的資料夾
# docker run -itd -p 4000:4000 -p 6379:6379 \
-v /openvas/cert-data:/var/lib/openvas/cert-data \
-v /openvas/scap-data:/var/lib/openvas/scap-data \
-v /openvas/plugins:/var/lib/openvas/plugins sclin2k/openvas9:ubuntu
# docker exec -it Container_ID bash

如安裝在 docker 內,須安裝 (如使用打包好的 docker images 安裝在本機請略過此步驟)
# apt-get update && apt-get upgrade
# apt-get install -y wget debsums rsync dialog


以下為全新安裝,如使用 OpenVAS docker image 請略過下列安裝步驟,跳到本文後面的 Docker 部份。

安裝 OpenVAS PPA 套件庫
# apt-get install -y software-properties-common
# apt-get install -y python-software-properties
# add-apt-repository ppa:mrazavi/openvas

安裝 openvas 軟體
# apt-get update
# apt-get install -y openvas9

安裝 SQLite3
# apt-get install -y sqlite3

同步 openvas 最新的漏洞資訊
# greenbone-nvt-sync    //同步資料存放在 /var/lib/openvas/plugins

同步 SCAP、CERT 到本機(同步時,一個 IP 只能一條 session,如果中斷再重連,有可能被鎖)
# greenbone-scapdata-sync   //同步資料存放在 /var/lib/openvas/scap-data
# greenbone-certdata-sync   //同步資料存放在 /var/lib/openvas/cert-data

啟動 openvas 服務
# /etc/init.d/redis-server restart    //docker 裡要手動啟動 redis-server
# service openvas-scanner restart
# service openvas-manager restart

重建 openvas 資料庫
# openvasmd --migrate     //從舊版本升級時才需要 
# openvasmd --rebuild --progress

修改連線的 web port:
# vi /etc/default/openvas-gsa
PORT_NUMBER=4000

啟動 openvas-gsa:
# service openvas-gsa restart

使用 PDF Report:
apt-get install -y texlive-latex-extra --no-install-recommends

安裝 openvas-nasl 掃瞄程序:
apt-get install -y libopenvas9-dev

設定 admin 密碼
openvasmd --user=admin --new-password=password

如不使用 admin,可新增一位 user
openvasmd --create-user=new_user
gsad --guest-username=new_user --guest-password



登入連線:
https://openvas_ip:4000




利用 Docker 安裝 OpenVAS:
使用 OpenVAS image 建立 Container:
建立 Container 掛載的本機資料夾
# mkdir -p /openvas/{cert-data,plugins,scap-data}    //OpenVAS 存放更新的資料夾

# docker run -itd -p 4000:4000 -p 6379:6379 \
-v /openvas/cert-data:/var/lib/openvas/cert-data \
-v /openvas/scap-data:/var/lib/openvas/scap-data \
-v /openvas/plugins:/var/lib/openvas/plugins \
sclin2k/openvas9:ubuntu

新建立的 Container 啟動後,重建 openvas cache 資料庫
# greenbone-nvt-sync
# greenbone-scapdata-sync
# greenbone-certdata-sync
# openvasmd --rebuild --progress

重啟 openvas 服務
# /etc/init.d/redis-server restart
# service openvas-scanner restart
# service openvas-manager restart
# service openvas-gsa restart

登入連線:
https://openvas_ip:4000



官網安裝步驟:





2017年6月15日 星期四

微軟 2017/06/13 又為已終止更新的 Windows XP、2003 發布更新

應該是很嚴重的漏洞吧,居然又為 Windows XP、Windows 2003 Server 發布三個修補更新檔。

微軟說:部份的漏洞遭到政府組織利用...........


雖然上次有傳出駭客嫌棄跑 Windows XP 的電腦硬體太差而放棄針對 Windows XP。
但既然有更新,不妨更新一下也好。

微軟 4025685 安全通報下載網頁


直接下載 Windows XP 32位元系統修補程式:

Windows XP SP3 漏洞編號 958644

Windows XP SP3 漏洞編號 4022747

Windows XP SP3 漏洞編號 4025218

Centos 7 設定 EXIM 郵件系統利用 ISP、GMAIL 寄送信件

沒使用過 EXIM,練習一下怎麼設定它來 Relay 主機的通知信件寄送。

EXIM 利用 ISP 或 Gmail 幫忙寄送信件的設定還蠻簡單的:

1.安裝 EPEL 套件庫
# yum install -y epel-release
# yum update

2.安裝 EXIM MTA 軟體
# yum install -y exim

3.停用 postfix
# systemctl stop postfix.service
# systemctl disable postfix.service

4.變更系統 MTA 預設值
# alternatives --config mta

選擇 EXIM 為預設 MTA 程式

5.開機自動啟動 EXIM mail server
# systemctl enable exim.service
# systemctl start exim.service

6.修改 exim.conf 設定(只是拿來寄測試信件,不改也沒關係)
# vi /etc/exim/exim.conf
primary_hostname = exim.yourdomain.com
domainlist local_domains = yourdomain.com

7.設定怎麼寄送信件
設定 EXIM 使用 HINET 寄送信件(要使用 HINET 線路)
# routers section  (要放在約 667 行 begin routers 段落裡)
send_via_hinet:
  driver = manualroute
  domains = !+local_domains
  transport = remote_smtp
  route_list = * msr.hinet.net


設定 EXIM 使用 Gmail 寄送信件:
# routers section  (要放在約 667 行 begin routers 段落)
send_via_gmail:
  driver = manualroute
  domains = ! +local_domains
  transport = gmail_smtp
  route_list = * smtp.gmail.com

# transports section (要放在約 874 行 begin transports 段落)
gmail_smtp:
  driver = smtp
  port = 587
  hosts_require_auth = $host_address
  hosts_require_tls = $host_address

# authenticators section (要放在約 1000 行 begin authenticators 段落)
gmail_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : myGmail@gmail.com : password


設定完成測試寄信:
# yum install -y mailx
# mail -s "test mail" MyMail@gmail.com < anaconda-ks.cfg

可以收到信的話,就OK了。


第一次接觸 EXIM,結果上面的設定值放錯段落,真是.........
exim: authenticator send_via_hinet: cannot find authenticator driver "manualroute"

exim: router gmail_smtp: cannot find router driver "smtp"


如果設定正確,還是無法使用 Gmail 寄信:
要確認 [允許安全性較低的應用程式] 是否開啟。
開啟功能的設定位置:

Gmail 我的帳戶 > 登入和安全性 > 己連結的網站與應用程式





2017年6月13日 星期二

進階版的 Linux top 工具軟體

傳統的 Linux top 指令能顯示的東西不多(CPU、RAM、Process..)

現在有更好用的小工具 glances。它除了能顯示 top 的資訊外,還可以秀出網路的流量、掛載的磁碟及利用顏色顯示數值(使用狀態)。

安裝、使用的方式很簡單:
CentOS:
# yum install -y epel-release
# yum install glances

Ubuntu:
apt-get install glances

安裝後,直接指令輸入:
# glances

就可以看到 glances 顯示的資訊畫面。

另外,再修改一下 ~/.bashrc 裡的 alias 加上:
alias top='glances'

以後打 top 就會啟動 glances 了。




2017年6月8日 星期四

Oracle Linux 7.3 安裝 NetFlow(Nfsen) 網路流量分析軟體

Oracle Linux 就和 CentOS 一樣是 RHEL 版本的分支 Linux 系統,相容所有的 RPM 套件及一樣可使用 yum 來安裝套件,這次就用它來安裝 NetFlow(NFSEN) 試試。

安裝 NetFlow 所需的各項套件:
# yum install -y nfdump perl-Sys-Syslog perl-MailTools perl-Socket6 php-mysql perl-Mail-Sender perl-Data-Dumper php php-gd httpd

以下四個套件必須下載 rpm 安裝(用 yum 找不到套件):
libpcap-devel (libpcap-devel-1.5.3-8.el7.x86_64.rpm)

php-mbstring (php-mbstring-5.4.16-42.el7.x86_64.rpm,HostStats plugin 會使用的套件 )

rrdtool (rrdtool-1.4.8-9.el7.x86_64.rpm,這個可以用 yum 安裝,但須和另兩個 rrdtool 套件版本要相同,所以一起下載)

rrdtool-devel (rrdtool-devel-1.4.8-9.el7.x86_64.rpm)

rrdtool-perl (rrdtool-perl-1.4.8-9.el7.x86_64.rpm)


新增一個 netflow 帳號並加入 apache 群組:
# useradd -r -g apache -s /sbin/nologin -d /opt/nfsen -M netflow

修改 /etc/php.ini 時區參數:
# vi /etc/php.ini
date.timezone = "Asia/Taipei"

建立 Nfsen 所要使用的各資料夾:
# mkdir -p /opt/nfsen
# mkdir -p /var/www/html/nfsen

下載 nfdump 及 nfsen 兩個 source 檔編譯安裝:
# cd /usr/local/src
# wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.8/nfsen-1.3.8.tar.gz

新增 Apache 裡 nfsen.conf :  
# vi /etc/httpd/conf.d/nfsen.conf
內容:
<Directory "/var/www/html/nfsen">
  AllowOverride None
  Require all granted
</Directory>

啟動 apache service:
# systemctl restart httpd.service
# systemctl enable httpd.service

安裝 nfsen :
# cd /usr/local/src
# tar -xf nfsen-1.3.6p1.tar.gz
# cd nfsen-1.3.6p1
# cp etc/nfsen-dist.conf etc/nfsen.conf

修改下列變數為上面步驟所建立的資料夾:
# vi etc/nfsen.conf
$BASEDIR= "/opt/nfsen";
$HTMLDIR = "/var/www/html/nfsen";
$PREFIX  = '/bin';      //因為是使用 yum install nfdump

$WWWUSER = "www";
$WWWGROUP = "www";
修改為:
$WWWUSER = "apache";
$WWWGROUP = "apache";
%sources = (
    'RouterOS'    => { 'port' => '9995', 'col' => '#0000ff', 'type' => 'netflow' },
);
$MAIL_FROM = 'nfsen@example.com';
$SMTP_SERVER = 'msr.hinet.net';

修改完上面的變數環境後:
# ./install.pl etc/nfsen.conf

啟動 nfsen service :
# /opt/nfsen/bin/nfsen start

Nfsen安裝 nfsen-1.3.6p1 確認正常運作後,可再下載新版本編譯安裝,直接安裝 nfsen-1.3.8 會出現某些問題,利用 nfsen-1.3.6p1 升級方式則可正常運作 nfsen-1.3.8 版本
# cd ../nfsen-1.3.8/
# cp ../nfsen-1.3.6p1/etc/nfsen.conf etc/
# ./install.pl etc/nfsen.conf

使用 v1.3.6p1 升級安裝時,v1.3.8可不修改下列所講的問題:
(1)nfsen 1.3.6p1有一個 Socket6 的 bug 須處理,修改解壓後 libexec 目錄下的 AbuseWhois.pmLookup.pm 兩個檔案:
# vi libexec/AbuseWhois.pm
# vi libexec/Lookup.pm

use Socket6;
change to :
Socket6->import(qw(pack_sockaddr_in6 unpack_sockaddr_in6 inet_pton getaddrinfo));

修改完上面的變數環境後:
# ./install.pl etc/nfsen.conf

重啟 nfsen service :
# /opt/nfsen/bin/nfsen reload


都正常完成以上安裝動作,可開啟瀏覽器連線 nfsen 管理介面:
http://host_ip/nfsen/nfsen.php


安裝 plugin 套件
一、安裝PortTracker套件
1.建立 ports-db 目錄
# mkdir /opt/nfsen/ports-db

2.修改 PortTracker.pm
# cd /usr/local/src/nfsen-1.3.8/contrib/PortTracker/
# vi PortTracker.pm
my $PORTSDBDIR = "/opt/ports-db";
修改為:
my $PORTSDBDIR = "/opt/nfsen/ports-db";

3.複製 PortTracker.pm 與 PortTracker.php 這兩個檔案到對應目錄
# cp PortTracker.pm /opt/nfsen/plugins/
# cp PortTracker.php /var/www/html/nfsen/plugins/

4.修改 /usr/local/src/nfsen-1.3.8/etc/nfsen.conf
# cd /usr/local/src/nfsen-1.3.8
# vi etc/nfsen.conf
加上:
@plugins = (
    [ 'live', 'PortTracker' ],
);

5.修改 ports-db 目錄權限
# chmod 775 -R /opt/nfsen/ports-db
# chown -R netflow:apache /opt/nfsen/ports-db

6.執行 nftrack 並將資料產生在 ports-db 路徑
# sudo -u netflow /bin/nftrack -I -d /opt/nfsen/ports-db

7.執行 nfsen 設定更新
# ./install.pl etc/nfsen.conf

8.重啟 nfsen、apache 服務
# /etc/init.d/nfsen restart

二、安裝HostStats套件
1.下載、安裝 HostStats 軟體
# cd /usr/local/src
# tar -xf hoststats-1.1.5.tar.gz
# cd hoststats-1.1.5
# yum groupinstall -y "Development tools"
先執行 ./install-libnfdump.sh 後再執行 ./configure
# ./install-libnfdump.sh     //安裝 libnfdump 模組
# ./configure
# make && make install    //安裝路徑和 nfsen 一樣: /opt/hoststats

2.修改 hoststats.conf
# vi /opt/hoststats/hoststats.conf
profiles = all,ssh,http,https,TCP,UDP

all:filter = any
all:max-size = 10G
all:color = 008DFF

ssh:filter = proto TCP and port 22
ssh:max-size = 5G
ssh:color = CCBB00

http:filter = proto TCP and port 80
http:max-size = 5G
http:color = FF00BB

https:filter = proto TCP and port 443
https:max-size = 5G
https:color = 009F67

TCP:filter = proto TCP
TCP:max-size = 5G
TCP:color = FF5700

UDP:filter = proto UDP
UDP:max-size = 5G
UDP:color = 8D00BA

flow-data-path = /opt/nfsen/profiles-data/live/%source/%y/%m/%d/nfcapd.%y%m%d%H%M

3.修改 HostStats 目錄權限
# chmod 775 -R /opt/hoststats/data /opt/hoststats/log
# chown -R netflow:apache /opt/hoststats

4.修改 nfsen.conf 加入 HostStats plugin
# cd /usr/local/src/nfsen-1.3.8
# vi etc/nfsen.conf
@plugins = (
    [ 'live', 'PortTracker' ],
    [ 'live', 'HostStats' ],
);

5.執行 nfsen 設定更新
# ./install.pl etc/nfsen.conf

6.重啟 nfsen 服務
# /opt/nfsen/bin/nfsen reload

7.啟動 HostStats
# sudo -u netflow /opt/hoststats/hoststats restart

8.最後設定開機啟動 nfsen、HostStats,修改 /etc/rc.local
# chmod +x /etc/rc.local
# vi /etc/rc.local
加入:
/opt/nfsen/bin/nfsen start
sudo -u netflow /opt/hoststats/hoststats start


Debug 工具:
# yum install -y tcpdump
# tcpdump -i eth0 port 9995


有支援 NetFlow 的設備,可設定將封包轉發一份到  NetFlow Server :
1.MikroTik RouterOS :
/ip traffic-flow target
add src-address=0.0.0.0 dst-address=192.168.1.249 port=9995 version=9

2.Cisco 設備:
int fa24
ip route-cache flow
show ip cache flow
clear ip flow stats
ip flow-export destination 192.168.1.249 9996


修改 /etc/nfsen.conf 接收設備轉發來的封包:
vi /etc/nfsen.conf
%sources = (
'RouterOS' => { 'port' => '9995', 'col' => '#088A08', 'type' => 'netflow' },
'CiscoRouter' => { 'port' => '9996', 'col' => '#0000ff', 'type' => 'netflow' },
);


問題:
如果有出現小工具的按鈕圖示無法正常顯示,則必須修改 Apache 的 DocumentRoot "/var/www/html" 路徑(不可包含 nfsen 目錄,自己遇到的情況是如此)。




2017年6月5日 星期一

MikroTik RouterOS (Layer7 Protocol) 封鎖 Torrent、p2p 下載 Policy

總是會有人利用公司的網路下載 Torrent 載點,在試過下列的 Policy 之後效果還不錯。

有些 Torrent 連線是無法完全封鎖,但可以採用限制流量的方式,讓它慢.........................慢的下載。

/ip firewall layer7-protocol
add name=L7-Torrent regexp="^(\x13bittorrent protocol|azver\x01$|get /scrape\?info_hash=get /announce\?info_hash=|get /client/bitcomet/|GET /data\?fid=)|d1:ad2:id20:|\x08'7P\)[RP]"

/queue tree
add limit-at=32k max-limit=32k name=Torrent-Download packet-mark=Torrent-Conn parent=global priority=5 queue=default

/ip firewall filter
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=2m chain=forward layer7-protocol=L7-Torrent
在 v6.39 後廠拿掉了對 p2p 阻擋的功能
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=2m chain=forward p2p=all-p2p
add action=add-src-to-address-list address-list=Torrent-Add address-list-timeout=2m chain=forward p2p=bit-torrent

/ip firewall mangle
add action=mark-connection chain=prerouting comment=Torrent-Conn dst-port=!0-1024,8291,5900,5800,3389,14147,5222,59905 new-connection-mark=Torrent-Conn protocol=tcp src-address-list=Torrent-Add
add action=mark-connection chain=prerouting dst-port=!0-1024,8291,5900,5800,3389,14147,5222,59905 new-connection-mark=Torrent-Conn protocol=udp src-address-list=Torrent-Add
在 v6.39 後廠拿掉了對 p2p 阻擋的功能
add action=mark-connection chain=prerouting new-connection-mark=Torrent-Conn p2p=all-p2p src-address-list=Torrent-Add
add action=mark-connection chain=prerouting new-connection-mark=Torrent-Conn p2p=bit-torrent src-address-list=Torrent-Add

add action=mark-packet chain=prerouting connection-mark=Torrent-Conn new-packet-mark=Torrent-Conn passthrough=no


針對原廠拿掉封鎖 p2p 的功能,可以採用 Layer7 的方式加減擋掉一些連線:

/ip firewall layer7-protocol
add name=p2p_www regexp="^.*(get|GET).+(torrent|thepiratebay|isohunt|entertane|demonoid|btjunkie|mininova|flixflux|torrentz|vertor|h33t|btscene|bitunity|bittoxic|thunderbytes|entertane|zoozle|vcdq|bitnova|bitsoup|meganova|fulldls|btbot|flixflux|seedpeer|fenopy|gpirate|commonbits).*$"

add name=p2p_dns regexp="^.+(torrent|thepiratebay|isohunt|entertane|demonoid|btjunkie|mininova|flixflux|vertor|h33t|zoozle|bitnova|bitsoup|meg anova|fulldls|btbot|fenopy|gpirate|commonbits).*\$"

/ip firewall mangle
add action=mark-packet chain=prerouting comment="p2p download" disabled=no layer7-protocol=p2p_www new-packet-mark="p2p download" passthrough=no

add action=mark-packet chain=prerouting disabled=no layer7-protocol=p2p_dns new-packet-mark="p2p download" passthrough=no

/queue simple
add name="p2p download" target="" parent=none packet-marks="p2p download" priority=8/8  limit-at=0/0 max-limit=1k/1k burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s bucket-size=0.1/0.1 queue=default-small/default-small total-queue=default-small

備註:
這裡的 p2p download policy 是用 queue 方式,也可以在 filter 用 drop 方式試試:
add action=drop chain=forward comment="dropping p2p download" packet-mark="p2p download





OCS Inventory 匯出資料到 Google 試算表(依電腦設備類型)

OCS Inventory 匯出到 Google 試算表的程式是從網路上其他高手分享出來( 參考資料出處 ),並依個人需求調整。 如要取用請注意,因程式是用 python 寫的,程式段落可能會移位導致無法正常運作。 下列程式調整SELECT電腦 設備類型 為Noteboo...