linux 安全简单加固:
1.关闭LKM
echo 1 >/proc/sys/kernel/modules_disabled
or
sysctl -w kernel.modules_disabled = 1
vi /etc/sysctl.conf
2.限制/dev/mem
more /boot/config-3.10.0-862.el7.x86_64 |grep DEVMEM
设置 CONFIG_STRICT_DEVMEM=y
3.内核参数调整
3.1 开启ASLR
设置 /proc/sys/kernel/randomize_va_space 为2
kernel.randomize_va_space = 2
隐藏内核符号表,设置为1
/proc/sys/kernel/kptr_restrict
kernel.kptr_restrict = 1
内核映射最小地址 ,启动设置为65536
/proc/sys/vm/mmap_min_addr
vm.mmap_min_addr = 65536
4.禁用NAT
echo 0 >/proc/sys/net/ipv4/ip_forward
ipv4.ip_forward = 1
5.bash 日志
设置命令 只读 history
readonly HISTFILE
readonly HISTFILESIZE
readonly HISTSIZE
readonly HISTCMD
readonly HISTCONTROL
readonly HISTGNORE
history 文件添加时间戳
export HISTTIMEFORMAT='%F %T'
更改HISTFILE为其他文件:
HISTFILE=/usr/local/log/cmd
加固history 历史文件只能追加,
chattr +a .bash_history
6.禁掉系统中所有其他shell,一般包括csh,tcsh,ksh。
# chmod 750 csh
# chmod 750 tcsh
# chmod 750 ksh
7.可写目录不解析,解析目录不可写
chmod 755 目录
若为777 则修改属主为用户
chown 777 nginx.nginx 目录
日志文件目录添加禁止直行脚本
location ~* ^/data/cgisvr/log/.*\.(php|php5)$ {
deny all;
}
java 禁止解析jspx,修改conf/web.xml
<url-pattern>*.jspx<url-pattern>
7.过滤特定文件类型
server
{
listen 88;
server_name XXXXX;
root /data/softs/dev_tools;
index admin.html index.html index.html;
autoindex on;
charset utf-8;
#charset gbk;
location / {
}
location ~* \. log|class|inc|bak${
rewrite ^ http://www.XXXXX.com permanent;
}
}
8.设置密码失效时间
在 /etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
vi /etc/login.defs
PASS_MAX_DAYS 180
需同时执行命令设置root密码失效时间:
chage --maxdays 180 root
9.设置密码修改最小间隔时间
在 /etc/login.defs 中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
vi /etc/login.defs
PASS_MIN_DAYS 7
需同时执行命令为root用户设置:
chage --mindays 7 root
10.密码复杂度检查
编辑/etc/security/pwquality.conf,把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等4类字符中等3类或4类)设置为3或4。如:
vi /etc/security/pwquality.conf
minlen=10
minclass=3
11.检查密码重用是否受限制
在/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原来的内容不用更改,只在末尾加了remember=5。
vi /etc/pam.d/password-auth
remember=5
vi /etc/pam.d/system-auth
12.设置SSH空闲超时退出时间
编辑/etc/ssh/sshd_config,将 ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
vi /etc/ssh/sshd_config
ClientAliveInterval 600
ClientAliveCountMax 2