Linux 远程主机安全配置
开启了新的 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 远程主机安全配置的更多相关文章
- 阿里云服务器Linux CentOS安装配置(三)yum安装mysql
阿里云服务器Linux CentOS安装配置(三)yum安装mysql 1.执行yum安装mysql命令:yum -y install mysql-server mysql-devel 2.启动mys ...
- 在Linux虚拟机下配置tomcat
1.到Apache官网下载tomcat http://tomcat.apache.org/download-80.cgi 博主我下载的是tomcat8 博主的jdk是1.8 如果你们的jdk是1.7或 ...
- 在Linux虚拟机下配置jdk的环境变量
1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...
- Linux网络属性配置
目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...
- 阿里云服务器Linux CentOS安装配置(零)目录
阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...
- 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署
阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...
- 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定
阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...
- 阿里云服务器Linux CentOS安装配置(七)域名解析
阿里云服务器Linux CentOS安装配置(七)域名解析 1.购买域名 登录阿里云,左侧菜单点击[域名],然后[域名注册],完成域名购买.(一般首年45元) 2.添加域名解析 在域名列表里点击你的域 ...
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
阿里云服务器Linux CentOS安装配置(六)resin多端口配置.安装.部署 1.下载resin包 http://125.39.66.162/files/2183000003E08525/cau ...
随机推荐
- 微信开发----JS-SDK接口
2018.03.15:GitHub下载代码 208.3.6:更新:我们不再使用JosnHelp返回字典类或者强类型,而是直接返回动态类型,这样就会方便的多. JsonHelp更新详情:微信开发---- ...
- 访问oracle数据库
如果是本地 :sqlplus system/xxx(用户名/密码) 远程到服务器, sqlplus system/xxx(用户名/密码) @IP:port/orcl(orcl为数据库实例)
- JS基础——数组API之数组操作(filter、map、some、every、sort)
var arr = [1,2,3,4]; forEach arr.forEach((item,index,arr) => { console.log(item) //结果为1,2,3,4 } ...
- c++cmb
#include<windows.h> #include<bits/stdc++.h> using namespace std; ]; int main() { printf( ...
- ABAP术语-Function Group
Function Group 原文:http://www.cnblogs.com/qiangsheng/archive/2008/02/13/1067699.html Group of logical ...
- 19-2-28Python的了解以及变量、常量、数据类型、if语句的结构
Python目前有两个大版本,一个是2.x版本,一个是3.x版本. Python2x:源码冗余,混乱:且默认ASCII码,只能识别英文字母数字. Python3x:源码整合,美观,清晰,简单.默认ut ...
- springMVC-RESTful约束下dispatcher拦截对象优化
警告: No mapping found for HTTP request with URI [/management/fonts/glyphicons-halflings-regular.woff] ...
- Percona-Tookit工具包之pt-kill
Preface Sometimes,we are determined to kill some MySQL connections which are occupying huge ...
- CentOS7版本基础使用
第1章 CentOS7的使用 1.1 为什么要使用CentOS7版本 CentOS7是在CentOS6基础上发布的新版本,与之前的版本相比,主要的更新包括: 1.内核更新到3.10.0 2.支持Lin ...
- IDEA的使用方法(三)(改变字体主题)
今天正式写代码的时候发现,一开始由于破解的太随意,没有设定好主题和字体现在看的有点昏,那么接下来就发一个该如何改变IDEA的字体和主题的教程: File——>setting——>Edito ...