Linux中的几种安全防护技术

Linux中的几种安全防护技术,第1张

系统安全性对于用户来说至关重要,Linux用户也不例外。笔者就自己使用Linux的经历,总结了一些增强Linux安全

防护的小窍门,在此介绍给大家。

1.为LILO增加开机口令

----在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:

----boot=/dev/hda

----map=/boot/map

----install=/boot/boot.b

----time-out=60 #等待1分钟

----prompt

----default=linux

----password=

---- #口令设置

----image=/boot/vmlinuz-2.2.14-12

----label=linux

----initrd=/boot/initrd-2.2.14-12.img

----root=/dev/hda6

----read-only

----此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将

----lilo.conf的文件属性设置为只有root可以读写。

----# chmod 600 /etc/lilo.conf

----当然,还需要进行如下设置,使

----lilo.conf的修改生效。

----# /sbin/lilo -v

2.设置口令最小长度和

----最短使用时间

----口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,

可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使

用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。

3.用户超时注销

----如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间

没有 *** 作后,自动从系统注销。

----编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行:

----TMOUT=600

----则所有用户将在10分钟无 *** 作后自动注销。

4.禁止访问重要文件

----对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通

用户查看。

----首先改变文件属性为600:

----# chmod 600 /etc/inetd.conf

----保证文件的属主为root,然后还可以将其设置为不能改变:

----# chattr +i /etc/inetd.conf

----这样,对该文件的任何改变都将被禁止。

----只有root重新设置复位标志后才能进行修改:

----# chattr -i /etc/inetd.conf

5.允许和禁止远程访问

----在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。

通常的做法是:

----(1)编辑hosts.deny文件,加入下列行:

----# Deny access to everyone.

----ALL: ALL@ALL

----则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。

----(2)编辑hosts.allow 文件,可加入下列行:

----#Just an example:

----ftp: 202.84.17.11 xinhuanet.com

----则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。

----(3)设置完成后,可用tcpdchk检查设置是否正确。

6.限制Shell命令记录大小

----默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默

认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。

----您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30

7.注销时删除命令记录

----编辑/etc/skel/.bash_logout文件,增加如下行:

----rm -f $HOME/.bash_history

----这样,系统中的所有用户在注销时都会删除其命令记录。

----如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history

文件,增加相同的一行即可。

8.禁止不必要的SUID程序

----SUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。

----找出root所属的带s位的程序:

----# find / -type f −perm−04000−o−perm−02000 -print |less

----禁止其中不必要的程序:

----# chmod a-s program_name

9.检查开机时显示的信息

----Linux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输

入下列命令:

----#dmesg >bootmessage

----该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。

10.磁盘空间的维护

----经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。

----df命令主要检查文件系统的使用情况,通常的用法是:

----#df -k

----Filesystem 1k-blocks Used Available Use% Mounted on

----/dev/hda3 1967156 1797786 67688 96% /

----du命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,

而不会显示下面的子目录占用磁盘的情况。

----% du -s /usr/X11R6/*

----34490 /usr/X11R6/bin

----1 /usr/X11R6/doc

----3354 /usr/X11R6/include

Linux *** 作系统的基础知识并不是很难理解,熟悉掌握基础知识能更好的学习Linux。下面由我为大家整理了Linux *** 作系统的知识点总结的相关知识,希望对大家有帮助!

Linux *** 作系统的知识点总结1. *** 作系统总体介绍

•CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制。

查询指令: cat /proc/cpuinfo

内存: 大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU进行判断。查询指令: cat /proc/meminfo

物理内存

物理内存,就是我们将内存条插在主板内存槽上的内存条的容量的大小。看计算机配置的时候,主要看的就是这个物理内存

虚拟内存

Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。

关系:windows中虚拟内存和物理内存可能都会被使用,Linux中,只有物理内存使用完了,才会使用虚拟内存

•硬盘: 大脑中的记忆区块,将重要的数据记录起来,以便未来再次使用这些数据。

查询指令: fdisk -l (需要root权限)

Linux *** 作系统的知识点总结2.内存和硬盘的关系

具体命令后面会介绍

Linux *** 作系统的知识点总结3. *** 作系统监控命令>单独写一份

•vmstat

•sar

•iostat

•top

•free

•uptime

•netstat

•ps

•strace

•lsof

Linux *** 作系统的知识点总结4.如何分析 *** 作系统

实际流程: 读数据》数据>硬盘》虚拟内存(swaP)》内存》cpu缓存》执行队列

分析方向,正好相反

Linux *** 作系统的知识点总结4.各个部分常出现的漏洞

•CPU: 容易出现该类瓶颈的邮件服务器、动态web服务器

•内存: 容易出现该类瓶颈的打印服务器、数据库服务器、静态web服务器

•磁盘I/O: 频繁读写 *** 作的项目

•网络带宽: 频繁大量上传下载项目

Linux *** 作系统的知识点总结5.linux本身的一些优化

1. 系统安装优化

当安装linux系统时,磁盘划分、 SWAP内存的分配都直接影响系统性能。对于虚拟内存SWAP的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是根据经验,如果内存较小(物理内存小于4GB),一般设置SWAP交换分区大小为内存的2倍如果物理内存大约4GB小于16GB,可以设置SWAP大小等于或者略小于物理内存即可如果内存在16GB以上,原则上可以设置SWAP为0,但最好设置一定大小的SWAP

• 2. 内核参数优化

例如,如果系统部署的Oracle数据库应用,那么就需要对系统共享内存段( kernel.shmmax, kenerl.shmmni, kernel.shmall)、

系统信号量( kernel.sem)、文件句柄( fs.file0max)等参数进行优化设置如果部署的WEB应用,那么就需要根据web应用特性进行网络参数的优化,例如修改net.ipv4.ip_local_port_range、net.ipv4.tc_tw_reuse、 net.core.somaxconn等网络

内核参数

• 3. 文件系统优化

在linux下可选的文件系统有ext2,、 ext3、 xfs、 ReiserFS

linux标准文件系统是从VFS开始,然后ext、 ext2, ext2是linux上的标准文件系统, ext3是在ext2基础上增加日志形成的。从VFS到ext3,设计思想没有太大变化,都是早期UNIX家族基于超级块和inode的设计理念设计而成。XFS文件系统是SGI开发的一个高级日志文件系统,通过分布处理磁盘请求、定位数据、保持cache的一致性来提供对文件系统数据的低延迟、高带宽的访问,因此XFS极具伸缩性,非常健壮,具有优秀的日志记录功能、可扩展性强、快速写入等优点。ReiserFS在Hans Reiser领导下开发出来的一款高性能的日志文件系统,通过完全平衡树来管理数据,包括文件数据、文件名及日志支持等。与ext2、 ext3相比,最大的优点是访问性能和安全性大幅提升。具有高效、合理利用磁盘空间,先将的日志管理机制,特意的搜寻方式,海量磁盘存储等优点

Linux *** 作系统的知识点总结5.重点知识

物理内存和虚拟内存

1.如何查看物理内存和虚拟内存?

Top 命令可以查看物理内存和虚拟内存的数值

2.Buffer

是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。

3.Cache

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度

4.CPU中断

当CPU执行完一条现行指令时,如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。这时,CPU将寻找中断请求源是哪一个设备,并保存CPU自己的程序计数器(PC)的内容。然后,他将转移到处理该中断源的中断服务程序。CPU在保存现场信息,设备服务(如交换数据)以后,将恢复现场信息。在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令。

5.上下文切换

上下文切换(Context Switch) 或者环境切换

多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件。

在 *** 作系统中,CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。

进程上下文用进程的PCB(进程控制块,也称为PCB,即任务控制块)表示,它包括进程状态,CPU寄存器的值等。

通常通过执行一个状态保存来保存CPU当前状态,然后执行一个状态恢复重新开始运行。

上下文切换会对性能造成负面影响。然而,一些上下文切换相对其他切换而言更加昂贵其中一个更昂贵的上下文切换是跨核上下文切换(Cross-Core Context Switch)。一个线程可以运行在一个专用处理器上,也可以跨处理器。由单个处理器服务的线程都有处理器关联(Processor Affinity),这样会更加有效。在另一个处理器内核抢占和调度线程会引起缓存丢失,作为缓存丢失和过度上下文切换的结果要访问本地内存。总之,这称为“跨核上下文切换”。

6.进程和线程

进程概念

进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。

线程概念

线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上 *** 作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一

进程和线程的关系

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。

(3)处理机分给线程,即真正在处理机上运行的是线程。

(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

密码安全概述

自从人类开始使用电脑以来,主要是靠密码来限制对系统的访问。虽然软硬件的更新换代不断,但依靠密码来保护系统这一原则仍然没有改变。选择密码似乎是很平常的是,但用户的系统安全完全基于密码的强壮性。

一个简单、容易猜出的密码等于敞开了系统的大门-攻击者一旦获取密码就可以长驱直入。一个足够强度的密码需要几年的时间去破解,而一个脆弱的密码在一分钟内就没有任何秘密可言。以下几个问题涉及密码的设置:

● 是否按照公开的标准来设置密码;

● 密码是否加密;● 密码是否使用shaow;

● 回答上述问题将有助于了解Linux系统密码是否安全。

强制密码设置规范

密码安全的第一步是选择难于猜测的密码。不幸的是,用户倾向于选择容易记忆的密码-但同时也容易被黑客破解。记住密码当然重要,但更重要的是确保密码的安全,因此建议不要选择小孩的名字、宠物名字或是配偶的生日,用户需要设置黑客难于猜测、破解的密码。

采用大小写字符组成密码对提高安全度很有帮助,尽管这并非是唯一提升安全强度的方法,但对付黑客的暴力破解很有效(黑客往往使用字典破解法对密码进行穷举,直到找到匹配密码为止)。作者也见过采用随机生成的密码,但在很多情况下,最好的密码既要有强壮性,又要让用户容易记住。本文提供一种方法建立既强壮又便于记忆的密码。

上面谈到的很多都似乎是常识,但困难在于如何让所有的Linux用户遵循系统管理员规划好的密码设置规范。在Linux系统中,大多数版本的Passwd(系统中进行密码设置的软件)可以配置一定的规范来定义用户的密码,例如要求用户设置的密码不得少于6个字符,其中必须还要包括至少2个数字。笔者推荐Npasswd这个软件可以完全替代Linux系统中的Passwd,该软件可以检查用户所要设置的密码是否足够强壮。建议系统管理员最先从这里入手,为所有的用户规定密码设置规范。

针对目前的密码数据库,系统管理员可以使用多种工具来审核密码安全。类似Crack 和John the Ripper可以让你对系统密码进行测试。越简单的密码,上述工具破解(也就是猜到)的就越快。这种工具尝试破解/ect/passwd/目录下面的密码文件并输出结果。猜出的密码越多说明贵单位的漏洞也就越多。系统管理员可以选择禁止某些不安全帐户,虽然方法简单但并非一直可以这样做。最好的办法是给黑客访问相应目录和文件设置障碍,让黑客无法轻易获取密码数据库文件并进行破解。

密码数据库的保护手段

下一步要确定密码交给不妥当的用户。安全是基于用户级的,密码安全不仅仅是设置安全的密码,还要防止用户把密码记下来并随手乱放。把密码记录在明文文档内或是钱包的纸片中,都不是可取的方式。请尽可能的以加密手段来存储和记录密码。

另有一个可选的方式是给密码做shadow。shadow passwords根据标准的/etc/passwd/目录下的密码文件生成,但它保存在独立的加密文件中(只能被权限最高的Root用户读取)。系统中的程序仍然可以使用/etc/passwd下的密码文件,访问类似用户ID(UID)以及组ID(GID)等信息,但不是加密的密码。这给密码的安全程度又增加了一层保障,这意味着黑客必须获得Root权限后才能访问加密的密码库文件。在Red Hat系统中,pwconv工具能够把非shadow 密码转换成shadow密码格式。请注意,各个版本的Linux系统的类似工具在使用中各有不同,请参照您的文档来完成上述工作。

总结系统管理员可以采取各种策略来确保密码安全。但首先要让用户们明白密码安全的重要性,同时制定密码策略来强制密码设置规范。这包括确定可接受的密码设置要求、更换密码的时限、密码需要包含多少字符等等。系统管理员还可以运行检测工具来查找密码数据库的安全漏洞。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7544009.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存