LINUX服务器安全加固⽅法整理
服务器安全加固⽅法整理:
1)–设置启⽤空闲激活、屏幕锁定、屏保和空闲激活时间
#
gconftool-2 --direct \
--config-source xml:readwrite:/etc/l.mandatory \
--type bool \
--set/apps/gnome-screensaver/idle_activation_enabled true
#
gconftool-2 --direct \
--config-source xml:readwrite:/etc/l.mandatory \
-
-type bool \
--set/apps/gnome-screensaver/lock_enabled true
#
gconftool-2 --direct \
--config-source xml:readwrite:/etc/l.mandatory \
--type string \
--set/apps/gnome-screensaver/mode blank-only
#
gconftool-2 --direct \
--config-source xml:readwrite:/etc/l.mandatory \
--type string \
-
-set/apps/gnome-screensaver/idle_delay 15
2)–设置密码复杂度
1、执⾏备份:
#`cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak`
2、修改策略设置:
可使⽤pam pam_cracklib module或pam_passwdqc module实现密码复杂度,两者不能同时使⽤。pam_cracklib主要参数说明:
tretry=N:重试多少次后返回密码修改错误
difok=N:新密码必需与旧密码不同的位数
dcredit=N:N >= 0密码中最多有多少个数字;N < 0密码中最少有多少个数字
lcredit=N:⼩写字母的个数
ucredit=N:⼤写字母的个数
credit=N:特殊字母的个数
minclass=N:密码组成(⼤/⼩字母,数字,特殊字
#`vi /etc/pam.d/system-auth`
password requisite pam_pwquality.so这⼀⾏后增加 minlen=8 minclass=2
3)–设置登录超时、csh shell 下的⾃动超时变量
1、执⾏备份:
#cp -p /etc/profile /etc/profile_bak
#cp -p /etc/csh.cshrc /etc/csh.cshrc_bak
2、在/etc/profile⽂件增加以下两⾏:
#vi /etc/profile
TMOUT=180
export TMOUT
3、修改/etc/csh.cshrc⽂件,添加如下⾏:
#vi /etc/csh.cshrc
set autologout=30
改变这项设置后,重新登录才能有效
4)–设置⼝令锁定策略
1、执⾏备份:
#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
2、修改策略设置:
#vi /etc/pam.d/system-auth
增加下⾏代码到第⼆⾏
auth required pam_tally2.so deny=6 onerr=fail no_magic_root unlock_time=120保存退出;
5)–修改密码有效期及最⼩长度
1、执⾏备份:
#cp -p /etc/login.defs /etc/login.defs_bak
2、修改策略设置:
#vi /etc/login.defs
修改PASS_MIN_LEN的值为8
修改PASS_MAX_DAYS的值为90
按要求修改PASS_MIN_DAYS/PASS_WARN_AGE的值
保存退出
6)–配置登录提⽰-是否更改telnet警告Banner
步骤1
修改⽂件/etc/motd的内容,如没有该⽂件,则创建它。
#echo "Authorized users only. All activity may be monitored and reported" > /etc/motd
步骤 2 修改Telnet回显信息
修改⽂件/etc/issue 和/etc/issue中的内容:
#echo "Authorized users only. All activity may be monitored and reported" > /etc/issue
#echo "Authorized users only. All activity may be monitored and reported" > /etc/issue
7)–禁⽌root⽤户远程登录系统
1、执⾏备份:
#cp -p /etc/securetty /etc/securetty_bak
#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
2、禁⽌root⽤户远程登录系统
#vi /etc/securetty
#注释形如pts/x的⾏,保存退出,则禁⽌了root从telnet登录。
#vi /etc/ssh/sshd_config
修改PermitRootLogin设置为no并不被注释,保存退出,则禁⽌了root从ssh登录。
3、重启SSHD服务
#service sshd restart
8)–锁定⽆⽤帐户
1、执⾏备份:
#cp -p /etc/passwd /etc/passwd_bak
#cp -p /etc/shadow /etc/shadow_bak
2、锁定⽆⽤帐户:
#vi /etc/shadow
1
在需要锁定的⽤户名的密码字段前⾯加!,如test:!QD1ju03H$LbV4vdBbpw.MY0hZ2D/Im1:14805:0:99999:7::: 9)–umask 027表⽰默认创建新⽂件权限为750 也就是rxwr-x—
1、执⾏备份:
cp-p /etc/profile /etc/profile_bak
cp-p /etc/csh.login /etc/csh.login_bak
cp-p /etc/csh.cshrc /etc/csh.cshrc_bak
cp-p /etc/bashrc /etc/bashrc_bak
cp-p /root/.bashrc /root/.bashrc_bak
cp –p /root/.cshrc /root/.cshrc_bak
2、修改umask设置:
#vi /etc/profile
#vi /etc/csh.login
#vi /etc/csh.cshrc
#vi /etc/bashrc
#vi /root/.bashrc
#vi /root/.cshrc
最后⼀⾏增加 umask 027,保存退出。
10)–配置提⽰信息
1、执⾏如下命令创建ssh banner信息⽂件:
#touch /etc/sshbanner
#chown bin:bin /etc/sshbanner
#chmod 644 /etc/sshbanner
#echo "Authorized users only. All activity may be monitored and reported" > /etc/sshbanner
2、修改/etc/ssh/sshd_config⽂件,添加如下⾏:
# vi /etc/ssh/sshd_config
Banner /etc/sshbanner
步骤 3 重启sshd服务:
#service sshd restart
11)–防⽌5个最近使⽤过的密码被⽤来设置为新密码
1、执⾏备份:
#cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
2、创建⽂件/etc/security/opasswd,并设置权限:
#touch /etc/security/opasswd
#chown root:root /etc/security/opasswd
#chmod 600 /etc/security/opasswd
2、修改策略设置:
#vi /etc/pam.d/system-auth
增加 password required pam_unix.so remember=5
12)–关闭 ICMP 路由重定向
1、备份⽂件:
#cp -p /f /f_bak
2、执⾏:
#vi /f
加上f.all.accept_redirects=0
执⾏
/sbin/sysctl -p
13)–增加不能通过ftp登录的⽤户
1、修改ftpusers⽂件,增加不能通过ftp登录的⽤户
⾸先需确定ftpusers⽂件位置,可以通过以下命令知道:
#cat /etc/pam.d/vsftpd
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed 其中file=/etc/vsftpd/ftpusers即为当前系统上的ftpusers⽂件。
修改⽂件(假设⽂件为/etc/ftpusers):
# vi /etc/vsftpd/ftpusers
在⽂件中增加以下⽤户,则该⽤户均不允许通过ftp登录:
sys
nuucp
listen
noaccess
nobody4
14)关闭匿名⽤户登⼊
#vi /etc/f
yes调整为no
anonymous_enable=NO
15)增加操作⽇志配置
1.创建/etc/profile.d/cmdhistory.sh配置⽂件
vi /etc/profile.d/cmdhistory.sh
增加以下内容linux重定向
#to avoid sourcing this file more than once
if["$AUDIT_INCLUDED" == "$$"];  then
return
else
declare -r AUDIT_INCLUDED="$$"
fi
export HISTTIMEFORMAT='%F %T '
export HISTCONTROL=
REMOTEHOSTNAME=`who am i | awk '{ print $NF  }'|awk -F'(''{ print $NF}'|awk -F')''{ print $1}'`
if[!$REMOTEHOSTNAME]; then
REMOTEHOST="127.0.0.1"
REMOTEHOSTNAME="localhost"
elif [["$REMOTEHOSTNAME" = ""]]; then
REMOTEHOST="127.0.0.1"
REMOTEHOSTNAME="localhost"
elif [[$REMOTEHOSTNAME = ":0.0"]]; then
REMOTEHOST="0.0.0.0"
elif ( test -z "`echo $REMOTEHOSTNAME|awk '($1 ~/[0-9]+.[0-9]+.[0-9]+.[0-9]+/)'`" )
then
REMOTEHOST=`awk '/'[^0-9a-zA-Z-]$REMOTEHOSTNAME[^0-9a-zA-Z-]*\\$'/ {print $1}' /etc/hosts`
else
REMOTEHOST=$REMOTEHOSTNAME
fi
logger -p local6.info -- SESSION=$$, from_remote_host=$REMOTEHOST, from_remote_hostname=$REMOTEHOSTNAME, USER=$USER, SHELL=$SHE LL, PWD=$PWD, LOGINTIME=`date '+%Y-%m-%d %H:%M:%S'`, LOGIN="success"
function history_to_syslog
{
cmd=$(history  1 | tail -1)
cmd=$(echo $cmd|awk '{print substr($0,length($1)+2)}')
if [ "$cmd" != "$old_command" ]; then
logger -p local6.info -- SESSION=$$, from_remote_host=$REMOTEHOST, from_remote_hostname=$REMOTEHOSTNAME, USER=$USER, SHELL=$SHE LL, PWD=$PWD, CMDTIME=`date '+%Y-%m-%d %H:%M:%S'`, CMD="${cmd}"
fi
old_command=$cmd
}
trap history_to_syslog DEBUG ||EXIT
2.chmod 755 /etc/profile.d/cmdhistory.sh
3.source /etc/profile
4.执⾏如下命令增加配置,记录近端登录和操作⽇志:
echo “[ -f /etc/profile.d/cmdhistory.sh ] && . /etc/profile.d/cmdhistory.sh” >> /etc/bashrc
5.vi /f
增加
# Log user commands
local6.info  /var/log/cmdhistory
6.重启
service rsyslog start
7.验证,⽂件⾥是否存在操作⽇志
cat /var/log/cmdhistory

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。