专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序员的那些事  ·  北京大学出的第二份 DeepSeek ... ·  昨天  
OSC开源社区  ·  Bun ... ·  2 天前  
OSC开源社区  ·  升级到Svelte ... ·  6 天前  
程序员小灰  ·  DeepSeek做AI代写,彻底爆了! ·  6 天前  
51好读  ›  专栏  ›  SegmentFault思否

简单几步让服务器更安全

SegmentFault思否  · 公众号  · 程序员  · 2017-10-10 08:00

正文

对于爱折腾的人来说,在自己的服务器上搭建博客是一件很有趣的事情,但从头开始配置服务器,完成博客部署并非一件易事,使用或者配置不恰当更是可能引起服务器的安全隐患。本文参考了 DigitalOcean 的一篇文章,介绍几个简单的增强服务器安全性的方法,希望对你有所帮助。

选择服务器

如果你想自由的写作,或者希望写的东西能够不仅仅在墙内传播,请购买一台海外服务器。这里强烈推荐 Linode 的日本机房,主要优势有三点:访问速度快,价格便宜,当 IP 被封禁时换得快。如果你只是搭建博客的话,选择最低配每月 $5 的乞丐版完全够用了(本站选择的便是)。

选择操作系统

选择版本稳定的发行版, Debian 是比较好的选择, Ubuntu 升级过于频繁,而且每半年的大版本升级经常搞坏系统,不推荐, CentOS 的包管理器用得不顺手,弃。惊喜的发现 Debian 9 Stretch 稳定版时隔两年也发布了,正合我意。

更新系统

修改系统的更新源,选择与服务器连接比较好的源,因为服务器在日本,我优先选择日本的源,然后开始执行升级和清理工作。

  1. apt update

  2. apt full-upgrade

  3. apt autoremove

修改 SSH 端口号

修改 ssh 的默认 22 端口。

  1. vim /etc/ssh/sshd_config

  2. # 修改端口

  3. Port 2222

  4. service ssh restart

禁用 ROOT 账号

root 权限过大,我们新建一个普通用户加入 sudo 组,同时彻底禁用 root 通过 ssh 登录服务器。

  1. apt install sudo

  2. adduser ritchie

  3. visudo

  4. # 赋予 ritchie 以 sudo 权限

  5. ritchie ALL=(ALL:ALL) ALL

  6. vim /etc/ssh/sshd_config

  7. # 禁用 ROOT 登录 SSH

  8. PermitRootLogin no

  9. service ssh restart

使用 SSH-KEY 登录

首先本地生成一对公钥和私钥,将公钥部署到服务器上,彻底禁用密码登录。

  1. $ ssh-keygen

  2. $ ssh-copy-id username@remote_host -p 2222

  3. $ sudo vim /etc/ssh/sshd_config

  4. # 禁用密码登录

  5. PasswordAuthentication no

  6. $ sudo service ssh restart

启用 UFW 服务

UFW 全称为 Uncomplicated Firewall,是 Ubuntu 系统上默认的防火墙组件, 为了轻量化配置 iptables 而开发的一款工具。高级的防火墙技巧博主也不会,但是简单的设置下防火墙默认禁止进的访问,将 OpenSSH 和 WEB Server 的常用端口放行,其他的端口全部禁用即可。

  1. $ sudo apt install ufw

  2. $ sudo ufw default allow outgoing

  3. $ sudo ufw default deny incoming

  4. $ sudo ufw app list

  5. $ sudo vim /etc/ufw/applications.d/openssh-server

  6. [OpenSSH]

  7. title=Secure shell server, an rshd replacement

  8. description=OpenSSH is a free implementation of the Secure Shell protocol.

  9. ports= 2222/tcp

  10. $ sudo ufw allow 'OpenSSH'

  11. $ sudo ufw allow 'WWW Full'

  12. $ sudo ufw logging off

  13. $ sudo ufw status verbose

  14. Status: active

  15. Logging: off

  16. Default







请到「今天看啥」查看全文