注:本文中的命令全部是基于CentOS 7的,其他发行版本其实也大同小异
更改hostname
上图来自: CentOS 7 : Set Hostname
设置/etc/hosts
这个其实跟Windows的hosts一样,它默认有两行示例,照着写就好。
设置时区
例如:
cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
把“Asia/Hong_Kong”换成自己想要的即可
更新:yum update
(这个随时都可以,新配置的机器建议更新下)
添加用户并分配权限
[root@server ~]# adduser demo
[root@server ~]# passwd demo
[root@server ~]# visudo
##Allow root to run any commands anywhere
root ALL=(ALL) ALL
exampleuser ALL=(ALL) ALL
设置ssh
用PuTTYgen生成密钥并配合PuTTY来实现SSH远程登录
此处主要参考Linode的 官方文档,因为我用的是Windows系统,所以这里使用PuTTYgen和PuTTY这两个软件来生成密钥和登录
生成公钥
点击Generate生成公钥,把生成的公钥复制一下,待会儿要用到(也可以把公钥保存到电脑上自己认为足够安全的地方)
设置私钥的密码并保存私钥到本地
务必给私钥设置个口令,并确保私钥的安全,这个非常重要
上传公钥到Linode
在/home/yourusername
(yourusername改成自己的用户名)目录下创建一个.ssh文件夹,然后在这个文件夹下面新建一个名为authorized_keys的空白文件(注:普通用户登录,且不要用sudo命令)
mkdir ~/.ssh; touch ~/.ssh/authorized_keys; chmod 700 ~/.ssh
然后 nano ~/.ssh/authorized_keys
把刚才保存的那一串公钥复制进来然后保存退出,更改下权限 chmod 600 .ssh/authorized_keys
。感觉在这里也可以直接把前面保存的公钥重命名为 authorized_keys 上传到 .ssh 目录下,然后更改权限,不过我没这么试。
(注:公钥复制粘贴保存这块很容易出问题,导致下面PuTTY登录时提示"server refused our key",一定要看好了,不要少复制了,也不要有多余的换行,公钥只有一行)
配置PuTTY远程登录
在Connection -> SSH -> Auth下点击Browse选择刚才所保存的私钥,然后在Session部分填下VPS的地址或者主机名,为了方便以后登录,可以点击Save保存一下,然后点击Open即可打开SSH登录界面,然后输入用户名以及私钥的口令就可以登录了
禁用SSH密码登录,禁用root登录
sudo nano /etc/ssh/sshd_config
找到下面两行,都改成no,如果被#注释掉了,记得把#去掉
PasswordAuthentication no
PermitRootLogin no
然后重启下ssh服务 sudo systemctl restart sshd.service
Ok.到这里应该都设置好了,退出PuTTY,再次登录验证下,现在应该是只能通过ssh密钥的方式登录,而使用密码登录,以及root用户登录都会被限制掉
设置firewalld
(之前是iptables,与firewalld不太一样)【此处稍后更新代码】
配置Fail2Ban
安装:yum install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vi /etc/fail2ban/jail.local
把最基本的几条按照自己的需求修改一下,比如ignoreip, bantime, findtime, maxretry这几项,然后重启服务,让配置生效
systemctl restart fail2ban.service
更多Fail2ban的设置可参考:
How to Install Fail2Ban on CentOS
How Fail2ban Works to Protect Services on a Linux Server