shell 腳本監控公網出口IP

一、情景linux

公司有2條二級運營商的鏈路,鏈路很是不穩定。更爲嚴重的是咱們申請固定IP,出口IP居然老是變更。公司全部業務都須要經過外網,影響面很是大。有人提示能夠對出口作監測,發現IP變更趕忙處理。我百度發現curl能夠經過網站拿到出口地址後就直接寫了,測試成功,就記錄下來share一下。新辦公區選址,運營商線路選擇也是很是重要,否則是更多的坑在等着你。服務器


鏈路監測首先保證你作監測的服務器在你的那條出口鏈路上,這不用多說,以下簡單示意圖:curl

wKioL1gAVzXhoi-CAAAqnlUY4u0256.png-wh_50


先用ip138,就能夠查看你本地址。ide

wKioL1gAWaXhKRkIAACmluD8Nj0286.png-wh_50




二、post

開始監控郵件想用sendmail,但問題百出。因而用linux自帶的postfix,把命令行放到腳本里便可。測試

1>關閉selinux網站

[root@bogon ~]# cat /etc/selinux/config url


# This file controls the state of SELinux on the system.spa

# SELINUX= can take one of these three values:命令行

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted 

2>關閉防火牆

service iptables off

chkconfig iptables off

3>關閉sendmail

service sendmail stop

chkconfig sendmail off

4>開啓postfix

service postfix restart

chkconfig postfix on

5>保證sendmail關閉,postfix開啓

[root@bogon ~]# service postfix status

master (pid  53164) 正在運行...

[root@bogon ~]# service sendmail status

sendmail 已停

sm-client 已停


如今用postfix至關於foxmail同樣,都屬於客戶端,用客戶端主動去鏈接服務器端,而後發送郵件。

以QQ企業郵箱爲例,首先在郵箱客戶端設置以下,開啓SMTP,有什麼受權驗證碼的自行解決處理:

wKioL1gAcHWjvofuAABiJbP7qzg853.png-wh_50

postfix端配置以下:

FROM 填本身的郵箱,SMTP,SMTP-AUTH-USER填本身郵箱,PASSWORD填密碼,方式LOGIN。

wKioL1gAchvwvZhMAABgA--KVoA727.png

測試郵箱發送報警郵件,test後面加本身的郵箱測試,成功後寫入下面腳本:

wKiom1gAc2ni3lwyAAAHYnyDBv8661.png


作監控腳本:

建立ip_changed用來存放IP改變的時間,建立iptest用來存放監控腳本是否按計劃任務來執行。因爲目前出口IP固定,能夠用錯誤的IP來實現if的mail測試(我已經實驗成功)。

wKiom1gAdO3TUCcFAACNnTeiT9A274.png


三、計劃任務

1分鐘作一次IP的探測,保證能及時收到通知。

crontab -e 編緝一下計劃任務

wKiom1gA7baSaj7pAAByfCwPKMI180.png


查看歷史記錄,以下數聽說明腳本執行成功,若是有IP變更就能夠及時收到通知。你們還能夠加入出口連通性測試,但閥值設高點,否則敏感了容易誤判。

[root@bogon home]# tail iptest.txt

wKiom1gA7jqC1QWGAABJMpEzZoE935.png

相關文章
相關標籤/搜索