1. 程式人生 > >把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

一、前言

作為IT從業者,個人膝上型電腦的安全由為重要,因為你的電腦上有連線公司各伺服器的許可權,和一些個人及公司隱私重要的資料,如果被別有用心的人非法使用,後果將不堪設想,出了紕漏這鍋就背定了,因此個的膝上型電腦在沒有授權情況下,是不能給其他人使用的;所謂防患未然嘛;
本文主要從電腦網路層面與物理使用上加固;
網路上,還是基於防火牆,ubuntu上有一個圖形防火牆,底層也是基於iptables,就是gufw這個軟體;規則是進出預設為拒絕,開放常用和日常使用的對外訪問;對所在辦公區域網信任,這樣最大程度從網路上減少被***的可能性;
如圖:
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置
物理上,由於現在主流筆記本基本上帶T-FLASH插槽;我們就用登入密碼加T-FLASH卡做開機的鑰匙;開機密碼這個一般都會設定的,關有密碼,如果沒有指定T-FLASH卡,是不允許登入的,效果如圖:
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置


一開機就是提示:"system is going down"提示;點重試也沒有用,一分鐘後自動關機;此時如果插入了指定T-FLASH則可以重試登入。

在機器執行中,如果插掉T-flash卡就會一分鐘後悄悄關機,緊急時候可以直鎖機接插卡走人;一分鐘(可以自行修改)內插入卡則恢復;
如圖:(觀察左上角有一個裝置被拔了,再次插上時日誌變化)
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

如果插入了不是正確的TFLASH卡是沒有用的,如圖:(有一個快閃記憶體卡出現,但沒有用,只有再次插上正確的T-FLASH裝置)
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置
如果你也是Ubuntu Linux辦公;如果你也想做到這樣,繼續往下看:
環境和工具:
系統:ubuntu 16.04
gufw 防火牆
shell指令碼
T-FLASH卡一張
準備好了嗎? go

思路

1、網路層面

安裝gufw防火牆
sudo apt install gufw
按win圖示 搜尋gufw 如圖:
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

防火牆開啟預設是關閉的(需要認證密碼以root方式開啟),先開啟防火牆,此時預設傳入規則為否認(拒絕外面訪問本機即INPUT規則),傳出(允許,訪問外面服務即OUTPUT規則);
傳入 與傳出 為否認即為DROP拒絕;此時只有開放了對應的規則才能被允許;接下來新增本地網路段172.16.0.0/16進出為信任;出去預設21 22 25 53 80 110 443 3389為信任;
其他需要開放的請自行新增;以常用的新增信任網段和添加出去訪問的埠為例

新增信任網段示例:
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

新增訪問80 web服務示例:
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

開放本地的8000埠示例:th
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

好了,其他網段的信任新增和出去訪問的埠類似;結合自己的實際需要新增!以上新增點高階部分可以記錄日誌! 這裡不演示了,畢竟這些都需要你息動手去嘗試操作!
網路層面就到這裡完成! 效果就是沒有被開放不能進來,也不能出去!

物理層面

前面已經描述過了,個人筆記本的物理安全除了平時自己保管好外,膝上型電腦不在身邊時,如果沒有特定的T-FLASH卡是不能正常開機登入系統的,即使登入了,緊急時,可以拔掉讓筆記本自行關機,再次開機也是無法進入的,當然如果對Ubuntu Linxu熟悉的還是有辦法,這裡我就不提啦,防君子不防小人嘛,防小白不防大神哦!
前的效果和描述已經看過了,直接上程式碼吧:
需要rc.local服務是下正常執行並能開機執行的!
把T-FLASH卡做成Ubuntu Linux開機登入使用鑰匙和gufw防火牆配置

### 主要作用開機執行並檢查 並執行開機守護進行(迴圈檢查)
# cat /etc/rc.local
status=$(ls -l /dev/disk/by-uuid/ |grep mmcblk0p1 |awk '{print $9}')
Check(){
echo $status
if [ ${status} = "DA28BC3228BC0F8D" ];
then 
echo "Welcome dongyc login at $(date +%F-%H-%M-%S)" >>/home/dongyc/Login.txt
else
  echo "$(date +%F-%H-%M-%S) login failed!" >>/home/dongyc/Login.txt
  shutdown -h +1
fi
}
Check
nohup /home/dongyc/CHECK.sh >/tmp/check.out 2>&1  &
exit 0

## 以上DA28BC3228BC0F8D  我的T-flash裝置的識別號,唯一

# cat /home/dongyc/CHECK.sh
#!/bin/sh
while true
do
  sleep 2
  ## 檢測TFLASH卡是否掛載存在
  status=$(ls -l /dev/disk/by-uuid/ |grep mmcblk0p1 |awk '{print $9}')
  ## 判斷是否存在,並檢查變數stat是否為空(即是否觸發了關機操作)

  ### TFLASH存在同時stat為空
  if [ "${status}" = "DA28BC3228BC0F8D" -a  -n ${stat} ]
   then
     echo "${status} is exsit.Login OK~" >> /tmp/check.log
     ### TFLASH存在和stat為空時保持取消關機,因為此時表明正常狀態
     shutdown -c
     stat="" 
  else
     ## 如果stat有值同時TFLASH沒有存在掛載;說明觸發了關機操作,或者已經是reboot (兩者一回事) 跳過檢查執行關機
     if [ ! -n $stat -o "${stat}" = "reboot" ]
        then
           continue
     else
     ## TFLASH不存在,執行關機,設定stat為reboot,並記錄到日誌中
        time=$(date +%F-%H-%M-%S)
        echo "At ${time} Can't found TFLASH,I think is not my master login.system reboot after 1 min." >>/tmp/check.log
        stat=$(shutdown  -h +1;echo "reboot")
     fi
  fi
done

至此,從網路和物理層面的控制,安全上基本上還看的過去了吧?其實做這個的初衷就是為了把膝上型電腦做成一個有FLASH為鑰匙多功能可以擴充哦,比如如果沒有T-FLASH卡,除了關機外關機前可以把重要的資料刪除!