开启了新的 Linux 服务器后,首要任务是做安全配置。

首先更新:

# ubuntu
sudo apt-get update # 获取 apt 源的软件列表
sudo apt-get upgrade # 更新 # centos
sudo yum update # 获取 apt 源的软件列表
sudo yum upgrade # 更新

1. 添加新用户

adduser username  # 比 useradd 更友好,会进入交互模式设置家目录、密码等

# 给予 user sudo 权限
usermod -aG wheel username # CentOS 的 wheel 用户组自动获得 sudo 权限
usermod -aG sudo username # Ubuntu 的 sudo 用户组拥有 sudo 权限 # 如果 adduser 不能使用,或者没有进入交互模式,就改用下面的方法
useradd username
passwd username # 进交互模式,设置用户密码

2. 使用 ssh-key 登录

先在本地机器生成密钥对:

ssh-keygen  # 会进入交互模式,可以指定密钥对保存位置与文件名称

接下来需要把公钥追加到远程主机的 $HOME/.ssh/authorized_keys 文件的末尾($HOME 是 user 的家目录,不是 root 的家目录,看清楚了):

# 传输公钥,默认传输 ~/.ssh/id_rsa.pub
ssh-copy-id -i path/to/key_name.pub user@host # 然后在远程主机上执行(修改权限):
chmod 600 ~/.ssh/authorized_keys

这样你就可以使用秘钥登录了:

ssh <username>@<server-ip> -i <rsa_private_key>  # 私钥默认使用 ~/.ssh/id_rsa

# 举例
ssh ubuntu@111.222.333.444 -i ~/.ssh/id_rsa_for_server

如果无法登录,可以继续下一步。(在下一步会允许使用秘钥方式登录)

3. 禁止密码登录,禁止 root 用户远程登录

编辑 ssh 配置文件 /etc/ssh/sshd_config,修改如下:

PermitRootLogin no  # 禁止 root 登录
PasswordAuthentication no # 禁止密码认证 RSAAuthentication yes # 允许 RSA 秘钥认证
PubkeyAuthentication yes # 允许使用公钥认证登录

然后重启 ssh 服务:sudo service sshd restart

4. 打开防火墙,只开启需要使用的端口

旧版的 linux 基本都使用 iptables 做防火墙,但是它配置特别麻烦。新版的 ubuntu 使用 ufw(底层使用 iptables),而 centos 使用 firewall

4.1 ufw

$ sudo apt-get install -y ufw  # 新版 ubuntu 自带
$ sudo ufw default deny # 默认禁用端口
$ sudo ufw allow ssh # 允许 ssh,这使用了 /etc/services 内的配置,该配置中 ssh 对应端口 22
$ sudo ufw allow http # /etc/services 中 http 对应 80 端口
$ sudo ufw allow 443/tcp # 允许 443 的 tcp 连接
$ sudo ufw --force enable # 开启防火墙
$ sudo ufw status verbose

现在只开启了 22 80 和 443 端口,其他所有端口都会被禁用。

4.2 firewall

systemctl start  firewalld # 启动
systemctl status firewalld # 或者 firewall-cmd --state 查看状态
systemctl disable firewalld # 停止
systemctl stop firewalld # 禁用 # 显示服务列表
Amanda, FTP, Samba和TFTP等最重要的服务已经被FirewallD提供相应的服务,可以使用如下命令查看: firewall-cmd --get-services # 允许SSH服务通过
firewall-cmd --enable service=ssh # 禁止SSH服务通过
firewall-cmd --disable service=ssh sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd --reload # 重载配置

其他 linux 用户相关操作

参考

Linux 远程主机安全配置的更多相关文章

  1. 阿里云服务器Linux CentOS安装配置(三)yum安装mysql

    阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...

  2. 在Linux虚拟机下配置tomcat

    1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...

  3. 在Linux虚拟机下配置jdk的环境变量

    1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...

  4. Linux网络属性配置

    目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...

  5. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  6. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  7. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

  8. 阿里云服务器Linux CentOS安装配置(七)域名解析

    阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...

  9. 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署

    阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...

随机推荐

  1. android 网络技术基础学习 (七)

    使用httpclient协议访问网络: public class MainActivity extends Activity implements OnClickListener{ public vo ...

  2. select 文字右对齐

    select { direction: rtl; } select option { direction: ltr; }

  3. IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息

    IOS中使用百度地图定位后获取城市坐标,城市名称,城市编号信息 /**当获取到定位的坐标后,回调函数*/ - (void)didUpdateBMKUserLocation:(BMKUserLocati ...

  4. UIImagePickerController获取照片的实现,添加overlay方法 (相机取景框)

    DEVELOPER.XIAOYAOLI 技术笔记 简单的利用UIImagePickerController调用iPhone摄像头获取照片的方法,同时介绍了怎么添加overlay,用于自定义预览界面   ...

  5. 执行计划sql

    我准备开始分析并优化我的查询.在分析之前,我想到了一些问题. MS-SQL Server什么时候使用"Table Scan"? MS-SQL Server什么时候使用"I ...

  6. Centos防火墙的配置

    Selinux的三种模式:enforcing,passive,disable 临时更改模式:setengorce 1|0        1:enforcing,   0:passive [root@C ...

  7. VMware虚拟化NSX-Manager命令行更改admin用户密码

    1.1    登录到NSX-Manager命令行界面,输入用户名和密码登录到用户模式 Log in to the vSphere Client and select an NSX virtual ap ...

  8. vue入门——组件基础todolist

    1. 以下是 todolist 的例子,没有用到组件:下面的3 会通过组件拆分todolist <!DOCTYPE html> <html lang="en"&g ...

  9. 【ospf-vlink虚拟连接】

    根据项目需求,搭建好如下拓扑图 配置rt1的环回 口地址及g0/0/0的ip地址 配置rt1的ospf 配置rt2的环回口地址和g0/0/1及g0/0/0的ip地址 \ 配置rt2的ospf 同理,配 ...

  10. 微信小程序 提示框延时跳转

    wx.showToast({ title: '成功', icon: 'success', duration: 2000, success:function(){ console.log('haha') ...