歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

linux系統幾個方向安全優化

1.精簡安裝包(最小化安裝)
2.禁用開機不需要啟動的服務
3.優化內核參數/etc/sysctl.conf
4.增加系統文件描述符、堆棧等配置
5.禁止root啟動,修改SSH端口為特殊端口。
6.有外網IP的機器要開啟配置防火牆,配置SELINUX
7.清除無用的默認系統帳戶或組(非必須)
8.鎖定敏感文件,如/etc/passwd(非必須)
9.配置服務器和互聯網時間同步。
10.配置sudo對普通用戶權限精細控制。

 

setup或chkconfig去掉開機不必啟動的服務
chkconfig –list |grep 3:on
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off
清理開機自啟動的服務
#for service in `chkconfig –list|grep 3:on|awk ‘{print $1}’`; do chkconfig –level 3 $service off;done

#for service in `chkconfig –list |grep 3:on|sed ‘s/0:off.*$//g’ `;do chkconfig –level 3 $service off;done
開啟for service in network syslog sshd;do chkconfig –level 3$service on;done

優化內核參數/etc/sysctl.conf
1)更改文件描述符:
echo ‘* - nofile 65535′ >>/etc/security/limits.conf
退出重新登錄終端窗口,生效驗證查看:
[root@yan ~]# ulimit -n
65535
提示:也有人把ulimit -SHn 65535命令加入到/etc/rc.local,然後每次重起生效。
調整內核參數文件/etc/sysctl.conf
生產環境的某個服務器的配置:
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.ip_conntrack_max = 25000000
net.ipv4.netfilter.ip_conntrack_max=25000000
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
以上內核參數的簡要說明如下:
net.ipv4.tcp_fin_timeout = 2
#→表示如果套接字由本端要求關閉,這個參數決定了它保持在FIN-WAIT-2狀態的時間。
net.ipv4.tcp_tw_reuse = 1
#→表示開啟重用。允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉。
net.ipv4.tcp_tw_recycle = 1
#→表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉。
提示:以上兩個參數為了防止生產環境下 time_wait過多設置的。
##################################################################
net.ipv4.tcp_syncookies = 1
#→表示開啟SYN Cookies。當出現SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN攻擊,默認為0,表示關閉;
net.ipv4.tcp_keepalive_time = 1200
#→表示當keepalive起用的時候,TCP發送keepalive消息的頻度。缺省是2小時,改為20分鐘。
net.ipv4.ip_local_port_range = 4000 65000
#→表示用於向外連接的端口范圍。缺省情況下很小。
net.ipv4.tcp_max_syn_backlog = 8192
#→表示SYN隊列的長度,默認為1024,加大隊列長度為8192,可以容納更多等待連接的網絡連接數。
net.ipv4.tcp_max_tw_buckets = 30000
#→表示系統同時保持TIME_WAIT套接字的最大數量,如果超過這個數字,TIME_WAIT套接字將立刻被清除並打印警告信息。默認為 180000,對於Apache、Nginx等服務器來說可以調整低一點,如:改為5000-20000。
上幾行的參數可以很好地減少TIME_WAIT套接字數量,但是對於Squid,效果卻不大。
此項參數可以控制TIME_WAIT套接字的最大數量,避免Squid服務器被大量的TIME_WAIT套接字拖死。

調整內核參數文件/etc/sysctl.conf後,需執行/sbin/sysctl -p使得修改生效。

禁止root啟動,修改SSH端口為特殊端口。
Port 22 #→ssh連接默認的端口,必須要改。
PermitRootLogin no #→root用戶黑客都知道的,禁止它遠程登陸。
PermitEmptyPasswords no #→禁止空密碼登陸
UseDNS no #→不使用DNS 指定 sshd(8) 是否應該對遠程主機名進行反向解析,以檢查此主機名是否與其IP地址真實對應。默認值為”yes”。

注:如果在安裝時落下了安裝需要的軟件包組,可以在這裡執行如下命令來安裝。
[root@centos ~]#yum groupinstall “Development Tools”
[root@centos ~]#yum groupinstall ” x software development”
[root@mode yum.repos.d]# yum grouplist

字符集問題:
echo $LANG
vi /etc/sysconfig/i18n
#LANG=”en_US.UTF-8″
LANG=”zh_CN.GB18030″
SYSFONT=”latarcyrheb-sun16″
[root@mode yum.repos.d]# source /etc/sysconfig/i18n
[root@mode yum.repos.d]# echo $LANG
zh_CN.GB18030

服務器時間同步:
#echo ‘*/5 * * * * /usr/sbin/ntpdate time.windows.com>/dev/null 2>&1′ >>/var/spool/cron/root

hwclock查看硬件時間
date 查看系統時間
剛開始裝機好時,物理機和虛擬機時間,硬件和系統時間是同步的,運行一段時間後,可能硬件時鐘和系統時鐘稍有偏差
 

Copyright © Linux教程網 All Rights Reserved