Linux系統最佳化加固

來源:互聯網
上載者:User

Linux系統最佳化加固

本文Linux系統:

[root@xxxxxx~]# cat /etc/issue

Red Hat Enterprise Linux Server release 5.8 (Tikanga)

[root@xxxxxx ~]# uname -a

Linux xxxxxx 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux

最佳化一、/etc/security/limits.conf

最佳化二、/etc/sysctl.conf

1、/etc/security/limits.conf

limits.conf的後端是這樣工作的:limits.conf是pam_limits.so的設定檔,然後/etc/pam.d/下的應用程式調 用pam_***.so模組。譬如說,當使用者訪問伺服器,服務程式將請求發送到PAM模組,PAM模組根據服務名稱在/etc/pam.d目錄下選擇一個 對應的服務檔案,然後根據服務檔案的內容選擇具體的PAM模組進行處理。

Tips:當使用者登入主機,會調用pam_limits.so

cat /etc/pam.d/login

session required /lib64/security/pam_limits.so

1.1、

pam_limits.so模組的主要功能是限制使用者會話過程中對各種系統資源的使用方式。預設情況下該模組的設定檔是/etc/security/limits.conf。而該設定檔的基本格式實際上是由4個欄位組成的表,其中具體限制格式:

username|@groupname  type  resource  limit

username|@groupname:設定需要被限制的使用者名稱,組名前面加@和使用者名稱區別。也可以用萬用字元*來做所有使用者的限制。

type:有 soft,hard 和 -,

soft 指的是當前系統生效的設定值。

hard 表明系統中所能設定的最大值。

soft 的限制不能比har 限制高。

用 - 就表明同時設定了 soft 和 hard 的值。

resource:

- core - 限制核心檔案的大小

- date - 最大資料大小

- fsize - 最大檔案大小

- memlock - 最大鎖定記憶體位址空間

- nofile - 開啟檔案的最大數目

- rss - 最大持久設定大小

- stack - 最大棧大小

- cpu - 以分鐘為單位的最多 CPU 時間

- noproc - 進程的最大數目

- as - 地址空間限制

- maxlogins - 此使用者允許登入的最大數目

- maxsyslogins  - 使用者登入最大數目

- priority - 使用者進程優先順序(負數值)

- locks - 最大locks檔案最值

- sigpending - 最大數量的等待訊號

- msgqueue - postfix訊息佇列最大記憶體使用量空間

- nice -  允許使用最大“好心值”

- rtprio -  無特權進程中最大實際優及級

Tips:

要使 limits.conf 檔案配置生效,必須要確保 pam_limits.so 檔案被加入到開機檔案中。

查看 /etc/pam.d/login 檔案中有:

session required /lib/security/pam_limits.so

1.2、主機參考配置:

#<domain>      <type>  <item>        <value>

#

#*              soft    core            0

#*              hard    rss            10000

#@student        hard    nproc          20

#@faculty        soft    nproc          20

#@faculty        hard    nproc          50

#ftp            hard    nproc          0

#@student        -      maxlogins      4

*              soft    core            unlimited

*              hard    core            unlimited

*              soft    fsize          unlimited

*              hard    fsize          unlimited

*              soft    data            unlimited

*              hard    data            unlimited

*              soft    nproc          1048756

*              hard    nproc          1048756

*              soft    stack          unlimited

*              hard    stack          unlimited

*              soft    nofile          1048576

*              hard    nofile          1048576

*              hard    sigpending      1056639

*              soft    sigpending      1056639

# End of file

1.2、

Ulimit命令

設定限制    可以把命令加到profile檔案裡,也可以在/etc/security/limits.conf檔案中定義

限制。

命令參數

-a      顯示所有限制

-c      core檔案大小的上限

-d      進程資料區段大小的上限

-f      shell所能建立的檔案大小的上限

-m    駐留記憶體大小的上限

-s      堆棧大小的上限

-t      每秒可佔用的CPU時間上限

-p    管道大小

-n    開啟檔案數的上限

-u    進程數的上限

-v    虛擬記憶體的上限

2、/etc/sysctl.conf

Sysctl是一個允許您改變正在運行中的Linux系統的介面。它包含一些 TCP/IP 堆棧和虛擬記憶體系統的進階選項, 這可以讓有經驗的管理員提高令人信服的系統效能。用sysctl可以讀取設定超過五百個系統變數。基於這點,sysctl(8) 提供兩個功能:讀取和修改系統設定。

調優的核心變數存在兩種主要介面:sysctl命令和/proc檔案系統;二者是相對應的關係;

proc中與進程無關的所有資訊都被移植到sysfs中。

IPV4協議棧的 sysctl參數主要是sysctl.net.core、sysctl.net.ipv4,對應的/proc檔案系統是/proc/sys/net /ipv4和/proc/sys/net/core。只有核心在編譯時間包含了特定的屬性,該參數才會出現在核心中。

對於核心參數應該謹慎調節,這些參數通常會影響到系統的整體效能。核心在啟動時會根據系統的資源情況來初始化特定的變數,這種初始化的調節一般會滿足通常的效能需求。

應用程式通過socket系統調用和遠程主機進行通訊,每一個socket都有一個讀寫緩衝區。讀緩衝區儲存了遠程主機發送過來的資料,如果緩衝區已滿, 則資料會被丟棄,寫緩衝期儲存了要發送到遠程主機的資料,如果寫緩衝區已慢,則系統的應用程式在寫入資料時會阻塞。可知,緩衝區是有大小的。

socket緩衝區預設大小:

/proc/sys/net/core/rmem_default    對應net.core.rmem_default

/proc/sys/net/core/wmem_default    對應net.core.wmem_default

上面是各種類型socket的預設讀寫緩衝區大小,然而對於特定類型的socket則可以設定獨立的值覆蓋預設值大小。例如tcp類型的socket就可以用/proc/sys/net/ipv4/tcp_rmem和tcp_wmem來覆蓋。

socket緩衝區最大值:

/proc/sys/net/core/rmem_max        對應net.core.rmem_max

/proc/sys/net/core/wmem_max        對應net.core.wmem_max

/proc/sys/net/core/netdev_max_backlog    對應 net.core.netdev_max_backlog

該參數定義了當介面收到包的速率大於核心處理包的速率時,裝置的輸入隊列中的最大報文數。

/proc/sys/net/core/somaxconn        對應 net.core.somaxconn

通過listen系統調用可以指定的最大accept隊列backlog,當排隊的請求串連大於該值時,後續進來的請求串連會被丟棄。

/proc/sys/net/core/optmem_max          對應 net.core.optmem_max

每個socket的副緩衝區大小。

TCP/IPV4核心參數:

    在建立socket的時候會指定socke協議和地址類型。TCP socket緩衝區大小是他自己控制而不是由core核心緩衝區控制。

/proc/sys/net/ipv4/tcp_rmem    對應net.ipv4.tcp_rmem

/proc/sys/net/ipv4/tcp_wmem    對應net.ipv4.tcp_wmem

以上是TCP socket的讀寫緩衝區的設定,每一項裡面都有三個值,第一個值是緩衝區最小值,中間值是緩衝區的預設值,最後一個是緩衝區的最大值,雖然緩衝區的值不受core緩衝區的值的限制,但是緩衝區的最大值仍舊受限於core的最大值。

/proc/sys/net/ipv4/tcp_mem

該核心參數也是包括三個值,用來定義記憶體管理的範圍,第一個值的意思是當page數低於該值時,TCP並不認為他為記憶體壓力,第二個值是進入記憶體的壓力區 域時所達到的頁數,第三個值是所有TCP sockets所允許使用的最大page數,超過該值後,會丟棄後續報文。page是以頁面為單位的,為系統中socket全域分配的記憶體容量。

/proc/sys/net/ipv4/tcp_window_scaling      對應net.ipv4.tcp_window_scaling

管理TCP的視窗縮放特性,因為在tcp頭部中聲明接收緩衝區的長度為26位,因此視窗不能大於64K,如果大於64K,就要開啟視窗縮放。

/proc/sys/net/ipv4/tcp_sack    對應net.ipv4.tcp_sack

管理TCP的選擇性應答,允許接收端向發送端傳遞關於位元組流中丟失的序號,減少了段丟失時需要重傳的段數目,當段丟失頻繁時,sack是很有益的。

/proc/sys/net/ipv4/tcp_dsack  對應net.ipv4.tcp_dsack

是對sack的改進,能夠檢測不必要的重傳。

/proc/sys/net/ipv4/tcp_fack    對應net.ipv4.tcp_fack

對sack協議加以完善,改進tcp的擁塞控制機制。

TCP的串連管理:

/proc/sys/net/ipv4/tcp_max_syn_backlog    對應net.ipv4.tcp_max_syn_backlog

每一個串連請求(SYN報文)都需要排隊,直至本機伺服器接收,該變數就是控制每個連接埠的 TCP SYN隊列長度的。如果串連請求多餘該值,則請求會被丟棄。

/proc/sys/net/ipv4/tcp_syn_retries    對應net.ipv4.tcp_syn_retries

控制核心向某個輸入的SYN/ACK段重新發送相應的次數,低值可以更好的檢測到遠程主機的串連失敗。可以修改為3

/proc/sys/net/ipv4/tcp_retries1    對應net.ipv4.tcp_retries1

該變數設定放棄回應一個tcp串連請求前,需要進行多少次重試。

/proc/sys/net/ipv4/tcp_retries2    對應net.ipv4.tcp_retries2

控制核心向已經建立串連的遠程主機重新發送資料的次數,低值可以更早的檢測到與遠程主機失效的串連,因此伺服器可以更快的釋放該串連,可以修改為5

TCP串連的保持:

/proc/sys/net/ipv4/tcp_keepalive_time        對應net.ipv4.tcp_keepalive_time

如果在該參數指定的秒數內串連始終處於空閑狀態,則核心向用戶端發起對該主機的探測

/proc/sys/net/ipv4/tcp_keepalive_intvl    對應net.ipv4.tcp_keepalive_intvl

該參數以秒為單位,規定核心向遠程主機發送探測指標的時間間隔

/proc/sys/net/ipv4/tcp_keepalive_probes  對應net.ipv4.tcp_keepalive_probes

該參數規定核心為了檢測遠程主機的存活而發送的探測指標的數量,如果探測指標的數量已經使用完畢仍舊沒有得到用戶端的響應,即斷定用戶端不可達,關閉與該用戶端的串連,釋放相關資源。

/proc/sys/net/ipv4/ip_local_port_range  對應net.ipv4.ip_local_port_range

規定了tcp/udp可用的本地連接埠的範圍。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.