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

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

log 網段 記錄日誌 正常 信任 col mage 一個 插入

一、前言

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

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

在機器運行中,如果插掉T-flash卡就會一分鐘後悄悄關機,緊急時候可以直鎖機接插卡走人;一分鐘(可以自行修改)內插入卡則恢復;
如圖:(觀察左上角有一個設備被拔了,再次插上時日誌變化)
技術分享圖片

如果插入了不是正確的TFLASH卡是沒有用的,如圖:(有一個閃存卡出現,但沒有用,只有再次插上正確的T-FLASH設備)
技術分享圖片
如果你也是Ubuntu Linux辦公;如果你也想做到這樣,繼續往下看:
環境和工具:
系統:ubuntu 16.04
gufw 防火墻

shell腳本
T-FLASH卡一張
準備好了嗎? go

思路

1、網絡層面

安裝gufw防火墻
sudo apt install gufw
按win圖標 搜索gufw 如圖:
技術分享圖片

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

添加信任網段示例:
技術分享圖片

添加訪問80 web服務示例:
技術分享圖片

開放本地的8000端口示例:th
技術分享圖片

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

物理層面

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

### 主要作用開機運行並檢查 並運行開機守護進行(循環檢查)
# 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卡,除了關機外關機前可以把重要的資料刪除!

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