1. 背景

  刚上完一天的网课,进来阿里云服务器的控制台,看到了下面这些东西,我惊呆了……

  就在前几天才领到的阿里云服务器,对服务器的知识一脸蒙逼,刚装了宝塔(网站还没配置好),就运行了几次脚本代码,然后就来攻击我了?不过看网上说的,这是正常现象~
  然后去查了一些相关的知识,发现说SSH端口默认是22,经常会有一些人大量的扫描然后尝试破解,这是正常操作,欢迎来到互联网!

  
环境:Linux CentOS7以上,阿里云服务器
  

2. last命令、lastb命令

last作用是显示近期用户或终端的登录情况。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接系统。

last不加参数:直接执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。

Linux lastb命令用于列出登入系统失败的用户相关信息。

lastb不加参数:单独执行lastb指令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。
  
【 下面的参数两者通用 】
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f <记录文件>:指定记录文件;
-n <显示列数>或-<显示列数>::设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。

第一列:用户名;
第二列:终端位置(pts/0伪终端,意味着从SSH或telnet等工具远程连接的用户,图形界面终端归于此类)
第三列:登录ip或者内核;(如果是:0.0或者什么都没有,意味着用户通过本地终端连接。除了重启活动,内核版本会显示在状态中)
第四列:开始时间;
第五列:结束时间;(still login in 还未退出 down 直到正常关机 crash 直到强制关机)
第六列:持续时间。
  

  • uptime:查看系统从上次开机到现在运行多久了
  • cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort| uniq -c| awk '{print $2"="$1;}':统计失败次数
      

3. SSH更改端口

  ssh的访问如果都利用22端口,则会容易被攻击,修改一个端口号可增强一定的安全性。
  

【第一步】


修改配置文件sshd_config里端口号(建议使用 1024 以上的)。

vim /etc/ssh/sshd_config

找到Port 22这一行(一定不要删除22号!),发现已经被注释了,将注释解开,并添加一行Port 2333,保存退出。

【第二步】  

重启SSH

systemctl restart sshd

查看端口是否更改

netstat -ntlp | grep 2333

一定要保留原有的22端口,在加上自己的端口、更新保存之后,如果直接断开使用新的端口登陆,可能会发现以下错误:

  远程连接不上,这里有一点就是记得去服务器控制台配置规则,添加你新更改的端口,然后用默认的22连接SSH,进去后还需要修改防火墙的规则。
  CentOS7默认的防火墙不是iptables,而是firewalle。

防火墙是整个数据包进入主机前的第一道关卡。防火墙主要通过Netfilter与TCPwrappers两个机制来管理的。
1)Netfilter:数据包过滤机制
2)TCP Wrappers:程序管理机制
关于数据包过滤机制有两个软件:firewalld与iptables
iptables通过控制端口来控制服务,而firewalld则是通过控制协议来控制端口。

【firewalld的指令】

systemctl status firewalld:查看防火墙的状态,看到active(running)就意味着防火墙打开了;
systemctl stop firewalld:关闭防火墙,如果看到inactive(dead)就意味着防火墙关闭了;(关闭后重启会恢复回原来的状态)
systemctl disable firewalld:关闭后重启不会恢复回原来的状态;
systemctl start firewalld 开启的同理关闭的 systemctl enable firewalld

【第三步】  

向防火墙中添加端口,显示sucess则成功。

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

重新加载防火墙规则

firewall-cmd --reload

查看端口是否添加成功,成功的话返回yes

firewall-cmd --zone=public --query-port=2333/tcp

【拓展知识】

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。

SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。

DAC:
  在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。只要访问这个资源的进程符合以上的条件就可以被访问。
  而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。

MAC:
  在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
  这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。
  即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。

【第四步】  

先安装SELinux的管理工具: semanage (已安装的话略过)

yum provides semanage

发现下载时报错,是因为还要先安装其依赖工具包 policycoreutils-python

yum install policycoreutils-python

安装好之后,可以直接使用 semanage 命令,查询当前 ssh 服务端口

semanage port -l | grep ssh

向 SELinux 中添加 ssh 端口

semanage port -a -t ssh_port_t -p tcp 2333

验证 ssh 端口是否添加成功

semanage port -l | grep ssh

添加成功之后就可以重启 ssh 服务了

systemctl restart sshd.service

【第五步】  

关掉当前终端,确保已在安全组添加自己新的SSH端口,然后登陆时使用新的端口号进行登陆,即可成功!

查看当前系统对外开放的端口

firewall-cmd --list-ports

如果要关掉哪个端口,下面两个步骤:
修改配置文件sshd_config里端口号(将不需要的删除)

vim /etc/ssh/sshd_config

删除firewall防火墙中的端口

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

关闭semanage中的端口

semanage port -d -t ssh_port_t -p tcp 2333

重新加载防火墙规则

firewall-cmd --reload

重启 ssh 服务

systemctl restart sshd.service


4. 结束

  新手上路,请多指教!

Centos7关于SSH端口的配置相关推荐

  1. CentOS7修改SSH端口

    CentOS7 修改SSH端口 文章目录 CentOS7 修改SSH端口 1. 修改ssh配置文件 1.1 查看默认端口 1.2 修改端口 2. 防火墙放行 2.1 查看防火墙状态 2.2 防火墙放行 ...

  2. Centos7 修改SSH 端口

    修改ssh端口的详细步骤(centos7): step1 修改/etc/ssh/sshd_config vi /etc/ssh/sshd_config Port 22         //这行去掉#号 ...

  3. Centos7 修改SSH端口,以及修改密码

    前两天公司Linux主机被qW3xT.3 挖矿病毒攻击了~~,然后就对Centos7各种设置. 1.开启防火墙, (以前都是出于关闭状态); 2.修改默认的SSH 22 端口: 3.修改密码. 修改S ...

  4. ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置

    SSH服务常用选项描述 配置文件: /etc/ssh/sshd_config 1.AddressFamliy any:支持那IP协议:比如ipv4,ipv6,:默认 any: 2.Port 22 :S ...

  5. 利用Xshell修改Linux默认SSH端口号等详细配置

      这篇博客,介绍CentOS7.6下如何修改默认SSH端口,新建用户并授权,禁止root远程ssh直接登录,用户名和主机名显示修改.   Xshell(家庭版)的下载:   https://www. ...

  6. Centos7开启SSH服务

    Centos7开启SSH服务 在虚拟机(Vmware Workstation)下,安装了CentOS7,现在想通过SSH工具连接虚拟机中的CentOS7 1.  首先,要确保CentOS7安装了  o ...

  7. linux防火墙开放所有端口命令,linux centos7 防火墙及端口开放相关命令

    一.防火墙相关命令 1.查看防火墙状态 : systemctl status firewalld.service 注:active是绿的running表示防火墙开启 2.关闭防火墙 :systemct ...

  8. linux禁ping禁什么端口,linux系统禁ping及改ssh端口

    #禁ping操作# 1.修改文件 echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all 即可 如果需要ping通则输入: echo 0 >/pro ...

  9. Linux:centos7防火墙开放端口操作

    Centos升级到7之后,发现无法使用iptables控制Linux的端口,google之后发现Centos 7使用firewalld代替了原来的iptables. 但是在CentOS7中也可以ipt ...

最新文章

  1. 数据库索引的工作原理及其种类
  2. Fedora 19配置KVM虚拟机的桥接网络
  3. [BZOJ3693]圆桌会议[霍尔定理+线段树]
  4. MIMIC 以太坊医疗项目开发(2) 前端H5介绍
  5. c语言编程单向链表排序,【分享】C语言 简单链表创建 排序 输出
  6. autoupdater 更新后重新运行_Windows 10 总是自动更新?这几个方法教你关闭它
  7. 【算法】学习笔记(4):分治思想 归并排序
  8. MySQL 字符集相关问题
  9. Exchange 2013CU17和office 365混合部署-设置属性筛选(三)
  10. 软件的一些标号及对应版本
  11. Android Studio开发实战(新手入门)一
  12. 总结数字签名实现身份验证
  13. 就国内而言,读大学的意义是什么?
  14. 【从零开始学习Go语言】一.初识Go语言
  15. 哪怕我变成一个庸俗女子
  16. 军工研究所需要计算机专业吗,8大军工研究所之选择——一名毕业生求职的亲身感受...
  17. GrabCut图像分割
  18. Windows Vista Business系统中成功安装的常用软件
  19. 超级硬核!Java 自学路线总结,已 Get 大厂 Offer,建议立马收藏!
  20. HDU3527(杭电)spy问题

热门文章

  1. php和java搞笑动态图_多玩搞笑GIF图片爬虫 PHP实现
  2. Miniconda安装、卸载与conda简单使用
  3. 开源静态网站打包工具HTTrack使用教程
  4. css给长方形画对角线
  5. PHP快速生成随机字符串
  6. 2023年十大人工智能技术将发生转变
  7. 20行代码,带你了解未来颠覆性的工作模式
  8. python windows桌面程序开发_Python 零基础入门
  9. python语法.numpy的zeros函数
  10. 动态共享ip_共享ip地址_代理ip地址共享