[CentOS,LISTEN,运行级别,NFS,Debian]强化Linux安全的10个技能

简介:   1.找出不必要的服务  很明显,服务器上跑的服务,并不是每个都有用的。强烈建议检查并关掉不需要的服务,从而减少风险(多跑一个服务,就可能多几个漏洞)。  查询运行在runlevel 3的服务列表:  [afei@afei ~]# /sbin/chkconfig --list |grep '3:on'

  1.找出不必要的服务

  很明显,服务器上跑的服务,并不是每个都有用的。强烈建议检查并关掉不需要的服务,从而减少风险(多跑一个服务,就可能多几个漏洞)。

  查询运行在runlevel 3的服务列表:

  [afei@afei ~]# /sbin/chkconfig --list |grep '3:on'

  关闭指定的服务:

  [afei@afei ~]# chkconfig ip6tables off

  疑问:为什么查询runlevel 3的服务?

  Linux系统有7个运行级别(runlevel),分别如下:

  runlevel 0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动;

  runlevel 1:单用户工作状态,root权限,用于系统维护,禁止远程登陆;

  runlevel 2:多用户状态(没有NFS);

  runlevel 3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式。这个运行级别的服务会启动httpd,系统提供web server服务,所以主要查看这个运行级别的服务;

  runlevel 4:系统未使用,保留;

  runlevel 5:X11控制台,登陆后进入图形GUI模式;

  runlevel 6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动;

  2.检查监听的网络端口

  通过netstat命名能够看到所有已经打开的端口,并且可以看到是哪些程序打开的。如果发现某些是必须要的,建议关掉:

  [afei@afei~]# netstat -tulpn

  Active Internet connections (only servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

  tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN 48983/java

  tcp 0 0 0.0.0.0:2182 0.0.0.0:* LISTEN 49051/java

  3.优化CRON任务

  linux的cron可以执行一些定时任务。并且还可以通过/etc/cron.allow 和 /etc/cron.deny 控制哪些用户可以运行JOB,哪位用户禁止运行JOB。例如:

  允许用户afei允许JOB,执行如下命令:

  echo afei >> /etc/cron.allow

  禁止所有用户访问JOB,执行如下命令:

  echo ALL >>/etc/cron.deny

  4.限制用户使用旧密码

  linux用户的旧密码保存在文件/etc/security/opasswd中:

  [root@LAPP-V1159 ~]# cat /etc/security/opasswd

  afei:504:4:$1$MVAi/EpJ$iXXkV5r3Hjc8AaK2b5KyQ/,$1$AbpFPYaD$ZKj12lK6qaYUqgQnEdocd0,$1$POabjmzY$F4Cp6aTwN6RRk1KjZWm8A/,$1$LoHe5GHY$QjkLGqABANpLmlQsRB4WE.

  检查是否有开启限制使用旧密码,在RHEL / CentOS / Fedora系统中,查看文件:/etc/pam.d/system-auth。在Ubuntu/Debian/Linux Mint系统中,查看文件:/etc/pam.d/common-password,需要下面两行关键内容,其中remember=4,表示不能使用最后4次密码,否则买二手域名平台会报错:Password has been already used. Choose another.:

  auth sufficient pam_unix.so nullok try_first_pass

  password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=4

  5.检查密码过期

  密码的过期属性可以通过如下命令查看:

  [root@root ~]# chage -l afei

  Last password change : Sep 14, 2021

  Password expires : Nov 13, 2021

  Password inactive : never

  Account expires : never

  Minimum number of days between password change : 0

  Maximum number of days between password change : 60

  Number of days of warning before password expires : 7

  修改密码的过期属性可以执行如下命令:

  chage -M 60 -W 7 afei

  说明:

  -M 60表示密码最大有效期是60天。

  -W 7 表示密码还有7天过期时给出告警提醒。

  6.检查密码为空的用户

  密码为空意味着只要知道用户名就能访问,这非常危险。因为用户与密码信息保存在文件/etc/shadow中,且格式如下:

  admin:$6$YTSkre3DLd4SAZ$Jy9piv/gPezhLrLzMMeUleV8F5DNjP:17765:0:99:5:::

  afei:$6$.vMcyE9ss96$YNk2Q5qiS/SAeGCcyEFsmspkC5dr3OXfnN:17788:0:60:7:::

  后面的几个数字是密码过期等属性信息,上面已经提及。

  所以,检查密码为空的用户,只需要执行如下命令即可,如果发现有这样的用户,通过root用户执行passwd username强行修改它的密码:

  cat /etc/shadow | awk -F: '($2==""){print $1}'

  7.锁定&解锁用户

  和删除用户账户不一样,这个只是限制用户登录。只需要执行如下密码即可锁定&解锁用户:

  [root@root ~]# passwd -l afei

  Locking password for user afei.

  passwd: Success

  [root@root ~]# passwd -u afei

  Unlocking password for user afei.

  passwd: Success

  说明:

  参数l表示lock,即锁定用户密码;

  参数u表示unlock,即解锁用户密码;

  8.关闭IPv6

  现在IPv6基本上没有实际使用,所以我们可以关掉它,在文件/etc/sysconfig/network中增加如下两行内容即可:

  NETWORKING_IPV6=no

  IPV6INIT=no

  9.复查日志

  Linux服务器上很多的行为都会有记录相应的日志,简单列举一些如下,如果有一些非法操作,就能从这些日志中造成蛛丝马迹,例如非法登陆,非法定时任务等:

  /var/log/message – Where whole system logs or current activity logs are available.

  /var/log/auth.log – Authentication logs.

  /var/log/kern.log – Kernel logs.

  /var/log/cron.log – Crond logs (cron job).

  /var/log/maillog – Mail server logs.

  /var/log/boot.log – System boot log.

  /var/log/mysqld.log – MySQL database server log file.

  /var/log/secure – Authentication log.

  /var/log/utmp or /var/log/wtmp : Login records file.

  /var/log/yum.log: Yum log files.

  10.保持系统更新

  总是让系统更新最新发行的补丁包,因为这些补丁包会修复一些BUG:

  sudo apt-get upgrade

  yum check-update

  yum upgrade

目录
相关文章
|
7天前
|
安全 Linux 开发者
Debian GNU/Linux
Debian是Linux发行版之一,其起源可以追溯到1993年,由Ian Murdock创立。Debian的名字来源于其创始人Ian Murdock的女友的名字Deb和Linux的创始人Linus Torvalds的名字的组合,即“Deb”+“ian”。Debian的目标是创建一个自由、开放、安全、稳定的操作系统,为用户提供丰富的软件资源和良好的使用体验。 特点
21 8
Debian GNU/Linux
|
3天前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
44 25
|
1月前
|
安全 大数据 Linux
云上体验最佳的服务器操作系统 - Alibaba Cloud Linux | 飞天技术沙龙-CentOS 迁移替换专场
本次方案的主题是云上体验最佳的服务器操作系统 - Alibaba Cloud Linux ,从 Alibaba Cloud Linux 的产生背景、产品优势以及云上用户使用它享受的技术红利等方面详细进行了介绍。同时,通过国内某社交平台、某快递企业、某手机客户大数据业务 3 大案例,成功助力客户实现弹性扩容能力提升、性能提升、降本增效。 1. 背景介绍 2. 产品介绍 3. 案例分享
|
2月前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
209 13
|
4月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
900 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
4月前
|
存储 安全 Linux
|
4月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
186 1
Linux系统之Centos7安装cockpit图形管理界面
|
4月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
112 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
4月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
4928 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
4月前
|
存储 监控 Linux
如何在 CentOS 7 中进行磁盘分区和挂载,帮助读者掌握这一技能。
【10月更文挑战第9天】随着业务扩展和技术进步,服务器硬盘容量需求不断增加。本文通过具体案例,详细介绍如何在 CentOS 7 中进行磁盘分区和挂载,帮助读者掌握这一技能。假设有一台 CentOS 7 服务器,配备了一块 1TB 的未分配硬盘,我们将这块硬盘分成两个分区,分别用于存储日志文件和用户上传的文件。文章详细介绍了如何使用 `fdisk` 和 `mkfs` 命令进行分区和格式化,以及如何创建挂载点并永久挂载分区。此外,还提供了实践经验和注意事项,确保操作的安全性和有效性。
65 1