centos服務器安全設置

8、更改SSH端口,最好改爲10000以上,別人掃描到端口的機率也會下降

不允許使用低版本的SSH協議
vi /etc/ssh/sshd_config
將#protocol 2,1改爲
protocol 2
(注:centos 6下已默認取消了低版本協議)

將PORT改爲1000以上端口
vi /etc/ssh/sshd_config
Port 10000

同時,創建一個普通登錄用戶,並取消直接root登錄
useradd 'username'
passwd 'username'

vi /etc/ssh/sshd_config
PermitRootLogin no       #取消root直接遠程登錄
X11Forwarding no  #(服務器一般不會開X,所以X轉發就不要開了吧) 取消X11轉發

9、關閉那些不需要的服務 ,記住少開一個服務,就少一個危險。

以下僅列出需要啓動的服務,未列出的服務一律關閉:

複製代碼
代碼如下:

#setup
acpid
anacron
cpuspeed
crond
irqbalance #僅當服務器CPU爲S.M.P架構或支持雙核心、HT技術時,才需開啓,否則關閉。
microcode_ctl
network
random #(centos 6 裏沒有該服務)
sendmail
sshd
syslog
yum-updatesd


10、啓用iptables 防火牆,對增加系統安全有許多好處。設置好防火牆的規則。

複製代碼
代碼如下:

vi /etc/sysconf/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
# allow local loopback connections
-A INPUT -i lo -j ACCEPT
# drop INVALID connections
-A INPUT -m state --state INVALID -j DROP
-A OUTPUT -m state --state INVALID -j DROP
-A FORWARD -m state --state INVALID -j DROP
# allow all established and related
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# add anymore rules here
COMMIT


三、限制網絡訪問

1.NFS訪問

如果您使用NFS網絡文件系統服務,應該確保您的/etc/exports具有最嚴格的訪問權限設置,也就是意味着不要使用任何通配符、不允許root寫權限並且只能安裝爲只讀文件系統。編輯文件/etc/exports並加入如下兩行。

/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.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”命令進行檢查。
# chmod 600 /etc/inetd.conf
然後,編輯/etc/inetd.conf禁止以下服務。
ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth

如果您安裝了ssh/scp,也可以禁止掉Telnet/FTP。爲了使改變生效,運行如下命令:
#killall -HUP inetd

默認情況下,多數Linux系統允許所有的請求,而用TCP_WRAPPERS增強系統安全性是舉手之勞,您可以修改/etc/hosts.deny和/etc/hosts.allow來增加訪問限制。例如,將/etc/hosts.deny設爲”ALL: ALL”可以默認拒絕所有訪問。然後在/etc/hosts.allow文件中添加允許的訪問。例如,”sshd: 192.168.1.10/255.255.255.0 gate.openarch.com”表示允許IP地址192.168.1.10和主機名gate.openarch.com允許通過SSH連接。

配置完成後,可以用tcpdchk檢查:
# tcpdchk

tcpchk是TCP_Wrapper配置檢查工具,它檢查您的tcp wrapper配置並報告所有發現的潛在/存在的問題。

3.登錄終端設置

/etc/securetty文件指定了允許root登錄的tty設備,由/bin/login程序讀取,其格式是一個被允許的名字列表,您可以編輯/etc/securetty且註釋掉如下的行。


複製代碼
代碼如下:

tty1
# tty2
# tty3
# tty4
# tty5
# tty6

這時,root僅可在tty1終端登錄。

4.避免顯示系統和版本信息。

如果您希望遠程登錄用戶看不到系統和版本信息,可以通過一下操作改變/etc/inetd.conf文件:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

加-h表示telnet不顯示系統信息,而僅僅顯示”login:”。

5.修改相應配置文件停止ipv6。
#vi /etc/modprobe.conf
alias net-pf-10 off
alias ipv6 off
#shutdown -r now

四、防止攻擊

1.阻止ping 如果沒人能ping通您的系統,安全性自然增加了。爲此,可以在/etc/rc.d/rc.local文件中增加如下一行:

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

2.防止IP欺騙

編輯host.conf文件並增加如下幾行來防止IP欺騙攻擊。
order bind,hosts
multi off
nospoof on

3.防止DoS攻擊

對系統所有的用戶設置資源限制可以防止DoS類型攻擊。如最大進程數和內存使用數量等。例如,可以在/etc/security/limits.conf中添加如下幾行:

* hard core 0
* hard rss 5000  #( 本行或許沒用,man limits.conf 顯示 maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
* hard nproc 50

然後必須編輯/etc/pam.d/login文件檢查下面一行是否存在。

session required /lib/security/pam_limits.so

上面的命令禁止調試文件,限制進程數爲50並且限制內存使用爲5MB。

經過以上的設置,您的Linux服務器已經可以對絕大多數已知的安全問題和網絡攻擊具有免疫能力,但一名優秀的系統管理員仍然要時刻注意網絡安全動態,隨時對已經暴露出的和潛在安全漏洞進行修補。

五、內核參數調整

本節的設置似乎與centos 6下不同,請酌情參考
(centos6可參看本文)


複製代碼
代碼如下:

#vi /etc/sysctl.conf
sysctl -w net.ipv4.conf.default.accept_source_route=0
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
#sysctl -w net.ipv4.icmp_echo_ignore_all=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
sysctl -w net.ipv4.ip_conntrack_max=65535
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_syn_retries=1
sysctl -w net.ipv4.tcp_fin_timeout=5
sysctl -w net.ipv4.tcp_synack_retries=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.route.gc_timeout=100
sysctl -w net.ipv4.tcp_keepalive_time=500
sysctl -w net.ipv4.tcp_max_syn_backlog=10000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章