* — author: wade date: 2020-08-05 04:10:54+00:00 title: RH254 課堂筆記 type: post url: /post/rh254-course-notes/ categories:

  • Linux tags:
  • CentOS
  • RH254
  • RHCE

Chapter 1

陳勇勳
[email protected]
www.bulls.idv.tw
資料加密篇

foundation0/Netfilter.pdf

  • /lib/systemd/system/
  • .service - standalone 的大多是 .service 結尾
  • .path - cups.path,例如 systemd 會幫你盯著一個目錄,當目錄有新檔案才會叫醒 cupd
  • .socket - transtion 的大多以 socket 結尾,例如 telnet

盡量使用 systemctl reload *.servier 來替代 restart

iptables.server
ip6tables.service
firewalld.service


Chapter 2

ip command 一定要會!一台 linux 可以有 256 個 route table

tc - traffic control

Linux 網路安全技術與實現

ip link show 看網卡名稱

nmcli connection add con-name home type ethernet ifname eth0
nmcli connection add con-name office type ethernet ifname eth0 ip 4 192.168.0.1/24 gw4 192.168.0.245
  • 用 nmcli 改 ip , netmask 跟 gateway 時,要三個一起打上,不能單獨改,用 p27
    nmcli 如果要新增一個值,例如,多一個 dns ,那前面要加上 + 號,見 p28
  • dhcp 的話把 /etc/hostname 這個檔案刪掉
  • mtr 工具,連續追縱一個 trace path 的狀態
netstat -na |grep -i established
# 來看哪台 host 跟我的主機有連線正在持繼建立中

Chapter 4

iptables

xt_geoip

Filter

從外面連進來我的 httpd 的就叫 input
本機要上網,送出去的叫 output
路過而不入的封包為 forward
限制防火牆後端的主機應該在意 foward 而不是 output

iptables -t filter -L -n --line-number

/etc/protocol

iptables -A FORWARD -p 6(tcp) # -p可用數字,定義請查詢/etc/protocol

限制內部用 reject,外部用 drop

-i : incoming interface
-o : outgoing interface

# 可以看哪條規則的封包數最多
iptables -L -n -v

# 把這行當default policy
iptables -t filter -A INPUT -i eth0 -j DROp

xt_state.ko 模組,將連線分為四種狀態

  • NEW: 每一條連線(session)的第一個封包的狀態。
  • ESTABLISHED:當一條連線無論方向能成功出去或進來,它的狀態就是 ESTABLISHED
  • RELATED:RELATED的封包也要讓它回來,它可以告訴你封包為何錯誤的狀態?
  • INVALID:不正常狀態的封包

當 ssh 連到某台防火牆有開的 server 時, 常常會碰到很慢才連上的問題,是因為 firewall 把連入的 ip 拿去給 dns server 解析,但是防火牆送給 dns server 的封包是出得去回不來,因為沒有設ESTABLISHED,所以要等 time out 時才讓ssh client連入

iptables -t filter -A INPUT -m state --state INVALID -j DROP
# INVALID的阻擋規則應該放在最前面比較好!!

iptables -t filter -A INPUT -m multiport -p tcp --dports 22,25,110 -j ACCEPT
# multiport這個模組可以把多個port合成一行指令(這個模組最多可以指定25個port)
/etc/rc.d/rc.local
# 這個檔案預設不存在,可自行建立

#!/bin/bash
/root/firewall.sh

chmod 755
restorecon -Rv /etc/rc.d/rc.local

# 這樣開機就會去執行這個檔案裡的指令了!

NAT
多→1
多→多
1→多

把來源端 ip 換掉的 nat 稱為 source nat,簡稱SNAT
把目的端 ip 換掉的 nat 稱為 destnation nat,簡稱DNAT

prerouting chain 做 dnat 的事
postroutiong chain 做 snat 的事

output chain 是為了幫本機的封包做 dnat 用
postrouting or prerouting 的位置要看封包的方向,因此 postrouting 一定要用 -o 來表明封包的來源方向

nat 只要做單一方向設定即可,反方向的封包系統會自動幫你做

prerouting 用 -i,postrouting 用 -o

-A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to 172.25.0.11:80
# 將外面連入的8080 port導入我的80port

下一代的netfilter叫作nffilter


Chapter 6

mailq
postqueue -p

看有多少 mail 正要外送 or 送進來(視 server 端不同)

外寄 server 不用密碼就可以寄信,只有外送的pop3要密碼

relate control,標明哪些 ip 是自己人,若 ip 不在這個範圍內,就不幫它寄信(因為外寄不用帳密,所以設計了這個功能,以免幫別人寄垃圾mail)

外送 outbound server 設定(server35):

  • 讓 postfix 可以接受外部的 ip:inet_interfaces = all
  • 填上自己的 ip:mynetworks = 127.0.0.0/8,172.25.x.0/24
  • 郵件地址偽裝,可以把 mail 位址弄得好看點,只會接上 domain name: myorigin = example.com

內送 server設定(desktop35)

  • inet_interfaces = all
  • mydestnation = XXXX XXX,desktopX.example.com(收信時,@ 後面地址長得像這個設定的才收)
  • 開防火牆 25 port

null client設定(kiosk)

  • relayhost = [serverX.example.com]
  • myorigin = example.com

Chapter 7

iSCSI

內部主機連接iscsi的線路最好跟對外的線路切開,用專門的線路來連比較好!


Chapter 8 & 9

NFS & SAMBA

  • NFS 4.0 沒有 showmount 指令,在純 4.0 的情況下只能先掛載主機的根目錄
  • klist 可以看 ticket
  • client 端不能用 root 來測,因為一定可以成功進去,要用 ldapuser

samba 4.0已經可以完整模擬windows ad

writable = yes:所有經過帳號驗證的使用者都有讀寫的權
writable = no:所有經過帳號驗證的使用者都只有讀的權力

writable = no
write list = user 1
所有通過驗證的使用者都沒有寫的權限,除了 write list 裡的 user

  • valid users:只有裡面的人有存取權限
  • mount 要能 mount 網芳要裝 cifs-utils
  • credentials 單字必背!!!

Chapter 10 & 11

  • 資料錄
  • mariadb and mysql 裡的任意字元不是 *,而是%
  • select會考!!

httpd.conf 裡的相對路徑都是以 server root 的目錄為 root

httpd.apache.org/docs/2.4/mod/mod_log_config.html#formats

doc: /usr/share/doc/httpdxxx

chcon -Rv –reference /var/www /opt/www

semanage fsontext -a -t httpd_sys_content_t ‘dir/’

自建 CA
cd /etc/pki/tls/misc/
./CA -newca 生成的內容:/etc/pki/CA/

public key: /etc/pki/CA/cacert.pem,
private key: /etc/pki/CA/private/cakey.pem

還原 base 64 encode
openssl req -in newreq.pem -noout -text

  • 把 newreq.pem 的內容貼到網路上的 CA 商就可以申請
  • CA server 得到的 newreq.pem一定要放在 /etc/pki/misc/pwd/

HTTPS

public key : 1024, 2048, 4096
session key: 64, 128, 256

  • 產生憑證申請書(server) cd /etc/pki/tls/misc/
  • ./CA -newreq (get newkey.pem, newreq.pem)
  • 申請書送給 CA
  • CA 對申請書進行簽章:./CA -sign 中間會詢問ca的private key 密碼
  • 得到 newcert.pem,把它丟還給 client 端即可,還給 client 後,CA 端的 newcert.pem 與 newreq.pem 就不需要了,可刪除
# 拿掉 private key 上的對稱式加密
mv www0.key www0.key.es3
openssl rsa -in www0.key.es3 -out www0.key

Chapter 12

Shell Script

  • normal user 可以存檔的路徑千萬不要加進 $PATH 裡
  • 在 sh 裡,用 >&2 把 std err 輸出,例如輸出成 log
  • $VAR++,變數用完再加 1
  • ++$VAR,變數先加1再拿來用
  • seq 好用!
  • $* 跟 [email protected] 都是所有參數的加總數目
  • 盡量用 case 代替 if…than
  • case 的每一個 case 用 ;;來結束區塊
LESS="-m"
export LESS

export LESS="-m"



login shell & non login shell


shell function就像比較多行的alias

Chapter 14

Docker and Container

  • Docker is a Container Manager Tool
  • container 是個應用程式,因此應用程式一結束,該 container 就會從記憶體裡消失
  • yum clean all 可以把暫存檔刪除,以維持 container 最小化
wade Written by:

本站站長