在使用云服务器的过程中经常会遇到很多非法的入侵试图登录服务器,所以我们需要对服务器进行安全防范

关闭ping扫描,虽然没什么卵用

先切换到root

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

1代表关闭

0代表开启

用iptables

iptables -I INPUT -p icmp -j DROP

简单介绍下基本的安全设置

一、创建普通用户,禁止root登录,只允许普通用户使用su命令切换到root

这样做的好处是双重密码保护,黑客就算知道了普通用户的密码,如果没有root密码,对服务器上攻击也比较有限

以下是具体做法(需要在root下)

添加普通用户

useradd xxx

设置密码

passwd xxx

这样就创建好了一个普通用户

禁止root登录

vi /etc/ssh/sshd_config

PermitRootLogin no

Systemctl restart sshd

这样就完成了第一步,之后root就无法登录服务器只能通过普通用户su切换

二、修改ssh的默认端口22,因为ssh的端口是22,我们如果修改了该端口,他们就需要花费一点时间来扫描,稍微增加了点难度

以下将端口改为51866可以根据需要自己更改,最好选择10000-65535内的端口

step1 修改/etc/ssh/sshd_config

vi /etc/ssh/sshd_config

#Port 22         //这行去掉#号

Port 51866      //下面添加这一行

为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器

step2 修改SELinux

安装semanage

$ yum provides semanage
$ yum -y install policycoreutils-python

使用以下命令查看当前SElinux 允许的ssh端口:

semanage port -l | grep ssh

添加51866端口到 SELinux

semanage port -a -t ssh_port_t -p tcp 51866

注:操作不成功,可以参考:https://sebastianblade.com/how-to-modify-ssh-port-in-centos7/

失败了话应该是selinux没有打开

然后确认一下是否添加进去

semanage port -l | grep ssh

如果成功会输出

ssh_port_t                    tcp    51866, 22

step3 重启ssh

systemctl restart sshd.service

查看下ssh是否监听51866端口

netstat -tuln

Step4 防火墙开放51866端口

firewall-cmd --permanent --zone=public --add-port=51866/tcp

firewall-cmd --reload

然后测试试试,能不能通过51866登录,若能登录进来,说明成功,接着删除22端口

vi /etc/ssh/sshd_config

删除22端口  wq

systemctl restart sshd.service

同时防火墙也关闭22端口

firewall-cmd --permanent --zone=public --remove-port=22/tcp

注意如果是使用阿里的服务器需要到阿里里面的安全组添加新的入站规则(应该是因为阿里的服务器是用的内网,需要做端口映射)

三、使用一些类似DenyHosts预防SSH暴力破解的软件(不详细介绍)

其实就是一个python脚本,查看非法的登录,次数超过设置的次数自动将ip加入黑名单。

四、使用云锁(不详细介绍)

参考自http://tim-fly.iteye.com/blog/2308234

总的来说做好了前两步能够减少至少百分之五十的入侵,在做好第三步之后,基本可以杜绝百分之八十以上的入侵。当然最重要的还是自己要有安全意识,要多学习一些安全知识和linux的知识。

第三第四其中都有稍微提到一点,感兴趣可以看看

centos7服务器基本的安全设置的更多相关文章

  1. Centos7服务器中通过编译源码安装MySQL

    基于在Centos7服务器上使用 yum 安装MySQL5.7到默认路径 在修改文件存储位置的时候,折腾了一番没有将成功将datadir修改为我想要的位置 我决定再尝试一下通过编译源码来自定义安装: ...

  2. CentOS7服务器中apache、php7以及mysql5.7的安装配置代码

    CentOS7服务器中apache.php7以及mysql5.7的配置代码如下所示: yum upgradeyum install net-tools 安装apache (http://m.86822 ...

  3. 无法访问 CentOS7服务器上应用监听的端口

    无法访问 CentOS7服务器上应用监听的端口 参考资料 云主机上Centos7配置Iptables规则开启80.3306等端口https://blog.csdn.net/qq_37960007/ar ...

  4. [CentOS7服务器] 更改系统时间

    未知何故,服务器上的系统时间不对,比实际的UTC快了将近63分钟.在涉及本地文件与远程服务器文件的时间戳校验时,容易产生混淆. 这里把系统时间更正的过程记录如下. 参考资料:http://www.ce ...

  5. ntp服务器搭建与客户端设置

    服务器对时间要求非常严格,linux服务器文件的生成,日志,以及数据库的连接都是根据时间的逻辑 进行任务处理,如果时间不同步,那么,处理的任务,以及出问题的分析日志,时间不对,很难分析 直接更改lin ...

  6. MySQL服务器最大连接数怎么设置才合理[转]

    如果mysql 连接数据设置不合理可能会导致很小的流量mysql就提示MySQL: ERROR 1040: Too many connections错误了,那么要如何才算是合理设置mysql最大连接数 ...

  7. centos7开放端口和防火墙设置

    centos7开放端口和防火墙设置. 查看防火墙状态: firewall-cmd --state 如果显示: not running 打开防火墙服务: systemctl start firewall ...

  8. 常用邮箱POP3 STMP服务器与端口号设置

    一.常用邮箱POP3 STMP服务器与端口号设置: [网易 163.126免费邮箱目前不直接开放smtp.pop3服务.有需要的用户可通过购买随身邮或邮箱伴侣及加入会员中心获得.从2006年11月16 ...

  9. 虚拟机centos7服务器下,启动oracle11g数据库和关闭数据库

    转载:https://blog.csdn.net/ShelleyWhile/article/details/74898033 一.前提条件:虚拟机centos7服务器下,已经安装好oracle11g数 ...

随机推荐

  1. cube中的判断类型

    import { createAddAPI } from '../util' const DATE_RE = /^(1|2)\d{3}[.\-/]\d{1,2}[.\-/]\d{1,2}$/ cons ...

  2. Django-models,继承AbstractUser类

    1.UserInfo类继承了Django模型自带的User类,需要导入AbstractUser   2.然后在settings.py中配置

  3. VMX指令集

    指令 作用 VMPTRLD 加载一个VMCS结构体指针作为当前操作对象 VMPTRST 保存当前VMCS结构体指针 VMCLEAR 清除当前VMCS结构体 VMREAD 读VMCS结构体指定域 VMW ...

  4. (六)kernel中文件的读写操作可以使用vfs_read()和vfs_write

    需要在Linux kernel--大多是在需要调试的驱动程序--中读写文件数据.在kernel中操作文件没有标准库可用,需要利用kernel的一些函数,这些函数主要有: filp_open() fil ...

  5. /usr/bin/expect介绍

    /usr/bin/expect介绍 http://blog.csdn.net/zhu_tianwei/article/details/44180637 概述 我们通过Shell可以实现简单的控制流功能 ...

  6. (接口自动化)Python3操作MySQL数据库

    基础语法: import pymysql #导入模块 conn = pymysql.connect(host='localhost',user='root', passwd='123456', db= ...

  7. 出现“error c4430缺少类型说明符-假定为int。注意C++不支持默认int

    出现这种错误的原因,是因为函数没有写返回值.是在VC6.0的工程转为高版本(VS2010)的时候经常出现的; #include <stdio.h> main() { printf(&quo ...

  8. 定制一个支持中英文的简单LaTex模板

    平常写汇报文档什么的,word排版有时还是比较费劲,遂定制一个简单的LaTex模板,中文默认为宋体,英文为LaTex默认字体,支持彩色高亮展示,有目录书签,有页眉展示,大致如下: LaTex代码如下: ...

  9. 我的一次安装oracle的过程

    1.在装oracle之前,先安装.net3.5 2.然后正常安装oracle,一直next 3.装完oracle后,安装plsql dev工具,打开工具,发现没有connect as,是需要进行一些配 ...

  10. 自动清空Tomcat日志的办法

    cd /usr/local/tomcat7/logs #清空日志 echo > catalina.out vi r.sh #!/bin/sh ########################## ...