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,然後在彈出的視窗中進行設置