如何开始配置你的 Linux Server

Thu, Oct 5, 2017

面对一个全新的 Linux Server,新手该如何快速配置快速可用是一个 Linux 初学者面对的问题。网络上有很多的乱七八糟的新手配置的教程,一上来就是各种 iptables、sshd_config 的配置,往往让人不知道所以然,而很多基础的配置,比如 Linux 的 resolv.conf 作为 Linux 基础的 DNS 配置,一旦没有弄好往往连域名都解析不了,这通常就会让初学者一头雾水不知道所以然。

我也是一路过来的菜鸟,对,至今我都仍然认为自己是个菜鸟,很多不懂不会的东西遇到了或者顺便看到,于是就去 Google 自己学习,觉得自己也该写一个属于自己总结的小教程,也不为了帮助谁,而是,为了记录一下自己的一些心得体会。好记性不如烂笔头嘛,写下来方便查找,也方便梳理自己的思路。

注意:以下这些 Shell 操作均是在 Ubuntu(Debian) 下面完成的,其他 Linux 发行版均类似,需要的话请自行学习!

注意:以下这些命令的运行,没有特别说明,均是在 root 权限下运行!

安装所有的软件更新

首先安装所有的软件更新,尤其是操作系统对应的安全更新

# ubuntu 14.04
apt-get update && apt-get upgrade

设置 hostname

设置 hostname 是为了方便记录服务器的名字和用途,很简单,一句话的命令就搞定啦!

# ubuntu 14.04
echo "example_hostname" > /etc/hostname
hostname -F /etc/hostname

顺便说,设置了新的 hostname 请自己去 /etc/hosts 中检查有没有到新的 hostname 对应的 IP 的映射,比如这样:

127.0.0.1           example_hostname
YOUR_IPv4_ADDRESS   example_hostname

设置 hostname 的一些小经验

为自己的 Linux Server 设置一个名字,这个名字一般来说随自己喜欢的来设置,但是我个人推荐使用以下方式来命名,以方便你自己使用

[服务器用途]-[服务器机房位置]-[服务器提供商的名称]

比如说,我有一台亚马逊 AWS 的 N.California 用于网站应用的服务器,那么可以这样命名:web-app-cal-us-aws

这些规则都是个人方便使用,不必强行按照我的方式来,你按照自己习惯和喜欢的最好!

服务器的用途

服务器的用途有很多啊,比如说应用服务器、数据库服务器、队列服务器、负载均衡服务器等,大约按照以下方法来:

  • app 应用服务器,也可以自己扩展为 web-app,app-container 等
  • cache 缓存服务器
  • db 数据库服务器,有 db-master,db-slave 等
  • lb 负载均衡
  • task 队列服务器

服务器机房位置

当出现区域性的网络故障的时候,用服务器机房位置来定位网络故障是挺好的做法。这个位置可以自己随意啊,比如按照飞机场的编号来命名,比如广州某电信数据中心服务器,可以自己用 tel-can 这样自己一眼就能知道哪里的服务器啦!

服务器提供商的名称

通常都是使用云服务商的主机的,比如上面的 aws

设置时区和 NTP 对时

默认情况下,几乎多数的服务器镜像都会默认设置为 UTC 时间(又称格林威治时间),如果你需要本地化你的时间,请务必自行设置你自己的时区。

# ubuntu 14.04
dpkg-reconfigure tzdata

增加自己常用的用户

服务器上最好不要使用 root 来管理服务器,使用一个普通用户,然后 sudoroot 来临时获得高级的权限,是比较安全的做法。

# ubuntu 14.04
adduser example_user
adduser example_user sudo

配置 SSH

关于 SSH 的配置,都可以写出一本书来了,不过个人使用,不必要求太多,够用就好。

生成你的 RSA key-pair

首先在你的本地的电脑上生成你的 4096-bit RSA key-pair,这个 key-pair 有两个文件:id_rsaid_rsa.pub

  • id_rsa 这个是你的私钥,放在你的本地电脑上,千万不要公开出去;
  • id_rsa.pub 这个是你的公钥,放在你的服务器上,或者你要连接的设备上;

注意:以上这两个密钥文件,无论在什么地方,都必须保证其 chmod 600 的权限!防止被别人读取!请务必妥善保存好你的密钥文件!

在本地的 Linux 上可以使用以下命令生成 4096-bit RSA key-pair:

ssh-keygen -b 4096

注意:上面生成 key-pair 命令会清空你的 ~/.ssh/id_rsa* 请运行上面命令前,请你务必清楚并备份你先前的 ~/.ssh/id_rsa*

复制你的 authorized_keys

将上面的公钥 id_rsa.pub 通过各种渠道复制到你的服务器上去。

在 Linux 里面,你可以直接使用以下命令即可:

ssh-copy-id [email protected]_SERVER_IP

如果你使用 windows,那么可以使用 WinSCP 复制到服务器上 /home/example_user/id_rsa.pub,然后等同执行上面的命令:

# ubuntu 14.04
mkdir ~/.ssh; mv ~/id_rsa.pub ~/.ssh/authorized_keys
sudo chmod 700 -R ~/.ssh && chmod 600 ~/.ssh/authorized_keys

配置好 sshd_config

在 Ubuntu 中,sshd 作为 SSH 的守护进程,其配置文件位于 /etc/ssh/sshd_config 其配置将直接影响到 SSH 的安全性。

# ubuntu 14.04
# vi /etc/ssh/sshd_config

# listen only on IPv4
AddressFamily inet

# Disallow root logins over SSH
PermitRootLogin no

# Disable SSH password authentication
PasswordAuthentication no

SSH 的安全至关重要,请务必保证至少具备上面的几条配置!

Comments

comments powered by Disqus