linux服务器基础安全配置(centos7)

我的博客:https://blog.thuol.com

说明

没有绝对的安全,只有相对的安全

1. 修改root密码

root作为超级管理员可以做很多事情(甚至删除系统),密码简单了容易被暴力破解,建议使用密码生成器生成一个16位复杂的密码(暴力破解也需要更长的时间),不要想着记住密码了,使用的时候就复制-粘贴吧,毕竟作为服务器当上线运行的时候不会经常有用到root权限。

计算一下暴力破解16位密码的时间(此段可跳过直接往下看)

单个密码的可能(95)=(26)小写字母+(26)大写字母+(10)数字+(32)键盘上的符号+(1)空格
16位密码共有多少种组合呢?


如果普通计算机的破解速度为每秒10000000个(一千万个还不包括软件运算和网络卡顿延迟时间。。。)
一天=60×60×24=86400秒
假设黑客运气好点,暴力尝试一半就破解了,我们计算一下需要多少天

后面还有两个个0呢。。。。

需要25470293324750000000天。。。自己计算一下需要多少年吧。一般别人不会跟你有生死仇吧,你的服务器也不会重要到国家战争级别吧。。不会有人从出生到入土都在破解你一台服务器。
计算了这么多,就是说明密码越长越好,多一位数就是指数级上升,自己记不住没关系,可以复制粘贴嘛。
密码长了就安全吗?当然不是,人家可以拦截你在网络上传输的数据包,你输入了什么都有可能看到,你复制-粘贴,人家也复制-粘贴。。。密码长度越长可防止暴力破解

2. 添加其他用户,将用户分组。

各司其职,权限不是越大越好,用户需要什么权限就分配什么权限,可将不同功能的用户分为不同的组。
比如:ftp用户分配在ftp组内,git分配到git组中。。。
具体方法如下
linux添加用户,用户组(centos7)传送门:http://www.jianshu.com/p/f468e02f38a0

3. 更换ssh登录端口

ssh默认端口为22。默认的东西你知我知

  • 修改sshd_config文件(关于ssh的配置大多都在这个文件中)
vim /etc/ssh/sshd_config

搜索Port修改为2222端口(端口可自行更改)
理论上可以改成随意端口,可是这些端口可能会和其他服务冲突,可以参考这里

Port  2222
firewall-cmd --zone=public --add-port=2222/tcp --permanent      #开启防火墙2222端口
systemctl restart firewalld.service                             #重启防火墙
systemctl restart sshd.service                                  #重启ssh服务

4. 使用密钥+密码登录(双层保障)

当别人通过非暴力破解方式获取了你的服务器登录密码之后,密码再长也没有用了。这个时候就需要使用密钥文件验证了。如果加上密码安全系数相对会更高一点。
密钥是提前生成的。想要登录,必须拿到密钥文件。拿到密钥文件后才有资格输入密码。密钥文件也可以单独加密,这样要登录服务器就要获取到密钥文件,输入两个密码。
同时获取到这个三个条件(密钥文件,密钥密码,用户密码)难度可不是×3了。。。再被别人莫名其妙的登录那就要想想自己得罪谁了,被人家针对了。。
使用密钥+密码登录传送门:http://www.jianshu.com/p/b1eeb3f1a2c1

5. 防火墙端口配置

用到什么端口就开什么端口,千万不要为了省事,直接关闭防火墙。
防火墙端口设置常用命令,添加/禁用,操作后需要重启或重载防火墙生效。

systemctl start firewalld                                     #启动防火墙
systemctl stop firewalld                                      #禁用防火墙(防火墙全部关闭)
systemctl restart firewalld.service                           #重启防火墙
firewall-cmd --reload                                         #重启载入防火配置
systemctl enable firewalld.service                            #将防火墙加入开机自启动

firewall-cmd --zone=public --add-port=80/tcp --permanent      #添加开启80端口
firewall-cmd --zone=public --add-port=4000-4010/tcp --permanent      #添加开启4000-4010端口
firewall-cmd --zone=public --remove-port=21/tcp --permanent   #禁用21端口

firewall-cmd    --query-port=80/tcp                           #查询80端口是否开启
netstat -tunlp |grep ftp                                      #查看ftp端口使用端口情况
netstat -ntlp                                                 #查看监听(Listen)的端口
netstat -antp                                                 #查看所有建立的TCP连接
iptables -L                                                   #查看防火墙规则

6. 设置日志文件系统

使用history命令查看当前系统用户操作日志是默认10000行这样的用户是不够的。
而且同一个用户多个地方同时登录我们就查不到具体那条命令是哪个用户在哪个ip登录并执行的。
所以我们需要自己创建ssh日志记录。

  • 编辑profile文件
vi /etc/profile

使用户登录后在/tmp/dbasky目录生成日志(目录可自定义修改,修改下面代码对应目录即可)
将以下内容粘贴到文件底部

#########################日志记录##############################
PS1="`whoami`@`hostname`:"'[$PWD]'
history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/dbasky ]
then
mkdir /tmp/dbasky
chmod 777 /tmp/dbasky
fi
if [ ! -d /tmp/dbasky/${LOGNAME} ]
then
mkdir /tmp/dbasky/${LOGNAME}
chmod 300 /tmp/dbasky/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null

使用脚本生效

source /etc/profile

退出用户,重新登录
查看日志(默认只有root有权限查看),不同用户会以用户名名单独创建目录,使用vi即可查看


7. 最后禁止 root 用户使用 ssh 登入

当服务器基础环境搭建好之后就可以禁用掉root账号登录,平时只使用普通账号。
如果需要管理员权限可以在命令前加sudo。或者登录后切换到root用户(切换root也尽量少用)。

禁用root配置

  • 修改sshd_config文件
vim /etc/ssh/sshd_config

搜索PermitRootLogin修改为no,yes为允许root账号登录

PermitRootLogin no

重启ssh服务

systemctl restart sshd.service

**这个时候不要关闭当前的连接,另外开一个连接进行测试root是否能登录。同时保证有其他用户可以登录,如果其他用户不能登录还能改回来。否则你关闭了连接又没有其他账号可登录。想要控制远程的服务器,呵呵!!→_→ **
(真的关闭了当然不是不能连接,麻烦点。如果自建机房,带着键盘和显示器去机房吧。如果是云服务器,一般登录管理页面都有控制台。)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容

  • 原文链接:提高Linux服务器安全欢迎访问我的博客 虽然Linux已经很安全了,但是如果密码设置的不够复杂,如果说...
    tikyle阅读 1,294评论 4 26
  • 1、远程连接服务器 远程连接服务器对于管理员来说,是一个很有用的操作。它使得对服务器的管理更为方便。不过方便归方便...
    Zhang21阅读 39,473评论 0 20
  • CA和证书安全协议(SSL/TLS)OpenSSH 一、CA和证书 (一) PKI(Public Key Infr...
    哈喽别样阅读 1,378评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,566评论 18 139
  • “豆腐,大块豆腐……”每每街头传来这叫卖的声音,我的思绪都会飞的很远很远…… 豆腐存在的历史悠久,相传是在前164...
    天边那朵白云阅读 574评论 1 4