Debian9 初始化安装后的设置

前言

由于在工作中经常使用Linux系统,尝试过Ubuntu , 尝试过CentOS,最终还是决定使用Debian。Ubuntu 也是Debian的延伸版,但是它的版本管理太过于激进了,生产的第一要素还是稳定的好,至于CentOS,同样是一个稳定的发行版,基于Redhat,不过它的内核版本,软件库来说,就显得过于缓慢,这也是我为什么使用Debian的原因。说到底,真正在操作系统影响软件运行的情况还真少,所以不必纠结,选一个合适的就好。现在Debian已经更新到9.8了。以往来说,每次安装都需要做各种设置,每次相关到操作都是一步步再次搜索,因此根据自身到情况,汇总成一个详细到教程,避免每次都需要再次进行重新开始。

说明

  • 系统版本: Debian 9.8 相关软件都安装到最新版本了
  • 最小安装,其他的组建都没有安装。
  • 基于x64位的系统

一些软件推荐

日常使用

以下是实际工作中一些常用的软件:

apt install ufw vim supervisor fail2ban screen nload iftop htop
# ufw: debian系的防火墙工具吧,省的编写复杂的iptable,会单独博客进行说
# vim: 常用的编辑工具
# supervisor:进程管理工具,会单独博客进行编写
# fail2ban:  一款加强系统安全的设置工具,非常有用
# screen:防止会话丢失的工具
# nload,iftop: 查看当前网络连接的状况
# htop: 更好用的top

开发必备

首先是开发环境,为了节省麻烦,通常使用以下的命令进行安装:

apt install build-essential

安全设置

安装sudo

debian最小化安装是没有sudo的但是我们可以通过命令apt install sudo 安装。
假设你的自建账号为 user 那么你可以将自己加入到sudo中去,具体命令为: visudo,当然你可以编辑 /etc/sudoers文件,文件的主要格式为:
<用户名> 主机名 = (用户名:组名) 命令列表
下面对这个设置进行特别说明:
– 主机名必须是主机名,如当前主机不能使用localhost
– 命令必须使用绝对路径,多个命令以逗号 , 分开
– 用户和组可以只设定一个,可以全设定,但是在运行命令时,可以只指定用户或组,也可以全部指定。

参考的内容为:user ALL = (ALL:ALL) ALL
此时用户user就有能力执行root权限下的命令了。例如执行一个需要root权限的 reboot,那么只需要 sudo reboot 即可,当然这是需要输入密码才能继续执行。

如果你不想每次都输入密码,可以配置为:user ALL = (ALL:ALL) NOPASSWD:ALL

启用fail2ban

上文已说明安装fail2ban,这里将对其设置进行补充。
编辑 /etc/fail2ban/jail.local , 这个配置位置会覆盖原有的配置/etc/fail2ban/jail.conf ,这样的话,可以在不必修改原始配置的情况下,增加自己的个性化配置,我常用的配置如下:

[DEFAULT]
ignoreip = 127.0.0.1 10.10.0.0/24  # 配置不被记录的IP或网段
bantime = 86400                           # 配置最大的封锁时间,单位秒,这里设置了一天
maxretry = 3                                # 配置多少次失败后,纳入封锁列表
findtime=600                               # 配置查找时间

[sshd]
maxretry = 3
findtime = 60
bantime = 360000

[sshd-ddos]
enabled = true

编辑完成之后,使用命令systemctl restart fail2ban, 可以是上述配置生效

禁用密码登陆,改用密钥登陆

密码登陆主要的问题在于客户端使用暴力猜谜的方式就可以攻破,如果没有fail2ban的保护,被攻击登陆只是时间的问题。

那么通常的设置如下:
编辑文件 /etc/ssh/sshd_config, 对于其中的某些选项进行设置,
– 禁用密码登陆:PasswordAuthentication no
– 禁用root用户登陆: PermitRootLogin no

请注意,在上述配置生效之前,请一定确保你能够使用密钥登陆: 一定要在服务器上配置好 授权,我们还是以user用户为例,那么在user的HOME目录下,通常为 /home/user的.ssh/authorized_keys 中增加你的公钥即可。在完成配置后,你可以尝试使用 ssh user@IP 进行测试,如果可以免密码登陆,那么你可以方向的重启ssh服务了
systemctl restart ssh

待续。。。。