NSD2005班第二次串講筆記
一、配置主機名
1.1、通過更改配置文件的方式更改主機名
[root@localhost ~]# vim /etc/hostname
[root@localhost ~]# cat /etc/hostname
svr7.tedu.com
[root@localhost ~]# reboot
[root@svr7 ~]#
1.2、通過命令行的方式修改主機名
[root@localhost ~]# hostnamectl set-hostname pc207.tedu.cn
[root@localhost ~]# exit
[root@pc207 ~]#
1.3、文本界面工具修改主機名
- nmtui 命令
[root@svr7 ~]# nmtui
二、Linux網絡配置
2.1、修改網卡的命名規則
- 在配置文件/etc/default/grub的第六行的末尾添加net.ifnames=0 biosdevname=0
[root@svr7 ~]# vim /etc/default/grub #grub爲引導內核的程序
[root@svr7 ~]# cat -n /etc/default/grub
1 GRUB_TIMEOUT=5
2 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
3 GRUB_DEFAULT=saved
4 GRUB_DISABLE_SUBMENU=true
5 GRUB_TERMINAL_OUTPUT="console"
6 GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"
7 GRUB_DISABLE_RECOVERY="true"
- 重新生成grub配置文件
[root@svr7 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成grub配置文件
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0f6343e968a8476a8f163ca1fe496347
Found initrd image: /boot/initramfs-0-rescue-0f6343e968a8476a8f163ca1fe496347.img
done
[root@svr7 ~]# reboot
- 查看網卡信息
[root@svr7 ~]# ifconfig | head -1
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- 刪除識別錯誤的網絡配置
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
virbr0 ec16c733-7362-4abd-8df3-8d4c546fc8ca bridge virbr0
有線連接 1 05b18026-1467-3fea-959e-4d15da5056c5 ethernet eth0
ens33 986f20e6-0e25-4fb2-8017-078eea789342 ethernet --
[root@svr7 ~]# nmcli connection delete ens33
成功刪除連接 'ens33'(986f20e6-0e25-4fb2-8017-078eea789342)。
[root@localhost ~]# nmcli connection delete 有線連接\ 1
成功刪除連接 '有線連接 1'(05b18026-1467-3fea-959e-4d15da5056c5)。
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
virbr0 ec16c733-7362-4abd-8df3-8d4c546fc8ca bridge virbr0
- 添加新的網卡名
[root@svr7 ~]# nmcli connection add ifname eth0 con-name eth0 type ethernet
連接“eth0”(fe42c860-fec1-427d-81bc-45bb16b75b15) 已成功添加。
[root@svr7 ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 fe42c860-fec1-427d-81bc-45bb16b75b15 ethernet eth0
virbr0 ec16c733-7362-4abd-8df3-8d4c546fc8ca bridge virbr0
2.2、配置新的IP地址
- IP地址配置爲192.168.4.7
- 子網掩碼24位
- 網關192.168.4.254
- 開機自動連接
[root@svr7 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 ipv4.gateway 192.168.4.254 connection.autoconnect yes
- 激活上述配置,立即生效
[root@svr7 ~]# nmcli connection up eth0
[root@svr7 ~]# ifconfig | head -2
- 查看Linux系統路由表,查看網關地址
[root@svr7 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.4.254 0.0.0.0 UG 100 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
2.3、指定DNS服務器地址
-
DNS服務器:將域名解析爲對應的IP地址
-
配置完成立即生效
[root@svr7 ~]# echo nameserver 8.8.8.8 >> /etc/resolv.conf
[root@svr7 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
2.4、SSH遠程管理Linux主機
-
SSH協議,Secure Shell
- 爲客戶機提供安全的 Shell 環境
- 默認端口:TCP 22
-
Linux遠程Linux
- 常用選項 -X(大寫) 開啓對方的圖形程序
[root@svr7 ~]# ssh [email protected]
Are you sure you want to continue connecting (yes/no)? yes
# 您確定要繼續連接(是/否)嗎?是的
[email protected]'s password:
Last login: Sun Jun 14 16:00:07 2020 from 192.168.4.1
[root@pc207 ~]#
- 實現ssh遠程登錄無密碼驗證
- 虛擬機A生成公鑰和私鑰
- 將公鑰傳遞給虛擬機
[root@svr7 ~]# ssh-keygen # 一路回車
[root@svr7 ~]# ssh-copy-id [email protected]
[email protected]'s password:
[root@svr7 ~]# ssh [email protected]
Last login: Sun Jun 14 16:42:19 2020 from 192.168.4.7
[root@pc207 ~]#
- xshell遠程連接Linux
[c:\~]$ ssh 192.168.4.7
2.5、SCP安全複製工具
- 基於ssh
- 命令格式:
- –scp [-r] 用戶名@服務器:路徑 本地路徑
- –scp [-r] 本地路徑 用戶名@服務器:路徑
[root@svr7 ~]# scp /etc/passwd [email protected]:/root/
passwd 100% 2192 1.8MB/s 00:00
[root@svr7 ~]# scp [email protected]:/etc/hostname /root/
hostname 100% 14 17.6KB/s 00:00
[root@svr7 ~]# cat hostname
pc207.tedu.cn
2.6、網絡管理的工具
- 查看IP地址
[root@svr7 ~]# ip address show
[root@svr7 ~]# ip a s
- 給網卡添加臨時的IP地址
[root@svr7 ~]# ip address add 192.168.100.100/24 dev eth0
[root@svr7 ~]# ip a s
- ping命令,測試網絡連接的
- -c 指定包的個數
[root@svr7 ~]# ping -c 4 192.168.4.207
PING 192.168.4.207 (192.168.4.207) 56(84) bytes of data.
64 bytes from 192.168.4.207: icmp_seq=1 ttl=64 time=0.240 ms
64 bytes from 192.168.4.207: icmp_seq=2 ttl=64 time=0.249 ms
64 bytes from 192.168.4.207: icmp_seq=3 ttl=64 time=0.207 ms
64 bytes from 192.168.4.207: icmp_seq=4 ttl=64 time=0.361 ms
--- 192.168.4.207 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.207/0.264/0.361/0.059 ms
2.7、文本用戶界面工具配置IP地址
[root@svr7 ~]# nmtui
先禁用後激活
三、源碼編譯安裝
- 提前準備軟件包
[root@svr7 ~]# ls /tools/inotify-tools-3.13.tar.gz
/tools/inotify-tools-3.13.tar.gz
- 解壓
[root@svr7 ~]# tar -xf /tools/inotify-tools-3.13.tar.gz -C /usr/local/
[root@svr7 ~]# ls /usr/local/
inotify-tools-3.13
- 安裝開發工具
- 準備編譯的環境
[root@svr7 ~]# yum -y install gcc make
- 運行configure腳本程序
- 會檢查系統是否安裝gcc、make等工具
- 指定安裝位置
- 有些軟件可以通過執行這個腳本的時候選擇是否安裝附加的功能,或是禁用某些功能
[root@svr7 ~]# cd /usr/local/inotify-tools-3.13/
[root@svr7 inotify-tools-3.13]# ./configure --prefix=/opt/myrpm
- 編譯安裝
[root@svr7 inotify-tools-3.13]# make && make install
[root@svr7 inotify-tools-3.13]# ls /opt/myrpm/
bin include lib share
四、自定義yum倉庫
- 將自己下載的RPM包構建爲倉庫
[root@svr7 ~]# ls /tools/other/
boxes-1.1.1-4.el7.x86_64.rpm oneko-1.2-19.fc24.x86_64.rpm
cmatrix-1.2a-1.i386.rpm
ntfs-3g-2014.2.15-6.el6.x86_64.rpm sl-5.02-1.el7.x86_64.rpm
- 生成倉庫數據文件
- 會產生一個repodata的目錄
[root@svr7 ~]# createrepo /tools/other/ #生成倉庫數據文件
[root@svr7 ~]# ls /tools/other/repodata/
-other.sqlite.bz2
-primary.xml.gz #軟件包的主要信息
-filelists.xml.gz #軟件包的文件安裝清單
-filelists.sqlite.bz2
-other.xml.gz #軟件包的其他信息
-primary.sqlite.bz2
repomd.xml #提供.xml.gz 下載和校驗信息
- 配置yum倉庫
[root@svr7 ~]# cat /etc/yum.repos.d/other.repo
[other]
name = other
baseurl = file:///tools/other
enabled = 1
gpgcheck = 0
[root@svr7 ~]# yum repolist
已加載插件:fastestmirror, langpacks
Determining fastest mirrors
mydvd | 3.6 kB 00:00
other | 2.9 kB 00:00
(1/3): mydvd/group_gz | 166 kB 00:00
(2/3): other/primary_db | 4.8 kB 00:00
(3/3): mydvd/primary_db | 5.9 MB 00:00
源標識 源名稱 狀態
mydvd mydvd 9,911
other other 5
repolist: 9,916
五、日誌管理
-
系統和程序的“日記本”
- 記錄系統、程序運行中發生的各種事件
- 通過查看日誌,瞭解及排除故障
- 信息安全控制的“依據”
-
由系統服務rsyslog統一記錄/管理
-
日誌消息採用文本格式
-
主要記錄事件發生的時間、主機、進程、內容
-
-
常見的日誌文件
日誌文件 | 主要用途 |
---|---|
/var/log/messages | 記錄內核消息、各種服務的公共消息 |
/var/log/dmesg | 記錄系統啓動過程的各種消息 |
/var/log/cron | 記錄與cron計劃任務相關的消息 |
/var/log/maillog | 記錄郵件收發相關的消息 |
/var/log/secure | 記錄與訪問限制相關的安全消息 |
-
通用分析工具
- tail、tailf、less、grep等文本瀏覽/檢索命令
- tailf 命令會佔用終端(實時跟蹤日誌消息)
- awk、sed等格式化過濾工具
-
查看已登錄的用戶信息
- users、who、w 命令,詳細度不同
[root@svr7 ~]# users
root root
[root@svr7 ~]# who # pts:圖形命令行終端
root pts/0 2020-06-14 15:53 (192.168.4.1)
root pts/1 2020-06-14 15:58 (192.168.4.1)
[root@svr7 ~]# w
17:02:34 up 1:09, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.4.1 15:53 1:09m 0.02s 0.02s -bash
root pts/1 192.168.4.1 15:58 2.00s 0.22s 0.00s w
- 查看最近登錄成功/失敗的用戶信息
- last、lastb 命令
[root@svr7 ~]# last -2 #最近登錄成功兩條信息
root pts/1 192.168.4.1 Sun Jun 14 15:58 still logged in
root pts/0 192.168.4.1 Sun Jun 14 15:53 still logged in
wtmp begins Sun Jun 14 18:14:15 2020
[root@svr7 ~]# lastb -2 #最近登錄失敗兩條信息
root ssh:notty 192.168.4.1 Sun Jun 14 10:52 - 10:52 (00:00)
btmp begins Sun Jun 14 10:52:10 2020
- Linux內核定義的事件緊急程度
- 分爲 0~7 共8種優先級別
- 其數值越小,表示對應事件越緊急/重要
-
提取由 systemd-journal 服務蒐集的日誌
- 主要包括內核/系統日誌、服務日誌
-
常見用法
- journalctl | grep 關鍵詞
- journalctl -u 服務名 [-p 優先級]
- journalctl -n 消息條數
六、SELinux 系統防護
-
SELinux的運行模式
-
enforcing(強制)、permissive(寬鬆)
-
disabled(徹底禁用)
-
任何默認變成disabled(徹底禁用)模式,都要經歷重啓系統
-
-
命令行臨時切換運行模式
[root@svr7 ~]# setenforce 1
[root@svr7 ~]# getenforce
Enforcing
[root@svr7 ~]# setenforce 0
[root@svr7 ~]# getenforce
Permissive
- 固定配置:修改/etc/selinux/config第七行
[root@svr7 ~]# cat -n /etc/selinux/config
7 SELINUX=enforcing
七、破解Linux系統root密碼
7.1、重啓系統進入恢復模式
- 開機進入到這個界面是,按e鍵。
- press “e” to edit the selected item.
- 可以看到下方寫着 “按“e”鍵編輯所選項目。”
- 找到linux16 這行,在行尾輸入 rd.break console=tty0
- 按Ctrl+X啓動。
- Press Ctrl-x to start .
7.2、以可寫方式重新掛載/, 並切換到此環境
switch_root# chroot /sysroot #切換環境,切換到硬盤操作系統的環境
sh-4.4# mount -o remount,rw / #讓根目錄下所有數據,可以讀也可以寫入
7.3、重新設置root 密碼
sh-4.4# echo 1 | passwd --stdin root
7.4、selinux設置
sh-4.4# vim /etc/selinux/config #查看SELinux開機的運行模式
sh-4.4# touch /.autorelabel #標記下一次啓動重做 SELinux 標記
#或者將selinux修改爲寬鬆模式
7.5、強制重啓系統完成修復
sh-4.4# reboot -f
八、防火牆的策略管理
-
Linux中的軟件防火牆firewalld
- /etc/firewalld/
-
預設安全區域
- public:僅允許訪問本機的ssh、dhcp、ping等服務,其他都拒絕
- trusted:允許任何訪問
- block:拒絕任何來訪請求,會迴應客戶端
- drop:丟棄任何來訪的數據包,不會迴應客戶端
-
配置規則的位置
- 運行時(runtime)
- 永久(permanent)
-
防火牆判斷進入區域的原則
- 查看客戶端請求中源IP地址,然後查看所有區域中規則,那個區域有該源IP地址的規則,則進入該區域
- 進入默認區域(默認情況下爲public)
8.1、查看防火牆規則列表
[root@svr7 ~]# firewall-cmd --list-all [--zone=區域名]
# 加上[--zone=區域名] 表示查看指定區域的詳細信息,不加表示查看當前默認區域
[root@svr7 ~]# firewall-cmd --list-all-zones #查看全部區域
[root@svr7 ~]# firewall-cmd --get-zones #查看firewalld所有的區域
block dmz drop external home internal public trusted work
[root@svr7 ~]# firewall-cmd --get-services #查看firewalld支持的所有服務
[root@svr7 ~]# firewall-cmd --get-default-zone #查看默認的區域
8.2、修改防火牆的默認區域
[root@svr7 ~]# firewall-cmd --get-default-zone #查看默認區域
public
[root@svr7 ~]# firewall-cmd --set-default-zone=trusted #修改默認區域爲trusted
success
[root@svr7 ~]# firewall-cmd --get-default-zone
trusted
[root@svr7 ~]# firewall-cmd --set-default-zone=public
success
8.3、添加允許的協議
[root@svr7 ~]# firewall-cmd --zone=public --add-service=http #添加允許http協議
success
[root@svr7 ~]# firewall-cmd --zone=public --list-all #查看區域規則
- 防火牆區域中添加永久規則
- –permanent 永久規則選項
[root@svr7 ~]# firewall-cmd --zone=public --remove-service=http #刪除臨時設置
[root@svr7 ~]# firewall-cmd --permanent --zone=public --add-service=http
success #添加永久規則
[root@svr7 ~]# firewall-cmd --reload #重新加載規則,使其生效
8.4、單獨拒絕一個IP地址
[root@svr7 ~]# firewall-cmd --zone=block --add-source=192.168.4.207
success
九、服務的基礎管理
-
主要管理工具:systemctl
-
–配置目錄:/etc/systemd/system/
-
服務目錄:/lib/systemd/system/
-
systemctl restart 服務名 #重起服務
-
systemctl start 服務名 #開啓服務
-
systemctl stop 服務名 #停止服務
-
systemctl status 服務名 #查看服務當前的狀態
-
systemctl enable 服務名 #設置服務開機自啓動
-
systemctl disable 服務名 #設置服務禁止開機自啓動
-
systemctl is-enabled 服務名 #查看服務是否開機自啓
-
systemctl -t service --all #列出所有的服務
-
-
當前直接切換到字符模式
[root@svr7 ~]# systemctl isolate multi-user.target
- 當前直接切換到圖形模式
[root@svr7 ~]# systemctl isolate graphical.target
- 查看每次開機默認進入模式
[root@svr7 ~]# systemctl get-default
- 修改開機自動進入的模式
[root@svr7 ~]# systemctl set-default multi-user.target
[root@svr7 ~]# reboot