CentOS 6.5 安全加固

CentOS 6.5安全加固及性能優化

咱們能夠經過調整系統參數來提升系統內存、CPU、內核資源的佔用,經過禁用沒必要要的服務、端口,來提升系統的安全性,更好的發揮系統的可用性。經過本身對Linux瞭解,對系統調優作了以下小結。mysql

說明:常常玩Linux系統的朋友多多少少也知道些系統參數優化和怎樣加強系統安全性,系統默認的一些參數都是比較保守的,因此咱們能夠經過調整系統參數來提升系統內存、CPU、內核資源的佔用,經過禁用沒必要要的服務、端口,來提升系統的安全性,更好的發揮系統的可用性。經過本身對Linux瞭解,對系統調優作了以下小結:sql


一、清空防火牆並設置規則shell

[root@localhost~]# iptables -F   #清楚防火牆規則 數據庫

[root@localhost~]# iptables -L   #查看防火牆規則 vim

[root@localhost~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 緩存

[root@localhost~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT 安全

[root@localhost~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT 性能優化

[root@localhost~]# iptables -A INPUT -p udp --dport 53 -j ACCEPT bash

[root@localhost~]# iptables -A INPUT -p udp --dport 123 -j ACCEPT 服務器

[root@localhost~]# iptables -A INPUT -p icmp -j DROP

[root@localhost~]# iptables -P INPUT DROP 

[root@localhost~]# /etc/init.d/iptables save 


二、添加普通用戶sudo權限


[root@localhost~]# useradd   [用戶] 

[root@localhost~]# echo "123456" | passwd --stdin   [用戶]  #設置密碼 

[root@localhost~]# vi /etc/sudoers  #或visudo打開,添加user用戶全部權限 

root    ALL=(ALL)       ALL 

[用戶]    ALL=(ALL)       ALL 


三、禁止root遠程登陸


[root@localhost~]# vi /etc/ssh/sshd_config 

PermitRootLogin  no 

PermitEmptyPasswords no #禁止空密碼登陸 

UseDNS   no #關閉DNS查詢 


四、關閉沒必要要的服務


五、註釋掉系統不須要的用戶和用戶組

cp /etc/passwd /etc/passwdbak    #修改以前先備份

vi /etc/passwd   #編輯用戶,在前面加上#註釋掉此行


#adm:x:3:4:adm:/var/adm:/sbin/nologin

#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

#sync:x:5:0:sync:/sbin:/bin/sync

#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

#halt:x:7:0:halt:/sbin:/sbin/halt

#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

#operator:x:11:0:operator:/root:/sbin/nologin

#games:x:12:100:games:/usr/games:/sbin/nologin

#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #註釋掉ftp匿名帳號


cp /etc/group /etc/groupbak  #修改以前先備份

vi /etc/group   #編輯用戶組,在前面加上#註釋掉此行


#adm:x:4:root,adm,daemon

#lp:x:7:daemon,lp

#uucp:x:14:uucp

#games:x:20:

#dip:x:40:

#news:x:9:13:news:/etc/news:



六、關閉重啓 Ctrl+Alt+delete 


[root@localhost ~]# vi /etc/init/control-alt-delete.conf 

#exec /sbin/shutdown -r now "Control-Alt-Deletepressed"  #註釋掉 


七、調整文件描述符大小

[root@localhost ~]# echo '* - nofile 65535 ' >> /etc/security/limits.conf

重啓生效

[root@localhost ~]# ulimit -n

65535


八、去除系統相關信息


[root@localhost ~]# echo "Welcome to Server" >/etc/issue 

[root@localhost ~]# echo "Welcome to Server" >/etc/redhat-release 


九、修改history 記錄


[root@localhost ~]# vi /etc/profile  #修改記錄20個 

HISTSIZE=20


十、內核參數優化

[root@localhost ~]# vi /etc/sysctl.conf    #末尾添加以下參數 

net.ipv4.tcp_syncookies = 1            #1是開啓SYN Cookies,當出現SYN等待隊列溢出時,啓用Cookies來處,理,可防範少許SYN***,默認是0關閉 

net.ipv4.tcp_tw_reuse = 1             #1是開啓重用,容許講TIME_AIT sockets從新用於新的TCP鏈接,默認是0關閉 

net.ipv4.tcp_tw_recycle = 1            #TCP失敗重傳次數,默認是15,減小次數可釋放內核資源 

net.ipv4.ip_local_port_range = 4096 65000  #應用程序可以使用的端口範圍 

net.ipv4.tcp_max_tw_buckets = 5000     #系統同時保持TIME_WAIT套接字的最大數量,若是超出這個數字,TIME_WATI套接字將馬上被清除並打印警告信息,默認180000 

net.ipv4.tcp_max_syn_backlog = 4096    #進入SYN寶的最大請求隊列,默認是1024 

net.core.netdev_max_backlog =  10240  #容許送到隊列的數據包最大設備隊列,默認300 

net.core.somaxconn = 2048              #listen掛起請求的最大數量,默認128 

net.core.wmem_default = 8388608        #發送緩存區大小的缺省值 

net.core.rmem_default = 8388608        #接受套接字緩衝區大小的缺省值(以字節爲單位) 

net.core.rmem_max = 16777216           #最大接收緩衝區大小的最大值 

net.core.wmem_max = 16777216           #發送緩衝區大小的最大值 

net.ipv4.tcp_synack_retries = 2        #SYN-ACK握手狀態重試次數,默認5 

net.ipv4.tcp_syn_retries = 2           #向外SYN握手重試次數,默認4 

net.ipv4.tcp_tw_recycle = 1            #開啓TCP鏈接中TIME_WAIT sockets的快速回收,默認是0關閉 

net.ipv4.tcp_max_orphans = 3276800     #系統中最多有多少個TCP套接字不被關聯到任何一個用戶文件句柄上,若是超出這個數字,孤兒鏈接將當即復位並打印警告信息 

net.ipv4.tcp_mem = 94500000 915000000 927000000 

net.ipv4.tcp_mem[0]:低於此值,TCP沒有內存壓力; 

net.ipv4.tcp_mem[1]:在此值下,進入內存壓力階段; 

net.ipv4.tcp_mem[2]:高於此值,TCP拒絕分配socket。內存單位是頁,可根據物理內存大小進行調整,若是內存足夠大的話,可適當往上調。上述內存單位是頁,而不是字節。


配置完畢以後重啓系統便可生效


十一、給一下文件加不可更改屬性,從而防止非受權用戶得到權限


chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow

chattr +i /etc/services #給系統服務端口列表文件加鎖,防止未經許可的刪除或添加服務

lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services #顯示文件的屬性


注:執行以上權限修改以後,就沒法添加刪除用戶了。果再要添加刪除用戶,須要先取消上面的設置,等用戶添加刪除完成以後,再執行上面的操做。

chattr -i /etc/passwd #取消權限鎖定設置

chattr -i /etc/shadow

chattr -i /etc/group

chattr -i /etc/gshadow

chattr -i /etc/services #取消系統服務端口列表文件加鎖

如今能夠進行添加刪除用戶了,操做完以後再鎖定目錄文件


十二、禁止非root用戶執行/etc/rc.d/init.d下的系統命令

chmod -R 700 /etc/rc.d/init.d/*

chmod -R 777 /etc/rc.d/init.d/* #恢復默認設置



1三、限制不通文件的權限

chattr +a .bash_history #避免刪除.bash_history或者重定向到/dev/null

chattr +i .bash_history

chmod 700 /usr/bin #恢復 chmod 555 /usr/bin

chmod 700 /bin/ping #恢復 chmod 4755 /bin/ping

chmod 700 /usr/bin/vim #恢復 chmod 755 /usr/bin/vim

chmod 700 /bin/netstat #恢復 chmod 755 /bin/netstat

chmod 700 /usr/bin/tail #恢復 chmod 755 /usr/bin/tail

chmod 700 /usr/bin/less #恢復 chmod 755 /usr/bin/less

chmod 700 /usr/bin/head#恢復 chmod 755 /usr/bin/head

chmod 700 /bin/cat #恢復 chmod 755 /bin/cat

chmod 700 /bin/uname #恢復 chmod 755 /bin/uname

chmod 500 /bin/ps #恢復 chmod 755 /bin/ps


1四、使用yum  update  更新系統時不升級內核,只更新軟件包

因爲系統與硬件的兼容性問題,有可能升級內核後致使服務器不能正常啓動,這是很是可怕的,沒有特別的須要,建議不要隨意升級內核。


cp /etc/yum.conf /etc/yum.confbak


修改yum的配置文件 vi /etc/yum.conf 在[main]的最後添加 exclude=kernel*

直接在yum的命令後面加上以下的參數:yum --exclude=kernel* update

查看系統版本cat /etc/issue

查看內核版本uname -a



1五、關閉Centos自動更新

chkconfig --list yum-updatesd #顯示當前系統狀態

yum-updatesd   #0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

service yum-updatesd stop #關閉 開啓參數爲start

# 中止 yum-updatesd: [肯定]

service yum-updatesd status #查看是否關閉

yum-updatesd # 已停

chkconfig --level 35 yum-updatesd off #禁止開啓啓動(系統模式爲三、5)

chkconfig yum-updatesd off #禁止開啓啓動(全部啓動模式所有禁止)

chkconfig --list yum-updatesd #顯示當前系統狀態

yum-updatesd # 0:關閉 1:關閉 2:啓用 3:關閉 4:啓用 5:關閉 6:關閉


1六、關閉多餘的虛擬控制檯

咱們知道從控制檯切換到 X 窗口,通常採用 Alt-F7 ,爲何呢?由於系統默認定義了 6 個虛擬控制檯,

因此 X 就成了第7個。實際上,不少人通常不會須要這麼多虛擬控制檯的,修改/etc/inittab ,註釋掉那些你不須要的。

cp /etc/inittab /etc/inittabbak

vi /etc/inittab


# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

#2:2345:respawn:/sbin/mingetty tty2

#3:2345:respawn:/sbin/mingetty tty3

#4:2345:respawn:/sbin/mingetty tty4

#5:2345:respawn:/sbin/mingetty tty5

#6:2345:respawn:/sbin/mingetty tty6


1七、刪除[mysql]歷史命令記錄

用戶登錄[數據庫]後執行的SQL命令也會被MySQL記錄在用戶目錄的.mysql_history文件裏。若是數據庫用戶用SQL語句修改了數據庫密碼,也會因.mysql_history文件而泄漏。因此咱們在shell登錄及備份的時候不要在-p後直接加密碼,而是在提示後再輸入數據庫密碼。另外這兩個文件咱們也應該不讓它記錄咱們的操做,以防萬一。


cd

cp .bash_history .bash_historybak #備份

cp .mysql_history .mysql_historybak

rm .bash_history .mysql_history

ln -s /dev/null .bash_history

ln -s /dev/null .mysql_history


1八、服務器禁止ping

cp /etc/rc.d/rc.local /etc/rc.d/rc.localbak

vim /etc/rc.d/rc.local #在文件末尾增長下面這一行

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

參數0表示容許 1表示禁止


1九、防止IP欺騙

編輯host.conf文件並增長以下幾行來防止IP欺騙***。

vim /etc/host.conf


order bind,hosts

multi off

nospoof on


20、自動註銷帳號登陸

vim /etc/profile

修改"HISTSIZE="

後面加入下面這行:

TMOUT = 300

300,表示5分。這樣,若是系統中登錄的用戶在5分鐘內都沒有動做,那麼系統會自動註銷這個帳戶。


2一、限制SU切換

vim /etc/pam.d/su

文件中找到#auth required pam_wheel.so use_uid,去掉前面的註釋#。


2二、只容許某一個IP地址登陸服務器

vim /etc/hosts.deny (禁止全部)

sshd :ALL   

vi /etc/hosts.allow 

容許內容

書寫格式(改爲自自須要的IP或IP段)

ssh容許單個ip

sshd:192.168.220.1

ssh容許ip段

sshd:192.168.220.

telnet容許單個ip

in.telnetd:192.168.220.1

telnet容許ip段

in.telnetd:192.168.221.

相關文章
相關標籤/搜索