=Start=
缘由:
记录如何利用PAM中的某些模块做一些额外的安全设置;一些可能会用到的安全知识。
正文:
1.设置Linux系统的密码强度策略
$ sudo vi /etc/pam.d/system-auth password requisite pam_cracklib.so retry= 3 difok= 3 minlen= 10 $ sudo vi /etc/pam.d/system-auth password requisite pam_cracklib.so retry= 3 difok= 3 minlen= 10 ucredit=- 1 lcredit=- 2 dcredit=- 1 ocredit=- 1 $ sudo vi /etc/login.defs PASS_MAX_DAYS 150 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 |
- http://xmodulo.com/set-password-policy-linux.html
- http://unix.stackexchange.com/questions/139290/password-length-and-complexity
- https://linux.die.net/man/8/pam_cracklib
- http://www.computerworld.com/article/2726217/endpoint-protection/how-to-enforce-password-complexity-on-linux.html
2.设置Linux系统的密码重用策略
Step: 1 – Linux如何限制密码的重用? # vim /etc/pam.d/common-auth password sufficient pam_unix.so use_authtok md5 shadow remember= 13 或 password sufficient pam_unix2.so use_authtok md5 shadow remember= 13 Step: 2 – Linux设置密码周期 # vi /etc/login.defs PASS_MIN_DAYS= 7 Step: 3 – Linux的历史密码存在哪? /etc/security/opasswd |
3.保持 /boot 只读
Linux内核和他的相关的文件都保存在/boot目下,默认情况下是可以读写的。把它设为了只读可以减少一些由于非法修改重要boot文件而导致的风险。
# vim /etc/fstab |
在文件最后增加下面的行,然后保存:
LABEL=/boot /boot ext2 defaults,ro 1 2 |
如果你今后需要升级内核的话,你需要修改为读写模式(ro → rw)。
4.SELinux(谨慎使用)
查看SELinux状态:
# sestatus |
如果是关闭状态,则可以通过下面的命令打开:
# setenforce enforcing |
5.锁定 Cron任务
Cron有它自己内建的特性,这特性允许定义哪些人能哪些人不能跑任务。这是通过两个文件/etc/cron.allow 和 /etc/cron.deny 控制的。要锁定在用Cron的用户时可以简单的将其名字写到cron.deny里,而要允许用户跑cron时将其名字加到cron.allow即可。如果你要禁止所有用户使用cron,那么可以将“ALL”作为一行加到cron.deny里。
# echo ALL >>/etc/cron.deny |
=END=
《 “CentOS 7 设置-Step5.在 CentOS 7 上进行一些高级设置” 》 有 18 条评论
Centos安全配置参考
http://blog.csdn.net/qq_29277155/article/details/52497113
apache安全配置参考
http://blog.csdn.net/qq_29277155/article/details/52915206
nginx的一些安全配置笔记
http://blog.csdn.net/qq_29277155/article/details/51543017
tomcat安全配置参考
http://blog.csdn.net/qq_29277155/article/details/52821229
jboss安全配置参考
http://blog.csdn.net/qq_29277155/article/details/52810579
本地组策略的一些安全属性
http://blog.csdn.net/qq_29277155/article/details/51366183
Tomcat安全加固规范
http://vinc.top/2015/09/19/tomcat%E5%AE%89%E5%85%A8%E5%8A%A0%E5%9B%BA%E8%A7%84%E8%8C%83/
Linux安全加固规范
http://vinc.top/2015/09/27/linux%E5%AE%89%E5%85%A8%E5%8A%A0%E5%9B%BA%E8%A7%84%E8%8C%83/
CentOS 7的安全加固
https://highon.coffee/blog/security-harden-centos-7/
渗透测试工具速查表
https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/
常用Linux命令速查表
https://highon.coffee/blog/linux-commands-cheat-sheet/
使用 SELinux 防御 Docker 0 day 攻击(CVE-2016-9962)
[ Linux ] How SELinux helps blocking a 0day Docker vulnerability (CVE-2016-9962)
http://rhelblog.redhat.com/2017/01/13/docker-0-day-stopped-cold-by-selinux/
CentOS 7 开发环境配置
http://wiki.hustlzp.com/post/linux/centos-7-python
SELinux 教程之 Permissive VS Enforcing
http://weibo.com/ttarticle/p/show?id=2309404086349329258046
http://bbs.pediy.com/thread-215552.htm
DB2 常见加固
http://www.0xmh.com/db2-%E5%B8%B8%E8%A7%81%E5%8A%A0%E5%9B%BA/
Apache 常见加固
http://www.0xmh.com/apache-%E5%B8%B8%E8%A7%81%E5%8A%A0%E5%9B%BA/
IIS 短文件名漏洞加固
http://www.0xmh.com/iis-%E7%9F%AD%E6%96%87%E4%BB%B6%E5%90%8D%E6%BC%8F%E6%B4%9E%E5%8A%A0%E5%9B%BA/
Weblogic 安全加固
http://www.0xmh.com/weblogic-%E5%AE%89%E5%85%A8%E5%8A%A0%E5%9B%BA/
Linux审计
https://github.com/XalfiE/Nix-Auditor/blob/master/nixauditor
Linux下查找后门程序,CentOS 查后门程序的shell
https://www.lvtao.net/shell/480.html
Linux的系统安全设置Shell脚本, CentOS 安全设置shell
https://www.lvtao.net/shell/481.html
简单的CentOS服务器安全配设置(入门篇)
https://www.lvtao.net/server/588.html
常用服务器、数据库、中间件安全配置基线 – 基本包括了所有的操作系统、数据库、中间件、网络设备、浏览器,安卓、IOS、云的安全配置
https://github.com/re4lity/Benchmarks
https://www.cisecurity.org/cis-benchmarks/
Wiki to collect Red Team infrastructure hardening resources
https://github.com/bluscreenofjeff/Red-Team-Infrastructure-Wiki
基线检查表&安全加固规范(V1.1):
https://xianzhi.aliyun.com/forum/read.php?tid=1702
基线加固的:
https://github.com/re4lity/Benchmarks
https://learn.cisecurity.org/benchmarks
https://nvd.nist.gov/ncp/repository
Red Hat Enterprise Linux 7 Security Guide
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/pdf/Security_Guide/Red_Hat_Enterprise_Linux-7-Security_Guide-en-US.pdf
Guide to the Secure Configuration of Red Hat Enterprise Linux 7
https://static.open-scap.org/ssg-guides/ssg-rhel7-guide-standard.html
Linux基线加固
https://mp.weixin.qq.com/s/0nxiZw1NUoQTjxcd3zl6Zg
https://github.com/myh0st/scripts/blob/master/linuxsec.sh
`
#设置密码复杂度
#设置连续登录失败暂锁机制
#检查密码重复使用次数
#设置操作超时锁定
#修改密码时效
#修改默认访问权限
#设置重要文件目录权限
#启动了nscd服务导致设置权限以后无法登陆
#检查用户umask设置
#检查是否设置ssh登录前告警banner
#FTP安全设置#检查重要文件属性设置
#日志审计检查
#禁止wheel组以外的用户su为root
#关闭不必要的服务和端口
#检查core dump 设置
#删除潜在危险文件
#检查系统内核参数配置,修改只当次生效,重启需重新设置
#检查拥有suid和sgid权限文件并修改文件权限为755
`
【技术分享】Linux主机加固丨如何优雅的控制系统权限?
http://bobao.360.cn/learning/detail/4437.html
http://lab.xmirror.cn/atc/2017/09/15/404.html
`
0x01 修改应用版本信息(配置文件、源码)
0x02 构建受限的shell环境(lshell)
0x03 Linux ACL(使用acl前要安装acl和libacl)
0x04 严格限制网络出入站规则(iptables)
`
实用的 Linux 系统安全加固相关的配置和工具指南
https://github.com/trimstray/the-practical-linux-hardening-guide
Linux服务器加固指南(How-To-Secure-A-Linux-Server)
https://github.com/imthenachoman/How-To-Secure-A-Linux-Server
如何让Tomcat更强壮
https://www.freebuf.com/column/199893.html
`
NO 1 不安全的http请求方法
NO 2 慢速dos攻击
NO 3 目录文件列出漏洞
NO 4 敏感信息泄漏之默认管理路径
NO 5 敏感信息泄漏之未定义错误页面
NO 6 敏感信息泄漏之版本号泄漏
NO 7 War 包自动部署
`
JShielder:一款自动化Linux服务器安全增强工具
https://www.freebuf.com/sectool/209603.html
https://github.com/Jsitech/JShielder
`
JSHielder是一款开源的Bash脚本,旨在帮助系统管理员和开发人员增强Linux服务器的安全性,以更好地开发任何Web应用程序或在线服务。该工具可以自动化安装托管Web应用程序所必须的包,并在少量用户交互的情况下完成Linux服务器的安全增强配置。新增加的脚本遵循CIS Benchmark指南来为Linux服务器建立安全配置。
配置步骤如下:
1、 配置主机名
2、 重新配置时区
3、 更新整个系统
4、 创建新的管理员用户,无需通过root远程连接来管理服务器
5、 帮助用户生成安全RSA密钥,避免使用传统密码
6、 配置、优化和增强SSH服务器的安全性(某些设置遵循CIS Benchmark)
7、 配置IPTABLE规则,保护服务器免受常见攻击影响
8、 禁用冗余的文件系统和网络协议
9、 通过安装fail2ban保护服务器免受爆破攻击的威胁
10、以蜜罐、监控、屏蔽和警告工具安装并配置Artillery
11、安装PortSentry
12、安装、配置和优化MySQL
13、安装Apache Web服务器
14、通过配置文件和安装Modules ModSecurity增强Apache安全性
15、通过安装ModSecurity NginX模块和OWASP ModSecurity Core规则集增强NginX
16、安装RootKit Hunter
17、增强Root Home和Grub配置文件
18、安装Unhide以帮助检测隐藏进程
19、安装Tiger(严重安全审计与入侵防御系统)
20、限制Apache配置文件访问
21、禁用编译器
22、创建系统更新的每日Corn任务
23、通过sysctl配置文件增强内核安全性
24、/tmp目录增强
25、安装PSAD入侵检测系统
26、禁用USB支持
27、配置默认UMASK
28、配置和启用Auditd
29、遵循CIS Benchmark配置Auditd规则
30、安装Sysstat
31、安装ArpWatch
32、自动配置GRUB Bootloader密码
33、安全Boot设置
34、设置安全文件权限
`
解决CentOS更改ssh端口后报错的问题
https://blog.ixnet.work/2016/05/05/change-centos-ssh-port/
`
sudo vim /etc/ssh/sshd_config
-> Port 34567
sudo firewall-cmd –add-port=34567/tcp –permanent
sudo firewall-cmd –reload
systemctl restart sshd
# check sshd status from log
systemctl status sshd
journalctl -xe
yum whatprovides semanage
yum install -y policycoreutils-python
semanage port -l | grep ssh
semanage port -a -t ssh_port_t -p tcp 34567
ssh -p 34567 root@server1
`
https://kifarunix.com/how-to-configure-ssh-to-use-a-different-port-on-centos-7/
https://www.tecmint.com/change-ssh-port-in-linux/
https://blog.tinned-software.net/change-ssh-port-in-centos-with-selinux/
https://www.liberiangeek.net/2014/11/change-openssh-port-centos-7/
centos 7 远程连接 ssh connection refused
https://www.chengkaiblog.com/technology/centos-7-remote-connection-ssh-connection-refused.html
`
1. 首先查看ssh服务是否安装或启动
2. 如果ssh服务已启动,依旧无法使用连接,先测试一下本地是否可以连接
3. 如果还是connection refused,则查看ssh配置 /etc/ssh/sshd_config (Port + ListenAddress)
4. 再检查是否是防火墙的问题
`
https://stackoverflow.com/questions/24756240/how-can-i-use-iptables-on-centos-7
`
# 使用原生的 firewalld 服务
# add ssh port as permanent opened port
firewall-cmd –zone=public –add-port=34567/tcp –permanent
firewall-cmd –reload
# 使用习惯的 iptables 命令(可能需要先安装)
yum install iptables-services
systemctl enable iptables
systemctl [stop|start|restart] iptables
/sbin/iptables -I INPUT -p tcp –dport 34567 -j ACCEPT
service iptables save
`
解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
https://blog.csdn.net/c233728461/article/details/52679558
How to Find All Failed SSH login Attempts in Linux
https://www.tecmint.com/find-failed-ssh-login-attempts-in-linux/
https://superuser.com/questions/1224688/where-to-find-ssh-login-log-files-on-centos
`
# Debian/Ubuntu
/var/log/auth.log
# RedHat/CentOS
/var/log/secure
`