導航:首頁 > 版本升級 > sa文件linux

sa文件linux

發布時間:2024-10-23 03:58:58

⑴ 華為光貓sa1456c改linux文件伺服器

如下所示:
ONT(Optical Network Terminal)即光網路終端,俗稱光貓,是接入網路中為家庭用戶提供網路的設備,可以提供高速上網、IPTV、語音、WiFi等業務。
ONT可以理解為ONU(Optical Network Unit),但嚴格意義上講屬於ONU的一部分。
兩者區別在於ONT是光網路終端,直接位於用戶端;而ONU是光網單元,與用戶間還可能有其它的網路,例如ONU下面可以接入xDSL或者乙太網接入口的網關設備,之後再接入到網路終端。
ONT通常位於用戶家裡,向下接入各種上網設備,向上通過光纖接入網路。

⑵ Linux 主機審計

Linux 主機審計

Linux操作系統可以通過設置日誌文件可以對每個用戶的每一條命令進行紀錄,不過這一功能默認是沒有打開的。

開啟這個功能的過程:

# touch /var/log/pacct
# action /var/log/pact

也可以用自已的文件來代替/var/log/pacct這個文件。但必須路徑和文件名的正確。

sa命令與 ac 命令一樣,sa 是一個統計命令。該命令可以獲得每個用戶或每個命令的進程使用的大致情況,並且提供了系統資源的消費信息。在很大程度上,sa 又是一個記帳命令,對於識別特殊用戶,特別是已知特殊用戶使用的可疑命令十分有用。另外,由於信息量很大,需要處理腳本或程序篩選這些信息。

lastcomm命令, 與 sa 命令不同,lastcomm 命令提供每一個命令的輸出結果,同時列印出與執行每個命令有關的時間印戳。就這一點而說,lastcomm 比 sa 更有安全性。如果系統被入侵,請不要相信在 lastlog、utmp、wtm中記錄的信息,但也不要忽略,因為這些信息可能被修改過了。另外有可能有人替換了who程序來掩人耳目。通常,在已經識別某些可疑活動後,進程記帳可以有效的發揮作用。使用 lastcomm 可以隔絕用戶活動或在特定時間執行命令。

3、使用logrorate對審計文件管理

/var/log/utmp,/var/log/wtmp和/var/log/pacct文件都是動態的數據文件。wtmp和pacct文件是在文件尾部不斷地增加記錄。在繁忙的網路上,這些文件會變得很大。Linux提供了一個叫logrotate的程序,它允許管理員對這些文件進行管理。

Logrotate讀取/etc/logrotate.d目錄下的文件。管理員通過該目錄下的腳本文件,控制logrotate程序的運作。一個典型的腳本文件如下:

{

rotate 5

weekly

errors root@serve1r

mail root@server1

truncate

compress

size 100k

}

腳本文件的含義如下:

● rotate 5——保留該文件一份當前的備份和5份舊的備份。
● weekly——每周處理文件一次,通常是一周的第一天。
● errors——向郵件地址發送錯誤報告。
● mail——向郵件地址發送相關的信息。
● truncate——允許進程持續地記錄,備份文件創建後,把活動的日誌文件清空。
● compress——使用gzip工具對舊的日誌文件進行壓縮。
● size 100k——當文件超過100k 時自動處理。

⑶ Linux網路協議棧7--ipsec收發包流程

流程路徑:ip_rcv() --> ip_rcv_finish() --> ip_local_deliver() --> ip_local_deliver_finish()
解封側一定是ip報文的目的端,ip_rcv_finish中查到的路由肯定是本機路由(RTCF_LOCAL),調用 ip_local_deliver 處理。
下面是貼的網上的一張圖片。

ip_local_deliver_finish中 根據上次協議類型,調用對應的處理函數。inet_protos 中掛載了各類協議的操作集,對於AH或者ESP來說,是xfrm4_rcv,對於ipsec nat-t情況下,是udp協議的處理函數udp_rcv,內部才是封裝的ipsec報文(AH或者ESP)。

xfrm4_rcv --> xfrm4_rcv_spi --> xfrm4_rcv_encap --> xfrm_input
最終調用 xfrm_input 做收包解封裝流程。
1、創建SKB的安全路徑;
2、解析報文,獲取daddr、spi,加上協議類型(esp、ah等),就可以查詢到SA了,這些是SA的key,下面列出了一組linux ipsec的state(sa)和policy,方便一眼就能看到關鍵信息;
3、調用SA對應協議類型的input函數,解包,並返回更上層的協議類型,type可為esp,ah,ipcomp等。對應的處理函數esp_input、ah_input等;
4、解碼完成後,再根據ipsec的模式做解封處理,常用的有隧道模式和傳輸模式。對應xfrm4_mode_tunnel_input 和 xfrm4_transport_inout,處理都比較簡單,隧道模式去掉外層頭,傳輸模式只是設置一些skb的數據。
5、協議類型可以多層封裝,如ESP+AH,所以需要再次解析內存協議,如果還是AH、ESP、COMP,則解析新的spi,返回2,查詢新的SA處理報文。
6、經過上面流程處理,漏出了用戶數據報文(IP報文),根據ipsec模式:

流程路徑如下圖,這里以轉發流程為例,本機發送的包主要流程類似。
轉發流程:

ip_forward 函數中調用xfrm4_route_forward,這個函數:
1、解析用戶報文,查找對應的Ipsec policy(__xfrm_policy_lookup);
2、再根據policy的模版tmpl查找對應最優的SA(xfrm_tmpl_resolve),模版的內容以及和SA的對應關系見上面貼出的ip xfrm命令顯示;
3、最後根據SA生成安全路由,掛載再skb的dst上; 一條用戶流可以聲明多個安全策略(policy),所以會對應多個SA,每個SA處理會生成一個安全路由項struct dst_entry結構(xfrm_resolve_and_create_bundle),這些安全路由項通過 child 指針鏈接為一個鏈表,其成員 output掛載了不同安全協議的處理函數,這樣就可以對數據包進行連續的處理,比如先壓縮,再ESP封裝,再AH封裝。
安全路由鏈的最後一個路由項一定是普通IP路由項,因為最終報文都得走普通路由轉發出去,如果是隧道模式,在tunnel output封裝完完成ip頭後還會再查一次路由掛載到安全路由鏈的最後一個。
註: SA安全聯盟是IPsec的基礎,也是IPsec的本質。 SA是通信對等體間對某些要素的約定,例如使用哪種協議、協議的操作模式、加密演算法、特定流中保護數據的共享密鑰以及SA的生存周期等。

然後,經過FORWARD點後,調用ip_forward_finish()-->dst_output,最終調用skb_dst(skb)->output(skb),此時掛載的xfrm4_output

本機發送流程簡單記錄一下,和轉發流程殊途同歸:
查詢安全路由: ip_queue_xmit --> ip_route_output_flow --> __xfrm_lookup
封裝發送: ip_queue_xmit --> ip_local_out --> dst_output --> xfrm4_output

註:
1). 無論轉發還是本地發送,在查詢安全路由之前都會查一次普通路由,如果查不到,報文丟棄,但這條路由不一定需要指向真實的下一跳的出介面,只要能匹配到報文DIP即可,如配置一跳其它介面的defualt。
2). strongswan是一款用的比較多的ipsec開源軟體,協商完成後可以看到其創建了220 table,經常有人問裡面的路由有啥用、為什麼有時有有時無。這里做個測試記錄: 1、220中貌似只有在tunnel模式且感興趣流是本機發起(本機配置感興趣流IP地址)的時候才會配置感興趣流相關的路由,路由指定了source;2、不配置也沒有關系,如1)中所說,只要存在感興趣流的路由即可,只不過ping的時候需要指定source,否者可能匹配不到感興趣流。所以感覺220這個表一是為了保證

ipsec封裝發送流程:
xfrm4_output-->xfrm4_output_finish-->xfrm_output-->xfrm_output2-->xfrm_output_resume-->xfrm_output_one
xfrm4_output 函數先過POSTROUTING點,在封裝之前可以先做SNAT。後面則調用xfrm_output_resume-->xfrm_output_one 做IPSEC封裝最終走普通路由走IP發送。

貼一些網上的幾張數據結構圖
1、安全路由

2、策略相關協議處理結構

3、狀態相關協議處理結構

⑷ 《Linux設備驅動程序》(十六)-中斷處理

設備與處理器之間的工作通常來說是非同步,設備數據要傳遞給處理器通常來說有以下幾種方法:輪詢、等待和中斷。

讓CPU進行輪詢等待總是不能讓人滿意,所以通常都採用中斷的形式,讓設備來通知CPU讀取數據。

2.6內核的函數參數與現在的參數有所區別,這里都主要介紹概念,具體實現方法需要結合具體的內核版本

request_irq函數申請中斷,返回0表示申請成功,其他返回值表示申請失敗,其具體參數解釋如下:

flags 掩碼可以使用以下幾個:

快速和慢速處理常式 :現代內核中基本沒有這兩個概念了,使用SA_INTERRUPT位後,當中斷被執行時,當前處理器的其他中斷都將被禁止。通常不要使用SA_INTERRUPT標志位,除非自己明確知道會發生什麼。

共享中斷 :使用共享中斷時,一方面要使用SA_SHIRQ位,另一個是request_irq中的dev_id必須是唯一的,不能為NULL。這個限制的原因是:內核為每個中斷維護了一個共享處理常式的列表,常式中的dev_id各不相同,就像設備簽名。如果dev_id相同,在卸載的時候引起混淆(卸載了另一個中斷),當中斷到達時會產生內核OOP消息。

共享中斷需要滿足以下一個條件才能申請成功:

當不需要使用該中斷時,需要使用free_irq釋放中斷。

通常我們會在模塊載入的時候申請安裝中斷處理常式,但書中建議:在設備第一次打開的時候安裝,在設備最後一次關閉的時候卸載。

如果要查看中斷觸發的次數,可以查看 /proc/interrupts 和 /proc/stat。

書中講述了如何自動檢測中斷號,在嵌入式開發中通常都是查看原理圖和datasheet來直接確定。

自動檢測的原理如下:驅動程序通知設備產生中斷,然後查看哪些中斷信號線被觸發了。Linux提供了以下方法來進行探測:

探測工作耗時較長,建議在模塊載入的時候做。

中斷處理函數和普通函數其實差不多,唯一的區別是其運行的中斷上下文中,在這個上下文中有以下注意事項:

中斷處理函數典型用法如下:

中斷處理函數的參數和返回值含義如下:

返回值主要有兩個:IRQ_NONE和IRQ_HANDLED。

對於中斷我們是可以進行開啟和關閉的,Linux中提供了以下函數操作單個中斷的開關:

該方法可以在所有處理器上禁止或啟用中斷。

需要注意的是:

如果要關閉當前處理器上所有的中斷,則可以調用以下方法:

local_irq_save 會將中斷狀態保持到flags中,然後禁用處理器上的中斷;如果明確知道中斷沒有在其他地方被禁用,則可以使用local_irq_disable,否則請使用local_irq_save。

locat_irq_restore 會根據上面獲取到flags來恢復中斷;local_irq_enable 會無條件打開所有中斷。

在中斷中需要做一些工作,如果工作內容太多,必然導致中斷處理所需的時間過長;而中斷處理又要求能夠盡快完成,這樣才不會影響正常的系統調度,這兩個之間就產生了矛盾。

現在很多操作系統將中斷分為兩個部分來處理上面的矛盾:頂半部和底半部。

頂半部就是我們用request_irq來注冊的中斷處理函數,這個函數要求能夠盡快結束,同時在其中調度底半部,讓底半部在之後來進行後續的耗時工作。

頂半部就不再說明了,就是上面的中斷處理函數,只是要求能夠盡快處理完成並返回,不要處理耗時工作。

底半部通常使用tasklet或者工作隊列來實現。

tasklet的特點和注意事項:

工作隊列的特點和注意事項:

⑸ linux 中cpu idel 是怎麼被統計出來的

1.CPU

CPU是linux主機的核心硬體,根據CPU型號在編譯時優化以獲得最佳性能。在/etc/profile文件中,含有系統環境和啟動程序的配置信息,採用-O9 來編譯程序時,運行速度也是最快的。編譯時使用-fomit-frame-poinetr選項,程序運行時訪問變數會使用堆棧。使用-mcpu=cpu-type和 -march= cpu-type時,gcc會對針對CPU型號進行優化。

如果CPU是Pentium Pro、PentiumⅡ、PentiumⅢ、AMD K6-2、K6-3、Althon,那麼在「/etc/profile」加入:

CFLAGS='-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro
-march=pentiumpro -fomit-
frame-pointer -fno-exceptions'

如果CPU是Pentium 、Pentium MMX、AMD K5 、IDT、Cyrix,那麼在「/etc/profile」加入:

export CFLAGS=-O3 -march=pentium -mcpu=pentium -
ffast-math -funroll-loops -fomit-frame-pointer -
fforce-mem -fforce-addr -malign-double -fno-exceptions

⑹ linux /var/log/ 記錄哪些日誌

以下介紹的是20個位於/var/log/ 目錄之下的日誌文件。其中一些只有特定版本採用,如dpkg.log只能在基於Debian的系統中看到。
/var/log/messages — 包括整體系統信息,其中也包含系統啟動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。
/var/log/dmesg — 包含內核緩沖信息(kernel ring buffer)。在系統啟動時,會在屏幕上顯示許多與硬體有關的信息。可以用dmesg查看它們。
/var/log/auth.log — 包含系統授權信息,包括用戶登錄和使用的許可權機制等。
/var/log/boot.log — 包含系統啟動時的日誌。
/var/log/daemon.log — 包含各種系統後台守護進程日誌信息。
/var/log/dpkg.log – 包括安裝或dpkg命令清除軟體包的日誌。
/var/log/kern.log – 包含內核產生的日誌,有助於在定製內核時解決問題。
/var/log/lastlog — 記錄所有用戶的最近信息。這不是一個ASCII文件,因此需要用lastlog命令查看內容。
/var/log/maillog /var/log/mail.log — 包含來著系統運行電子郵件伺服器的日誌信息。例如,sendmail日誌信息就全部送到這個文件中。
/var/log/user.log — 記錄所有等級用戶信息的日誌。
/var/log/Xorg.x.log — 來自X的日誌信息。
/var/log/alternatives.log – 更新替代信息都記錄在這個文件中。
/var/log/btmp – 記錄所有失敗登錄信息。使用last命令可以查看btmp文件。例如,」last -f /var/log/btmp | more「。
/var/log/cups — 涉及所有列印信息的日誌。
/var/log/anaconda.log — 在安裝Linux時,所有安裝信息都儲存在這個文件中。
/var/log/yum.log — 包含使用yum安裝的軟體包信息。
/var/log/cron — 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。
/var/log/secure — 包含驗證和授權方面信息。例如,sshd會將所有信息記錄(其中包括失敗登錄)在這里。
/var/log/wtmp或/var/log/utmp — 包含登錄信息。使用wtmp可以找出誰正在登陸進入系統,誰使用命令顯示這個文件或信息等。
/var/log/faillog – 包含用戶登錄失敗信息。此外,錯誤登錄命令也會記錄在本文件中。
除了上述Log文件以外, /var/log還基於系統的具體應用包含以下一些子目錄:
/var/log/httpd/或/var/log/apache2 — 包含伺服器access_log和error_log信息。
/var/log/lighttpd/ — 包含light HTTPD的access_log和error_log。
/var/log/mail/ – 這個子目錄包含郵件伺服器的額外日誌。
/var/log/prelink/ — 包含.so文件被prelink修改的信息。
/var/log/audit/ — 包含被 Linux audit daemon儲存的信息。
/var/log/samba/ – 包含由samba存儲的信息。
/var/log/sa/ — 包含每日由sysstat軟體包收集的sar文件。
/var/log/sssd/ – 用於守護進程安全服務。
除了手動存檔和清除這些日誌文件以外,還可以使用logrotate在文件達到一定大小後自動刪除。可以嘗試用vi,tail,grep和less等命令查看這些日誌文件。

⑺ linux系統上信號發送和信號接收講解

用於進程間通信,通信機制由操作系統保證,比較穩定。

在linux中可以通過kill -l查看所有信號的類型。

kill -信號類型 進程ID

int kill(pid_t pid, int sig);
入參pid :
pid > 0: 發送信號給指定的進程。
pid = 0: 發送信號給 與調用kill函數進程屬於同一進程組的所有進程。
pid < 0: 取|pid|發給對應進程組。
pid = -1:發送給進程有許可權發送的系統中所有進程。
sig :信號類型。
返回值 :成功:0;失敗:-1 (ID非法,信號非法,普通用戶殺init進程等權級問題),設置errno
以OpenHarmony源碼為例,應用ANR後,AbilityManagerService會通知應用mp堆棧信息,就是通過信號量做的。

頭文件位置 :
include <signal.h>
函數解釋 :
typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);
當接收到指定的信號signum時,就會跳轉到參數handler指定的函數執行。其中handler的入參是信號值。

函數原型

signum參數指出要捕獲的信號類型,act參數指定新的信號處理方式,oldact參數輸出先前信號的處理方式(如果不為NULL的話)。
sigaction結構體

sa_handler 信號處理函數
sa_mask 在處理該信號時可以暫時將sa_mask 指定的信號集擱置
sa_flags 指定一組修改信號行為的標志。 它由以下零個或多個的按位或組成
   SA_RESETHAND:當調用信號處理函數時,將信號的處理函數重置為預設值SIG_DFL
   SA_RESTART:如果信號中斷了進程的某個系統調用,則系統自動啟動該系統調用
   SA_NODEFER :一般情況下, 當信號處理函數運行時,內核將阻塞該給定信號。但是如果設置了 SA_NODEFER標記, 那麼在該信號處理函數運行時,內核將不會阻塞該信號
sa_restorer 是一個替代的信號處理程序,當設置SA_SIGINFO時才會用它。
相關函數
int sigemptyset( sigset_t *set);
sigemptyset()用來將參數set信號集初始化並清空。
執行成功則返回0,如果有錯誤則返回-1。
完整示例

閱讀全文

與sa文件linux相關的資料

熱點內容
ps入門必備文件 瀏覽:348
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114

友情鏈接