强行更改linux服务器时间,加强Linux服务器安全的20项建议

一般情况下用 Linux 做桌面在默认配置下是很安全的,我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位,用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。

与恶意用户做斗争对于所有 Linux 系统管理员来说都是一项艰巨的任务,本文我们将介绍如何加强 Linux 服务器安全的 20 项建议,希望对保护你的系统有所帮助。

79673170cf51af9ae03ba08f7a5d5016.png

1.物理安全

在服务器 BIOS 中禁用光驱、软驱、U盘等可引导的外部设备,并启用 BIOS 密码及 GRUB 密码来限制对系统的物理访问。

2.磁盘分区

我们可以通过使用不同的分区来分散存储数据以获得更高的数据安全性,当发生任何灾难时,由于数据是隔离存储的,会将数据损失的几率降到最低。

3.尽量减少软件包以减少漏洞

建议管理员尽量避免在 Linux 中安装非必要的软件包,而且不要使用来源不明的包,以尽可能的避免程序漏洞。当一个服务出问题时,很可能会波及到其它服务甚至整个系统,所以「非必要的服务就不运行」这是一个铁则。

对于 CentOS 系统可以使用 chkconfig 来查看运行在 runlevel 3 的服务:

/sbin/chkconfig --list |grep '3:on'

一旦发现有不需要的服务正常运行,可以使用如下命令禁用:

chkconfig serviceName off

对于使用 RPM 包或 DEB 安装的服务可以使用 yum 或 apt-get 找出包名称并用如下命令移除:

yum -y remove package-name

sudo apt-get remove package-name

4.查看网络侦听端口

使用 netstat 命令可以看到什么样的网络应用正在侦听哪些端口,找出不必要的程序之后再用上面的方面来处理。

netstat –tulpn

5.使用安全的远程连接(SSH)

Telnet 和 rlogin 都使用明文的协议,而且已被证实存在多种已经安全漏洞,SSH 是一种安全的协议,它可以使用加密技术与服务器进行通讯。

非必要时,不要使用 root 账户登录 SSH,要习惯使用 sudo 来切换身份。

SSH 22 端口目标过于明显,建议大家改成一个不常用的高端口并在 vi /etc/ssh/sshd_config 配置文件中至少配置如下选项:

#禁用root登录

PermitRootLogin no

#仅允许特定用户

AllowUsers username

#SSH协议版本

Protocol 2

6.保持系统更新

尽量始终保持系统内核、应用补丁及安全修复处在最新状态:

yum updates

yum check-update

7.锁定定时任务

cron 可以指定哪些用户可以使用,只需将允许的用户添加到 /etc/cron.allow 或将禁用的用户添加到 /etc/cron.deny 中即可。如果希望禁用所有用户使用任务计划,只需将ALL添加到cron.deny文件当中。

echo ALL >>/etc/cron.deny

8.禁用USB存储设备检测

很多时候我们都需要禁用 USB 存储设备以防数据拷出,此时可以创建一个/etc/modprobe.d/no-usb文件并填入如下内容即可禁用 USB 存储设备检测:

install usb-storage /bin/true

9.启用SELinux

安全增强型 Linux(SELinux)是在内核中提供的强制访问控制的安全机制。很多网络文章为了方便配置都建议大家禁用 SELinux 功能,我在这里到是建议大家在考虑关闭 SELinux 前应该三思。

SELinux 提供用户三种基本操作模式:

Enforcing:启用和执行机器上的 SELinux 策略(默认配置)

Permissive:在此种模式下,SELinux 不会强制执行系统上的安全策略,只会产生相应日志和警告。Permissive 模式在 SELinux 排错时经常会乃至。

Disabled:禁用 SELinux 功能

如果你想查看当前系统 SELinux 的状态可以使用:

sestatus

如果要从禁用状态启用 SELinux 可以使用:

setenforce enforcing

以上配置只对当前系统状态有用,重启会失效。要一劳永逸开关 SELinux 可以更改其配置文件/etc/selinux/config。

10.移除KDE/GNOME桌面

不论你是运行 LAMP 的专属服务器还是其它类型服务器,KDE 或 GNOME 这样 X Window 桌面环境是没多大必要使用的,禁用之后可以提高服务器性能和增强安全性。使用如下命令即可完全卸载:

yum groupremove "X Window System"

11.禁用IPv6

IPv6 目前还没有大规模普及,如果你不使用 IPv6 协议,可以在 /etc/sysconfig/network 配置文件中将其禁用。

NETWORKING_IPV6=no

IPV6INIT=no

12.限制用户重复使用旧密码

很多用户习惯在强制定期更换密码时重复循环使用以前的密码,这对于服务器管理员来说是一种非常不好的习惯。因此建议大家限制用户重复使用旧密码,该功能可以通过 PAM 来实现。

RHEL/CentOS/Fedora:/etc/pam.d/system-auth

Ubuntu/Debian/Linux Mint:/etc/pam.d/common-password

在上述配置文件中的auth区块添加一行:

auth        sufficient    pam_unix.so likeauth nullok

在password区块添加一行:

password   sufficient    pam_unix.so nullok use_authtok md5 shadow remember=5

配置好后,服务器会禁止使用最近 5 个被使用过的用户密码。

13.配置密码过期策略

Linux 中,用户密码是被加密存储到/etc/shadow文件当中的,要配置密码过期的详细信息需要用到change命令。例如要查看某个账户的密码过期日期和时间,可以使用如下命令:

chage -l username

要更改密码过期策略可以使用类似如下命令:

chage -M 60 username

chage -M 60 -m 7 -W 7 username

-M 密码使用最长天数

-m 密码使用最短天数

-W 密码过期提示天数

14.手动锁定或解锁账户

在不从系统中移除账户的情况下,对账户进行锁定和解锁是非常有用的一个安全手段。需要锁定一个账户时,可以使用如下命令:

passwd -l accountname

账户锁定同样适用于 root 账户,当某账户被锁定时会增加 (!) 字串,账户解锁时移除 (!) 字串。需要解锁时使用如下命令:

passwd -u accountname

15.强制使用强密码

弱密码或用生日密码之类的密码太容易被字典和社会工程学攻破了,所以建议大家打开强密码要求。Linux 中的强密码要求还是使用 PAM 模块,只需编辑/etc/pam.d/system-auth文件:

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

16.启用Iptables

强烈建议大家使用 Iptables 来保护 Linux 服务器安全,Iptables 可以在不同的链上配置不同的规则来处理数据包。

17.在Inittab中禁用Ctrl+Alt+Delete

大多数 Linux 发行版中按下「Ctrl+Alt+Delete」时都会重启系统,对于 Linux 生产服务器来说,这几乎是一个白痴设计。如果你希望关闭这个默认重启功能,可以将/etc/inittab配置文件中的如下两千注释掉:

# Trap CTRL-ALT-DELETE

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18.查看空密码账户

如果系统中存在有权限的空密码账户,就相当于开了一扇门。所以建议大家仔细清查一下:

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

19.忽略ICMP或广播请求

要忽略 ICMP 或广播请求我们可以编辑/etc/sysctl.conf配置文件:

net.ipv4.icmp_echo_ignore_all = 1

net.ipv4.icmp_echo_ignore_broadcasts = 1

配置文件改好之后使用如下命令载入生效:

sysctl –p

20.定期审查日志

建议大家将日志文件进行专门的集中存放和处理,这样可以比较有效避免入侵者对日志进行篡改,下面是 Linux 常见的默认日志路径:

/var/log/message – 系统日志或当前活动日志

/var/log/auth.log – 验证日志

/var/log/kern.log – 内核日志

/var/log/cron.log – 任务计划日志

/var/log/maillog – 邮件服务器日志

/var/log/boot.log – 系统启动日志

/var/log/mysqld.log – MySQL 服务器日志

/var/log/secure – 包含验证和授权方面信息

/var/log/utmp或/var/log/wtmp – 登录记录文件

相关主题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webshell提权教程linux,Linux下WEBSHELL提权

用phpshell2.0和Linux Kernel2.6x 本地溢出代码配合提ROOT,现在不少LINUX主机都还有这个本地溢出漏洞。前提&#xff1a;1、目标机上安装了GCC能编译源码2、Kernel 2.6.x (> 2.6.13 && < 2.6.17.4)因为是在webshell里溢出成功也得不到返回的ROOT SHELL,所…

Linux宏定义实现类成员函数,全面解析Linux内核的同步与互斥机制

http://blog.csdn.net/sailor_8318/archive/2008/06/30/2599357.aspx【摘要】本文分析了内核的同步及互斥的几种机制&#xff1a;原子运算符(atomicoperator)、自旋锁Spinlock、等待队列Waitqueue、事件Event、completion、信号量Semaphore及其优化版互斥锁&#xff0c;详细分析…

Linux命令sngre,linux gre隧道创建

linux gre隧道创建实验环境两台可以相互通信的虚拟机&#xff0c;两个虚拟机在不通的网段。如下所示host A:[[email protected] ~]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127…

linux终端提示符含义,Linux:终端提示符 (prompt) 不如期生效原因

前言先来简单介绍下, prompt是什么鬼? 顾名思义就是提示符的意思, 看起来和我们遥远, 但实际上只要是每个接触shell的童鞋, 都有看到, 那就是我们在输命令时前面的那串提示符.例如:当然, 这个样式是可以修改的, 这就涉及到我们的PS1和PS2了, 有经验或者以前有设置过的童鞋估计…

skyeye linux qt,ARM仿真器SkyEye的安装及使用

SkyEye是一个开源软件(OpenSource Software)项目&#xff0c;中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境&#xff0c;模拟常见的嵌入式系统&#xff0c;可在SkyEye上运行μCLinux以及μC/OS-II等&#xff0c;以及各种…

Linux 读写 优化 ssd,linux ssd 优化

一、修改默认的固态硬盘(SSD)柱面大小提升Linux下固态硬盘的使用率&#xff0c;在安装Linux操作系统前就应该做相关工作。系统会先在磁盘上创建分区&#xff0c;通常创建的分区包含固定数量的柱面&#xff0c;而默认情况下&#xff0c;每个柱面由16065512个字节的扇区组成。现在…

linux中dev目录的作用,Linux 的dev目录详解和Linux系统各个目录的作用

Linux /dev目录详解在linux下&#xff0c;/dev目录是很重要的&#xff0c;各种设备都在下面。下面简单总结一下&#xff1a; dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部…

linux 类型排序,Linux命令之排序命令sort使用实例

名称&#xff1a;sort位置&#xff1a;/usr/bin/sort权限&#xff1a;所有用户用法&#xff1a; sort [OPTION]... [FILE]...sort [OPTION]... --files0-fromF选项&#xff1a;-b --ignore-leading-blanks 忽略最前面的空格-f --ignore-case fold lower case to…

2g 双核电脑 linux,9208)(奔腾双核E5200/2G/320G)电脑详细技术

处理器型&#xff1a;intel 酷睿2双核 p7350 intel 酷睿2双核 p7450 intel 酷睿2双核 t6600 intel 奔腾双核t4300 intel 奔腾双核 t4400 intel 赛扬双核 t1600 intel 赛扬双核 t3000操作系统&#xff1a;windowsvista home basic dos标配内存&#xff1a;1gb 2gb 硬盘容量&…

linux shell 高级编程,shell高级编程

条件选择if语句选择执行&#xff1a; 注意&#xff1a;if语句可嵌套单分支if 判断条件;then条件为真的分支代码fi双分支if 判断条件; then条件为真的分支代码else条件为假的分支代码fi多分支if 判断条件1; then条件为真的分支代码elif 判断条件2; then条件为真的分支代码elif 判…

linux menuconfig usb,[Linux]make menuconfig里面的选项很重要

最近在用USB摄像头&#xff0c;发现驱动正常加载&#xff0c;插上USB摄像头&#xff0c;内核设备总是无法加载摄像头的驱动&#xff0c;也没有vidoe0设备&#xff0c;但我以前在2410上是可以的。如下&#xff1a;/ # usb 1-1: new full speed USB device using s1r72v27 and ad…

linux apache 大文件,Apache下error.log文件太大的处理方法

Apache下error.log文件太大的处理方法2019年05月03日| 萬仟网网络运营| 我要评论清除error.log、access.log并限制apache日志文件大小的方法 有个客户反映vps网站打不开&#xff0c;登录系统检查下&#xff0c;客户是win2003系统&#xff0c;发现放置网站文件的清除error.log、…

c语言程序设计臧,清华大学出版社-图书详情-《C程序设计基础(第2版)》

前言C语言是在由UNIX的研制者(美国贝尔实验室的Dennis Ritchie和Ken Thompson)于1970年研制出的B语言的基础上发展和完善起来的。1972年&#xff0c;在DEC PDP-11计算机上实现了最初的C语言&#xff0c;此后C语言伴随着计算机的发展一直走到了今天。C语言是一种支持过程化的、实…

c语言程序设计实践课选题,c语言程序设计实践实验题目

c语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考1实验题目&#xff1a;循环结构程序设计实验目的&#xff1a;1.熟悉 VC6.0 的运行环境&#xff0c;掌握 C 程序的执行方法&#xff1b;2.掌握三种基本数据类型、部分运算符号和常用函数&#xff1b;3.掌握三种…

c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...

第一章自测练习答案清华大学c语言习题实验指导及课程设计 第一章 自测练习参考答案 一&#xff0e;简答题 1&#xff0e;源程序是程序员创建的&#xff0c;目标程序是编译器创建的&#xff0c;可执行程序是连接器创建的。 2&#xff0e;步骤如下&#xff1a;1)说明程序需求&…

c语言生成随机的坐标,C语言文件的随机读写

前面介绍的文件读写函数都是顺序读写&#xff0c;即读写文件只能从头开始&#xff0c;依次读写各个数据。但在实际开发中经常需要读写文件的中间部分&#xff0c;要解决这个问题&#xff0c;就得先移动文件内部的位置指针&#xff0c;再进行读写。这种读写方式称为随机读写&…

c语言 画线函数,c语言绘制函数曲线

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我这种方法为什么图形只能显示一下就不见了&#xff0c;这是为什么&#xff1f;能不能用在双曲线上&#xff1f;&#xff1f;能的话改哪里&#xff1f;&#xff1f;#include#includefloat a,b,c,xmin,xmax,max; void menu(){printf…

k6前级效果器怎么用_新手学习电吉他,效果器应选择单块还是综合?

作为一个新手来说&#xff0c;我建议一开始先选择综合型效果器。这里我们先简单介绍下综合效果器与单块效果器。综合效果器可以理解为多个单块的综合体&#xff0c;即包含了很多种效果。一块大综合效果器可能就有三四十种预置音色&#xff0c;有过载、失真、法滋、延迟、混响、…

android监听方法的耗时时间,Android从网络获取北京时间以及动态的监听时间

方式一:public static void main(String[] args) throws Exception {URL urlnew URL("http://www.bjtime.cn");//取得资源对象URLConnection ucurl.openConnection();//生成连接对象uc.connect(); //发出连接long lduc.getDate(); //取得网站日期时间Date datenew Da…

android百度多渠道打包,Android多渠道打包方案的实践与优化

目前使用过的多渠道打包方式有两种 &#xff0c;一种是通过gradle打包&#xff0c;还有一种是美团的多渠道打包方案具体详情见这里1、Gradle打包1.1、在Androidmanifest.xml中添加android:name"UMENG_CHANNEL"android:value"${UMENG_CHANNEL_VALUE}" />…