确保Debian 10.8系统不被入侵及恶意攻击,安全高效.


上期讲到Debian10.8系统已经安装完毕,确保生产环境的运行安全,如何设置才能有效地防止被攻击及恶意入侵,咱们继续跟勇哥学知识。

网站的安全访问,除了部署Web环境的安全还要确保底层Linux系统的安全。本次普及知识就如何安全设置系统开始。

通过远程ssh工具进行远程登录,类似的工具很多,大家可根据自己的习惯选择。首先初始化ssh终端工具。


设置好后,就可以远程连接服务器了。远程连接后,如果出现下图,是不允许Root进行远程连接(目前很多云端的主机系统不存在此限制)。

我们进入本地Root用户登录,在~#提示符下输入 vi /etc/ssh/sshd_confg 编辑命令,

在输入命令的时候,注意大小字母,系统自动打开ssh目录下的sshd_config 文件,

找到红框的部分,编辑的操作步骤如下:按一下Ins(插入)键,移动下箭头到该位置,把#PermitRootLogin prohibit-password修改为PermitRootLogin yes 然后按一下Esc键,输入:wq 回车即可自动保存文件并退出编辑状态。

说明/etc/ssh/sshd_config 文件已保存,输入reboot命令(或输入 /etc/init.d/ssh restart 重启ssh服务)让系统重新启动确保刚才的修改生效。

重启动后再次使用ssh远程连接工具连接,提示正常。

为了确保系统的稳定及安全,首先需要更新系统的补丁包,就好比windows系统一样,安装后先进行系统补丁升级。升级命令 apt-get upgrade,由于安装的是最新发布的系统,所以没有升级包,如果有升级包,系统会提示有多少包要安装,多少个包要升级,输入y开始操作。

补丁包升级后,我把系统需要加固的常用设置的内容整理如下:

1、 设置SSH MaxAuthTries 建议值为3-4,设置远程连接密码的尝试失败的次数:建议设置为3。文件位置:/etc/ssh/sshd_config 中去掉MaxAuthTries前面的#注释符号, 修改为MaxAuthTries=3。

2、 设置SSH空密码用户禁止登录:文件位置:/etc/ssh/sshd_config 中将PermitEmptyPasswords配置为no,即PermitEmptyPasswords no。

3、 设置 SSHD 强制使用V2安全协议:文件位置:/etc/ssh/sshd_config中加入Protocol 2。

4、 确保SSH LogLevel 设置为INFO,记录登录和注销活动:文件位置:/etc/ssh/sshd_config中去掉LogLevel前面的#注释符号, 修改为LogLevel INFO。

5、 设置SSH空闲超时退出时间,降低未授权用户访问其他用户SSH会话的风险及防止多用户同时登录对文件修改编辑:文件位置:/etc/ssh/sshd_config中将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。修改为ClientAliveInterval 600、ClientAliveCountMax 2。

6、 设置修改SSH默认端口22,修改默认端口杜绝未授权的远程嗅探或非授权连接:文件位置:/etc/ssh/sshd_config中去掉Port前面的#注释符号把22修改为其他未占用端口,如:10000-65535之间,修改为Port 10000。

7、 设置密码修改最小间隔时间,限制密码更改过于频繁:文件位置/etc/login.defs中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7,修改为PASS_MIN_DAYS 7,同时也要执行命令为root用户设置密码间隔时间:chage --mindays 7 root。

8、 设置密码复杂度检查,检查密码长度和密码是否使用多种字符类型:文件位置
/etc/security/pwquality.conf中把minlen(密码最小长度)设置为9-32位,把minclass(至少包含小写字母、大写字母、数字、特殊字符等)设置为3或4。修改为minlen=10、minclass=3。

9、 设置检查密码重用是否受限制,强制用户不重用最近使用的密码,降低密码猜测攻击风险:文件位置/etc/pam.d/password-auth和/etc/pam.d/system-auth中password sufficient pam_unix.so 这行的末尾配置remember参数为5-24之间,原有内容动,只在末尾加remember=5。

10、 设置检查系统中是否存在空密码的用户:为用户设置一个非空密码,或者执行命令 passwd -l <username>锁定用户。

11、 设置密码失效时间,强制定期修改密码,减少密码被泄漏和猜测风险,使用非密码登陆方式(如密钥对)请忽略此项:文件位置/etc/login.defs 中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:PASS_MAX_DAYS 90同时也执行命令设置root密码失效时间:chage --maxdays 90 root。

12、 设置确保密码到期警告天数为7或更多:文件位置/etc/login.defs 中将 PASS_WARN_AGE 参数设置为7-14之间,建议为7。如:PASS_WARN_AGE 7同时也执行命令使root用户设置生效:chage --warndays 7 root。

13、 设置确保rsyslog服务已启用,记录日志用于审计:在#提示符下运行以下命令启用rsyslog服务:systemctl enable rsyslog和systemctl start rsyslog。

不全面地设置大家一起探讨补充,上述就是安装完系统后需要做的操作步骤,可以以此为借鉴,在购买云端服务器后按照此步骤配置服务器,安全会提升很大级别。linux属于命令行操作方式,命令非常多,建议不用记住太多的操作命令,把常用的命令及操作顺序记住就好,相信你也会成为高手。下期介绍,如何对新增的数据盘进行自动挂载、格式化并安装免费的杀毒软件。

原文链接:,转发请注明来源!