筆記9(日常運維2iptables nat表、zone、service、cron、chkconfig、systemd、unit、target、rsyncscreen)
nat表應用
A機器兩塊網卡ens33(192.168.133.130)、ens37(192.168.100.1),ens33可以上外網,ens37僅僅是內部網絡,B機器只有ens37(192.168.100.100),和A機器ens37可以通信互聯。
需求1:可以讓B機器連接外網
查看路由轉發:cat /proc/sys/net/ipv4/ip_forward 如果是0,我們需要打開它
A機器上打開路由轉發 echo "1">/proc/sys/net/ipv4/ip_forward
增加一條規則A上執行 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
B上設置網關為192.168.100.1 命令:route add default gw 192.168.100.1 查看網關:route -n
需求2:C機器只能和A通信,讓C機器可以直接連通B機器的22端口
B機器設置一下DNS:vi /etc/resolv.conf 進去了寫:nameserver 119.29.29.29
A上打開路由轉發echo "1">/ proc/sys/net/ipv4/ip_forward
A上執行iptables -t nat -A PREROUTING -d 192.168.133.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
A上執行iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.133.130
B上設置網關為192.168.100.1
iptables規則備份和恢復
默認保存命令:service iptables save //會把規則保存到/etc/sysconfig/iptables
指定保存命令:例如,把iptables規則備份到my.ipt文件中,命令:iptables-save > /tmp/my.ipt
恢復剛才備份的規則命令:iptables-restore < /tmp/my.ipt
Linux防火墻-firewalld
打開firewalld方法:
第一步,systemctl disable iptables
第二步,systemctl stop iptables
第三步,systemctl enable firewalld
第四步,systemctl start firewalld
關閉firewalld開啟netfilter方法
第一步,不讓他開機啟動:systemctl disable firewalled
第二步,再把服務停掉:systemctl stop firewalld
第三步,然後開啟netfilter防火墻,開啟之前需要安裝包:yum install -y iptables-services
第四步,安裝完它會產生iptables服務,查看一下:systemctl enable iptables
第五步,開啟iptables服務:systemctl start iptables
zone
firewalld默認有9個zone,每個zone都好比一個規則級,自帶一些規則,默認zone為 public
查看所有的zone:firewall-cmd --get-zones
查看默認zone: firewall-cmd --get-default-zone
9個zone介紹:
zone的操作
firewall-cmd --set-default-zone=work //自己設定默認zone,例如work。
firewall-cmd --get-zone-of-interface=ens33 //查指定網卡
firewall-cmd --zone=public --add-interface=lo //給指定網卡設置zone
firewall-cmd --zone=dmz --change-interface=lo //針對網卡更改zone
firewall-cmd --zone=dmz --remove-interface=lo //針對網卡刪除zone
firewall-cmd --get-active-zones //查看系統所有網卡所在的zone
service的操作
service是firewall防火墻下的一個端口
firewall-cmd --get-services 查看所有的servies
firewall-cmd --list-services //查看當前zone下有哪些service
firewall-cmd --zone=public --list-service //查看指定zone下有哪些service
增加指定服務:firewall-cmd --zone=public --add-service=http //把http增加到public zone下面,但是這不是永久的配置文件裏不會有。
刪除指定服務:firewall-cmd --zone=public --remove-service=http
ls /usr/lib/firewalld/zones/ //zone的配置文件模板
ls /usr/lib/firewalld/services/ service的配置模板
要想永久生效就要保存到配置文件中,方法:
firewall-cmd --zone=public --add-service=http --permanent //更改配置文件,之後 會在/etc/firewalld/zones目錄下面生成配置文件
需求:ftp服務自定義端口1121,需要在work zone下面放行ftp
第一步,先把usr目錄下的ftp.xml文件拷貝到etc下的service目錄來:
cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/
第二步,編輯剛拷貝到service目錄下ftp.xml的配置文件,把裏邊的21端口改成1121:
vi /etc/firewalld/services/ftp.xml //把21改為1121
第三步,把usr目錄下的ftp.xml文件拷貝到etc下的zones目錄下:
cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
第四步,編輯etc下剛拷貝過來的work.xml文件增加以下內容:
vi /etc/firewalld/zones/work.xml 增加一行,<service name="ftp"/>
最後一步,重新加載:firewall-cmd --reload
查看一下:firewall-cmd --zone=work --list-services
Linux任務計劃
crontab
crondab在:cat /var/spool/cron/root目錄下
命令:crontab -u、-e、-l、-r
-u :指定某個用戶,不加-u選項則為當前用戶;
-e :制定計劃任務;
-l :列出計劃任務;
-r :刪除計劃任務。
格式:分 時 日 月 周 user command
文件/var/spool/cron/username
命令:cat /etc/crontab 查看任務計劃的配置文件
1.分鐘範圍0-59,2.小時範圍0-23,3.日範圍1-31,4.月範圍1-12,5.周1-7(0或者7都表示周日), 6.用戶(不寫默認是root),7.執行的命令。
命令:crontab -e 進入到配置文件中,編輯配置文件,內容格式如下:
* 表示所有(每分、每小時、每天、每周、每月)
可用格式1-5表示一個範圍1到5,比如月,那就是每個月的1到5號)
可用格式1,2,3表示1或者2或者3,比如周,那就是每周的周一周二周三)
可用格式*/2表示被2整除的數字,比如小時,那就是每隔2小時,比如月,就是2、4、6、..月
要保證服務是啟動狀態:輸入命令,systemctl start crond.service
如何檢查是啟動?
命令:ps aux |grep cron 看看有沒有這個進程
或者用這個命令:systemctl status crond 如果下邊顯示綠色證明他啟動了
如何停掉服務?
用命令:systemctl stop crond
Linuxde的系統管理服務-chkconfig(CentOS6)
Linux系統所有的預設服務可以查看 /etc/init.d/ 目錄得到: ls /etc/init.d/
命令:chkconfig --list 列出所有服務並顯示每個級別是否開啟
上圖裏的級別(0,1,2,3,4,5,6)就是 /etc/inittab 裏面的那幾個啟動級別了:
0、1、6運行級別被系統保留;一般的Linux系統實現中,都使用了2、3、4、5幾個級別。
0作為shutdown動作,1作為重啟至單用戶模式,2表示無NFS支持的多用戶模式,3表示完全多用戶模式 (也是最常用的級別),4保留給用戶自定義,5表示圖形登錄方式,6為重啟。
命令:chkconfig network off 讓這個服務關閉
命令:chkconfig network on 讓這個服務開啟
命令:chkconfig --level 3 network off 關閉指定某個服務的一個級別(例如network的3級別)
命令:chkconfig --level 345 network off 關閉指定某個服務的幾個級別
命令:chkconfig --del network 刪除自定義服務
命令:chkconfig --add network 增加自定義服務
Linux系統服務管理-systemd(CentOS7)
一個service屬於一種類型的unit
多個unit組成了一個target
一個target裏面包含了多個service
命令:systemctl list-units --all --type=service 把service類型的服務列出來
幾個常用的服務相關的命令:
systemctl enable crond.service //讓服務開機啟動
systemctl disable crond //不讓開機啟動
systemctl status crond //查看狀態
systemctl stop crond //停止服務
systemctl start crond //啟動服務
systemctl restart crond //重啟服務
systemctl is-enabled crond //檢查服務是否開機啟動
unit介紹
ls /usr/lib/systemd/system //系統所有unit,分為以下類型
service 系統服務
target 多個unit組成的組
device 硬件設備
mount 文件系統掛載點
automount 自動掛載點
path 文件或路徑
scope 不是由systemd啟動的外部進程
slice 進程組
snapshot systemd快照
socket 進程間通信套接字
swap swap文件
timer 定時器
unit相關的命令
systemctl list-units //列出正在運行的unit
systemctl list-units --all //列出所有,包括失敗的或者inactive的
systemctl list-units --all --state=inactive //列出inactive的unit
systemctl list-units --type=service//列出狀態為active的service
systemctl is-active crond.service //查看某個服務是否為active
target介紹
一個target就是多個unit的組合,
系統為了方便管理用target來管理unit。
systemctl list-unit-files --type=target 列出系統裏邊所有的target。
systemctl list-dependencies multi-user.target //查看指定target下面有哪些unit
systemctl get-default //查看系統默認的target
systemctl set-default multi-user.target 設置一個默認的target
一個service屬於一種類型的unit
多個unit組成了一個target
一個target裏面包含了多個service
命令:cat /usr/lib/systemd/system/sshd.service // cat一下service看最後[install]部分它會告 訴你這個service屬於哪個target。
Linux文件同步估計-rsync
命令:rsync -av /etc/passwd /tmp/1.txt 把etc/passwd文件拷貝到tmp下,並改名為1.txt
命令:rsync -av /etc/passwd [email protected]:/tmp/1.txt 遠程拷貝同步,假如我要拷貝到 對方root用戶下,寫它的IP,然後冒號,後邊跟它的文件路徑,輸入密碼。
命令:rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt
rsync格式:
rsync [OPTION] … SRC DEST 本機的格式
rsync [OPTION] … SRC [user@]host:DEST 拷貝到遠程服務器上的格式。
rsync [OPTION] … [user@]host:SRC DEST 反著拷貝,先寫遠程的機器或者目錄,然後拷貝到本 地的目錄下。
rsync [OPTION] … SRC [user@]host::DEST
rsync [OPTION] … [user@]host::SRC DEST
OPTION:選項(-a、-v、..) SRC:原目錄 DEST:目標目錄或文件 user@:用戶(可以省略,不寫用戶 他就是當前終端的用戶,他默認是root) host:IP地址
rsync常用選項
-a 包含-rtplgoD
-r 同步目錄時要加上,類似cp時的-r選項
-v 同步時顯示一些信息,讓我們知道同步的過程
-l 保留軟連接
-L 加上該選項後,同步軟鏈接時會把源文件給同步
-p 保持文件的權限屬性
-o 保持文件的屬主
-g 保持文件的屬組
-D 保持設備文件信息
-t 保持文件的時間屬性
--delete 刪除DEST中SRC沒有的文件,刪除目標目錄中,原目錄裏邊沒有的文件。要想一模一樣必須 加這個選項,
--exclude 過濾指定文件,如--exclude “logs”會把文件名包含logs的文件或者目錄過濾掉,不同 步 例如:下圖為過濾掉以.txt結尾的所有文件,不要這些文件。
他不支持連寫,但支持多些,例如還過濾以阿明開頭的所有文件,不要他。
-P 顯示同步過程,比如速率,比-v更加詳細
-u 加上該選項後,如果DEST中的文件比SRC新,則不同步,如果目標目錄裏的文件比原文件新,則不 同步
-z 傳輸時壓縮
rsync通過ssh方式同步
格式:rsync -av test1/ 192.168.133.132:/tmp/test2/
命令:rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ -p指定對方的端口,例如 22端口
rsync 通過服務的方式同步
第一步,要編輯配置文件/etc/rsyncd.conf //下面是rsyncd.conf的樣例,把他寫進去:
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.133.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test 這裏是密碼實驗時可以關掉前邊加上#號
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24 這些IP根據你需要的改!!
第二步,啟動服務rsync --daemon 啟動完用命令檢測一下是否啟動了:ps aux |grep rsync
用命令:netstat -lntp 查看一下他監聽的端口是不是873
最後一步:用這個命令傳輸,格式:rsync -av test1/ 192.168.133.130::module/dir/
rsyncd.conf配置文件詳解
port:指定在哪個端口啟動rsyncd服務,默認是873端口。可以更改。
log file:指定日誌文件。
pid file:指定pid文件,這個文件的作用涉及服務的啟動、停止等進程管理操作。
address:指定啟動rsyncd服務的IP。假如你的機器有多個IP,就可以指定由其中一個啟動rsyncd服 務,如果不指定該參數,默認是在全部IP上啟動。也可以指定多個IP
[]:指定模塊名,裏面內容自定義。
path:指定數據存放的路徑。
use chroot true|false:表示在傳輸文件前首先chroot到path參數所指定的目錄下。這樣做的原因是 實現額外的安全防護,但缺點是需要以roots權限,並且不能備份指向外部的符號連接所指向的目錄文 件。默認情況下chroot值為true,如果你的數據當中有軟連接文件,阿銘建議你設置成false。
Linux同步工具-
max connections:指定最大的連接數,默認是0,即沒有限制。
read only ture|false:如果為true,則不能上傳到該模塊指定的路徑下。
list:表示當用戶查詢該服務器上的可用模塊時,該模塊是否被列出,設定為true則列出,false則隱 藏。
uid/gid:指定傳輸文件時以哪個用戶/組的身份傳輸。
auth users:指定傳輸時要使用的用戶名。
secrets file:指定密碼文件,該參數連同上面的參數如果不指定,則不使用密碼驗證。註意該密碼 文件的權限一定要是600。格式:用戶名:密碼
hosts allow:表示被允許連接該模塊的主機,可以是IP或者網段,如果是多個,中間用空格隔開。
當設置了auth users和secrets file後,客戶端連服務端也需要用用戶名密碼了,若想在命令行中帶 上密碼,可以設定一個密碼文件
rsync -avL [email protected]::test/test1/ /tmp/test8/ --password-file=/etc/pass
其中/etc/pass內容就是一個密碼,權限要改為600
Linux系統日誌
Linux系統總日誌:/var/log/messages 可以用less查看一下
命令:/etc/logrotate.conf 日誌切割配置文件
參考https://my.oschina.net/u/2000675/blog/908189
dmesg命令
/var/log/dmesg 日誌,查看正確的登陸歷史。
last命令,調用的文件/var/log/wtmp
lastb命令查看登錄失敗的用戶,對應的文件時/var/log/btmp
/var/log/secure
screen工具
一個虛擬終端,為了不讓一個任務意外中斷
nohup command &
screen是一個虛擬終端
安裝:yum install -y screen
screen直接回車就進入了虛擬終端
ctral a組合鍵再按d退出虛擬終端,但不是結束
列出來命令:screen -ls 查看虛擬終端列表
screen -r id 進入指定的終端
命令:screen -S aming 定義一個自定義名字
screen -r aming
本文出自 “12912638” 博客,請務必保留此出處http://12922638.blog.51cto.com/12912638/1952106
筆記9(日常運維2iptables nat表、zone、service、cron、chkconfig、systemd、unit、target、rsyncscreen)