RHCSA
Network
https://www.wendangku.net/doc/a013852720.html,work Con?gure
1.不?用 NetworkManager
systemctl disable NetworkManager
vi /etc/syscon?g/network-script/ifcfg-enp0s3
ifcfg-enp0s3
TYPE=Ethernet
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp0s3
UUID=075eeba9-12a1-4b39-9791-dddd1450741a
ONBOOT="yes"
IPADDR0=192.168.0.23
PREFIX0=24
GATEWAY0=192.168.0.1
HWADDR=08:00:27:E4:29:8A
DNS1=8.8.8.8
NM_CONTROLLED="no"
注意紅字部份是要改的,?而NM_CONTROLLED 是?自已鍵?入。
2.使?用NetworkManager Command Line 管理[root@localhost ~]# nmtui
nmtui設IPv6 會當掉
?手動設定 IPv6 指令為
ip -6 addr add 1234:5:6700:890::1/64 dev enp3s0 可是這個只能暫時性使?用,重開就不?見了
以下是?用network manager 指令去設定 ipv4
nmcli con mod testprof ipv4.dns " 8.8.8.8 8.8.4 .4 “
nmcli -p con up “testprof”
如已存在設定值就?用
nmcli con mod enp0s3 ipv4.method manual ipv4.addresses "192.168.1.23/24
192.168.0.1”
指令說明:
con :其實是connection 縮寫
mod : modify 的縮寫 enp0s3 是PROFILENAME ( nmcli connection 會出現的名字)
ipv4.method 是參數 ( auto, link-local, manual, shared, disabled) , 因為要?手動輸?入 ip 所以要?用 ipv4.address “機器IP/subnet mask gateway ip” (有些?文件會寫成 ipv4.addr 這在RED HAT ?行不通)
nmcli con add en0ps3 ipv4.method manaual ipv4.addresss “192.168.1.123/24 192.168.0.2”
將設定完成的 Pro?le 啟動nmcli con up en0ps3
Chapter 2 NTPd 的取代品
設定 ipv4 及 ipv6 於?一條指令中
nmcli con add con-name enp0s3 ifname enp3s0 type ethernet ip4 192.168.0.123/24 \gw4 192.168.100.1 ip6 abbe::cafe gw6 abbe::caff 單純設定IP
nmcli con add con-name of?celan ifname enps8 type ethertnet ip4
timedatectl ?用來在?文字模式修改 設定值最常?用是
timedatectl set-timezone Asia/Taipei 因為全?文字模式無法使?用 system-con?g 的?工具
在RHEL chronyd 取代了 ntpd 的地位 systemctl enable chronyd systemctl start churned 設定?火
systemctl status chronyd
chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since Thu 2014-12-18 10:14:09 CST; 1h 31min ago
Process: 669 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS)
Process: 634 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS) Main PID: 650 (chronyd)
CGroup: /system.slice/chronyd.service └─650 /usr/sbin/chronyd -u chrony
Dec 18 10:14:08 https://www.wendangku.net/doc/a013852720.html, chronyd[650]: chronyd version
Chapter 3 using command line to do text processing .
使?用?nd , cat 作?文字內容處理
?用vi 先將語系設好
vi /etc/environment
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
在指令模式中
#source /etc/environment
將特定字串找出insert ?至新?文字檔
grep 'myg' /usr/share/dict/words >> /root/search-keyword.tct
找出特定使?用者的檔案將其複製到
?nd /home -user username -exec cp{} /dest/directory/ \; example: ?nd /home -user visitor -exec cp {} /root/found-?les \;
Chapter 4 常?用 command
?用來查看幫助?文件的`
man
whatis
apropos apropos - search the manual page names and
descriptions
info read Info documents
Chapter Security
1.Firewall
RHEL 7 在FIREWALL 上不單單是 IPTABLES ,?而是由FIREWALLD 去管理多個ZONE,再將這些設定轉成IPTABLE語法。?
systemctl status ?rewalld
?rewalld.service - ?rewalld - dynamic ?rewall daemon
Loaded: loaded (/usr/lib/systemd/system/?rewalld.service; enabled)
Active: active (running) since Thu 2014-12-18 10:14:12 CST; 1h 58min ago
Main PID: 609 (?rewalld)
CGroup: /system.slice/?rewalld.service
└─609 /usr/bin/python -Es /usr/sbin/?rewalld --nofork --nopid
Dec 18 10:14:08 https://www.wendangku.net/doc/a013852720.html, systemd[1]: Starting ?rewalld - dynamic ?rewall daemon...
Dec 18 10:14:12 https://www.wendangku.net/doc/a013852720.html, systemd[1]: Started ?rewalld - dynamic ?rewall daemon.
[root@rhelvm1 ~]# ?rewall-cmd --state
running
列出??目前預設的Firewall
?rewall-cmd --get-default-zone
public
列出運?行中的Zones
?rewall-cmd --get-active-zones
public
interfaces: enp0s8 virbr0
列出可連線的服務
?rewall-cmd —list-services
dhcpv6-client ssh
?rewall-cm - - zone=internal
Zone
?rewall-cmd block任何進?入的連線都
BLOCK 掉
dmz?非交戰區,跟內部系統
有限制的連線
drop任何進?入的連線都Drop
掉
external
internal
home
Firewall-cmd 使?用範例
#?rewall-cmd - - zone=public - -permanent - -add-service=ftp (只加服務)
#?rewall-cmd - - reload
說明:?rewalld 是為了IPTABLES 加了個?一層管理界?面
分多個ZONE 作管理。上表說明了有多個ZONE 的型態
# 基本上在FIREWALL 已經定義好了多個服務的 PORT,直接套?用即可。
#設定完成後必需作?一次 Reload
?rewall-cmd 常?用參數
# - - zone= 指定那個Zone
# - - permanent 永久
# - - add-service=
# 可?用 - - get-services 取得以下內建的服務名稱
# (amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmission-client vnc-server wbem-https)
#如果超出這些設定範圍時,像是?自建的SERVICES 請?用以下指令
# - - add-port= 8888/tcp # 8888 是 PORT 號, TCP 是協定,同樣的PORT可能會有TCP / UDP 2 種協定
RHCE 7 應該考不到 Rich-Rule
# 另?一個重點在於 rich-rule 就是針對?非常細項在作處!
rich_rule 此連結來?自於Fedora,寫的?比較完整
#簡單介紹 Rich-rule
#?rewall-cmd - - add-rich-rule=‘rule service family=“ipv6” source address =“192.168.0.22” drop’
family= ipv6/ipv4 . 來源IP,??目的IP
也可以是來源IP ,??目的特定服務或PORT ,作 drop , accept , reject
Chapter Security
SELinux 相關的指令
指令功?用
sestatus ?目前SELinux運作情況回報?目前SELinux運作情況
setsebool 設定預定義的功能選項
getsetbool getsebool -a 去知道所有功能情況
chcon 可以暫時將?一個檔案設定為那?一Bool 群組使?用semanage semanage boolean -l 可以列出所有定義。
semanage boolean -m - -on xxxx_xxxx_xxxx 啟動
boolean,port
-m modify
-l list
-d delete
-E extract
-S store
#sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from con?g ?le: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
如想要知道現在已經開放的 selinux 參數可看以下
#more /etc/selinux/targeted/modules/active/booleans.local
# This ?le is auto-generated by libsemanage
# Do not edit directly.
ftp_home_dir=1
在 SELinux 中 fcontext 光是有關system_u 這?一組屬性就有 4309
#semanage fcontext --list | awk '{print $(NF)}'| uniq | awk -F: '{ print $ 1,$3}' | uniq | grep -v '<
[root@rhelvm1 ~]# chcon -t docker_share_t abc [root@rhelvm1 ~]# ls -alrtZ abc
-rw-r--r--. root root uncon?ned_u:object_r:docker_share_t:s0 abc 在同?一層?目錄,如暫時變更?一屬性 ,管理權限會受影響
ls -alrtZ /var/www/html/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 ..drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x. root root uncon?ned_u:object_r:httpd_sys_content_t:s0 conf <== 可以看到 使?用者為 uncon?ned_u , 不是 system , 但fcontext 仍是 httpd_sys_content_t . 但如將 fcontext 改成 docker_share_t 在httpd 服務即會出現 錯誤404。?如何將檔案fcontext 永久性變更
semanage fcontext -a -t httpd_sys_content_t /root/abc 下完指令檔案會在下?一次重啟時才會變更可以檢查 以下檔案確認
cat /etc/selinux/targeted/contexts/?les/?le_contexts.local # This ?le is auto-generated by libsemanage # Do not edit directly.
/root/abc system_u:object_r:httpd_sys_content_t:s0刪除 屬性
此表是?用於對映各個權限所?用到的指令 前2
欄是?用於 傳統權限控管 ,後?面是SELinux 的部份
chmod 可作變更的chown,chgrp
semanage login
semanage fcontent
drwxr-xr-x. root root system_u httpd_sys_content_t:
semanage fcontext -d /root/abc
再次檢視/etc/selinux/targeted/contexts/?les/?le_contexts.local
來確認。?
但是這都不會對?目前檔案屬性變更,在使?用以下指令在才會有?用restorecon -R -v /root/abc
[root@rhelvm1 ~]# semanage login --list
Login Name SELinux User MLS/MCS Range Service __default__ uncon?ned_u s0-s0:c0.c1023 *
root uncon?ned_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *