最小的权限+最少的服务=最大的安全
所以,無論是配置任何服務器,我們都必須把不用的服務關閉、把系統(tǒng)權限設
置到最小話,
這樣才能保證服務器最大的安全。
下面是
CentOS
服務器安全設置,
供大家參考。
?
??
轉載請注明出處及原文鏈接
?
一、注釋掉系統(tǒng)不需要的用戶和用戶組
?
???
注意:不建議直接刪除,當你需要某個用戶時,自己重新添加會很麻煩。
?
???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:?
二、關閉系統(tǒng)不需要的服務
?
??service?acpid?stop??chkconfig?acpid?off???#
停止服務,取消開機啟動
??
#
電源進階設定,常用在
?Laptop?
上
?
??service?autofs?stop??chkconfig?autofs?off??#
停用自動掛載檔桉系統(tǒng)與週
邊裝置
?
??service?bluetooth?stop??chkconfig??bluetooth??off???#
停用
Bluetooth
藍芽
?
??service?cpuspeed?stop??chkconfig??cpuspeed??off???#
停用控制
CPU
速度
主要用來省電
?
??service?cups?stop???chkconfig?cups?off????#
停用
?Common?UNIX?Printing?
System?
使系統(tǒng)支援印表機
?
??service?ip6tables?stop??chkconfig?ip6tables?off???#
禁止
IPv6?
?####################################################################
################################?
??
如果要恢復某一個服務,可以執(zhí)行下面操作
?
??service?acpid?start??chkconfig?acpid?on??
?
三、禁止非
root
用戶執(zhí)行
/etc/rc.d/init.d/
下的系統(tǒng)命令
?
??chmod?-R?700?/etc/rc.d/init.d/*?
??
chmod?-R?777?/etc/rc.d/init.d/*????#
恢復默認設置
?
??
系統(tǒng)運維
??
www.osyunwei.com
??
溫馨提醒:
qihang01
原創(chuàng)內(nèi)容?版權所有
,
轉
載請注明出處及原文鏈接
?
四、給下面的文件加上不可更改屬性,從而防止非授權用戶獲得權限
?
??chattr?+i?/etc/passwd?
??chattr?+i?/etc/shadow?
??chattr?+i?/etc/group?
??chattr?+i?/etc/gshadow?
??chattr?+i?/etc/services????#
給系統(tǒng)服務端口列表文件加鎖
,
防止未經(jīng)許可
的刪除或添加服務
???
??
lsattr??/etc/passwd???/etc/shadow??/etc/group??/etc/gshadow???/etc/
services???#
顯示文件的屬性
??
??
注意:執(zhí)行以上權限修改之后,就無法添加刪除用戶了。
?
??
如果再要添加刪除用戶,需要先取消上面的設置,等用戶添加刪除完成之后,
再執(zhí)行上面的操作
???
??chattr?-i?/etc/passwd?????#
取消權限鎖定設置
?
??chattr?-i?/etc/shadow
?
??chattr?-i?/etc/group
?
??chattr?-i?/etc/gshadow
?
??chattr?-i?/etc/services???#
取消系統(tǒng)服務端口列表文件加鎖
?
??
現(xiàn)在可以進行添加刪除用戶了,操作完之后再鎖定目錄文件
?
五、限制不同文件的權限
?
??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?
六、禁止使用
Ctrl+Alt+Del
快捷鍵重啟服務器
?
????cp?/etc/inittab??/etc/inittabbak?
????vi?/etc/inittab????#
注釋掉下面這一行
?
????#ca::ctrlaltdel:/sbin/shutdown?-t3?-r?now?
七、使用
yum?update
更新系統(tǒng)時不升級內(nèi)核,只更新軟件包
?
由于系統(tǒng)與硬件的兼容性問題,
有可能升級內(nèi)核后導致服務器不能正常啟動,
這
是非常可怕的,沒有特別的需要,建議不要隨意升級內(nèi)核。
?
????cp?/etc/yum.conf????/etc/yum.confbak?
????1
、修改
yum
的配置文件
?vi?/etc/yum.conf??
在
[main]
的最后添加
?
exclude=kernel*?
????2
、直接在
yum
的命令后面加上如下的參數(shù):
?
???????yum?--exclude=kernel*?update?
???????
查看系統(tǒng)版本
??cat?/etc/issue?
???????
查看內(nèi)核版本
??uname?-a?
八、關閉
Centos
自動更新
?
????chkconfig?--list?yum-updatesd??#
顯示當前系統(tǒng)狀態(tài)
?
????yum-updatesd????0:
關閉
??1:
關閉
??2:
啟用
??3:
啟用
??4:
啟用
??5:
啟用
??6:
關閉
?????
????service?yum-updatesd?stop??????#
關閉
??
開啟參數(shù)為
start?
????
停止
?yum-updatesd
:
????????????????????????????????????????[
確定
]??
????service?yum-updatesd?status???#
查看是否關閉
?
????yum-updatesd?
已停
??
????chkconfig?
--level?
35?
yum-updatesd?
off??#
禁止開啟啟動
(系統(tǒng)模式為
3
、
5
)
?
????chkconfig?
yum-updatesd?
off??#
禁止開啟啟動
(所有啟動模式全部禁止)
???
????chkconfig?--list?yum-updatesd??#
顯示當前系統(tǒng)狀態(tài)
?
????yum-updatesd????0:
關閉
??1:
關閉
??2:
啟用
??3:
關閉
??4:
啟用
??5:
關閉
??6:
關閉
?
九、關閉多余的虛擬控制臺
?
???
我們知道從控制臺切換到
?X?
窗口,
一般采用
?Alt-F7?
,
為什么呢?因為系統(tǒng)
默認定義了
?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?
十、刪除
MySQL
歷史記錄
????
用戶登陸數(shù)據(jù)庫后執(zhí)行的
SQL
命令也會被
MySQL
記錄在用戶目錄
的
.mysql_history
文件里。
?
????
如果數(shù)據(jù)庫用戶用
SQL
語句修改了數(shù)據(jù)庫密碼,也會因
.mysql_history
文
件而泄漏。
?
????
所以我們在
shell
登陸及備份的時候不要在
-p
后直接加密碼,而是在提示
后再輸入數(shù)據(jù)庫密碼。
?
????
另外這兩個文件我們也應該不讓它記錄我們的操作,以防萬一。
?
????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?
十一、修改
history
命令記錄
?
?????cp?/etc/profile???/etc/profilebak?
?????vi?/etc/profile?
?????
找到
?HISTSIZE=1000?
改為
?HISTSIZE=50?
十二、隱藏服務器系統(tǒng)信息
?
??????
在缺省情況下,
當你登陸到
linux
系統(tǒng),
它會告訴你該
linux
發(fā)行版的名
稱、版本、內(nèi)核版本、服務器的名稱。
?
??????
為了不讓這些默認的信息泄露出來,
我們要進行下面的操作,
讓它只顯示
一個
"login:"
提示符。
?
??????
刪除
/etc/issue
和
/etc/issue.net
這兩個文件,
或者把這
2
個文件改名,
效果是一樣的。
?
??????mv??/etc/issue?/etc/issuebak?
??????mv??/etc/issue.net???/etc/issue.netbak?
十三、優(yōu)化
Linux
內(nèi)核參數(shù)
?
??????cp?/etc/sysctl.conf??/etc/sysctl.confbak?
??????vi?/etc/sysctl.conf????#
在文件末尾添加以下內(nèi)容
?
??????net.ipv4.tcp_max_syn_backlog?=?65536?
??????net.core.netdev_max_backlog?=??32768?
??????net.core.somaxconn?=?32768?
??????net.core.wmem_default?=?8388608?
??????net.core.rmem_default?=?8388608?
??????net.core.rmem_max?=?16777216?
??????net.core.wmem_max?=?16777216?
??????net.ipv4.tcp_timestamps?=?0?
??????net.ipv4.tcp_synack_retries?=?2?
??????net.ipv4.tcp_syn_retries?=?2?
??????net.ipv4.tcp_tw_recycle?=?1?
??????#net.ipv4.tcp_tw_len?=?1?
??????net.ipv4.tcp_tw_reuse?=?1?
??????net.ipv4.tcp_mem?=?94500000?915000000?927000000?
??????net.ipv4.tcp_max_orphans?=?3276800?
??????#net.ipv4.tcp_fin_timeout?=?30?
??????#net.ipv4.tcp_keepalive_time?=?120?
??????net.ipv4.ip_local_port_range?
=?
10024??65535??#
(表示用于向外連接
的端口范圍。缺省情況下很小:
32768
到
61000??
注意:這里不要將最低值設的
太低,否則可能會占用掉正常的端口!
?
)
?
??????/sbin/sysctl?-p???#
使配置立即生效
?
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的最小的权限+最少的服务=最大的安全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 负载情况
- 下一篇: PHP函数篇之掌握ord()与chr()