Linux服务器CentSO7.6初始化网络安全防火墙及用户组配置

本文详细介绍了如何配置Linux服务器的SSH端口以避免常规攻击,以及如何设置firewall以限制端口和网段,创建用户并限制权限,确保服务器安全。
摘要由CSDN通过智能技术生成

配置概览:
Linux服务器基本网络安全配置:

ssh远程登录端口及用户限制firewall配置开放端口用户权限及用户组配置

现在网络环境已今非昔比,如果服务器不进行任何安全配置,很容易受到黑客攻击,丢失数据的同时也徒增很多麻烦,很是恼人。本文总结了一些常用的网络安全、防火墙及用户组配置,可以阻隔部分黑客攻击,欢迎大家留言学习交流~记得点赞收藏!

本文共分为七章,前后没有关联,可以根据实际情况选择配置。


一、更改常用ssh登录端口,避免常规攻击

提示:这里更改端口后,在服务器配置端,要在网络安全组中放开对应端口号,使用XShell等工具连接时,也要使用自定义的端口号!

1、编辑SSH配置文件。使用文本编辑器(如vi或nano)打开SSH配置文件:

vi /etc/ssh/sshd_config

2、找到以下行:#Port 22,删除行首的注释符号#,然后将端口号修改为您想要使用的新端口号。

在这里插入图片描述

此处补充Linux文件编辑基本操作(大佬可以跳过不看):

 - 输入 vi + 文件名,进入文件。
 - 移动光标至对应需要修改的位置,按 i 进行插入编辑,此时已经可以编辑内容,可以删除/修改/输入文本。
 - 修改完成后按 Esc 建退出编辑模式,然后键入 :wq 保存并退出,如果此时退出文件,则保存修改成功。

3、重启SSH服务。使用命令重启SSH服务,使更改生效。

sudo systemctl restart sshd


二、进行firewall防火墙设置(端口及网段限制)

——此处使用firewall配置,也可以使用iptable进行配置,但本文不做介绍,大家可以自行度娘,底层原理相同,选择其一使用即可。

下文中***标记的ip网段及ip地址,根据实际情况进行修改,可以度娘经常访问的机器ip
此处我将数据库及其他端口都进行了自定义,如:3306、6379、22等,所以都是不规则端口号,大家可以根据实际情况修改

将默认远程服务删除,开放指定端口,开放指定地址段:

  • 查看当前防火墙状态,是否开启

systemctl status firewalld

  • 如果没有开启,先开启防火墙

systemctl start firewalld

  • 查看当前开启的系统服务

firewall-cmd --list-service

  • 将ssh删除,不默认开放

firewall-cmd --remove-service=ssh --permanent

  • 增加开放端口(后续可以单独使用此命令添加服务端口映射,记得添加后reload生效

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3888/tcp --permanent
firewall-cmd --zone=public --add-port=6888/tcp --permanent

  • 在此进行举例,其他服务端口映射同理。以Docker容器化启动Mysql为例,可以将容器内部的3306端口映射到宿主机的3888端口。
  • Docker启动命令 -p 端口映射(宿主机端口在前,容器内部端口在后)
sudo docker run -p 3888:3306 --name mysql \
-v /home/service/mysql/logs:/logs \
-v /home/service/mysql/data:/mysql_data \
-e MYSQL_ROOT_PASSWORD=password \
--restart=always -d mysql:5.7
  • 更改映射端口后,在使用数据库管理工具、jdbc连接链接时,记得将3306改为3888。以spring的yaml配置文件为例:
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3888/mydatebase?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=true
  • 可以将要使用的ssh端口删除,删除开放6888端口,在规则中单独向指定ip开放(可选操作)

firewall-cmd --permanent --remove-port=6888/tcp

  • 对指定***.***.***.***网段放行,拒绝其他网段访问

firewall-cmd --zone=public --add-source=***.***.***.***/24 --permanent

  • 对指定 ***.***.***.*** ip开放6888端口,进行远程登录
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="***.***.***.***" port protocol="tcp" port="6888" accept'
  • 使设置生效

firewall-cmd --reload

  • 查看当前防火墙所有配置

firewall-cmd --list-all

  • 开启开机自动启动防火墙

systemctl enable firewalld

补充:firewall配置文件,及zones配置,可在以下路径中找到直接配置(大佬可以直接进文件配置,小白不建议修改文件,因为其中文件语法和格式一旦更改可能就失效,建议使用上面的命令方法):

/etc/firewalld/zones


三、创建用户,尽量减少root用户的直接使用

使用非root用户时,需要将自定义用户分进root组,同时执行操作时需要在命令最前加sudo

1、创建用户tom:

adduser tom

2、给用户tom设置密码:

passwd tom

3、将用户tom分组,分进root(wheel)组,root组为最高权限组,谨慎赋权!

usermod -g root tom

4、查看tom分组信息:

groups tom


四、口令文件不可修改属性修改

此处要在第三章执行后,以下文件不可修改,无法再对用户和密码进行操作。
若后期需要进行用户密码相关操作,需要再对文件权限进行放开,使用root账户执行 chattr -i +对应文件名即可
以下所有文件权限要统一,不要只修改其中几个,要改全都改,否则依然无法生效

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限:

chattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/group

chattr +i /etc/gshadow


五、限制su命令

如果不想任何人能够su作为root,可以编辑 /etc/pam.d/su 文件,将第4行和第6行注释打开:

vi /etc/pam.d/su

英文好的同学可以看到第3行和第5行注释的解释,只信任root(wheel)用户组的用户

#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth            sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth            required        pam_wheel.so use_uid
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so

六、限制root账号远程登录

此处进行修改后,只能在服务器网页端,使用服务器提供商提供的网页登录插件,来登录root操作,谨慎操作!

1、打开SSH配置文件:

sudo vi /etc/ssh/sshd_config

2、找到PermitRootLogin行,将注释打开,并将其设置为no:
PermitRootLogin no

在这里插入图片描述

3、重启SSH服务。使用命令重启SSH服务,使更改生效。

sudo systemctl restart sshd


七、指定账号远程登录

1、打开SSH配置文件:

sudo vi /etc/ssh/sshd_config

2、查找是否有AllowUsers指令,如果没有,可以添加它来指定哪些用户可以登录。
如果已经有这个指令,用空格分隔添加更多用户。(下图中ray为自定义用户名)

AllowUsers username1 username2

举例EXP:
AllowUsers ray tom

在这里插入图片描述

3、重启SSH服务。使用命令重启SSH服务,使更改生效。

sudo systemctl restart sshd


以上为所有内容,如果问题还没有得到解决,欢迎大家留言讨论交流,有帮助到你就 点个赞吧 ^.^


  • 51
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值