linux安全加固

一、账号口令

1、限制使用su命令的用户

 #vim /etc/pam.d/su 在开头添加下面两行:
 auth sufficient/lib/security/pam_rootok.so
 auth required/lib/security/pam_wheel.sogroup=wheel
 #或者将pam_rootok.so和pam_wheel.so use_uid(这行不启用则无法配置指定信任用户切换root)的行首去掉了注释符号'#'则符合;另外pam_wheel.so trust use_uid若启用,则指定信任的用户切换root用户时无须输入密码。
 #只有wheel组的成员可以使用su命令成为root用户。你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。添加方法为:# usermod -G wheel xxxx

2、设置口令复杂度

 vim/etc/pam.d/system-auth
 #编辑该文件即修改密码策略复杂度:至少大写一个,小写一个,数字一个,特殊字符一个,密码长度8位以上,密码记录历史5个。如下:
 password requisite pam_cracklib.so try_first_pass retry=5 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8 remember=5
 参数解释:
 retry=5       #定义登录、或修改密码失败后,可以重复的次数
 type=        #选项,定义用户修改密码时的提示内容,一般不管
 dcredit=-1     #至少一个数字
 lcredit=-1     #至少一个小写
 ucredit=-1     #至少一个大写
 ocredit=-1     #至少一个特殊字符
 minlen=8       #密码最短长度为8位
 remember=5     #不能重复使用前5次使用过的密码
 ​

3、设置口令有效期

 vim /etc/login.defs
 #修改如下参数
 PASS_MAX_DAYS 90#设置登录密码有效期90天
 PASS_MIN_DAYS 1  #登录密码最短修改时间,增加可以防止非法用户短期更改多次
 PASS_MIN_LEN 8  #登录密码最小长度8位
 PASS_WARN_AGE 7 #登录密码过期提前7天提示修改
 FAIL_DELAY 10 #登录错误时等待时间10秒
 FAILLOG_ENAB yes #登录错误记录到日志
 SYSLOG_SU_ENAB yes #当限定超级用户管理日志时使用
 SYSLOG_SG_ENAB yes #当限定超级用户组管理日志时使用
 MD5_CRYPT_ENAB yes #当使用md5为密码的加密方法时使用

4、登录失败超过三次后锁定

 vim /etc/pam.d/login  或者/etc/pam.d/sshd
 #在第一行%PAM-1.0后面添加  
 auth required pam_tally2.so deny=3 unlock_time=1200 even_deny_root root_unlock_time=1200
 #登录失败超过三次锁定1200s 包括root

二、授权认证


1、设置用户的默认umask值为077

 echo "uamsk o77" >> /etc/profile
 source /etc/profile

2、超时自动注销

 vim /etc/profile
 #在“HISTSIZE=”后面加入下面这行: TMOUT=300,表示300秒,也就是表示5分钟;改变这项设置后,使用
 source /etc/profile使配置生效。 
 #回退则是注释或者删除所添加行,
 source /etc/profile

三、SSH登录控制


1、配置sshd服务端

 [root@svr7 ~]# vim  /etc/ssh/sshd_config
 .. ..
 Subsystem sftp /usr/libexec/openssh/sftp-server
 .. .. #此行不变,无需改成 “Subsystem sftp internal-sftp”,否则无法登录
 Match Group sftpusers  #如果登录的是受限组的用户
  ChrootDirectory  /sftp #禁锢在目录/sftp下
  ForceCommand  internal-sftp  #仅使用内置sftp功能
 [root@svr7 ~]# systemctl  restart  sshd

2、ssh版本升级

详情见博客

https://mp.csdn.net/editor/html/109758481

四、文件权限安全


1、设置文件的归属和权限

设置文件的归属和权限的意义

Linux将所有对象都当作文件来处理,即使一个目录也被看作是包含有多个其他文件的大文件。因此,Linux中最重要的就是文件和目录的安全性,文件和目录的安全性主要通过权限和属主来保证。设置文件的归属和权限时,应尽量遵循“权限最小化”的原则,不必要的权限就不要给。

 [root@svr7 ~]# chmod   -R  root:root  文档.. ..
 [root@svr7 ~]# chmod   -R  o-rwx  文档.. ..
 #生产中重要文件权限设置
 [root@svr7 ~]#chmod 644 /etc/passwd;chmod 644 /etc/shadow;chmod 000 /etc/gshadow;chmod 640 /etc/group;chmod 644 /etc/profile;chmod 744 /etc/rc3.d

2、删除无主文件

删除无主文件的意义

系统管理员在删除用户/群组时,存在着忘记删除该用户/该群组所拥有文件的问题。如果后续新创建的用户/群组与被删除的用户/群组同名,则新用户/新群组会拥有部分不属于其权限的文件,故此将此类文件删除。

 [root@svr7 ~]# find  /  -nouser  -o  -nogroup  //列出无有效属主、属组标记的文档
 .. .. .#建议先对结果进行检查,确认可删除再操作
 [root@svr7 ~]# find  /  -nouser  -o  -nogroup  -exec  rm  -rf  {}  \;
 ......#对查找结果执行删除操作

3、处理空链接文件

处理空链接文件的意义

无指向的空链接文件,可能会被恶意用户利用,影响系统安全性。建议用户删除无效的空链接文件,提高系统安全性。

 #重点关注关键目录 /bin、/boot、/usr、/lib64、/lib、/var
 [root@svr7 ~]# find  目录  -type l  -follow  -exec  ls  -lh  --color  {}  \; 
 .. .. #列出空链接文件
 [root@svr7 ~]# find  目录  -type l  -follow  -exec   rm  -rf  {}  \;
 .. .. #如果上述文件并无实际作用,确认后可以删除

4、设置守护进程的umask值

设置守护进程的umask值的意义

umask值用来设置用户权限的补码,会影响用户新创建的文件和目录的缺省权限。如果没有设定umask值,则生成的文件具有全局可写权限,存在一定的风险。守护进程负责系统上某个服务,让系统可以接受来自用户或者是网络客户的要求。为了提高守护进程所创建文件和目录的安全性,设置其umask值为0027。

 echo "umask 0027" >> /etc/sysconfig/init ;tail -1 /etc/sysconfig/init
 #或者
 echo "umask 0027" >> /etc/profile ;tail -1 /etc/profile

5、 为全局可写(o=rwx)目录添加粘滞位属性

为全局可写(o=rwx)目录添加粘滞位属性的意义

任意用户可以删除、修改全局可写目录中的文件和目录,为了确保全局可写目录中的文件和目录不会被任意删除,需要为全局可写目录添加粘滞位属性。

 [root@svr7 ~]# find  /  -type d  -perm  -0002  !  -perm  -1000  -ls  | grep  -v  proc
 .. ..
 #根据结果确认,必要时应该为全局可写目录添加粘滞位属性:
 [root@svr7 ~]# chmod  o+t  找到的目录名称

6、删除非授权文件的全局可写属性

删除非授权文件的全局可写属性的意义

全局可写文件可被系统中的任意用户修改,影响系统完整性。

下面操作可以找出系统中所有的全局可写文件

 [root@svr7 ~]# find  /  -type d  \( -perm  -o+w \)  |  grep  -v  proc 
 [root@svr7 ~]# find  /  -type  f \( -perm -o+w \)  | grep  -v  proc
 #根据结果确认,粘滞位的文件和目录可以排除在外,根据实际情况删除文件或去掉其全局可写权限。
 #使用以下命令去掉权限:
 [root@svr7 ~]# chmod o-w  filename

7、限制at命令的使用权限

限制at命令的使用权限的意义

at命令用于创建在指定时间自动执行的任务。为避免任意用户通过at命令安排工作,造成系统易受攻击,需要指定可使用该命令的用户。

 [root@svr7 ~]# rm   -f  /etc/at.deny  #删除at黑名单文件
 [root@svr7 ~]# chown  root:root  /etc/at.allow #控制at白名单文件的归属
 [root@svr7 ~]# chmod  og-rwx  /etc/at.allow  #限制对at白名单文件的操作

8、限制cron 命令的使用权限

限制cron 命令的使用权限的意义

cron命令用于创建周期性计划任务,为避免任意用户通过cron命令安排工作,造成系统易受攻击,需要指定可使用该命令的用户。

 [root@svr7 ~]# rm  -f  /etc/cron.deny  #删除cron黑名单文件
 [root@svr7 ~]# chown  root:root  /etc/cron.allow  #控制cron白名单文件归属
 [root@svr7 ~]# chmod og-rwx /etc/cron.allow  #限制对cron白名单文件的操作 

9、限制sudo 命令的使用权限

限制sudo 命令的使用权限的意义

为了增强系统安全性,有必要对sudo命令的使用权进行控制,只允许root或wheel用户使用sudo命令,限制其他用户使用。

通常wheel组的用户默认是允许使用sudo的,若无此需求,建议将此设置取消。

 [root@svr7 ~]#visudo
 #%wheel ALL=(ALL) ALL  #禁用则是注释该行

五、内核参数调优


内核调优的意义:

内核提供了一系列用户可配置的系统控制,允许微调或配置,比如通过控制内核中各种可配置的网络响应参数,来提高操作系统的安全特性

内核调优的操作:

 vim  /etc/sysctl.d/25-net.conf
 .. ..
 net.ipv4.icmp_echo_ignore_broadcasts = 1 #禁止接受ICMP广播报文
 net.ipv4.conf.all.rp_filter = 1  #验证数据包使用的实际源地址是否与路由表相关,以及使用该特定源IP地址的数据包才可以通过接口获取其响应
 net.ipv4.conf.default.rp_filter = 1
 net.ipv4.ip_forward = 0 #关闭路由转发功能(除非作为路由使用时)
 net.ipv4.conf.all.accept_source_route = 0  #禁止数据包的发送者指定数据包的发送路径,
 net.ipv4.conf.default.accept_source_route  = 0  #禁止返回给发送者的数据包所经过的路径
 net.ipv4.conf.all.accept_redirects = 0  #不发送ICMP重定向报文
 net.ipv4.conf.default.accept_redirects = 0 #不接受重定向
 net.ipv6.conf.all.accept_redirects  = 0
 net.ipv6.conf.default.accept_redirects = 0
 net.ipv4.conf.all.send_redirects = 0 #禁止将ICMP重定向报文发送至其他主机(除非作为路由使用时)
 net.ipv4.conf.default.send_redirects = 0
 net.ipv4.icmp_ignore_bogus_error_responses = 1 #忽略伪造的ICMP数据包,不会将其记录到日志,将节省大量的硬盘空间
 net.ipv4.tcp_syncookies = 1  #开启TCP-SYN cookie保护(SYN Attack是一种通过占用系统资源迫使系统重启的DoS攻击)
 kernel.dmesg_restrict = 1  #加固dmesg信息,仅允许管理员查看
 kernel.sched_autogroup_enabled = 0  #禁止内核对线程进行自动分组调度,避免各调度组之间、调度组内的现成之间互相竞争时间片
 kernel.sysrq  = 0  #禁用魔术键,避免由于直接发送命令到内核对系统造成影响,增强内核安全性
 net.ipv4.conf.all.secure_redirects = 0  #接收来自任何主机的ICMP重定向消息,而不是从默认网关列表中的网关处接收ICMP重定向消息
 net.ipv4.conf.default.secure_redirects = 0
 ​
 [root@svr7 ~]# sysctl   -p  /etc/sysctl.d/25-net.conf  //更新内核配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值