一台 Linux 系统初始化环境后需要做一些什么安全工作? 1、添加普通用户登陆,禁止 root 用户登陆,更改 SSH 端口号。修改 SSH 端口不一定绝对哈。当然,如果要暴露在外网,建议改下。 2、服务器使用密钥登陆,禁止PASSWORD登陆。 3、开启防火墙,关闭 SElinux ,根据业务需求设置相应的防火墙规则。 4、装 fail2ban 这种防止 SSH 暴力破击的软件。 5、设置只允许公司办公网出口 IP 能登陆服务器(看公司实际需要),也可以安装 VPN 等软件,只允许连接 VPN 到服务器上。 6、修改历史命令记录的条数为 10 条。 7、只允许有需要的服务器可以访问外网,其它全部禁止。 8、做好软件层面的防护。 (1) 设置 nginx_waf 模块防止 SQL 注入。 (2) 把 Web 服务使用 www 用户启动,更改网站目录的所有者和所属组为 www 什么是网站数据库注入? 由于程序员的水平及经验参差不齐,大部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断。 应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL 注入。 SQL 注入,是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,如果管理员没查看日志的习惯,可能被入侵很长时间都不会发觉。 如何过滤与预防?数据库网页端注入这种,可以考虑使用 nginx_waf 做过滤与预防。 / Shell 脚本是什么? / 一个 Shell 脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell 脚本)来完成这些日常工作任务。 什么是默认登录 Shell ? 在 Linux 操作系统,"/bin/bash" 是默认登录 Shell,是在创建用户时分配的。 使用 chsh 命令可以改变默认的 Shell 。示例如下所示: ## chsh -s ## chsh ThinkWon -s /bin/sh 在 Shell 脚本中,如何写入注释? 注释可以用来描述一个脚本可以做什么和它是如何工作的。每一行注释以 # 开头。例子如下: #!/bin/bash ## This is a command echo “I am logged in as $USER”