[Up]常用資訊

[重點文章] 重點文章 [重點文章] 重點文章

2020年3月28日 星期六

[Debian] 安裝 fail2ban 保護linux 被Try 暴力密碼

[Debian] 安裝 fail2ban 保護linux 被Try 暴力密碼
fail2ban 是一套 Linux 安全防護套件,運作的原理是讓使用者設定需要監控的服務,例如:ssh、mysql,這些服務如果有使用者登入失敗,
會如同上面提到的,寫一條登入失敗的資訊到 log,fail2ban 會根據使用者設定去掃描有沒有像下面這種嘗試登入並且登入失敗的記錄
 

[PYTHON] 使用 python 發送訊息

[PYTHON] 使用 python 發送訊息 使用 python 發送 slack 訊息

2020年3月26日 星期四

[SHELL] 用find刪除大於45天的檔

[SHELL] 用find刪除大於45天的檔
 
 
1.刪除檔命令:
 
find 對應目錄 -mtime +天數 -name "檔案名" -exec rm -rf {} \;
 
實例命令:
 
find /home/F5/jenkins/ -mtime +45 -name "*-log-file" -exec rm -rf {} \;
 
說明:
將/home/F5/jenkins/目錄下所有45天前帶".log"的檔刪除。具體參數說明如下:
find:linux的查找命令,用戶查找指定條件的檔;
/home/F5/jenkins/:想要進行清理的任意目錄;
-mtime:標準語句寫法;
+45:查找45天前的檔,這裡用數字代表天數;
"*-log-file":希望查找的資料類型,"*.jpg"表示查找副檔名為jpg的所有檔,"*"表示查找所有檔,這個可以靈活運用,舉一反三;
-exec:固定寫法;
rm -rf:強制刪除檔,包括目錄;
{} \; :固定寫法,一對大括弧+空格+\+; 
 
2.計畫任務:
若嫌每次手動執行語句太麻煩,可以將這小語句寫到一個可執行shell腳本檔中,再設置cron調度執行,那就可以讓系統自動去清理相關檔。
 
2.1創建shell:
touch /opt/soft/bin/auto-del-45-days-ago-log.sh
chmod +x auto-del-45-days-ago-log.sh
新建一個可執行檔auto-del-45-days-ago-log.sh,並分配可運行許可權
 
2.2編輯shell腳本:
vi auto-del-30-days-ago-log.sh
編輯auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /home/F5/jenkins/ -mtime +45 -name "*-log-file" -exec rm -rf {} \;
ok,保存退出(:wq)。
 
2.3計畫任務:
#crontab -e
將auto-del-30-days-ago-log.sh執行腳本加入到系統計畫任務,到點自動執行
輸入:
 
10 0 * * * /home/F5/jenkins/auto-del-45-days-ago-log.sh >/dev/null 2>&1
 
這裡的設置是每天淩晨0點10分執行auto-del-45-days-ago-log.sh檔進行資料清理任務了。
 

[BASH]由bash發送訊息到slack(二)

[BASH]由bash發送訊息到slack 感謝兩個網站的貢獻

https://agoop.slack.com/apps/new/A0F7XDUAZ--incoming-webhook-
https://qiita.com/tt2004d/items/50d79d1569c0ace118d6
bash webhooks.sh 有兩組方式

2020年3月25日 星期三

[SHELL] 使用 命令 將訊息傳到 Sleck

[SHELL] 使用 命令 將訊息傳到 Sleck How to post message from command-line into Slack 感謝這個網站 https://blog.sleeplessbeastie.eu/2017/06/12/how-to-post-message-from-command-line-into-slack/ 使用定義好的webhook將命令行中的消息作為參數,標準輸入或文件發佈到Slack中,利用顏色,圖標和標記來辨識消息。

2020年3月23日 星期一

[BIG-IP-LTM] LAB TMSH 指令設定

[BIG-IP-LTM] LAB TMSH 指令設定

設定 hostname
tmsh modify sys global-settings hostname Locallab01.localdomain

建立 VLANs
tmsh create net vlan external interfaces add {1.2}
tmsh create net vlan internal interfaces add {1.1}

建立 Self IPS
tmsh create net self 172.16.1.254/24 vlan external
tmsh create net self 192.168.1.254/24 vlan internal

建立 Default Route
tmsh create net route Default_GW network 0.0.0.0/0 gw 172.16.1.254

建立 HTTP_POOL Pool
tmsh create ltm pool HTTP_POOL load-balancing-mode least-connections-member members add {192.168.1.11:80 192.168.1.12:80 192.168.1.13:80}

建立 HTTP_TEST Virtual Server
tmsh create ltm virtual HTTP_TEST destination 172.16.1.40:80 profiles add {tcp http} pool HTTP_POOL snat automap

Save the config
tmsh save sys config

2020年3月21日 星期六

[BIG-IP-LTM] 自動更新 letsencrypt 憑證及 更新LTM 上的 profile

[BIG-IP-LTM] 自動更新 letsencrypt 憑證及 更新LTM 上的 profile

有部分參考 這個網站 BIG-IP_Let'sencrypt

#!/usr/bin/env bash
# linux 主機要先更新 widecard-憑證
# 修改變數 請先到 cloudflar 取得 CF_key
# export CF_Key="YOUR_CLOUD_FLARE_API_KEY"
# export CF_Email="YOUR_CLOUD_FLARE_LOGIN_EMAIL"
# 確認自己的 要申請的憑證 網域
# DOMAIN=your-domain.com
# 網頁更新 /var/www/html/letsencrypt

    DOMAIN=bigtalk.info
    now=$(date +%Y-%m-%d)
    profile=auto_${DOMAIN}
    name=${DOMAIN}_${now}_lab_2
    dcert=${name}.crt
    dkey=${name}.key
    ocsp="letsencrypt-ocsp"
    KEYFILE="http://x.x.x.x/letsencrypt/keys/bigtalk.info.key"
    FULLCHAINFILE="http://X.X.X.X/letsencrypt/live/bigtalk.info/fullchain.pem"
        echo "key ${dkey} from file ${KEYFILE}"
        echo "key ${dcert}.crt from file ${FULLCHAINFILE}"

sleep 10

tmsh install sys crypto key ${name} from-url ${KEYFILE}
tmsh install sys crypt cert ${name} from-url ${FULLCHAINFILE}
#
sleep 2
#
tmsh modify ltm profile client-ssl ${profile} cert-key-chain replace-all-with { default { key $name cert $name } }

2020年3月19日 星期四

[Debian] Debian 10.2 基本安裝

[Debian] Debian 10.2 基本安裝

 

@ 印出 Linux Kernel 版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.18-238.el5xen #1 SMP Thu Jan 13 16:41:45 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
@ 印出 Linux 發行版本,這邊是 CentOS 的結果
@ 這個指令通用於所有的發行版本,如:Redhat、SuSE、Debian等
[root@localhost ~]# lsb_release -a
LSB Version: :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.8 (Final)
Release: 5.8
Codename: Final
 

2020年3月17日 星期二

[BIG-IP-LTM] LAB 環境規劃

[BIG-IP-LTM] LAB 環境規劃

LAB環境是:

  BIGIP01 BIGIP02 Floating IP
MGMT IP (eth0) 172.19.4.96 172.19.4.97  
Internal IP (eth1) 172.19.56.248 172.19.56.249 172.19.56.250
External IP (eth2) 172.19.58.248 172.19.58.249 172.19.58.250
HA IP (eth3) 10.1.99.248 10.1.99.249  

 

[Jenkins] 使用 python 讀取 RESTful API 回饋值

[Jenkins] 使用 python 讀取 RESTful API 回饋值 如果確認無法看到取得的值 要先確認一下 執行權限

2020年3月16日 星期一

[Blog] 我的確認

[BIG-IP-LTM] 將設定還原到其他機器

[BIG-IP-LTM] 將設定還原到其他機器 1. 備份設定檔 : : system -> archives -> create -> [enter file name] -> finish
預設 archive saved to /var/local/ucs/

You will receive message /var/local/ucs/ttt_ttt_ttt.ucs is saved.
使用CLI 備份: 使用 SSH -> tmsh -> save /sys ucs /var/local/ucs/xxx_xxx_xxx.ucs
2. Copy xxx_xxx_xxx.ucs from F5:
system -> archives ->click on xxx_xxx_xxx.ucs -> download xxx_xxx_xxx.uc

[BIG-IP-LTM] 使用指令建立 pool和 pool member

[BIG-IP-LTM] 使用指令建立 pool和 pool member

#建立 node 
tmsh create ltm node node_172.100.0.6 address 172.100.0.6

#建立 pool 即加入 pool_member
tmsh create ltm pool poolname monitor tcp load-balancing-mode least-connections-member members add { node_172.100.0.6:80 }

#一行指令設定完成
tmsh create ltm pool poolname monitor tcp load-balancing-mode least-connections-member members add { node_172.100.0.5:80 { address 172.100.0.5 } }
#
tmsh create ltm pool poolname_8000 monitor tcp load-balancing-mode least-connections-member members add { node_10.100.0.5:80 { address 10.100.0.5 } }

#設定 virtual server
tmsh create ltm virtual vs_Name_8000 { destination 10.23.30.4:8000 ip-protocol tcp mask 255.255.255.255 pool poolname_8000 profiles add { fastL4 } translate-address disabled translate-port disabled  source 0.0.0.0/0 }

tmsh save sys config

2020年3月15日 星期日

[DNS] DNS 檢查 for BIG-IP

DNS 檢查 for BIG-IP

#!/bin/bash

## DNSMONITOR
##
## Purpose: to periodically query a remote DNS server for a given name to keep
##          a local internal data group populated with current IP information.
##


## define DNS server
DNS_SERVER=10.80.0.200

## define server name
DNS_NAME=tester.mydomain.com

## define dns hash file
DNS_HASH=dns.hash

## define internal data group
DATAGROUP=my_dns_datagroup


## perform the DNS query
lookup=( $(dig @$DNS_SERVER $DNS_NAME +short +time=3|sort) )

## verify that the DNS query returned a response
if [ $lookup == ";" ]
then
    logger -p local0.info -t DNSMONITOR "DNS monitor is unable to query the DNS server $DNS_SERVER for the name '$DNS_NAME'"
    exit
fi

## create a flat list of IPs
iplist=`printf -- '%s ' "${lookup[@]}"`

## create a hash of the results
hash=`echo $iplist | md5sum |sed 's/ //' |sed 's/-//'`


## if the hash file doesn't exist or hash file value is different - update the datagroup
if [ ! -f $DNS_HASH ] || [ "$(cat $DNS_HASH)" != $hash ]
then
    ## overwrite the datagroup
    tmsh modify ltm data-group internal $DATAGROUP records replace-all-with { $iplist }

    ## log that the datagroup changed
    logger -p local0.info -t DNSMONITOR "DNS datagroup was updated with the following values: { $iplist }"

    ## create/overwrite hash file
    echo $hash > $DNS_HASH
fi
public class HelloWorld {

    public static void main (String[] args) {
        System.out.println("Hello, world!");
    }
}

[Blog] 如何在網頁Blogger中插入程式碼

[Blog] 如何在網頁Blogger中插入程式碼 主要就是透過Prism選擇好要的風格跟支援的語言選好後下載js跟css:

 Prismjs.com網址:http://prismjs.com/index.html

 一、先把"prism.css"裡面的資料全都貼到 "主題->自訂->進階->新增CSS->新增自訂CSS" 當中,儲存後重新整理即可。(ps. 前後不需要加<script>之類的標籤)

 二、把prism.js的資料貼到 "版面配置->sidebar->新增小工具->HTML/JavaScript->內容" 裡面,有幾點要注意:



















(1) 記住一定要新增到sidebar裡面才行,新增到footer會失敗。
(2) 在HTML/JavaScript加入的內容前後要加上<script>跟</script>。
(3) 選擇的語言種類不能太多,超過HTML/JavaScript可以輸入的字數就不能正常啟用了。
使用上的範例如下:

<pre><code class="language-bash line-numbers">
#!/bin/sh
# 使用script 自動備份
TIMESTAMP=`date +%Y%m%d`
REMOTE_PATH="/var/tmp"
LOCAL_PATH="/MYBACKUPS/BACKUPS_BIGIP"

REMOTE_BIGIP=xxx.xxx.xxx.xxx
BACKUP_FILENAME=${REMOTE_BIGIP}_$TIMESTAMP.ucs


ssh $REMOTE_BIGIP tmsh save /sys ucs $REMOTE_PATH/$BACKUP_FILENAME > /dev/null
scp $REMOTE_BIGIP:$REMOTE_PATH/$BACKUP_FILENAME $LOCAL_PATH/
ssh $REMOTE_BIGIP rm $REMOTE_PATH/$BACKUP_FILENAME
</code></pre>


下面是顯示出python程式碼的結果:
#!/bin/sh
# 使用script 自動備份
TIMESTAMP=`date +%Y%m%d`
REMOTE_PATH="/var/tmp"
LOCAL_PATH="/MYBACKUPS/BACKUPS_BIGIP"

REMOTE_BIGIP=xxx.xxx.xxx.xxx
BACKUP_FILENAME=${REMOTE_BIGIP}_$TIMESTAMP.ucs


ssh $REMOTE_BIGIP tmsh save /sys ucs $REMOTE_PATH/$BACKUP_FILENAME > /dev/null
scp $REMOTE_BIGIP:$REMOTE_PATH/$BACKUP_FILENAME $LOCAL_PATH/
ssh $REMOTE_BIGIP rm $REMOTE_PATH/$BACKUP_FILENAME


假如程式碼中有特別符號,要在HTML Encoder先轉換過再po: 轉換內容網址 https://www.opinionatedgeek.com/codecs/htmlencoder