【Linux学习笔记】之【安全加固】

linux系统安全加固

账号加固


密码长度与有效期

默认配置:

cat /etc/login.defs |grep PASS_ |grep -v '#'
#------------------
PASS_MAX_DAYS 99999
# 密码有效期
PASS_MIN_DAYS 0
# 修改密码的最短期限
PASS_MIN_LEN 5
# 密码最短长度
PASS_WARN_AGE 7
# 密码过期提醒
#------------------

加固方案:

cp -a /etc/login.defs /etc/login.defs.default
vim /etc/login.defs
#---------------
PASS_MAX_DAYS 90
PASS_MIN_DAYS 6
PASS_MIN_LEN 8
PASS_WARN_AGE 30
#---------------

密码复杂度

默认配置

cat /etc/pam.d/system-auth | grep "pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type="

#-------------------
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
#--------------------

加固方案:

cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default

vim /etc/pam.d/system-auth
#----------------------------
password requisite pam_cracklib.so try_first_pass minlen=8 difok=5 dcredit=-1 lcredit=-1 ocredit=-1 retry=3 remember=3
#----------------------------
参数说明
try_first_pass而当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与以前的旧密码相同。
minlen=8最小长度8位
difok=6配置密码时,新密码中至少6个字符与旧密码不同(默认为5)
dcredit=-1最少1个数字
lcredit=-1最少1个小写字符,(ucredit=-1:最少1个大写字符)
ocredit=-1最少1个特殊字符
retry=3配置密码时,提示3次用户密码错误输入
pe=xxx此选项用来修改缺省的密码提示文本
remember=N保存每个用户使用过的N个密码,强制密码不能跟历史密码重复

会话超时

cp -a /etc/profile /etc/profile.default
vim /etc/profile

# 末行追加:
#-----------
port TMOUT=300
#-----------
# 五分钟无操作中断登录会话

禁用删除系统多余用户


Openssh安全配置


配置文件安全加固

vim /etc/ssh/sshd_config

#----------------
PermitRootLogin no
# 禁止root登录

MaxAuthTries 3
# 超过3次socket连接会断开

PubkeyAuthentication no
AuthorizedKeysFile /dev/null
# 禁止证书登录

PasswordAuthentication no
# 使用证书替代密码认证

ChallengeResponseAuthentication yes	
# 禁止SSH客户端记住密码

GSSAPIAuthentication no
# GSSAPIAuthentication yes
# GSSAPICleanupCredentials yes
# GSSAPICleanupCredentials yes
# GSSAPIStrictAcceptorCheck yes
# GSSAPIKeyExchange no
# 关闭 GSSAP

AllowTcpForwarding no
# 禁止SSH端口映射
#----------------

IP地址限制

白名单策略:

vim /etc/hosts.allow
#----------------
sshd:192.168.10.1,192.168.10.2,192.168.10.3
#----------------
vim /etc/hosts.deny
#----------------
sshd:ALL
#----------------

系统服务安全管理

  1. 采用最少服务原则,凡是不需要的服务一律注释掉。
  • /etc/inetd.conf 中不需要的服务前加 “#”,较高版本中已经没有 inetd 而换成了 Xinetd;取消开机自动运行服务,把 /etc/rc.d/rc3.d 下不需要运行的服务第一个字母大写改称小写,或者由 setup 命令启动的 GUI 界面中的 service 更改。
  1. 可以使用 /etc/host.allow/etc/host.deny 这两个文件,将不需要的服务禁止。
  2. 通过防火墙策略禁止访问不需要的服务

文件系统权限


.history 文件

vim /etc/profile
# 在文件末尾添加如下内容:
#----------------
HISTSIZE=1000
# 设置保存历史命令的文件大小
HISTFILESIZE=2000
# 保存历史命令条数
export HISTTIMEFORMAT="%Y-%m-%d-%H:%M:%S:$USER:"
# 设置历史命令格式
#----------------

SUID权限管理

找出系统所有含 “s” 位的程序,把不必要得 “s” 位去掉,或者把根本不用的直接删除:

find / -type f -perm -u+s -exec ls -l {} \;
chmod a-s filename

防止用户滥用及提升权限的可能性

把重要文件加上不可改变属性,具体视需要而定:

chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group
chattr +i /etc/inetd.conf
chattr +i /etc/httpd.conf

防火墙配置


防火墙策略

默认INPUT,FORWARD,OUTPUT 三个都是ACCEPT

INPUT ACCEPT   FORWARD ACCEPT   OUTPUT ACCEPT

从安全的角度出发,INPUT,FORWARD,OUTPUT 三个都是DROP最安全,但配置的时候会给你带来非常多的不可预料的麻烦。

INPUT DROP  FORWARD DROP  OUTPUT DROP

折中的方案,也是大多数硬件防火墙厂商所采用的方案,他们都是采用INPUT默认禁用所有,OUTPUT默认允许所有,你只要关注INPUT规则即可。

INPUT DROP  FORWARD ACCEPT  OUTPUT ACCEPT

防止成为跳板机

封锁22等端口,避免相互跳转:

iptables -A OUTPUT -p tcp -m multiport --dports 22,21,873 -j REJECT/etc/init.d/iptables save
iptables -L -n

web 服务器禁止使用ssh,作为跳板机,用户将不能使用ssh命令登陆到其他电脑。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值