1. 程式人生 > >Linux計算機基礎之engineer DAY04

Linux計算機基礎之engineer DAY04

############################################### 案例4:編寫一個判斷指令碼
在 server0 上建立 /root/foo.sh 指令碼
1)當執行/root/foo.sh redhat,輸出為fedora
2)當執行/root/foo.sh fedora,輸出為redhat
3)當沒有任何引數或者引數不是 redhat 或者 fedora時,
其錯誤輸出產生以下資訊: /root/foo.sh  redhat|fedora [[email protected] ~]# vim  /root/foo.sh 
#!/bin/bash
if   [  $# -eq 0 ];then
  echo '/root/foo.sh  redhat|fedora' >&2 #正確變成錯誤

  exit 3           #程式執行退出狀態值
elif  [ $1 == redhat ];then
   echo fedora
elif [ $1 == fedora ];then
   echo redhat
else
   echo '/root/foo.sh  redhat|fedora' >&2 #正確變成錯誤
   exit 4          #程式執行退出狀態值

fi
[[email protected] ~]# 
##############################################
案例5:編寫一個批量新增使用者指令碼
在 server0 上建立 /root/batchusers 指令碼
1)此指令碼要求提供使用者名稱列表檔案作為引數
2)如果沒有提供引數,此指令碼應該給出提示
Usage: /root/batchusers,退出並返回相應值
3)如果提供一個不存在的檔案,此指令碼應該給出提
示 Input file not found,退出並返回相應值
4)新使用者的登入Shell為 /bin/false,無需設定密碼
5)使用者列表測試檔案:
[
[email protected]
~]# cat /root/userlist
duanwu
zhongqiu
zhsan
lisi
[[email protected] ~]# vim /root/batchusers
  #!/bin/bash
 if [ $# -eq 0 ];then
   echo 'Usage: /root/batchusers' >&2
   exit 2
 elif [ -f $1 ];then
   for i  in `cat $1`
   do
     useradd -s /bin/false $i &> /dev/null
     echo $i建立成功
   done
 else
   echo 'Input file not found' >&2
   exit 3
 fi
[[email protected] ~]# /root/batchusers  /root/userlist ################################################
系統安全保護 SELinux概述
• Security-Enhanced Linux
– 美國NSA國家安全域性主導開發,一套增強Linux系統安
全的強制訪問控制體系
• SELinux的執行模式
– enforcing(強制)、permissive(寬鬆)
– disabled(徹底禁用)  任何模式變成disabled(徹底禁用),都需要經歷重起系統 • 切換執行模式
– 臨時切換:setenforce 1|0
– 固定配置:/etc/selinux/config 檔案 虛擬機器Server0與虛擬機器Desktop0       
[[email protected] ~]# getenforce
Enforcing
[[email protected] ~]# setenforce 0   #臨時修改模式
[[email protected] ~]# getenforce
Permissive [[email protected] ~]# vim /etc/selinux/config  #永久修改
SELINUX=permissive
#################################################
搭建基本的Web服務 1.安裝httpd軟體包
[[email protected] ~]# yum -y install httpd 2.重起httpd服務
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[[email protected] ~]# 3.本機訪問測試
[[email protected] ~]# firefox 172.25.0.11 4.書寫網頁檔案
   預設存放網頁檔案路徑:/var/www/html
   預設網頁檔名稱:index.html
[[email protected] ~]# vim /var/www/html/index.html
<marquee><font color=red><h1>NSD1810 陽光明媚
   滾動          字型顏色  紅色      最大字型    [[email protected] ~]#  firefox  172.25.0.11
搭建基本FTP服務   FTP:檔案傳輸協議 1.安裝vsftpd軟體包
[[email protected] ~]# yum -y install vsftpd 2.重起vsftpd服務
[[email protected] ~]#  systemctl restart vsftpd
[[email protected] ~]#  systemctl enable vsftpd
  FTP預設共享路徑:/var/ftp 3.本機訪問測試
[[email protected] ~]# firefox  ftp://172.25.0.11 [[email protected] ~]# cp /etc/redhat-release /var/ftp [[email protected] ~]# firefox  ftp://172.25.0.11 ################################################
防火牆規則管理
    作用:過濾與隔離     允許出站,過濾入站
   
    硬體防火牆
    軟體防火牆 RHEL7的防火牆體系
• 系統服務:firewalld
• 管理工具:firewall-cmd、firewall-config
預設安全區域               
• 根據所在的網路場所區分,預設保護規則集
  – public:僅允許訪問本機的sshd、dhcp、ping等少數幾個服務
  – trusted:允許任何訪問
  – block:阻塞任何來訪請求(明確拒絕)
  – drop:丟棄任何來訪的資料包(沒有迴應,直接丟棄,節省資源) 資料包內容: 源IP地址   目標IP地址    資料 防火牆判定的規則:匹配及停止
 1.檢視資料包中源IP地址,檢視自己所有區域規則,哪一個區域有該IP地址規則,則進入該區域  2.進入預設區域 (public)root使用者可以修改預設區域 #################################################
預設區域的修改
虛擬機器Server0:
]# firewall-cmd --get-default-zone   #檢視預設區域
虛擬機器Desktop0:
]# ping 172.25.0.11   #可以通訊 虛擬機器Server0:
]# firewall-cmd --set-default-zone=block  #修改預設區域
]# firewall-cmd --get-default-zone
虛擬機器Desktop0:
]# ping 172.25.0.11  #不可以通訊,有迴應 虛擬機器Server0:
]# firewall-cmd --set-default-zone=drop
]# firewall-cmd --get-default-zone
虛擬機器Desktop0:
]# ping 172.25.0.11  #不可以通訊,沒有迴應   ############################################
常見網際網路應用協議:
          http:超文字傳輸協議     預設埠:80
          https:安全超文字傳輸協議     預設埠:443
          ftp:檔案傳輸協議         預設埠:21
          tftp:簡單檔案傳輸協議     預設埠:69
          DNS:域名解析協議            預設埠:53
          telnet:遠端管理協議         預設埠:23
          smtp:郵件協議(使用者發郵件)    預設埠:25
          pop3:郵件協議(使用者收郵件)    預設埠:110
          snmp:網路管理協議               預設埠:161 public區域的服務的協議新增 虛擬機器Server0:
]# firewall-cmd --set-default-zone=public #修改預設區域
]# firewall-cmd --get-default-zone
]# firewall-cmd --zone=public --list-all #檢視區域規則
虛擬機器Desktop0:
]# firefox 172.25.0.11  #不可以訪問 虛擬機器Server0:在public區域新增規則,新增服務訪問協議http
]# firewall-cmd --zone=public  --add-service=http
]# firewall-cmd --zone=public  --list-all
虛擬機器Desktop0:
]# firefox 172.25.0.11   #可以訪問 ###############################################
防火牆實現永久策略 • 配置規則的位置
– 永久(permanent)
虛擬機器Server0:              
]# firewall-cmd --reload   #重新載入防火牆所有永久策略
]# firewall-cmd --zone=public --list-all
]# firewall-cmd --permanent --zone=public --add-service=http ]# firewall-cmd --zone=public --list-all
]# firewall-cmd --reload
]# firewall-cmd --zone=public --list-all 臨時刪除
]# firewall-cmd --zone=public --remove-service=http
永久刪除
]# firewall-cmd --permanent --zone=public --remove-service=http ]# firewall-cmd --reload ##################################################
源IP地址規則的新增 虛擬機器Server0:單獨拒絕Desktop0訪問 ]# firewall-cmd --zone=block --add-source=172.25.0.10
]# firewall-cmd --zone=block --list-all
]# firewall-cmd --zone=block --remove-source=172.25.0.10 ################################################
  埠:服務或程式或協議的編號  資料包內容: 源IP地址   目標IP地址    資料   目標埠  root可以改變服務或程式或協議的埠
         也可以讓一個服務具備多個埠
• 本地應用的埠重定向(5423 -----> 80) – 從客戶機訪問5423 的請求,自動對映到本機 80
– 比如,訪問以下兩個地址可以看到相同的頁面:
  客戶端訪問--->172.25.0.11:5423----》防火牆---》172.25.0.11:80 虛擬機器Server0:
]# firewall-cmd --zone=public  --list-all ]# firewall-cmd --permanent --zone=public
  --add-forward-port=port=5423:proto=tcp:toport=80 ]# firewall-cmd --reload  //過載配置 虛擬機器Desktop0:
[[email protected] ~]# firefox 172.25.0.11:5423 ################################################
配置使用者環境 alias別名設定
• 檢視已設定的別名
– alias [別名名稱]
• 定義新的別名
– alias 別名名稱= '實際執行的命令列'
• 取消已設定的別名
– unalias [別名名稱] 使用者初始化檔案
• 影響指定使用者的 bash 解釋環境
– ~/.bashrc,每次開啟 bash 終端時生效 • 影響所有使用者的 bash 解釋環境
– /etc/bashrc,每次開啟 bash 終端時生效 [[email protected] ~]# vim /root/.bashrc
# .bashrc
alias hello='echo hello' [[email protected] ~]# vim /home/student/.bashrc
# .bashrc
alias hi='echo hi' [[email protected] ~]# vim /etc/bashrc
# /etc/bashrc
alias abc='echo abc'     重新遠端管理測試 ################################################