Linux之【安裝系統后的調優和安全設置】


關閉SElinux功能

 •修改配置文件使其永遠生效

第一種修改方法vi

vi /etc/sysconfig/selinuc 或者 vi /etc/selinux/config
修改: SELINUX
=disabled

第二種修改方法

sed -i 's/SELINUX=enforcing/SELINUX=disabled' /etc/selinux/conf # 直接修改讀取內容而不輸出到終端

•臨時關閉SElinux

setenforce 0 # 臨時關閉SElinux
getenforce # 查看SElinux狀態

•提示:修改完SElinux配置文件后重啟系統才會生效,可以配合使用setenforce 0這個命令,這樣在重啟前后都可以使SElinux處於關閉狀態

設定系統運行級別為3(文本模式)

•系統運行級別為3代表使用文本命令行模式來管理linux系統

grep 3:initdefault /etc/inittab 
3:initdefault # 系統默認的運行級別,工作中常用,即文本模式

runlevel # 查看當前系統運行級別

init 5 # 只有安裝桌面才可以執行startx

•七種運行級別:

運行級別0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
運行級別1:單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸
運行級別2:多用戶狀態(沒有NFS)
運行級別3:完全的多用戶狀態(有NFS),登陸后進入控制台命令行模式
運行級別4:系統未使用,保留
運行級別5:X11控制台,登陸后進入圖形GUI模式
運行級別6:系統正常關閉並重啟,默認運行級別不能設為6,否則不能正常啟動

•chkconfig操作命令:

chkconfig --list  #顯示所有運行系統服務的運行狀態
chkconfig --list sshd  #只顯示指定的系統服務sshd的運行狀態
chkconfig  --add sshd  #增加一個系統服務sshd,默認所有級別都關閉
chkconfig --level xx sshd on/off  #設置sshd的運行級別開啟或關閉
chkconfig --del sshd  #刪除系統服務sshd

精簡開機系統自啟動

•五個企業環境中開機自啟動的服務;

sshd:遠程連接linux服務器必須開啟

rsyslog:日志相關軟件

network:網絡服務

crond:系統和用戶配置的計划任務周期性進行

sysstat:收集系統性能數據,有利於判斷系統是否正常

•sysstat軟件包介紹:

安裝:yum -y install sysstat

sadc工具:

位於/usr/lib64/sa/目錄下,sadc是將數據寫在一個二進制文件中,如果要查看內容要用sadf工具查看

執行/usr/lib64/sa/sadc -
輸出會保存在/var/log/sall中
需要用sadf或者sar -f /var/log/sa/sa11  # -f 從一個二進制文件中入去內容
Linux 2.6.32-504.30.3.el6.x86_64 (alex)         2016年06月11日  _x86_64_       (1 CPU)     # 輸出信息

應用舉例:

1、查看cpu使用率:
sar -u 1 5  # 表示每一秒統計一次,一共統計5次
2、查看網絡吞吐量
sar -n DEV 2 5  # 表示每兩秒統計一次,一共統計5次

iostat:可以收集cpu使用狀況,磁盤IO狀態

mpstat:一般用於多處理器中cpu使用率的統計

詳細參考:http://www.361way.com/use-sysstat/1521.html

•sysstat軟件包繼承的主要工具有:

iostat提供CPU使用率以及硬盤吞吐效率的數據

mpstst提供單個或多個處理器的數據

sar收集、報告並存儲系統活躍信息

•設置開機自啟動服務的常見方法

方法一:ntsysv

方法二:setup

查看運行級別是3的服務:

chkconfig --list |grep 3:啟用

關閉iptables防火牆

對於高並發高流量的業務不適合開啟iptables防火牆,一般這種業務需要在前端配置硬件防火牆

#關閉iptables防火牆
/etc/init.d/iptables stop
#關閉開機自啟動
chkconfig iptables off
#查看iptables啟動級別
chkconfig --list |grep iptables

更改ssh服務器端遠程登入配置

•windows服務器端遠程端口:3389,管理員為administrator,普通用戶為guest;linux服務器遠程端口為:22,管理員為root,普通用戶隨意

vi /etc/ssh/sshd_config
Port 2222 #修改自己的ssh端口
PermitRootLogin no #禁止用root登入自己的系統
PermitEmptyPasswords no #禁止密碼為空的用戶登入
UseDNS no #對遠程主機進行反向解析,會減慢ssh連接速度
GSSAPIAuthentication no #解決ssh遠程連接慢的問題

•更高級的ssh安全策略

更改ssh的監聽ip

通過防火牆限制使用內網ip連接服務器

通過撥號VPN服務器接通內網然后訪問這些服務器

通過sudo控制用戶對系統命令的使用權限

•為了安全以及管理方便,需要將使用root權限的用戶加入sudo管理,用戶可使用自己的賬號登入系統,用root的權限來管理系統

visudo == vi /etc/sudoers
#第98行
root    ALL=(ALL)    ALL
alex    ALL=(ALL)    /usr/sbin/useradd,/usr/sbin/userdel #用戶alex能夠使用useradd和userdel命令

•給普通用戶創建root的權限

visudo
# 第98行
alex    ALL=(ALL)    NOPASSWD:ALL    #alex擁有root所有權限不用輸入密碼

查看/root目錄時需要sudo ls /root 通過sudo命令獲取權限

注意:通過sudo授權后命令格式為:sudo 命令;

sudo -l 可以查看該用戶被授權的sudo命令集合

linux中文顯示設置

•GBK用2個字節表示一個中文,UTF-8用3個字節表示一個中文

vi /etc/sysconfig/i18n
LANG="zh_CN.GBK"  # 中文格式的GBK  
LANG="zh_CN.UTF-8"  # utf-8編碼  <------------推薦
LANG="en_US.GBK"  # 英文格式的GBK
LANG="en_US.UTF-8"  # utf-8編碼

 •使用secureCRT可以設置編碼格式,必須和系統設置的一樣

Option--Session Option--Appearance
選項--會話選項--外觀-- 字符編碼

設置linux服務器時間同步

linux的時間同步服務為ntp服務,機器少時使用,機器多了可以布置內網的時間服務器

which ntpdate
/usr/sbin/ntpdate #輸出
#更新系統時間
/usr/sbin/ntpdate time.nist.gov 或者 ntp.sjtu.edu.cn  可以去網上找合適的時間服務器

歷史記錄數以及登入超時環境變量設置

查看歷史命令:history

vi /etc/profile
TIMEOUT=10 #鏈接超時時間
HISTSIZE=10 #命令行的歷史記錄數
HISTFILESIZE=10 #歷史記錄文件的命令數量

調整linux系統文件描述符數量

文件描述符是由無符號整數表示的句柄,進程使用它來標識打開的文件;對於內核而言,所有打開的文件都是通過文件描述符引用的,打開一個文件,內核向進程返回一個文件描述符。。

查看文件描述符的命令

ulimit -n

方法一:
vi /etc/security/limits.conf
*    -    nofile    65535    # 最后一行添加
方法二:
echo '*    -    nofile    65535' >> /etc/security/limits.conf

配置完成后需要重新登入才會生效

加入開機啟動項

vi /etc/rc.local
ulimit -HSn 65535

linux服務器內核參數優化

pass

定時清理郵件服務臨時目錄垃圾文件

CentOS 5 系統默認安裝Sendmail服務,郵件臨時存放位置:/var/spool/clientmqueue

CenterOS 6沒有安裝Sendmail服務,而是改裝Postfix服務,郵件臨時存放位置:/var/spool/postfix/maildrop

臨時存放位置如果被垃圾文件填滿會導致inode數量不夠用,需要手動清理

•Centos 5

find /var/spool/clientmqueue/ -type f |xargs rm -f

•Centos 6

find /var/spool/postfix/maildrop -type f |xargs rm -f

df -i 查看磁盤inode的總量、使用量、剩余量

隱藏linux版本的信息(登入時)

登入顯示的版本信息存放在:/etc/issue

cat /etc/issue
# 輸出
CentOS release 6.6 (Final)
Kernel \r on an \m
# 執行命令
> /etc/issue # 清除文件內容,再次登入時則不顯示linux的版本信息

鎖定關鍵系統文件,防止被提權篡改

chstt,文件在/user/bin/下,為了防止被修改可以做軟連

上鎖系統文件chattr,以后任何用戶修改這個文件都不會成功,除非解鎖

+:代表在原有屬性的基礎上

i:immutable不可修改的

chattr +i /etc/passwd

解鎖系統文件

chattr -i /etc/passwd

查看文件的屬性lsattr

lsattr /etc/passwd

清除多余的系統虛擬賬號

不是必須的優化選項,pass

為grub菜單加密碼

目的:防止別人修改grub進行內核啟動項設置以及用當用戶模式修改root密碼,安裝系統后的設置如下:

1、生成md5秘鑰
/sbin/grub-md5-crypt

2、修改/etc/grub.conf
在splashimage和title之間加入
password  --md5  秘鑰

設置完成后管理grub就會提示輸入密碼

禁止linux系統被ping

為了增加系統的安全性。可以禁止我們的linux系統被ping,可惜修改iptables來設置

一般不用

echo 'net.ipv4.icmp_echo_ignore_all=1'  >> /etc/sysctl.conf

sysctl -p 重載信息並更新啟動

如果要恢復:

> /etc/sysctl.conf

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

升級openssl,openssh,bash

1、查看
rpm -qa openssl openssh bash

2、安裝最新版本
yun -y install openssl openssh bash

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM