CentOS 5.5安全配置

來源:互聯網
上載者:User

CentOS 5.5安全配置
一、系統安全記錄檔案
CentOS內部的記錄檔案是檢測是否有網路入侵的重要線索,如果系統是直接連到Internet,發現有很多人對系統做Telnet/FTP登入嘗試, 可以運行”#more/var/log/secure|greprefused”來檢查系統所受到的攻擊,以便採取相應的對策,如使用SSH來替換 Telnet/rlogin等。
二、啟動和登入安全性
1.BIOS安全
設定BIOS密碼且修改引導次序禁止從磁碟片啟動系統。
2.使用者口令
使用者口令是Linux安全的一個基本起點,很多人使用的使用者口令過於簡單,這等於給侵入者敞開了大門,雖然從理論上說只要有足夠的時間和資源可以利用,就 沒有不能破解的使用者口令,但選取得當的口令是難於破解的。較好的使用者口令是那些只有他自己容易記得並理解的一串字元,並且絕對不要在任何地方寫出來。
修改改密碼長度需要編譯login.defs檔案
vi/etc/login.defs
PASS_MIN_LEN8
3.注釋掉不需要的使用者和使用者組
應該禁止所有預設的被作業系統本身啟動的並且不必要的帳號,第一次安裝系統時就應該這麼做,Linux提供了很多預設帳號,而帳號越多,系統就越容易受到攻擊。
vi/etc/passwd
#userdeladm
#userdellp
#userdelsync
#userdelshutdown
#userdelhalt
#userdelnews
#userdeluucp
#userdeloperator
#userdelgames
#userdelgopher
#userdelftp
vi/etc/group
#groupdeladm
#groupdellp
#groupdelnews
#groupdeluucp
#groupdelgames
#groupdeldip
#groupdelpppusers
4.口令檔案
chattr命令給下面的檔案加上不可更改屬性,從而防止非授權使用者獲得許可權。
#chattr+i/etc/passwd
#chattr+i/etc/shadow
#chattr+i/etc/group
#chattr+i/etc/gshadow
5.禁止CtrlAltDelete重新啟動機器命令
修改/etc/inittab檔案,將”ca::ctrlaltdel:/sbin/shutdown-t3-rnow”一行注釋掉。
然後重新設定/etc/rc.d/init.d/目錄下所有檔案的許可許可權,運行如下命令:
#chmod-R700/etc/rc.d/init.d/*
這樣便僅有root可以讀、寫或執行上述所有指令檔。
6.限制su命令
當不想任何人能夠su作為root,可以編輯/etc/pam.d/su檔案,增加如下兩行:
authsufficient/lib/security/pam_rootok.sodebug
authrequired/lib/security/pam_wheel.sogroup=isd
這時,僅isd組的使用者可以su作為root。此後,如果希望使用者admin能夠su作為root,可以運行如下命令:
#usermod-G10admin
7.刪減登入資訊
預設情況下,登入提示資訊包括Linux發行版、核心版本名和伺服器主機名稱等,對於一台安全性要求較高的機器來說這樣泄漏了過多的資訊,可以編輯/etc/rc.d/rc.local將輸出系統資訊的如下行注釋掉。
#Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou
#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot.
#echo“”>/etc/issue
#echo“$R”>>/etc/issue
#echo“Kernel$(uname-r)on$a$(uname-m)”>>/etc/issue
#cp-f/etc/issue/etc/issue.net
#echo>>/etc/issue
然後,進行如下操作:
#rm-f/etc/issue
#rm-f/etc/issue.net
#touch/etc/issue
#touch/etc/issue.net
8、更改SSH連接埠,最好改為10000以上,別人掃描到連接埠的機率也會下降
不允許使用低版本的SSH協議
vi/etc/ssh/ssd_config
將#protocol2,1改為
protocol2
將PORT改為1000以上連接埠
vi/etc/ssh/sshd_config
Port10000
同時,建立一個普通登入使用者,並取消直接root登入
useradd'username'
passwd'username'
vi/etc/ssh/sshd_config
PermitRootLoginno#取消root直接遠程登入
9、關閉那些不需要的服務,記住少開一個服務,就少一個危險。
以下僅列出需要啟動的服務,未列出的服務一律關閉:
#setup
acpid
anacron
cpuspeed
crond
irqbalance\\僅當伺服器CPU為S.M.P架構或支援雙核心、HT技術時,才需開啟,否則關閉。
microcode_ctl
network
random
sendmail
sshd
syslog
yum-updatesd
10、啟用iptables防火牆,對增加系統安全有許多好處。設定好防火牆的規則。
vi/etc/sysconf/iptables
*filter
:INPUTDROP[0:0]
:FORWARDDROP[0:0]
:OUTPUTACCEPT[0:0]
#allowlocalloopbackconnections
-AINPUT-ilo-jACCEPT
#dropINVALIDconnections
-AINPUT-mstate--stateINVALID-jDROP
-AOUTPUT-mstate--stateINVALID-jDROP
-AFORWARD-mstate--stateINVALID-jDROP
#allowallestablishedandrelated
-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
#addanymoreruleshere
COMMIT
三、限制網路訪問
1.NFS訪問
使用NFS網路檔案系統服務,應該確保/etc/exports具有最嚴格的存取權限設定,也就是意味著不要使用任何萬用字元、不允許root寫入權限並且只能安裝為唯讀檔案系統。編輯檔案/etc/exports並加入如下兩行。
/dir/to/exporthost1.mydomain.com(ro,root_squash)
/dir/to/exporthost2.mydomain.com(ro,root_squash)
/dir/to/export是想輸出的目錄,host.mydomain.com是登入這個目錄的機器名,ro意味著mount成唯讀系統,
root_squash禁止root寫入該目錄。為了使改動生效,運行如下命令。
#/usr/sbin/exportfs-a
2.Inetd設定
首先要確認/etc/inetd.conf的所有者是root,且檔案使用權限設定為600。設定完成後,可以使用”stat”命令進行檢查。
#chmod600/etc/inetd.conf
然後,編輯/etc/inetd.conf禁止以下服務。
ftptelnetshellloginexectalkntalkimappop-2pop-3fingerauth
如果安裝了ssh/scp,也可以禁止掉Telnet/FTP。為了使改變生效,運行如下命令:
#killall-HUPinetd
預設情況下,多數Linux系統允許所有的請求,而用TCP_WRAPPERS增強系統安全性是舉手之勞
可以修改/etc/hosts.deny和/etc/hosts.allow來增加訪問限制。例如,將/etc/hosts.deny設為”ALL:ALL”可以預設拒絕所有訪問,然後在/etc/hosts.allow檔案中添加允許的訪問。
例如,”sshd:192.168.10.10/255.255.255.0gate.openarch.com”表示
允許IP地址192.168.10.10和主機名稱gate.openarch.com允許通過SSH串連。
配置完成後,可以用tcpdchk檢查:
#tcpdchk
tcpchk是TCP_Wrapper配置檢查工具,它檢查tcpwrapper配置並報告所有發現的潛在/存在的問題。
3.登入終端設定
/etc/securetty檔案指定了允許root登入的tty裝置,由/bin/login程式讀取,其格式是一個被允許的名字列表,可以編輯/etc/securetty且注釋掉如下的行。
tty1
#tty2
#tty3
#tty4
#tty5
#tty6
這時,root僅可在tty1終端登入。
4.避免顯示系統和版本資訊。
如果希望遠程登入使用者看不到系統和版本資訊,可以通過一下操作改變/etc/inetd.conf檔案:
telnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h
加-h表示telnet不顯示系統資訊,而僅僅顯示”login:”。
5.修改相應設定檔停止ipv6。
#vi/etc/modprobe.conf 
aliasnet-pf-10off
aliasipv6off
#shutdown-rnow   
四、防止攻擊
1.阻止ping如果沒人能ping通系統,安全性自然增加了,為此,我們可以在/etc/rc.d/rc.local檔案中增加如下一行

#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all
2.防止IP欺騙
編輯host.conf檔案並增加如下幾行來防止IP欺騙攻擊。
orderbind,hosts
multioff
nospoofon
3.防止DoS攻擊
對系統所有的使用者佈建資源限制可以防止DoS類型攻擊,如最大進程數和記憶體使用量數量等。
例如,可以在/etc/security/limits.conf中添加如下幾行:
*hardcore0
*hardrss5000
*hardnproc20
然後必須編輯/etc/pam.d/login檔案檢查下面一行是否存在。
sessionrequired/lib/security/pam_limits.so
上面的命令禁止調試檔案,限制進程數為50並且限制記憶體使用量為5MB。
經過以上的設定,Linux伺服器已經可以對絕大多數已知的安全問題和網路攻擊具有免疫能力,但一名優秀的系統管理員仍然要時刻注意網路安全動態,隨時對已經暴露出的和潛在安全性漏洞進行修補。
五、核心參數調整
#vi/etc/sysctl.conf
sysctl-wnet.ipv4.conf.default.accept_source_route=0
sysctl-wnet.ipv4.icmp_echo_ignore_broadcasts=1
#sysctl-wnet.ipv4.icmp_echo_ignore_all=1
sysctl-wnet.ipv4.icmp_ignore_bogus_error_responses=1
sysctl-wnet.ipv4.ip_conntrack_max=65535
sysctl-wnet.ipv4.tcp_syncookies=1
sysctl-wnet.ipv4.tcp_syn_retries=1
sysctl-wnet.ipv4.tcp_fin_timeout=5
sysctl-wnet.ipv4.tcp_synack_retries=1
sysctl-wnet.ipv4.tcp_syncookies=1
sysctl-wnet.ipv4.route.gc_timeout=100
sysctl-wnet.ipv4.tcp_keepalive_time=500
sysctl-wnet.ipv4.tcp_max_syn_backlog=10000

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.