S小魚仔S 網誌搜尋

2017年11月16日 星期四

S小魚仔S Eve-NG 基礎網路架構

因為工作上又遇到一位不錯大神,使用「Eve-NG」模擬器,本篇文章並不會講解「Eve-NG」安裝過程自行學習,因魚仔搭建環境使用「VMware Workstation」這方面會牽扯到「虛擬化」網路架構,首先我們先來看一下 Eve-NG + Vmware Workstaion 基礎網路。



VMware Workstation 網路為「Vmnet 8」使用「NAT」模式

Eve-NG: 「eth0」是 虛擬實體網卡,「pnet0」 為 虛擬橋接器,整個流程是「pnet0」=>「eth0」=>「Vmnet 8

VMware Workstation 掛載「2張」虛擬網卡


SSH 登入「Eve-NG」輸入「ifconfig」,發現「eth0」和「pnet0」有拿取「DHCP」IP,然而「eth1」和「pnet1」卻沒有「DHCP」IP,Why ??

這時候我們要修改「vi /etc/network/interfaces」網卡配置

接著 重啟「/etc/init.d/networking restart」網路, 檢查「ipconfig」狀態,成功獲取到「DHCP」。

Eve-NG Web UI「配置驗證

帳號: admin、密碼: eve (Default)

建立「Cloud」與「路由器」或「虛擬機」連線




選擇「Management (Cloud0)」或「Cloud1」都可以,請參考「架構圖」。

配置好以後,點擊「Win」檢查「IP」就會發現「獲取」成功。
PS. 記得安裝「Eve-NG Client Tools」支援「Console」和「遠程桌面」管理

在國外 Eve-NG 已經非常成熟 ,可以模擬「Fortigate」、「Juniper」、「Cirtrix」、「Windows」、「Linux」、「Zabbix」、「ELK」、「Splunk」....等,當然需要 自己找 鏡像 ISO 支援。

(ISO) 鏡像下載位置
鏡像位置1」(3duh)「鏡像位置2」(3ki4)「鏡像位置3」 (yuy5)、「鏡像位置4」(0r9o)

參考資料
WebSite」-「Eve-NG
情系の乌托邦」-「EVE-NG安装过程介绍
情系の乌托邦」-「EVE-NG导入Dynamips 和 IOL 鏡像

2017年11月9日 星期四

S小魚仔S Windows Server 2012 R2 設定 Nginx 自動啟動服務

1. 需要下載「WinSW.NET4.exe」放到「nginx.exe」相同目錄 並 修改「nginxd.exe


2. 建立「nginxd.xml」設定文件
PS 注意「nginxd.exe」和「nginxd.xml」檔案名稱要相同。

nginxd.xml」設定內容如下

<?xml version="1.0" encoding="UTF-8" ?>
<service>
  <id>nginx</id>
  <name>nginx</name>
  <description>nginx</description>
  <executable>C:/nginx-1.13.6/nginx.exe</executable>
  <startargument>-p</startargument>
  <startargument>C:/nginx-1.13.6</startargument>  
  <logpath>C:/nginx-1.13.6/logs</logpath>
  <logmode>roll</logmode>  
  <stopexecutable>C:/nginx-1.13.6/nginx.exe</stopexecutable>
  <stopargument>-p</stopargument>
  <stopargument>C:/nginx-1.13.6</stopargument>
  <stopargument>-s</stopargument>
  <stopargument>stop</stopargument>
  <stoptimeout>6sec</stoptimeout>
</service>

安裝「服務
nginxd.exe install



移除「服務
nginxd.exe uninstall



參考資料

2017年10月27日 星期五

S小魚仔S Centos 7 搭建 ELK (ElasticSearch) 叢集 (Cluster )

Elasticsearch 叢集(Cluster) 中的三種角色

Master Node: 幾點主要用於元數據(metadata)的處理,比如索引的新增、刪除、分片分配等。

Data Node: 節點上保存了數據分片。它負責數據相關操作,比如分片的 CRUD,以及搜索和整合操作。這些操作都比較消耗 CPU、內存和 I/O 資源。

Client Node: 節點起到路由請求的作用,實際上可以看做負載均衡器。

搭建版本「ElasticSearch - 5.6.3」首先我們先看一下架構圖


搭建「ElasticSearch」Cluster 請先滿足下列條件
PS. 記憶體不能小於「4G

#==關閉「Selinux 」======

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#====設定連線「最大值」默認「1024」====

echo "ulimit -SHn 65536" >> /etc/profile
source /etc/profile

#======開啟「最大線程」(262144)======

vi /etc/sysctl.conf

vm.max_map_count = 262144
vm.swappiness = 1

#重啟生效
sysctl -p

#==Elasticsearch - Firewall========

#ElasticSearch Mapping API  9200/TCP
sudo firewall-cmd --add-port=9200/tcp --permanent 

#ElasticSearch Unicast  9300/TCP
sudo firewall-cmd --add-port=9300/tcp --permanent 

#重新啟動「防火牆
sudo firewall-cmd --reload

#=====Elasticsearch.yml 設定檔(Config)========

#=====Master 配置=======

# 叢集「名稱
cluster.name: es_cluster
 # Hostname(主機名)
node.name: Elasticsearch_M
# 允許連線 IP ,也可以使用「0.0.0.0
network.host: 192.168.8.28
 # 開啟「TCP-9200」協議
http.port: 9200

#如果「Elasticsearch」節點(Node)只有「2台」才需要配置,默認都是「True」。
# master =「主節點」,data =「存放資料
node.master: true
node.data: true

 #設定「自動發現節點主機」Unicast
discovery.zen.ping.unicast.hosts: ["192.168.8.28","192.168.8.29"] 

#防止「Node」節點故障,節點(Node)「2台」設定數值「1」。
#防止「Node」節點故障,節點(Node)「3台」設定數值「2」。
discovery.zen.minimum_master_nodes: 1

#支援「跨網段」連線 並 獲取「數據」
http.cors.enabled: true
http.cors.allow-origin: "*"




#=====節點 Node 配置 (以此類推) =======

配置完成以後透過下面指令確認「狀態

#==檢查「端口」===
netstat -ltunp | grep -e "9200" -e "9300"


#==查詢「群集」狀態=======

查询集群状态
curl -XGET 'http://192.168.8.28:9200/_cat/nodes?v'

查询集群中的「Master」
curl -XGET 'http://192.168.8.28:9200/_cat/master?v'

查询集群中的「健康狀態
curl -XGET 'http://192.168.8.28:9200/_cat/health?v'

到這邊為止「ElasticSearch」Cluster 基本搭建完成,後續可以依照需求搭建「Client Node - Load Blance」做「負載均衡

參考資料
www.cnblogs.com」-「ELK + KafKa 开发集群环境搭建
www.blog-wuchen.cn」-「ES集群安装

2017年10月26日 星期四

S小魚仔S Influxdb 搭配 Grafana 完成簡易 Web UI Admin 管理

首先「本篇」不會講解「Influxdb」和「Grafana」搭建,這是最基本的知識基礎,在一個巧合之下發現「Grafana Influx Admin」Panel,開發公司為「Natel Energy」。

Influxdb」和「Grafana」需要搭建在「相同服務器」因為使用「localhost:8088」連線。

1. 安裝「nodes」相關「套件

yum install nodejs -y
yum install openssl -y
npm install -g yarn
npm install -g grunt-cli

2.安裝「Grafana - influx admin」 Plugins

grafana-cli plugins install natel-influx-admin-panel

sudo systemctl restart grafana-server


3. 設定「Data Sources


點選「+Add data Source

1. 輸入「名稱
2. 選擇「InfluxDB
3. 輸入「http://localhost:8086」(Default)
4. 選擇「Proxy
5. 輸入 InfluxDB「資料庫
6. 輸入 InfluxDB「帳戶」、「密碼

點選「Save & Test

成功連結「InfluxDB


4. 配置「DashBoard」套用「Influx Admin」插件

點選「Home

點選「+ New DashBoard

選擇「Influx Admin」插件

編輯「Influx Admin」插件

移動 畫面 最下面
1. 點選「Options
2. 選擇「Query Windows

點選「紅色圖形」就會有「UI」功能

點選「Show Databases」就可以查詢「資料庫

2017年10月11日 星期三

S小魚仔S Centos 7 安裝 Ntopng 進行 網路監控

ntopng」是原始「ntop」的下一代版本,監視網絡使用情況的網絡流量探測器。「ntopng」基於「libpcap」,它以便攜式方式編寫,以便在每個 Unix 平台,MacOSX 和 Windows 上虛擬運行,支持 sFlowNetFlow (v5/v9) 和 IPFIX,此版本「ntopng-3.1.171009」同時結合「Grafana - Ntopng Datasource」。

==修改「電腦」名稱====

hostnamectl set-hostname Ntopng
                                       
==Grafana- Firewall========

#Ntopng-Http (Server) 3000/TCP
sudo firewall-cmd --add-port=3000/tcp --permanent 

#重新啟動「防火牆
sudo firewall-cmd --reload

==關閉「selinux 」======

#關閉「Selinux」為「disabled」才不會阻擋「服務連線」服務
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#重新啟動
reboot -h now

==== Install Ntopng 3.1 版本(Yum 源) ============

#切換「Yum」源,根目錄
cd /etc/yum.repos.d/

#「Wget」下載「ntop.repo」修改檔名「ntop.repo
wget http://packages.ntop.org/centos/ntop.repo -O ntop.repo

#「Rpm」下載「epel-release-latest-7.noarch.rpm」並「安裝
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

#清理「暫存
yum clean all

#「更新」所有「Yum」源
yum update -y

======安裝「Ntopn」===========

#安裝「Pfring」、「n2disk」、「nprobe」、「ntopng」、「ntopng-data」、「cento」、「tcpdump」。
yum install pfring n2disk nprobe ntopng ntopng-data cento tcpdump -y

#安裝「pfring」驅動程式
yum install pfring-drivers-zc-dkms -y

#開啟「redis」服務
sudo systemctl start redis.service
#重開機「redis」自動開啟「服務
sudo systemctl enable redis.service

#開啟「ntopng」服務,啟動「會有錯誤」不用擔心,因為需要「重啟」。
sudo systemctl start ntopng.service

輸入「journalctl -xe」會出現「Failed to start ...」無須理會,繼續往下

#重開機「ntopng」自動開啟「服務
sudo systemctl enable ntopng.service

#重新啟動
reboot -h now

#檢查「ntopng」狀態
sudo systemctl status ntopng.service

#檢查「redis」狀態
systemctl status redis.service

#因「ntopn」是「商業軟件」需要修改「License」授權 為「--community」(通用版) Version。

#修改「ntopng.conf」編輯檔
sudo vi /etc/ntopng/ntopng.conf

;內容如下
-G=/var/tmp/ntopng.pid\
--community

#重新啟動「ntopng.service
sudo systemctl restart ntopng.service

#檢查「ntopng」狀態
sudo systemctl status ntopng.service

輸入「Http://IP:3000」即可正常「使用
PS.預設「帳號」和「密碼」( admin / admin )

參考資料
肥佳洛的學習網」-「建立 Ntopng 來作為收集與分析 SFlow 訊息
亞索數位筆記」-「在 CentOS 7.x 上安裝 ntopng
「Web Site」-「http://www.ntop.org/

2017年9月25日 星期一

S小魚仔S Influxdb 設定 Https 證書加密

1. 下載「Win32OpenSSL」產生「Private Key」(私鑰) 和「Ceritficate」(證書) 接著合併「Private Key」與「Ceritficate」。



切換「Bin」目錄夾
CD C:\OpenSSL-Win64\bin


使用「openssl.exe」產生「Private Key
openssl genrsa -out D:\influxdb_key.pem 2048

使用「openssl.exe」導入「Private Key」 產生「csr
openssl req -new -key D:\influxdb_key.pem -out D:\influxdb_cert.csr



合併「Private Key 與「Ceritficate
openssl x509 -req -days 3650 -in D:\influxdb_cert.csr -signkey D:\influxdb_key.pem -out D:\influxdb_cert_key.pem




2. 編輯「influxdb.conf」配置「加密

編輯「vi /etc/influxdb/influxdb.conf

啟用「加密
https-enabled = true

載入「influxdb_cert_key.pem」( 合併 Ceritficate 與 Private Key )
https-certificate = "/opt/influxdb_cert_key.pem"

載入「Private Key
https-private-key = "/opt/influxdb_key.pem"




#重新啟動「InfluxDB
systemctl restart influxd

#檢查「InfluxDB」狀態
systemctl status influxd


3. 設定「Telegraf (客戶端)」使用「Https」加密傳輸

編輯「vi /etc/telegraf/telegraf.conf

urls = ["https://192.168.8.26:8086"]

insecure_skip_verify = true

#重啟「telegraf」客戶端
systemctl restart telegraf

#檢查「telegraf」狀態
systemctl status telegraf


參考資料
RiCo技術農場」-「Enable https for influxdb
RiCo技術農場」-「How to set up HTTPS with Telegraf

2017年9月19日 星期二

S小魚仔S PowerShell 執行 Exchange 2013 EMS Script 腳本

1. 設定「PowerShell」賦予「執行」權限


檢查「Get-ExecutionPolicy」權限,若如下圖「所示」,接著往下繼續..
Get-ExecutionPolicy –List | FL

修改為「RemoteSigned」執行權限
Set-ExecutionPolicy "RemoteSigned"

2. 建立「Exchange - PowerShell」( xxx.ps1)

#==載入「Exchange-2013」模組==
PS. 這裡「紅色」部份「需要」輸入 Exchange Server「FQDN
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mail.jumi.com/PowerShell/ -Authentication Kerberos
Import-PSSession $Session

#===設定「日期」變數=====

$CurrentDate = Get-Date
#===設定「日期」轉「字串」=====
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy_hh-mm-ss')

#==輸入「Exchange Script」指令==
PS. 指令不多做「解釋」有需要「自行學習
Get-MessageTrackingLog -Server mail -ResultSize Unlimited -Start "9/18/2017 00:00 AM" -End "9/19/2017 11:00 PM" -Sender "xxxxx@gmail.com" | Select-Object timestamp,source,eventid,sender,recipients,messagesubject,recipientstatus,originalclientip,clientip,serverip | sort-object -Property timestamp | Out-File C:\Ex_Log\exchange_$CurrentDate.log

執行「PowerShell」腳本


成功輸出「Exchange」Log

3. 設定 PowerShell 「排程」(schedule) 執行

選擇「創建基本任務

輸入「任務名稱

選擇「排程」每天何時執行

選擇「開始」時間

選擇「啟動程序

1.輸入「powershell
2. 添加參數 輸入「-file "C:\Users\Mail\Exchange.ps1"
PS. PowerShell 檔案,不要用中文命名

這裡非常重要
1. 選擇「不管用戶是否登入都要運行
2. 使用「最高權限運行
3. 配置「Windows Server 2012 R2

1.選點「觸發器」頁面
2. 點選「觸發器」排程,可以修改「執行時間


最後輸入有執行權限「帳號和「密碼」即可

參考資料