Linux系統調優權威指南

来源:https://www.cnblogs.com/xningge/archive/2018/01/22/8331588.html
-Advertisement-
Play Games

1.關閉SELINUX功能1.1 修改配置文件,使關閉SELINUX永久生效sed 's#SELINUX=enforcing#SELINUX=disables#g' /etc/selinux/config >重啟系統生效1.2臨時關閉SELINUX[root@hadoop01 xningge]# s ...


1.關閉SELINUX功能
1.1 修改配置文件,使關閉SELINUX永久生效
sed 's#SELINUX=enforcing#SELINUX=disables#g' /etc/selinux/config ===>重啟系統生效
1.2臨時關閉SELINUX
[root@hadoop01 xningge]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
===>數字0表示Permissive 即警告提示,不會阻止操作,相當於disabled
===>數字1表示Enforcing 即SELINUX開啟狀態
[root@hadoop01 xningge]# setenforce 0 ====>臨時將SELINUX修改成Permissive狀態
[root@hadoop01 xningge]# getenforce ===>查看SELINUX當前狀態
Permissive

2.設定運行級別
Linux下的7個運行級別:

0:系統停機狀態,系統預設運行級別不能設置為0,否則不能正常啟動,機器關閉。
1:單用戶工作狀態,root許可權,用於系統維護,禁止遠程登陸,就像Windows下的安全模式登錄。
2:多用戶狀態,沒有NFS支持。
3:完整的多用戶模式,有NFS,登陸後進入控制台命令行模式。
4:系統未使用,保留一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本電腦的電池用盡時,可以切換到這個模式來做一些設置。
5:X11控制台,登陸後進入圖形GUI模式,XWindow系統。
6:系統正常關閉並重啟,預設運行級別不能設為6,否則不能正常啟動。運行init6機器就會重啟。

2.1
[root@hadoop01 xningge]# grep 5:initdefault /etc/inittab ===>系統預設運行級別
id:5:initdefault:

[root@hadoop01 xningge]# runlevel ===>查看運行級別
N 5

[root@hadoop01 xningge]# init 3 ===> 設置運行級別

3.關閉iptables防火牆
1.
[root@hadoop01 xningge]# /etc/init.d/iptables stop ===>臨時關閉防火牆
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]

[root@hadoop01 xningge]# chkconfig iptables off ===》關閉開機自啟動命令

4.sudo 控制用戶對系統命令的使用許可權
4.1第一步 visudo ===》相當於vi /etc/sudoers
4.2第二步 xningge ALL=(ALL) NOPASSWD:ALL ===>大約在98行
4.3第三步查看是否修改成功
[xningge@hadoop01 ~]$ sudo grep xningge /etc/sudoers
xningge ALL=(ALL) NOPASSWD:ALL
4.4 查看當前用戶被授予的sudo許可權命令集合
[xningge@hadoop01 ~]$ sudo -l

5.Linux中文顯示設置
5.1查看Linux當前使用語言
[root@hadoop01 ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
5.2設置成中文語言
[root@hadoop01 ~]# sudo echo 'LANG="zh_CN.UTF-8"' >/etc/sysconfig/i18n
[root@hadoop01 ~]# source /etc/sysconfig/i18n ===》 使修改文件生效
[root@hadoop01 ~]# echo $LANG ===》查看當前使用語言 相當於
zh_CN.UTF-8

6.設置Linux伺服器時間同步
6.1
[root@hadoop01 ~]# /usr/sbin/ntpdate ntp1.aliyun.com
24 Dec 21:45:17 ntpdate[31374]: step time server 182.92.12.11 offset -28774.000359 sec
6.2
[root@hadoop01 ~]# which ntpdate
/usr/sbin/ntpdate ===>註意這個目錄,centos5為 /sbin
6.3利用定時任務每5分鐘自動執行一次
[root@hadoop01 ~]# echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1'>>/var/spool/cron/root
[root@hadoop01 ~]# crontab -l ===>這個命令其實就是寫一個定時任務,相當於執行 crontab -e然後加入內容
#time sync by xningge at 2017-12-24
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

7.歷史記錄數及登錄超時環境變數設置
7.1 設置閑置賬號超時時間
[xningge@hadoop01 ~]$ export TMOUT=10 ===》設置連接會話的超時時間 臨時有效
[xningge@hadoop01 ~]$ timed out waiting for input: auto-logout
7.2設置Linux的命令行歷史記錄數
[root@hadoop01 ~]# export HISTSIZE=5 ===》
[root@hadoop01 ~]# history
39 crontab -e
40 su - xingge
41 su - xningge
42 export HISTSIZE=5
43 history

7.3設置歷史記錄文件的命令的數量變數 (~/.bash_history)
[root@hadoop01 ~]# export HISTFILESIZE=5
[root@hadoop01 ~]# cat ~/.bash_history
which ls
which iptables
getenforce
cat /etc/selinux/config
export TMOUT=10

7.4使上述命令永久生效
[root@hadoop01 ~]# echo 'export TMOUT=300'>>/etc/profile
[root@hadoop01 ~]# echo 'export HISTSIZE=5'>>/etc/profile
[root@hadoop01 ~]# echo 'export HISTFILESIZE=5'>>/etc/profile
[root@hadoop01 ~]# tail -3 /etc/profile
export TMOUT=300
export HISTSIZE=5
export HISTFILESIZE=5
[root@hadoop01 ~]# source /etc/profile

7.5
TMOUT=300 ===》連接的超時時間控制變數
HISTSIZE=5 ===》命令行的歷史記錄數量變數
HISTFILESIZE=5 ===》歷史記錄文件的命令數量變數
8.調整Linux系統文件描述符數量
8.1查看Linux伺服器文件描述符設置情況 預設大小是1024
[xningge@hadoop01 ~]$ ulimit -n
1024
8.2對於高併發業務Linux伺服器來說,需要調整
[xningge@hadoop01 ~]$ vim /etc/security/limits.conf 在這個文件結尾加一句 (* - nofile 65535)

9. 定時清理郵件服務臨時目錄垃圾文件
9.1手動清理
[root@hadoop01 ~]# find /var/spool/postfix/maildrop/ -type f|xargs rm -f ===>適合centos 6 的Postfix服務
[root@hadoop01 ~]# find /var/spool/clientmqueue/ -type f|xargs rm -f ===>適合centos 5 的Sendmall服務
9.2定時清理
[root@hadoop01 ~]# mkdir -p /server/scripts
[root@hadoop01 ~]# echo "find /var/spool/postfix/maildrop/ -type f|xargs rm -f" >/server/scripts/del_file.sh
[root@hadoop01 ~]# cat /server/scripts/del_file.sh
find /var/spool/postfix/maildrop/ -type f|xargs rm -f
[root@hadoop01 ~]# echo "00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1" >> //var/spool/cron/root
[root@hadoop01 ~]# crontab -l
#time sync by xningge at 2017-12-24
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1
00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1
9.3查看磁碟inode 總量、剩餘量、使用量
[root@hadoop01 ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 1234576 122241 1112335 10% /
tmpfs 125514 6 125508 1% /dev/shm
/dev/sda1 51200 38 51162 1% /boot
10.隱藏Linux版本信息顯示
10.1查看終端顯示內容的實際存放文件
[root@hadoop01 ~]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m
[root@hadoop01 ~]# cat /etc/issue.net
CentOS release 6.9 (Final)
Kernel \r on an \m
10.2清楚Linux系統版本及內核信息
[root@hadoop01 ~]# > /etc/issue
[root@hadoop01 ~]# cat /etc/issue
[root@hadoop01 ~]# > /etc/issue.net
[root@hadoop01 ~]# cat /etc/issue.net
[root@hadoop01 ~]#

11.鎖定關鍵系統文件,防止被提權篡改
11.1上鎖
[root@hadoop01 ~]# chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
11.2 解鎖
[root@hadoop01 ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

12.3.防止黑客利用,chattr 轉移
[root@hadoop01 ~]# mv /usr/bin/chattr /usr/bin/xningge1
[root@hadoop01 ~]# xningge1 +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@hadoop01 ~]# chattr -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
-bash: /usr/bin/chattr: 沒有那個文件或目錄
[root@hadoop01 ~]# xningge1 -i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@hadoop01 ~]# xningge1 +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
[root@hadoop01 ~]#

12.清除多餘的系統虛擬賬號
13.為grub菜單加密碼
目的:防止他人修改grub進行內核等啟動設置,以及用單用戶模式啟動進行破解root密碼等操作
設定步驟:
(1)先利用/sbin/grub-md5-crypt 產生一個MD5密碼串
[xningge@hadoop01 ~]$ /sbin/grub-md5-crypt
Password:
Retype password:
$1$X85We/$cdytOERYCKB.aPBqbL9ef.
(2)修改grub.conf文件
在splashimage和title之間加一行(password --md5 $1$X85We/$cdytOERYCKB.aPBqbL9ef.)

14. 禁止Linux系統被ping
14.1禁止命令為
[root@hadoop01 ~]# echo "net.ipv4.icmp_echo_ignore_all=1" >>/etc/sysctl.conf
[root@hadoop01 ~]# tail -1 /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
14.2還原禁止ping操作
刪除/etc/sysctl.conf 中的net.ipv4.icmp_echo_ignore_all=1 保存即可。
並執行如下命令
[root@hadoop01 ~]# echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_all

14.3因為禁止ping 我們測試連網情況就不可以了,做好的做法就是通過iptables 設置讓特定的ip可以ping
iptables -t filter -I INPOT -p icmp --icmp-type 8 -i eth0 -s 10.0.0.0/24 -j ACCEPT

15.升級具有典型漏洞的軟體版本
15.1查看相關軟體的版本號
[root@hadoop01 ~]# rpm -qa openssl openssh bash
bash-4.1.2-48.el6.x86_64
openssh-5.3p1-122.el6.x86_64
openssl-1.0.1e-57.el6.x86_64
15.2升級已知漏洞的軟體版本到最新
[root@hadoop01 ~]# yum install openssl openssh bash -y

16.Linux伺服器內核參數優化


17.Linux系統安全最小化原則說明


18.更改ssh伺服器端遠程登錄的配置


19.精簡開機系統自啟動
19.1重要的開機自啟動服務
1》sshd:遠程連接Linux伺服器時需要用到這個服務程式,所以必須要開啟,否則Linux伺服器就無法提供遠程連接服務了。
2》rsyslog: 日誌相關軟體,這是操作系統提供的一種機制,系統的守護程式通常會使用rsyslog程式將各種信息寫到各個系統日誌文件中。在centos 6 以前此服務的名字為syslog。
3》network:系統啟動時,若想激活/關閉各個網路介面,則應考慮開啟此服務。
4》crond:該服務用於周期性的執行系統及用戶配置的任務計劃,有要周期性的執行任務時,就要開啟。
5》sysstat:是一個軟體包,包含檢測系統性能及效率的一組工具。這些工具對於我們收集系統性能數據很有幫助,比如CPU使用率、硬碟和網路吞吐數據等
sysstat軟體包集成的主要工具為:
iostat:工具提供CPU使用率及硬碟吞吐效率的數據
mpstat:工具提供與單個或多個處理器相關的數據
sar:工具負責收集、報告並存儲系統活躍的信息

19.2設置開機自啟動服務的常用方法
方法1:執行ntsysv命令,然後在彈出的視窗中進行設置。
方法2:執行setup命令->system service,然後在彈出的視窗中進行設置


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • byte short char都是隱性int類型都可以,以及他們的包裝類 long 不行 String也可以,要求case中也為String類型 ...
  • &與&&都是邏輯與 不同的是&左右兩邊的判斷都要進行,而&&是短路與,當&&左邊條件為假則不用再判斷右邊條件,所以效率更高 例如,對於if(str != null && !str.equals(“”))表達式,當str為null時,後面的表達式不會執行,所以不會出現NullPointerExcept ...
  • 一個RabbitMQ消息代理是一個由一個或多個Erlang節點組成的邏輯組,其中的每個節點都共用users, virtual hosts, queues, exchanges, bindings, and runtime parameters。我們把這些相關節點組成的集合作為一個cluster(集群 ...
  • Python版本:3.5.2 日期:2018/1/21 ~~~~ __Author__ = "Lance " coding = utf 8 from urllib import request from urllib import parse from http import cookiejar f ...
  • 1.創建Maven項目 1.1File->New->Project 1.2填寫GroupId和ArtifactId 1.3直接Finish,然後等一會,等Maven載入完 完成以後的項目結構 2.配置Project Structure 2.1點擊如圖所示按鈕 2.2Project項按照預設配置 2. ...
  • 近期在學習DotNetty,遇到不少的問題。由於dotnetty是次netty的.net版本的實現。導致在網上敘述dotnetty的原理,以及實現技巧方面的東西較少,這還是十分惱人的。在此建議學習和使用Dotnetty的和位小伙伴,真心閱讀下netty的相關書籍,如《netty權威指南》。 閑話少說 ...
  • 最新下載地址:https://pan.baidu.com/s/1gg4zxaN, 具體參看官網MultiColorWin或者百度 搜索 關於這個軟體,後面只是功能修改,沒有必要再發表博客了 本軟體主要讓用戶能夠自定義文件夾和磁盤的樣式,直接上幾張圖 01、安裝界面 02 、軟體截圖 1、在個性化文件 ...
  • Writing queries Version:5.x 英文原文地址: "Writing queries" 將數據索引到了 Elasticsearch 之後,就可以準備搜索它們了。Elasticsearch 提供了一個強大的查詢 DSL ,使得用戶可以定義個性化的搜索邏輯。這個 DSL 是基於 JS ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...