Linode VPS 安装 Ubuntu Linux和基本安全设置

来源:互联网 发布:安卓好用的录音软件 编辑:程序博客网 时间:2024/05/21 07:12

  这里介绍 Linode VPS 在安装 Ubuntu Linux 系统之后,需要马上进行的一些基本安全性设定。

  在购买 Linux VPS 虚拟专属主机之后,只要鼠标点几下,花个几秒钟就可以装好一个 Ubuntu Linux 系统,不过后续还有很多安全性设定必须自己动手处理,以下是各种设定的步骤教学。

  更新系统套件

sudo apt-get updatesudo apt-get upgrade

  安装好 Ubuntu Linux 后,最先要做的就是更新系统套件:

  主机名称与 FQDN

  主机名称(hostname)可以自己任意取,他跟网址与 E-mail 位址等没有直接关係,各主机的名称不可以重复,有些人喜欢用星球、动物或是伟人的名字来命名,您可以自己想一个喜欢的名字,不过请避免使用 www 这类太过于一般化的名称。

  Ubuntu Linux 可以下列指令变更主机名称:

echo "einstein" > /etc/hostnamehostname -F /etc/hostname

  这样会将主机名称设定为 einstein。

  接着编辑 /etc/hosts,设定 FQDN(fully qualified domain name)。假设我们的主机名称为 einstein,网域名称(domain name)为 abc.com,FQDN 为 einstein.abc.com,主机对外的 IP 位址为 12.34.56.78,则将 /etc/hosts 设定为:

127.0.0.1 localhost.localdomain localhost12.34.56.78 einstein.abc.com einstein

  如果有使用 IPv6 的话,也要连同 IPv6 的位址一起加入:

127.0.0.1 localhost.localdomain localhost12.34.56.78 einstein.abc.com einstein2600:3c01::a123:b456:c789:d012 einstein.abc.com einstein

  这里设定的 IP 位址与 FQDN 的对应必须跟 DNS 的 A 纪录吻合,若有使用 IPv6 的话,DNS 伺服器上也要有对应的 AAAA 纪录。

  时区

  将时区(timezone)调整为自己所在地的时区,可以让系统记录上的时间戳记看起来更直接。

  Linode 的 Linux 时区预设是使用格林尼治标准时间(UTC),我们可以使用下列指令更改时区的设定:

dpkg-reconfigure tzdata

  更改完成后,再用 date 确认一下:

date

  看看输出的时间是否正确。

  新增用户

  在 Linode 上刚装好的 Ubuntu Linux 是直接用 root 登入的,没有一般用户帐号,但如果所有的动作都使用 root 来操作,会给系统带来很大的风险,通常我们都会一般帐号来登入,必要时才切换成 root 权限,以避免下错指令等意外发生。

  在 Ubuntu Linux 下新增一个用户:

adduser myuser

  将 myuser 这个用户加入 sudo 群组:

usermod -a -G sudo myuser

  这样设定好之后,在用这个帐号以 SSH 登入:

ssh myuser@12.34.56.78

  然后测试看看是否能使用 sudo:

sudo su

  如果能取得 root 权限就表示没问题了。

  SSH 金钥认证登入

  SSH 公开金钥认证可以大幅增加伺服器的安全性,我们可以使用 ssh-keygen 在自己的电脑中产生金钥后,再将公钥放进服务器中:

ssh-keygenscp ~/.ssh/id_rsa.pub myuser@12.34.56.78:

  接着再到服务器上,建立 .ssh 目录,把公钥放置在 .ssh/authorized_keys:

mkdir .sshmv id_rsa.pub .ssh/authorized_keys

  设定好档案权限:

chown -R myuser:myuser .sshchmod 700 .sshchmod 600 .ssh/authorized_keys

  设定好之后,记得要测试 myuser 这个使用者是否可以不需要密码登入 SSH。

  停用 SSH 密码登入

  编辑 /etc/ssh/sshd_config,将密码登入功能关闭:

PasswordAuthentication no

  同时也停用 root 登入:

PermitRootLogin no

  重新启动 SSH 服务器:

sudo service ssh restart

  防火墙

  防火墙我习惯使用 ufw 来设定:

sudo ufw enablesudo ufw allow sshsudo ufw allow http/tcpsudo ufw allow https/tcpufw allow from 12.34.0.0/16

  这里开启 SSH、HTTP 与 HTTPS 这几个连接,另外对 12.34.0.0/16 这个子网域开放所有的连线,用来开发与测试用。

  Fail2Ban

  Fail2Ban 可以用来阻挡一些来自网路上的恶意攻击,当它侦测到来自网路的某个 IP 不断尝试入侵系统时,会建立一个暂时性的防火墙规则,将攻击者的 IP 封锁。Fail2Ban 可以用下列指令安装:

sudo apt-get install fail2ban

  安装完成后,Fail2Ban 预设只会对 SSH 进行监控,若要更改设定可以将自己的设定写在 /etc/fail2ban/jail.local 设定档中,在这个档案中,我们也可以设定当侦测到几次登入失败后才开始阻挡 IP(maxretry),还有每次阻挡 IP 的时间长度(bantime)。修改设定之后,记得重新启动 Fail2Ban:

service fail2ban restart
原创粉丝点击