目錄
3、firewalld命令(詳解已更新)
1、df、du、free、fdisk、blkid、mount...
2、Linux日誌分析常用基本工具命令(less/more/tail/head)
2、ping、netstat、traceroute、telnet、tcpdump(抓包)、curl、tracepath
一、linux進程常用命令
1、top、chkconfig、ps
- top
查看cpu負載、正在運行的進程信息、內存使用信息
- chkconfig
用於設定系統的各種服務,例如設置crontab服務開機自啓:chkconfig –level 35 crond on
- ps
命令默認情況下,只會顯示運行在當前控制檯下的屬於當前用戶的進程
ps命令的常用參數有:
- -e,-A 顯示所有進程
- -f 顯示完整格式的輸出
- -l 顯示長列表
- -a,所有進程,加上-x參數會顯示沒有控制終端的進程
- -u username,顯示指定用戶的進程,例如
ps -u ltc
- -aux 按照CPU或者內存用量來篩選進程,例如
ps -aux --sort -pcpu
或ps -aux --sort -pmem
- -C cmdlist,顯示包含在cmdlist列表中的進程,例如
ps -C test
- -L 顯示進程中的線程,例如
ps -L 123
,123爲進程ID - -j 顯示任務信息
- -H 用層級顯示進程,樹狀結構
2、systemctl(centos 7版本命令)
systemctl是centos7版本的命令,類似於之前版本的services,用於啓動/關閉服務、查詢服務狀態等
systemctl start/stop/restart firewalld 更改防火牆的狀態
systemctl list-unit-files 查詢所有系統服務
3、firewalld(centos 7防火牆命令)
firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好處有兩個:支持動態更新,不用重啓服務;第二個就是加入了防火牆的“zone”概念。
firewalld跟iptables比起來至少有兩大好處:
firewalld可以動態修改單條規則,而不需要像iptables那樣,在修改了規則後必須得全部刷新纔可以生效。
firewalld在使用上要比iptables人性化很多,即使不明白“五張表五條鏈”而且對TCP/IP協議也不理解也可以實現大部分功能。
firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是內核的netfilter,只不過firewalld和iptables的結 構以及使用方法不一樣罷了。
etc/sysconfig/firewalld 防火牆配置文件
防火牆命令:
# 安裝firewalld
yum install firewalld firewall-config
systemctl start firewalld # 啓動
systemctl status firewalld # 或者 firewall-cmd --state 查看狀態
systemctl disable firewalld # 停止
systemctl stop firewalld # 禁用
# 關閉服務的方法
# 你也可以關閉目前還不熟悉的FirewallD防火牆,而使用iptables,命令如下:
systemctl stop firewalld
systemctl disable firewalld
yum install iptables-services
systemctl start iptables
systemctl enable iptables
配置firewalld
firewall-cmd --version # 查看版本
firewall-cmd --help # 查看幫助
# 查看設置:
firewall-cmd --state # 顯示狀態
firewall-cmd --get-active-zones # 查看區域信息
firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所屬區域
firewall-cmd --panic-on # 拒絕所有包
firewall-cmd --panic-off # 取消拒絕狀態
firewall-cmd --query-panic # 查看是否拒絕
firewall-cmd --reload # 更新防火牆規則
firewall-cmd --complete-reload
# 兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啓服務
# 將接口添加到區域,默認接口都在public
firewall-cmd --zone=public --add-interface=eth0
# 永久生效再加上 --permanent 然後reload防火牆
# 設置默認接口區域,立即生效無需重啓
firewall-cmd --set-default-zone=public
# 查看所有打開的端口:
firewall-cmd --zone=dmz --list-ports
# 加入一個端口到區域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 若要永久生效方法同上
# 打開一個服務,類似於將端口可視化,服務需要在配置文件中添加,/etc/firewalld 目錄下有services文件夾,這個不詳細說了,詳情參考文檔
firewall-cmd --zone=work --add-service=smtp
# 移除服務
firewall-cmd --zone=work --remove-service=smtp
# 顯示支持的區域列表
firewall-cmd --get-zones
# 設置爲家庭區域
firewall-cmd --set-default-zone=home
# 查看當前區域
firewall-cmd --get-active-zones
# 設置當前區域的接口
firewall-cmd --get-zone-of-interface=enp03s
# 顯示所有公共區域(public)
firewall-cmd --zone=public --list-all
# 臨時修改網絡接口(enp0s3)爲內部區域(internal)
firewall-cmd --zone=internal --change-interface=enp03s
# 永久修改網絡接口enp03s爲內部區域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s
服務管理
顯示服務列表
Amanda, FTP, Samba和TFTP等最重要的服務已經被FirewallD提供相應的服務,可以使用如下命令查看:
firewall-cmd --get-services
# 允許SSH服務通過
firewall-cmd --enable service=ssh
# 禁止SSH服務通過
firewall-cmd --disable service=ssh
# 打開TCP的8080端口
firewall-cmd --enable ports=8080/tcp
# 臨時允許Samba服務通過600秒
firewall-cmd --enable service=samba --timeout=600
# 顯示當前服務
firewall-cmd --list-services
# 添加HTTP服務到內部區域(internal)
firewall-cmd --permanent --zone=internal --add-service=http
firewall-cmd --reload # 在不改變狀態的條件下重新加載防火牆
端口管理
# 打開443/TCP端口
firewall-cmd --add-port=443/tcp
# 永久打開3690/TCP端口
firewall-cmd --permanent --add-port=3690/tcp
# 永久打開端口好像需要reload一下,臨時打開好像不用,如果用了reload臨時打開的端口就失效了
# 其它服務也可能是這樣的,這個沒有測試
firewall-cmd --reload
# 查看防火牆,添加的端口也可以看到
firewall-cmd --list-all
直接模式
# FirewallD包括一種直接模式,使用它可以完成一些工作,例如打開TCP協議的9999端口
firewall-cmd --direct -add-rule ipv4 filter INPUT 0 -p tcp --dport 9000 -j ACCEPT
firewall-cmd --reload
控制端口 / 服務
可以通過兩種方式控制端口的開放,一種是指定端口號另一種是指定服務名。雖然開放 http 服務就是開放了 80 端口,但是還是不能通過端口號來關閉,也就是說通過指定服務名開放的就要通過指定服務名關閉;通過指定端口號開放的就要通過指定端口號關閉。還有一個要注意的就是指定端口的時候一定要指定是什麼協議,tcp 還是 udp。知道這個之後以後就不用每次先關防火牆了,可以讓防火牆真正的生效。
firewall-cmd --add-service=mysql # 開放mysql端口
firewall-cmd --remove-service=http # 阻止http端口
firewall-cmd --list-services # 查看開放的服務
firewall-cmd --add-port=3306/tcp # 開放通過tcp訪問3306
firewall-cmd --remove-port=80tcp # 阻止通過tcp訪問3306
firewall-cmd --add-port=233/udp # 開放通過udp訪問233
firewall-cmd --list-ports # 查看開放的端口
僞裝 IP
firewall-cmd --query-masquerade # 檢查是否允許僞裝IP
firewall-cmd --add-masquerade # 允許防火牆僞裝IP
firewall-cmd --remove-masquerade# 禁止防火牆僞裝IP
端口轉發
端口轉發可以將指定地址訪問指定的端口時,將流量轉發至指定地址的指定端口。轉發的目的如果不指定 ip 的話就默認爲本機,如果指定了 ip 卻沒指定端口,則默認使用來源端口。 如果配置好端口轉發之後不能用,可以檢查下面兩個問題:
- 比如我將 80 端口轉發至 8080 端口,首先檢查本地的 80 端口和目標的 8080 端口是否開放監聽了
- 其次檢查是否允許僞裝 IP,沒允許的話要開啓僞裝 IP
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 將80端口的流量轉發至8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 # 將80端口的流量轉發至192.168.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 將80端口的流量轉發至192.168.0.1的8080端口
- 當我們想把某個端口隱藏起來的時候,就可以在防火牆上阻止那個端口訪問,然後再開一個不規則的端口,之後配置防火牆的端口轉發,將流量轉發過去。
- 端口轉發還可以做流量分發,一個防火牆拖着好多臺運行着不同服務的機器,然後用防火牆將不同端口的流量轉發至不同機器。
二、linux磁盤常用命令
1、df、du、free、fdisk、blkid、mount...
- df
顯示磁盤分區可用磁盤空間,常用參數有:-h(以kb以上格式顯示數字)、-a(顯示全部)
- du
查看文件或目錄的磁盤使用空間:
- free
查看系統內存和swap分區使用情況:-b,-k,-m,-g參數表示數據以什麼單位顯示
- fdisk
命令給磁盤分區,查詢磁盤分區情況,常用參數-l(列出所有分區信息),分區內置參數:n(新建分區)、p(顯示硬盤所有分區)、t(轉換分區格式)、w(保存分區並退出)
- blkid
主要用來對系統的塊設備(包括交換分區)所使用的文件系統類型、LABEL、UUID進行查詢
- mount
主要用於文件系統掛載,常用參數有-o(異步模式、同步模式)、-t(要掛載的文件系統類型)
三、日誌
1、linux日誌文件
- 存放日誌文件目錄:/var/log
- /var/log/messages — 包括整體系統信息,其中也包含系統啓動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。
- /var/log/boot.log — 包含系統啓動時的日誌
- /var/log/dpkg.log – 包括安裝或dpkg命令清除軟件包的日誌
- /var/log/daemon.log — 包含各種系統後臺守護進程日誌信息。
- /var/log/kern.log – 包含內核產生的日誌,有助於在定製內核時解決問題。
- /var/log/lastlog — 記錄所有用戶的最近信息。
- /var/log/user.log — 記錄所有等級用戶信息的日誌。
- /var/log/cron — 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。
- /var/log/mail/ – 這個子目錄包含郵件服務器的額外日誌。
2、Linux日誌分析常用基本工具命令(less/more/tail/head)
- less/more 常用於日誌文件閱讀, less可上下翻頁、more只能下翻頁、Q退出閱讀。
- tail/head 常用於日誌文件閱讀,tail從文件末尾取幾行顯示、head從文件首取幾行閱讀,常用格式:cat /var/log/boot.log | tail -n 20
四、用戶密碼
1、chage 查看用戶密碼是否過期
常用命令格式:chage -l root;
- last password change 密碼最後一次的修改日期
- password expires 密碼到期時間
- password inactive 密碼失效時間
- account expires 賬戶到期時間
chage的參數包括 :
-m 密碼可更改的最小天數。爲零時代表任何時候都可以更改密碼。
-M 密碼保持有效的最大天數。
-W 用戶密碼到期前,提前收到警告信息的天數。
-E 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-i 停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l 例出當前的設置。由非特權用戶來確定他們的密碼或帳號何時過期。
2、與用戶相關的配置文件
[root@svn /]# ll /etc/passwd /etc/shadow /etc/group /etc/gshadow
-rw-r--r-- 1 root root 594 Jul 3 14:01 /etc/group #——>用戶組的信息
---------- 1 root root 484 Jul 3 14:01 /etc/gshadow #——>用戶組的密碼文件信息
-rw-r--r-- 1 root root 1091 Jul 3 13:56 /etc/passwd #——>用戶的信息
3、用戶分類
①超級用戶:root,UID爲0
②普通用戶:centos 7以前版本,UID是500-65535的用戶,centos7中UID是1000-65535的用戶
③虛擬用戶:centos 7以前版本,UID在1-499的用戶,centos7中UID在1-999,一般不能登錄,滿足文件或服務啓動的需要,/sbin/nologin
4、用戶登錄出現問題如何處理
[root@svn ~]# su - oldboy
-bash-4.1$
-bash-4.1$
解答:原因是這個oldboy用戶家目錄下的環境變量文件被刪除了,只需到/etc/skell/目錄下,複製
.bash_profile
.bashrc到當前用戶下,然後重新登錄oldboy用戶即可
5、查詢用戶的操作(last、history)
liinux系統中last查詢用戶登錄歷史、history查詢用戶使用過的操作命令
Windows 從任務管理器中查看用戶再登情況
五、常用服務端口
- ssh--22
- 1521--oracle
- 443--https
- 80--http
六、跟網絡有關的命令工具
1、不同系統重啓網絡服務命令
- 紅帽:/etc/rc.d/init.d/network restart
- centos 6:service network restart
- centos 7:systemctl restart network
- windows08:service network restart
- ubuntu:service network-manager restart
2、ping、netstat、traceroute、telnet、tcpdump(抓包)
- ping 常用參數
-l 定義發送數據包的大小,默認情況下是32字節,利用它可以最大定義到65500字節
-n 定義向目標地址發送數據包的次數
-t 表示不間斷向目標地址發送數據包,直到我們強迫其停止
- tcpdump是一個抓包工具命令,需要用yum安裝後使用,
yum install tcpdump 安裝
tcpdump -i ens33 抓取網卡ens33(centos 7中稱ens33,centos6.5稱eth0)包
- telnet遠程連接工具
常用格式:telnet +IP 或者 telnet + IP + 端口
例如:telnet 10.16.0.23 telnet 10.16.0.23 1521(端口號)
- traceroute路由跟蹤 (centos 7無此命令,需要yum安裝traceroute包:yum install traceroute)
如果用traceroute -q 4 www.58.com
,表示向每個網關發送4個數據包。有時我們traceroute一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了ICMP的返回信息,所以我們得不到什麼相關的數據包返回數據。有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;您可以加-n
參數來避免DNS解析,以IP格式輸出數據。
- netstat 監聽端口(centos 7無此命令,需要yum安裝net-tools包)
常用命令格式:
netstat -nat 查看正在監聽的端口狀態
netstat -ntlp 查看udp協議端口和在此端口開啓的進程
netstat -nulp 查看udp協議端口和在此端口開啓的進程
netstat -a 查看所有端口
3、跳板機無法遠程連接虛機排錯方法
- 查看遠程連接端口有沒有打開
- 打開虛機的遠程設置(若虛機爲window08)
- 查看虛機的防火牆設置
- 虛機ping跳板機看通不通,不通的話排查網卡
- 虛機嘗試用telnet命令遠程連接跳板機(若虛機爲Linux)
七、其他
1、crontab、date
- crontab
crontab週期性任務,常用參數:
-e:編輯某個用戶的crontab文件內容。
-l:顯示某個用戶的crontab文件內容,
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。
格式如下:* * * * * +命令,前五個字段代表的意思是 分、時、日、月、周
與crontab相關的文件:
/etc/cron.deny 不允許使用crontab服務的用戶名單
/etc/cron.allow 允許使用crontab服務的用戶名單
/var/spool/cron 存放crontab文件的目錄,以用戶命名
~注,有些系統默認沒有crontab服務,此時需要用yum安裝:yum install crontabs; /sbin/service crond start //啓動服務
- date
date 查看本地時間
date -s 18:09:01 臨時更改本地時間
date -s 991128 設置時間爲1999年11月28號
date -s "2008-08-08 12:00:00" 設置時間偉2008年8月8號12:00
2、客戶端同步ntp服務器時間
1、客戶端必須有ntp服務,先用rpm -qa ntp*查詢是否安裝ntp服務
2、若系統沒有該服務,則yum安裝,yum install ntp
3、which ntpdate查詢ntpdate服務位置
4、加入定時任務:crontab -e編輯週期性,任務命令格式 */5 * * * * /sbin/ntpdate +域名或IP(世界時間域名time.nist.gov、time.windows.com、也可以是公司自己ntp服務器的域名或IP),
5、檢驗是否時間是否能同步:先更改當前時間date -s +時間;一個任務週期後看時間是否同步ntp服務
未完待續~
本篇防火牆部分博文轉載地址
https://blog.csdn.net/GMingZhou/article/details/78090963