Linux系统安全配置
1、物理安全
硬件服务器,关闭从CD/DVD等这些方面的软启动方式。同时也可以设置BIOS密码,并且要有限制访问的策略与各类流程管控。
还可以禁用USB设备来达到安全的目的:
centos7x 安装dconf-editor,搜索automount,将automount及automount open值设为false
或者使用下面的命令将USB的驱动程序删除
mv /lib/modules/3.10.0-862.el7.x86_64/kernel/drivers/usb/storage/usb-storage.ko.xz
2、保证系统最新
保证系统无其它漏洞存在,比如:已经有的漏洞要及时的修复。保证系统包含了最新版本的补丁、安全修复和可用内核
yum updates
yum check-update
经常关注国内外关于、系统最新漏洞以及补丁发布的信息了
3、最小化处理原则
安装系统,还是常用的软件,都必须遵守这个原则:最小化安装,同时也是减少漏洞存在的可能性。
对于系统一些不必要的服务、端口,建议关闭。
chkconfig --list |grep "3:on"
systemctl stop services
4. 登录与连接
第一步:就是除了非必要情况,杜绝使用root用户登录,可以使用sudo来进行提权操作,然后利用系统命令将/etc/sudoers文件锁定(除root用户之外的用户无权限修改)。
第二步:建议修改SSH配置文件,比如默认端口号22,禁止root密码登录(有些自有机房的还可以直接禁用root用户通过SSH协议登录)等
[root@congcong ~]# vim /etc/ssh/sshd_config
#Port 22
可修改成其它端口号,常用IP+22混合使用
#PermitRootLogin yes
将yes改成No
#PermitEmptyPasswords no
打开注释即可
#AllowUsers username
指定特定的用户通过SSH协议进行远程连接
5、用户管理
Linux是一个可多用户并行操作的系统,所以,系统也对用户进行了划分:超级用户与普通用户。两者权限不同,因此,能干的事也有所不同 设置用户密码:
这个可以通过系统命令passwd来进行设置,一般建议使用强度比较复杂的密码,且各个系统中相同的用户使用不同的密码(日常可以使用管理器来管理)。 临时用户管理:
对于这种需要的临时用户管理,一般是使用过后可以删除,也可以在一段时间后将其锁定不让其再登录,在下次需要登录时再次开启权限。
删除用户很简单,可以使用系统命令userdel -r username 进行删除。
锁定用户其实就是修改用户的属性:
usermod -L mingongge #锁定用户
usermod -U mingongge #解锁用户
6、文件管理
文件管理指的是存储用户信息的重要文件:/etc/passwd、/etc/shadow这两个文件。
将此两个文件锁定除了root用户之外的用户无权限修改与访问。
7、启用防火墙
8、软件包的管理
系统安装的软件,我们使用RPM包管理器来管理,对于使用yum命令列出来的软件,在对其进行删除、卸载时
yum -y remove software-package-name
rpm -e software-package-name 对于有依赖的加上参数 --nodeps
9、禁用Crtl+Alt+Del 重启
按下Crtl+Alt+Del组合键后,都会使用服务器重启,对于线上服务器来说是绝对不友好的一个安全因素,必须禁止
centos 7.x
cat /etc/inittab
vim /usr/lib/systemd/system/ctrl-alt-del.target
上面文件中的配置注释掉之后,reboot命令会不生效了:
ctrl-alt-del.target这是reboot.target的软链接。最终的方法是:移动掉这个文件到其它目录,然后重载配置文件使用其它生效,如果再需要这个功能就只需要重新添加这个软件链接即可
10、监控用户行为
安装sa和ac命令: yum install psacct -y
ac 统计用户连接时间
ac #显示所有用户连接总时间
ac -p #显示每个用户连接时间
ac -d #显示每天所有用户连接总时间
ac silence #显示指定用户连接时间
ac -d silence #显示指定用户每天连接时间 sa 输出用户活动信息
sa #显示所有用户执行命令情况
sa -u #按用户显示执行命令情况
sa -m #按进程显示执行命令情况
sa -p #按使用率显示执行命令情况 lastcomm 输出最近执行命令信息
lastcomm #显示所有执行命令
lastcomm silence #显示指定用户执行命令
lastcomm ls #显示指定命令执行情况 其他
last #查看最近用户登录成功列表
last -x #显示系统关机、重新开启等信息
last -a #将IP显示在最后一列
last -d #对IP进行域名解析
last -R #不显示IP列
last -n 3 #显示最近3条
lastb #查看最近用户登录失败的列表
11、定期检查日志
将系统及其重要的日志保存在本服务器之外的专业日志服务器上,从而避免黑客通过分析日志来入侵系统及应用,以下是常见的日志文件:
/var/log/message --记录系统日志或当前活动日志
/var/log/auth.log --身份认证日志
/var/log/kern.log --内核日志
/var/log/cron.log --Crond日志(crontab定时任务日志)
/var/log/maillog --邮件服务日志
/var/log/boot.log --系统启动日志
/var/log/mysqld.log --Mysql数据库日志
/var/log/secure --认证日志
/var/log/utmp or /var/log/wtmp --登录日志
/var/log/yum.log --yum日志
12、数据备份
重要的生产数据,必须本地、异地、不同介质备份及保存,同时还需要定期检查数据的完整性、可用性。
13、安全工具
对于系统来说,常用的安全扫描工具是必备的,比如:扫描开放端口nmap。对于系统中的WEB应用等来说,可以使用一些开源的工具:IBM AppScan、SQL Map等,同样这类的商用产品也很多。
对于文件有文件加密工具,对于系统还有一些入侵检测、漏洞扫描工具,无论是开源还是商业,都是可以根据实际需求与企业成本来决定使用哪一款工具。
Linux系统安全配置的更多相关文章
- Linux 系统 网络配置
Linux 系统 网络配置 配置Linux系统网络的方法有几种,这里介绍本人常用的两种. 第一种:使用命令ifconfig配置,具体用法:Ipconfig ethx x.x.x.x net ...
- 虚拟机Linux系统下配置网络
虚拟机上安装Redhat9.0后是没有网络的,而本来的Windows系统是可以上网的,此时想在Redhat上网就需要在Linux系统上配置网络,以下是笔者自己配置的一点心得. 1.电脑本机系统打开网络 ...
- 在linux系统中配置NVMe over FC
在linux系统中配置NVMe over FC与配置NVMe over TCP类似,前5步操作请参考<在linux系统中配置NVMe over TCP>,网页连接如下: https://w ...
- Linux系统下配置环境变量
一.环境变量文件介绍 转自:http://blog.csdn.net/cscmaker/article/details/7261921 Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登 ...
- Linux系统下配置JDK环境变量
刚申请了阿里云,平时很少接触Linux,特此记录一下Linux系统下安装JDK的步骤. 1.进入usr:cd /usr: 2.创建java文件夹:mkdir java: 3.将下载好的文件拷贝至jav ...
- Linux系统中配置jdk
在Linux系统下安装jdk 1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...
- [Linux][VMWare] 学习笔记之安装Linux系统-网络配置
最近开始折腾Linux,在本机装了个VMWare和Centos,装完之后虚拟机里面的OS可以上网,但是使用SecureCRT连接不上虚拟机,开始折腾这个网络. vmware安装好以后,会自动添加两张网 ...
- 嵌入式控制(0)----linux系统网络配置
嵌入式系统本身具有操作系统的全部属性,但收到其硬件条件制约,故需要主机通过串口/网口等方式与其通信.今日下午的工作主要是linux系统的ssh传输配置,nfs服务器配置,tftp服务器配置. ip的概 ...
- Linux系统安全配置基线
一:共享账号检查 配置名称:用户账号分配检查,避免共享账号存在 配置要求:1.系统需按照实际用户分配账号: 2.避免不同用户间共享账号,避免用户账号和服务器间通信使用的账号共享. 操作指南:参考配置操 ...
- 虚拟机中ubuntu-16.04 Linux系统下配置mysql数据库,并在windows下使用navicat远程连接
Linux系统下mysql数据库安装配置步骤: 1.在服务器上安装mysql:sudo apt-get install mysql-server sudo apt-get install mysql- ...
随机推荐
- go interface{}使用
先上代码 func In(haystack []interface{}, needle interface{}) (bool, error) { sVal := reflect.ValueOf(hay ...
- Java语言学习day26--7月01日
###14内部类 * A: 内部类的概述 将类写在其他类的内部,可以写在其他类的成员位置和局部位置,这时写在其他类内部的类就称为内部类. 其他类也称为外部类. * B: 什么时候使用内部类 在描述事物 ...
- Java 18 新特性:简单Web服务器 jwebserver
在今年3月下旬的时候,Java版本已经更新到了18.接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学 ...
- Python抽象基类:ABC谢谢你,因为有你,温暖了四季!
Python抽象基类:ABC谢谢你,因为有你,温暖了四季! Python抽象基类:ABC谢谢你,因为有你,温暖了四季! 实例方法.类方法和静态方法 抽象类 具名元组 参考资料 最近阅读了<Pyt ...
- XCTF练习题---MISC---再见李华
XCTF练习题---MISC---再见李华 flag:Stay hungry, Stay foolish. 解题步骤: 1.观察题目,下载附件 2.拿到手以后发现是一张图片,其中有MD5,破解一下没有 ...
- Java 18 新特性:使用Java代码启动jwebserver
前几天分享了Java 18 新特性:简单Web服务器的jwebserver命令行功能. 今天换一种方式,使用Java代码来实现一个静态资源服务器. 详细步骤我录了个视频放到B站了,感兴趣的小伙伴可以点 ...
- Error:java: Can‘t generate mapping method with primitive return type.报错
原因:Spring项目中使用了JPA以及Mybatis–mapper文件注解引错包导致编译错误 解决: 错误:import org.mapstruct.Mapper;正确路径:import org.a ...
- Java-GUI编程之Swing组件
目录 为组件设置边框 使用JToolBar创建工具条 JColorChooser和JFileChooser JColorChooser JFileChooser JOptionPane 基本概述 四种 ...
- Nginx禁止使用IP访问
在nginx的访问日志中,会出现只显示IP,而不出现域名的情况,在经过尝试之后,是因为没有设置禁止IP访问导致的. 下面就是在配置文件中设置禁止IP访问,来实现日志文件中$host显示域名. vim ...
- arts-week13
Algorithm 992. Sort Array By Parity II - LeetCode Review https://tls.ulfheim.net/ HTTP协议图解 Tip linux ...