2024年5月16日 星期四

利用Linux實作虛擬網路流量複製器

本實作利用Linux虛擬機實作虛擬網路流量複製器,將實體機內部Inter-VM的東、西向流量複製出來,並透過GRETAP隧道傳送至外部資安偵測設備,進行惡意行為檢測,提升虛擬網路可視性

系統架構如下

於VMware vSS或vDS設定混雜模式Port Group














安裝Traffic Replicator

OS : Ubuntu 22.04.2 LTS

作業系統網路配置















VM網路卡配置



安裝Traffic Forwarder

OS : Ubuntu 22.04.2 LTS

作業系統網路配置










在Traffic Replicator和Traffic Forwarder間建立GRETAP隧道
Traffic Replicator
#ip link add name tun0 type gretap remote 140.110.93.227 local 140.110.93.228
#ip link set tun0 up
#ip addr add 10.0.0.1/24 dev tun0
#brctl addbr br0
#brctl stp br0 off
#brctl addif br0 ens192
#ifconfig br0 up


Traffic Forwarder
#ip link add tun0 type gretap remote 140.110.93.228 local 140.110.93.227
#ip link set tun0 up
#ip addr add 10.0.0.2/24 dev tun0


在Traffic Replicator和Traffic Forwarder上分別設定tc複製流量
Traffic Replicator
#tc qdisc add dev ens192 ingress
#tc filter add dev ens192 parent ffff: protocol all u32 match ip src 140.110.93.229/32 match ip dst 140.110.93.227/32 action mirred egress mirror dev tun0
#tc filter add dev ens192 parent ffff: protocol all u32 match ip src 140.110.93.227/32 match ip dst 140.110.93.229/32 action mirred egress mirror dev tun0

Traffic Forwarder
#tc qdisc add dev tun0 ingress
#tc filter add dev tun0 parent ffff: protocol all u32 match ip src 140.110.93.229/32 match ip dst 140.110.93.227/32 action mirred egress mirror dev eno2
#tc filter add dev tun0 parent ffff: protocol all u32 match ip src 140.110.93.227/32 match ip dst 140.110.93.229/32 action mirred egress mirror dev eno2

2023年1月2日 星期一

PaloAlto Firewall Simulation on EVE-ng

  1.  下載PaloAlto VM
  2. 建立paloalto-10.0.11-h1目錄
    #mkdir /opt/unetlab/addons/qemu/paloalto-10.0.11-h1/
  3. 使用WinSCP上傳剛剛下載的PA-VM-KVM-10.0.11-h1.qcow2到EVE-ng
  4. 移動到/opt/unetlab/addons/qemu/paloalto-10.0.11-h1/目錄
    #cd /opt/unetlab/addons/qemu/paloalto-10.0.11-h1/
  5. 重新命名檔案
    #mv PA-VM-KVM-10.0.11-h1.qcow2 virtioa.qcow2
  6. 修正權限
    #/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
  7. 在EVE-ng上加入PaloAlto Firewall
  8. 預設帳號密碼為admin/admin,PaloAlto Firewall開啟後,部份功能需要輸入authorization code才能使用



 


2022年12月30日 星期五

PaloAlto VM DoS Protection Lab

  •  網路架構圖










  • 環境
    • PaloAlto VM
      • OS : PA-VM-KVM-10.0.11-h1.qcow2
      • Management IP : 192.168.1.2
    • Victum
      • OS : Windows 10
      • IP : 172.16.1.2/24
      • Gateway : 172.16.1.1
      • apache web server
    • Attacker
      • OS : Kali Linux
      • IP : 10.10.10.2/24
      • Gateway : 10.10.10.1
  • PaloAlto DoS Protection Prolfile

















 

 



  • PaloAlto DoS Protection Policy




  • 攻擊示範
    • TCP SYN Flooding

    • Resources Protection(Maximum Concurrent Sessions Limit)
 


2022年9月17日 星期六

Ubuntu 20.04安裝OpenVPN + Windows AD認證整合

  • Ubuntu 20.04透過自動腳本安裝OpenVPN Server

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

chmod +x openvpn-install.sh

執行自動腳本,安裝過程會產生OpenVPN客戶端配置文件,、。

./openvpn-install.sh

設定開機自動執行OpenVPN Server

sudo systemctl enable openvpn

sudo systemctl status openvpn

sudo systemctl restart openvpn

sudo systemctl start openvpn

sudo systemctl stop openvpn

參考:https://2error.net/zh-hant/%E5%A6%82%E4%BD%95%E5%9C%A8-ubuntu-20-04-%E4%B8%AD%E5%AE%89%E8%A3%9D-openvpn

於Windows 10客戶端上安裝OpenVPN客戶端Community Edition

匯入OpenVPN客戶端配置文件即可連線成功

  • OpenVPN Server整合Windows AD認證

安裝OpenVPN LDAP package

sudo apt install openvpn-auth-ldap

複製LDAP設定檔

cp -v /usr/share/doc/openvpn-auth-ldap/examples/auth-ldap.conf /etc/openvpn/auth/auth-ldap.conf

修改LDAP設定檔

sudo vi /etc/openvpn/auth/auth-ldap.conf

URL ldap://x.x.x.x

BindDN "CN=openvpn,CN=xxx,DC=xxx,DC=xxx,DC=xxx,DC=xxx,DC=xxx"

Password xxx

TLSEnable no

BaseDN "CN=xxx,DC=xxx,DC=xxx,DC=xxx,DC=xxx,DC=xxx"

SearchFilter "(cn=%u)"

修改OpenVPN伺服器端配置文件

sudo vi /etc/openvpn/server.conf

#user nobody

#group nogroup

push "dhcp-option DNS 140.110.16.1"

push "dhcp-option DNS 140.110.4.1"

push "redirect-gateway def1 bypass-dhcp"

push "route 10.100.0.0 255.255.0.0"

status /var/log/openvpn/status.log

verb 3

#log /var/log/openvpn/openvpn.log

log-append /var/log/openvpn/openvpn.log

plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth/auth-ldap.conf

#client-cert-not-required

client-connect /etc/openvpn/script/connect.sh

client-disconnect /etc/openvpn/script/disconnect.sh

duplicate-cn

修改OpenVPN客戶端配置文件

auth-user-pass

client

proto udp

explicit-exit-notify

ignore-unknown-option block-outside-dns

#setenv opt block-outside-dns # Prevent Windows 10 DNS leak

verb 3

route-nopull

route 10.100.0.0 255.255.0.0 vpn_gateway

參考:https://medium.com/@hiranadikari993/openvpn-active-directory-authentication-726f3bac3546


2022年8月25日 星期四

Zabbix + iPerf整合

  • 安裝好Zabbix agent,並可連線到Zabbix server且運作正常
  • 分別在Zabbix agent及Zabbix server所在的機器上安裝好iPerf3,並設定開機啟動
  • download zabbix-speedtest-lan程式

https://gitlab.mirhosting.com/root/zabbix-iperf 

  • On Zabbix agent, copy the speedtest-lan.sh to /etc/zabbix/script and make executable: chmod +x /etc/zabbix/script/speedtest-lan.sh
  • On Zabbix agent, modify the speedtest-lan.sh
  • On Zabbix agent, copy the speedtest-lan.cron to /etc/cron.d
  • On Zabbix agent, cp speedtest-lan.conf /etc/zabbix/zabbix_agentd.conf.d/
  • On Zabbix agent, restart zabbix-agent: systemctl restart zabbix-agent
  • Import template _speedtest-lan.xml on Zabbix server
  • On Zabbix server, add Zabbix agent to Zabbix server並開始監控

2022年8月7日 星期日

建立自行簽署的SSL憑證,Nginx設定HTTPS + 設定Palo Alto Firewall SSL Inbound Inspection + Enable Anti-Virus/Anti-Spyware

1. 建立自行簽署的SSL憑證,Nginx設定HTTPS

sudo mkdir /etc/nginx/ssl

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt


sudo vi /etc/nginx/sites-available/default











sudo service nginx restart

2. 設定Palo Alto Firewall SSL Inbound Inspection

sudo mkdir /etc/nginx/ssl/output

openssl pkcs12 -in nginx.crt -inkey nginx.key -export -out output/nginx.pfx -password pass:xxxxxxxx

cd output

openssl pkcs12 -in nginx.pfx -nokeys -password "pass:xxxxxxxx" -out - 2>/dev/null | openssl x509 -out server.crt

openssl pkcs12 -in nginx.pfx -nocerts -password "pass:xxxxxxxx" -out server.key




























3. Enable Anti-Virus/Anti-Spyware

2021年8月25日 星期三

CentOS 7 安裝 Python 3

想在 CentOS7 使用 Python3 是有點小麻煩的。


RedHat 的套件政策是:主版本週期定為 10 年,主版本釋出後,所包含的套件都會維持主版本不變;例如:CentOS7 內含的 Python 版本是 2.7,在這 10 年間,Python 的版本就會是 2.7.x 的更新。


Python 因為太好用,所以許多套件將 Python 綁在一起,如果想要移除 Python2,會因為套件的相依性而連帶移除了其他原本不想或不能移除的套件!例如:重要的套件管理 yum。


但是,10 年是會有滄海滄田的變化的,雖然 RedHat / CentOS 的主要對象是企業,企業重視系統的穩定使用,同時也希望在下一個主版本釋出前,可以對新工具 / 新功能進行 開發 / 測試 / 研究 / 實驗。


RedHat 聽到了企業的聲音,推出了 Software Collections(SCL),SCL 包含了新的套件可供安裝,其中 Python3 的版本,目前更新到 3.6。



[root]# vi  /etc/yum.repos.d/CentOS-Base.repo

→ 找到 [extras]

→ 將 enabled 值改成 1

→ :x 存檔離開



[root]# yum  install  centos-release-scl



偷懶,安裝所有以 rh-python36 字首的套件  :-P


[root]# yum  install  rh-python36*



此時 Python2 與 Python3 是 並存 於 CentOS7 內的,這時若查詢系統預設執行的 Python 版本


[root]# python  --version


會回應顯示 python 2.7.5




若要以 Python3 執行,則要先下指令:


[root]# scl  enable  rh-python36  bash


再查詢一次


[root]# python  --version


這次就會回應 python 3.6.3


但因為 SCL  原意就是讓我們可以同時使用 Python2 和 Python3,所以當您 登出 或 重新開機,預設要執行的 Python 版本又會回到 2.7。



若要每一次登入,預設執行的 Python 版本都是 Python3,方法如下(不過 RedHat 也說這是解套方法,他們還沒想出正解):



建立 rh-python36.sh


[root]# vi /etc/profile.d/rh-python36.sh

 

#!/bin/bash

source  scl_source  enable  rh-python36

 

:x 存檔離開


登出系統,再重新登入


[root]# python  --version

系統就會回應


python 3.6.3




方法二:

Python3 會安裝在下述的路徑


/opt/rh/rh-python36/root/bin/python


在您撰寫的 python 程式的第一行指定要執行的 Python 直譯器


例如,您的程式名為 test.py

 

#!/opt/rh/rh-python36/root/bin/python

import sys

import platform


print(platform.python_version())

 


然後,變更 test.py 的屬性為可執行


[root]# chmod  a+x  test.py


這樣,您的程式會變成可執行檔


執行方式為:切換到 test.py 所在的目錄下,直接執行 test.py


[root]# ./test.py