为什么要用Linux做服务器,第1张

Linux服务器优势1:良好的稳定性

Linux内核的源代码是以标准规范的32位(在64位CPU上是64位)的计算机来做的最佳化设计,可确保其系统的稳定性。正因为Linux的稳定,才使得一些安装Linux的主机像Unix机一样常年不关而不曾宕机。

Linux服务器优势2:丰富的软件支持

与其他的操作系统不同的是,安装了Linux系统后,用户常用的一些办公软件、图形处理工具、多媒体播放软件和网络工具等都已无需安装。而对于程序开发人员来说,Linux更是一个很好的操作平台,在Linux的软件包中,包含了多种程序语言与开发工具,如g、、C、Tcl/Tk、Perl、Fortran77等。

Linux服务器优势3:可靠的安全性

Linux系统是一个具有先天病毒免疫能力的操作系统,很少受到病毒攻击。

对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。不过,利用Linux自带防火墙、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘。

Linux服务器优势4:完善的网络功能

Linux内置了很丰富的免费网络服务器软件、数据库和网页的开发工具,如Apache、Sendmail、VSFtp、SSH、MySQL、PHP和JSP等。近年来,越来越多的企业看到了Linux的这些强大的功能,利用Linux担任全方位的网络服务器。

Linux服务器优势5:多用户多任务

和Unix系统一样,Linux系统是一个真正的多用户多任务的操作系统。多个用户可以各自拥有和使用系统资源,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响,同时多个用户可以在同一时间以网络联机的方式使用计算机系统。多任务是现代计算机的最主要的一个特点,由于Linux系统调度每一个进程是平等地访问处理器的,所以它能同时执行多个程序,而且各个程序的运行是互相独立的。

Linux服务器优势6:跨平台的硬件支持

由于Linux的内核大部分是用C语言编写的,并采用了可移植的Unix标准应用程序接口,所以它支持如i386、Alpha、AMD和Sparc等系统平台,以及从个人电脑到大型主机,甚至包括嵌入式系统在内的各种硬件设备。

Linux下有很多可用的FTP服务器,其中比较流行的有WU-FTP(Washington University

FTP)和VSFTP。Red Hat 80中自带了WU-FTP和VSFTP两个软件。WU-FTP是一个著名的FTP

服务器软件,它功能强大,能够很好地运行于众多Unix操作系统中。不过作为后起之秀的

VSFTP越来越流行,在Red Hat 90发行版中就只带有VSFTP。

VSFTP中VS的意思是“Very Secure”。从名称可以看出,从一开始,软件的编写者就非常注

重其安全性。除与生俱来的安全性外,VSFTP还具有高速、稳定的性能特点。在稳定性方

面,VSFTP可以在单机(非集群)上支持4000个以上的并发用户同时连接。据

ftpredhatcom的数据,VSFTP最多可以支持15000个并发用户。

快速构建FTP服务器

FTP服务器实现的基本功能是上传下载,下面就分几个步骤来搭建一个可以实现下载功能

的简易FTP服务器。

1.安装FTP服务器

如果在安装系统时没有选择安装FTP服务器,可以通过Red Hat 90中的“添加/删除应用程

序”工具进行安装。具体方法是,选择“主选单”→“系统设置”→“添加/删除应用程序”,在弹

出的界面中选中FTP服务器,单击“更新”即可。

如果无法确认是否安装了该软件,可以使用以下命令查看:

#rpm -qa|grep vsftpd

vsftpd-113-8

2.启动FTP服务器

套用Red Hat 90的预设范例直接启动VSFTP。

# /sbin/service vsftpd start

为vsftpd启动vsftpd: [确定]

3.在/var/ftp/pub目录下创建一个名为testtxt的文件,文件内容为“This is a test

file”。

4.测试

使用FTP客户端登录到本地服务器,然后以匿名身份(anonymous)登录:

# ftp 127001

Connected to 127001 (127001)

220 (vsFTPd 113)

Name (127001:root): anonymous

331 Please specify the password

Password:

230 Login successful Have fun

Remote system type is UNIX

Using binary mode to transfer files

这样就成功地登录到FTP服务器。可以显示服务器目录列表如下:

ftp> ls

227 Entering Passive Mode (127,0,0,1,63,15)

drwxr-xr-x 2 0 0 4096 Dec 04 01:35 pub

226 Directory send OK

切换到pub目录下,并显示目录内容,可以找到刚才创建的文件testtxt:

ftp> cd pub

250 Directory successfully changed

ftp> ls

227 Entering Passive Mode (127,0,0,1,232,34)

150 Here comes the directory listing

-rw-r--r-- 1 0 0 21 Dec 04 01:35 testtxt

226 Directory send OK

下载testtxt文件:

ftp> mget testtxt

mget testtxt y

227 Entering Passive Mode (127,0,0,1,186,210)

150 Opening BINARY mode data connection for testtxt (21 bytes)

226 File send OK

21 bytes received in 00108 secs (19 Kbytes/sec)

查看本机目录内容,可以看到testtxt已成功下载到本机。

ftp> !ls

a EIO_Binders initrd mnt proc tftpboot ylgtxt

bin etc lib mymnt root tmp

boot home lost+found myshare sbin usr

dev id_dsaspub misc opt testtxt var

尝试上传名为ylgtxt的文件,可以看到请求被拒绝了。

ftp> put ylgtxt

local: ylgtxt remote: ylgtxt

227 Entering Passive Mode (127,0,0,1,243,10)

550 Permission denied

退出登录:

ftp> bye

221 Goodbye

由测试可以看出,已经可以下载文件,但不能上传文件(也不能在服务器上创建目录和文

件)。实际上这是一个专门提供下载服务的匿名FTP服务器。

从上面的步骤可以看出,并不需要做什么配置就可以完成一个简易FTP服务器的架设。这

是因为Red Hat已经配置好一个缺省的FTP服务器。不过在实际应用中,大部分情况下这个

简易的服务器并不能满足需求。

1安装和配置一个防火墙

一个配置适当的防火墙不仅是系统有效应对外部攻击的第一道防线,也是最重要的一道防线。在新系统第一次连接上Internet之前,防火墙就应该被安装并且配置好。防火墙配置成拒绝接收所有数据包,然后再打开允许接收的数据包,将有利于系统的安全。Linux为我们提供了一个非常优秀的防火墙工具,它就是netfilter/iptables。它完全是免费的,并且可以在一台低配置的老机器上很好地运行。防火墙的具体设置方法请参见iptables使用方法。

2、关闭无用的服务和端口

任何网络连接都是通过开放的应用端口来实现的。如果我们尽可能少地开放端口,就使网络攻击变成无源之水,从而大大减少了攻击者成功的机会。把Linux作为专用服务器是个明智的举措。例如,希望Linux成为的Web服务器,可以取消系统内所有非必要的服务,只开启必要服务。这样做可以尽量减少后门,降低隐患,而且可以合理分配系统资源,提高整机性能。以下是几个不常用的服务:

① fingerd(finger服务器)报告指定用户的个人信息,包括用户名、真实姓名、shell、目录和****,它将使系统暴露在不受欢迎的情报收集活动下,应避免启动此服务。

② R服务(rshd、rlogin、rwhod、rexec)提供各种级别的命令,它们可以在远程主机上运行或与远程主机交互,在封闭的网络环境中登录而不再要求输入用户名和口令,相当方便。然而在公共服务器上就会暴露问题,导致安全威胁。

3、删除不用的软件包

在进行系统规划时,总的原则是将不需要的服务一律去掉。默认的Linux就是一个强大的系统,运行了很多的服务。但有许多服务是不需要的,很容易引起安全风险。这个文件就是/etc/xinetdconf,它制定了/usr/sbin/xinetd将要监听的服务,你可能只需要其中的一个:ftp,其它的类如telnet、shell、login、exec、talk、ntalk、imap、finger、auth等,除非你真的想用它,否则统统关闭。

4、不设置缺省路由

在主机中,应该严格禁止设置缺省路由,即default route。建议为每一个子网或网段设置一个路由,否则其它机器就可能通过一定方式访问该主机。

5、口令管理

口令的长度一般不要少于8个字符,口令的组成应以无规则的大小写字母、数字和符号相结合,严格避免用英语单词或词组等设置口令,而且各用户的口令应该养成定期更换的习惯。另外,口令的保护还涉及到对/etc/passwd和/etc/shadow文件的保护,必须做到只有系统管理员才能访问这2个文件。安装一个口令过滤工具加npasswd,能帮你检查你的口令是否耐得住攻击。如果你以前没有安装此类的工具,建议你现在马上安装。如果你是系统管理员,你的系统中又没有安装口令过滤工具,请你马上检查所有用户的口令是否能被穷尽搜索到,即对你的/ect/passwd文件实施穷尽搜索攻击。用单词作密码是根本架不住暴力攻击的。黑客们经常用一些常用字来破解密码。曾经有一位美国黑客表示,只要用“password”这个字,就可以打开全美多数的计算机。其它常用的单词还有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。

密码设置和原则:

a足够长,指头只要多动一下为密码加一位,就可以让攻击者的辛苦增加十倍;

b 不要用完整的单词,尽可能包括数字、标点符号和特殊字符等;

c混用大小写字符;

d经常修改。

6、分区管理

一个潜在的攻击,它首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!。

为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区记录数据,如log文件,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。

很多Linux桌面用户往往是使用Windows、Linux双系统。最好使用双硬盘。方法如下:首先将主硬盘的数据线拆下,找一个10GB左右的硬盘挂在计算机上,将小硬盘设置为从盘,按照平常的操作安装Linux服务器版本,除了启动的引导程序放在MBR外,其它没有区别。 安装完成,调试出桌面后,关闭计算机。将小硬盘的数据线拆下,装上原硬盘,并设定为主盘(这是为了原硬盘和小硬盘同时挂接在一个数据线上),然后安装Windows软件。将两个硬盘都挂在数据线上,数据线是IDE 0接口,将原硬盘设定为主盘,小硬盘设定为从盘。如果要从原硬盘启动,就在CMOS里将启动的顺序设定为“C、D、CDROM”,或者是“IDE0(HDD-0)”。这样计算机启动的时候,进入Windows界面。如果要从小硬盘启动,就将启动顺序改为“D、C、CDROM”,或者是“IDE1(HDD-1)”,启动之后,将进入Linux界面。平时两个操作系统是互相不能够访问的。

7、防范网络嗅探:

嗅探器技术被广泛应用于网络维护和管理方面,它工作的时候就像一部被动声纳,默默的接收看来自网络的各种信息,通过对这些数据的分析,网络管理员可以深入了解网络当前的运行状况,以便找出网络中的漏洞。在网络安全日益被注意的今天我们不但要正确使用嗅探器还要合理防范嗅探器的危害嗅探器能够造成很大的安全危害,主要是因为它们不容易被发现。对于一个安全性能要求很严格的企业,同时使用安全的拓扑结构、会话加密、使用静态的ARP地址是有必要的。

8、完整的日志管理

日志文件时刻为你记录着你的系统的运行情况。当黑客光临时,也不能逃脱日志的法眼。所以黑客往往在攻击时修改日志文件,来隐藏踪迹。因此我们要限制对/var/log文件的访问,禁止一般权限的用户去查看日志文件。

另外要使用日志服务器。将客户机的日志信息保存副本是好主意,创建一台服务器专门存放日志文件,可以通过检查日志来发现问题。修改/etc/sysconfig/syslog文件加入接受远程日志记录。

/etc/sysconfig/syslog SYSLOGD_OPTIONS="-m r 0"

还应该设定日志远程保存。修改/etc/syslogconf文件加入日志服务器的设置,syslog将保存副本在日志服务器上。

/etc/syslogconf @log_server_IP

可以使用彩色日志过滤器。彩色日志loco过滤器,目前版本是032。使用loco /var/log/messages | more可以显示出彩色的日志,明显标记出root的位置和日志中异常的命令。这样可以减少分析日志时人为遗漏。还要进行日志的定期检查。Red Hat Linux中提供了logwatch工具,定期自动检查日志并发送邮件到管理员信箱。需要修改/etc/logd/conf/ logwatchconf文件,在MailTo = root参数后增加管理员的邮件地址。Logwatch会定期检查日志,过滤有关使用root、sudo、telnet、ftp登录等信息,协助管理员分析日常安全。完整的日志管理要包括网络数据的正确性、有效性、合法性。对日志文件的分析还可以预防入侵。例如、某一个用户几小时内的20次的注册失败记录,很可能是入侵者正在尝试该用户的口令。

9、终止正进行的攻击

假如你在检查日志文件时,发现了一个用户从你未知的主机登录,而且你确定此用户在这台主机上没有账号,此时你可能正被攻击。首先你要马上锁住此账号(在口令文件或shadow文件中,此用户的口令前加一个Ib或其他的字符)。若攻击者已经连接到系统,你应马上断开主机与网络的物理连接。如有可能,你还要进一步查看此用户的历史记录,查看其他用户是否也被假冒,攻击音是否拥有根权限。杀掉此用户的所有进程并把此主机的ip地址掩码加到文件hostsdeny中。

10、使用安全工具软件:

Linux已经有一些工具可以保障服务器的安全。如bastille linux和Selinux。 bastille linux对于不熟悉 linux 安全设定的使用者来说,是一套相当方便的软件,bastille linux 目的是希望在已经存在的 linux 系统上,建构出一个安全性的环境。增强安全性的Linux(SELinux)是美国安全部的一个研发项目,它的目的在于增强开发代码的Linux内核,以提供更强的保护措施,防止一些关于安全方面的应用程序走弯路,减轻恶意软件带来的灾难。普通的Linux系统的安全性是依赖内核的,这个依赖是通过setuid/setgid产生的。在传统的安全机制下,暴露了一些应用授权问题、配置问题或进程运行造成整个系统的安全问题。这些问题在现在的操作系统中都存在,这是由于他们的复杂性和与其它程序的互用性造成的。SELinux只单单依赖于系统的内核和安全配置政策。一旦你正确配置了系统,不正常的应用程序配置或错误将只返回错误给用户的程序和它的系统后台程序。其它用户程序的安全性和他们的后台程序仍然可以正常运行,并保持着它们的安全系统结构。用简单一点的话说就是:没有任何的程序配置错误可以造成整个系统的崩溃。安装SELinux SELinux的内核、工具、程序/工具包,还有文档都可以到增强安全性的Linux网站上上下载你必须有一个已经存在的Linux系统来编译你的新内核,这样才能访问没有更改的系统补丁包。

11使用保留IP地址

维护网络安全性最简单的方法是保证网络中的主机不同外界接触。最基本的方法是与公共网络隔离。然而,这种通过隔离达到的安全性策略在许多情况下是不能接受的。这时,使用保留IP地址是一种简单可行的方法,它可以让用户访问Internet同时保证一定的安全性。- RFC 1918规定了能够用于本地 TCP/IP网络使用的IP地址范围,这些IP地址不会在Internet上路由,因此不必注册这些地址。通过在该范围分配IP地址,可以有效地将网络流量限制在本地网络内。这是一种拒绝外部计算机访问而允许内部计算机互联的快速有效的方法。 保留IP地址范围:

---- 1000 0 - 10255255255

---- 1721600 - 17231255255

--- 19216800 - 192168255255。

来自保留IP地址的网络交通不会经过Internet路由器,因此被赋予保留IP地址的任何计算机不能从外部网络访问。但是,这种方法同时也不允许用户访问外部网络。IP伪装可以解决这一问题。

12、合理选择Linux发行版本:

对于服务器使用的Linux版本,既不使用最新的发行版本,也不选择太老的版本。应当使用比较成熟的版本:前一个产品的最后发行版本如RHEL 30等。毕竟对于服务器来说安全稳定是第一的。

13、部署Linux防范病毒软件

Linux操作系统一直被认为是Windows系统的劲敌,因为它不仅安全、稳定、成本低,而且很少发现有病毒传播。但是,随着越来越多的服务器、工作站和个人电脑使用Linux软件,电脑病毒制造者也开始攻击这一系统。对于Linux系统无论是服务器,还是工作站的安全性和权限控制都是比较强大的,这主要得力于其优秀的技术设计,不仅使它的作业系统难以宕机,而且也使其难以被滥用。Unix经过20多年的发展和完善,已经变得非常坚固,而Linux基本上继承了它的优点。在Linux里,如果不是超级用户,那么恶意感染系统文件的程序将很难得逞。速客一号(Slammer)、冲击波(Blast)、霸王虫(Sobig)、 米虫(Mimail)、劳拉(Win32Xorala)病毒等恶性程序虽然不会损坏Linux服务器,但是却会传播给访问它的Windows系统平台的计算机。

其实Linux服务器系统的维护技巧有很多,掌握其中的一些可以帮助用户更加便捷应用,这里就先给大家介绍四大妙招,让新手可以逐渐掌握linux系统维护。

用户要及时拥有最新版本系统

尽管是开源软件,但是Linux服务器的软件包也如同Windwos操作系统的补丁一样在不断的升级。作为Linux服务器软件的升级主要有两个目的:增强软件的功能和解决安全漏洞。

而看是简单的升级,对于新手来讲最新的软件版本与安全漏洞如何找寻?通常情况下,RedHat公司在得到安全漏洞的通知后,会在最短时间内找到相关的解决方案,并在官网上进行公布并连接最新版本的软件包下载地址。所以系统管理员需要关注所用linux系统的网站,以了解软件包最新的版本信息与安全漏洞信息。

创建启动软盘以备不时之需

对于在部署完毕Linux服务器之后,新手最好能够建立一张软盘启动盘,因为一些大型的服务器中仍然留有软驱,在必要时可以通过软驱解决一些复杂的问题。

正是因为软盘启动盘在Linux服务器维护中作用,为此linux系统也提供了许多创建软盘启动盘的方法。如在安装过程中创建软盘启动盘等等。这里对于新手而言最直接的是在一个Windows环境下创建软盘启动盘的方法,由于大部分系统管理员通过一台Windwos操作系统的电脑作为客户端来进行熟练操作。

系统管理员先把Linux安装盘放入到Windwos客户端的光驱中,利用windows操作系统的远程管理进行有效创建RedHat启动盘文件。

  键盘配置

  鼠标配置

同时创建完启动文件之后,从软盘启动的方式跟从光盘启动差不多。但由于Linux引导程序就没有Windows的引导程序那么简便智能,需要用户在引导的过程中,配置指定所采用的键盘与鼠标类型。

合理规划分区 保证性能

对于系统分区来说,Windows操作系统分区规划对于其性能的影响很小,但Linux操作系统的分区规划不同,其对服务器的性能影响很大。作为企业应用的Linux操作系统服务器,某些特殊的目录放置在不同的分区上,有利于提高后续服务器的性能与安全性。

另外,对于用户在交换分区应用上。Linux操作系统下的交换分区如果发现虚拟空间不足影响则会影响应用程序的性能,甚至也会影响到应用程序的安装。此时如果要调整的话,新手会感觉调整起来相当麻烦,所以最好能够在安装部署Linux服务器之间,做到最大程度上的相关分区规划工作。主要是要考虑要把那些目录分别存放到不同的路径上、要设置多大的交换分区空间等等,由于分区设置后,后续调整相对比较复杂。而即使进行调整的话,其性能也没有预计的好。

启动所需服务 关闭不必要服务

和Windwos系统一样,安装Linux操作系统完毕后会自动启动很多服务。而这些服务中有些则是应用程序不需要启动的,一旦启动会带来一定的安全隐患。为此系统管理员在部署完Linux操作系统之后,需要查看其运行的服务。然后根据需要把一些不需要的服务关闭掉。

为此作为新手需要具有能够判断哪些服务是必需的能力,但可以不断通过学习,与资深系统管理员交流获取可以参考的说明,并结合自己的工作经验来进行判断。

linux系统维护对于企业管理员来说最简单不过的IT应用,通过简单的四大应用介绍让新手掌握简单linux系统维护知识,用户在实际应用中根据需要会不断对linux服务器进行有效的升级更新,从而提供更加完善的IT环境。

如果文件系统的权限设置不合理,就会威胁系统的安全,所以当运维人员遇到不能修改及删除文件的情况,就要对文件的的权限进行修改和设置了,下面小编就给大家介绍下Linux系统中如何修改及设置文件的权限。

一、锁定系统重要文件

系统运维人员有时候可能会遇到通过root用户都不能修改或者删除某个文件的情况,产生这种情况的大部分原因可能是这个文件被锁定了。在Linux下锁定文件的命令是chattr,通过这个命令可以修改ext2、ext3、ext4文件系统下文件属性,但是这个命令必须有超级用户root来执行。和这个命令对应的命令是lsattr,这个命令用来查询文件属性。

通过chattr命令修改文件或者目录的文件属性能够提高系统的安全性,下面简单介绍下chattr和lsattr两个命令的用法。

chattr命令的语法格式如下:

chattr [-RV] [-v version] [mode] 文件或目录主要参数含义如下:

-R:递归修改所有的文件及子目录。

-V:详细显示修改内容,并打印输出。

其中mode部分用来控制文件的属性,常用参数如下表所示:

参数含义

+在原有参数设定基础上,追加参数

-在原有参数设定基础上,移除参数

=更新为指定参数

a即append,设定该参数后,只能向文件中添加数据,而不能删除。常用于服务器日志文件安全,只有root用户才能设置这个属性c即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作i即immutable,设定文件不能被修改、删除、重命名、设定链接等,同时不能写入或新增内容。这个参数对于文件系统的安全设置有很大帮助s安全的删除文件或目录,即文件被删除后硬盘空间被全部收回u与s参数相反,当设定为u时,系统会保留其数据块以便以后能够恢复删除这个文件。这些参数中,最常用到的是a和i,a参数常用于服务器日志文件安全设定,而i参数更为严格,不允许对文件进行任何操作,即使是root用户lsattr用来查询文件属性,用法比较简单,其语法格式如下:

lsattr [-adlRvV] 文件或目录

常用参数如下表所示。

参数含义

-a列出目录中的所有文件,包括以。开头的文件-d显示指定目录的属性

-R以递归的方式列出目录下所有文件及子目录以及属性值-v显示文件或目录版本

在Linux系统中,如果一个用户以root的权限登录或者某个进程以root的权限运行,那么它的使用权限就不再有任何的限制了。因此,攻击者通过远程或者本地攻击手段获得了系统的root权限将是一个灾难。在这种情况下,文件系统将是保护系统安全的最后一道防线,合理的属性设置可以最大限度地减小攻击者对系统的破坏程度,通过chattr命令锁定系统一些重要的文件或目录,是保护文件系统安全最直接、最有效的手段。

对一些重要的目录和文件可以加上“i”属性,常见的文件和目录有:

chattr -R +i /bin /boot /lib /sbin

chattr -R +i /usr/bin /usr/include /usr/lib /usr/sbinchattr +i /etc/passwd

chattr +i /etc/shadow

chattr +i /etc/hosts

chattr +i /etc/resolvconf

chattr +i /etc/fstab

chattr +i /etc/sudoers

对一些重要的日志文件可以加上“a”属性,常见的有:

chattr +a /var/log/messages

chattr +a /var/log/wtmp

对重要的文件进行加锁,虽然能够提高服务器的安全性,但是也会带来一些不便,例如,在软件的安装、升级时可能需要去掉有关目录和文件的immutable属性和append-only属性,同时,对日志文件设置了append-only属性,可能会使日志轮换(logrotate)无法进行。因此,在使用chattr命令前,需要结合服务器的应用环境来权衡是否需要设置immutable属性和append-only属性。

另外,虽然通过chattr命令修改文件属性能够提高文件系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var等目录。

根目录不能有不可修改属性,因为如果根目录具有不可修改属性,那么系统根本无法工作:/dev在启动时,syslog需要删除并重新建立/dev/log套接字设备,如果设置了不可修改属性,那么可能出问题;/tmp目录会有很多应用程序和系统程序需要在这个目录下建立临时文件,也不能设置不可修改属性;/var是系统和程序的日志目录,如果设置为不可修改属性,那么系统写日志将无法进行,所以也不能通过chattr命令保护。

虽然通过chattr命令无法保护/dev、/tmp等目录的安全性,但是有另外的方法可以实现,在面将做详细介绍。

二、文件权限检查和修改

不正确的权限设置直接威胁着系统的安全,因此运维人员应该能及时发现这些不正确的权限设置,并立刻修正,防患于未然。下面列举几种查找系统不安全权限的方法。

(1)查找系统中任何用户都有写权限的文件或目录查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目录:find / -type d -perm -2 -o -perm -20 |xargs ls –ld(2)查找系统中所有含“s”位的程序

find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al含有“s”位权限的程序对系统安全威胁很大,通过查找系统中所有具有“s”位权限的程序,可以把某些不必要的“s”位程序去掉,这样可以防止用户滥用权限或提升权限的可能性。

(3)检查系统中所有suid及sgid文件

find / -user root -perm -2000 -print -exec md5sum {} /;find / -user root -perm -4000 -print -exec md5sum {} /;

将检查的结果保存到文件中,可在以后的系统检查中作为参考。

(4)检查系统中没有属主的文件

find / -nouser -o –nogroup

没有属主的孤儿文件比较危险,往往成为黑客利用的工具,因此找到这些文件后,要么删除掉,要么修改文件的属主,使其处于安全状态。

三、/tmp、/var/tmp、/dev/shm安全设定

在Linux系统中,主要有两个目录或分区用来存放临时文件,分别是/tmp和/var/tmp。存储临时文件的目录或分区有个共同点就是所有用户可读写、可执行,这就为系统留下了安全隐患。攻击者可以将病毒或者木马脚本放到临时文件的目录下进行信息收集或伪装,严重影响服务器的安全,此时,如果修改临时目录的读写执行权限,还有可能影响系统上应用程序的正常运行,因此,如果要兼顾两者,就需要对这两个目录或分区就行特殊的设置。

/dev/shm是Linux下的一个共享内存设备,在Linux启动的时候系统默认会加载/dev/shm,被加载的/dev/shm使用的是tmpfs文件系统,而tmpfs是一个内存文件系统,存储到tmpfs文件系统的数据会完全驻留在RAM中,这样通过/dev/shm就可以直接操控系统内存,这将非常危险,因此如何保证/dev/shm安全也至关重要。

对于/tmp的安全设置,需要看/tmp是一个独立磁盘分区,还是一个根分区下的文件夹,如果/tmp是一个独立的磁盘分区,那么设置非常简单,修改/etc/fstab文件中/tmp分区对应的挂载属性,加上nosuid、noexec、nodev三个选项即可,修改后的/tmp分区挂载属性类似如下:

LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodev 0 0其中,nosuid、noexec、nodev选项,表示不允许任何suid程序,并且在这个分区不能执行任何脚本等程序,并且不存在设备文件。

在挂载属性设置完成后,重新挂载/tmp分区,保证设置生效。

对于/var/tmp,如果是独立分区,安装/tmp的设置方法是修改/etc/fstab文件即可;如果是/var分区下的一个目录,那么可以将/var/tmp目录下所有数据移动到/tmp分区下,然后在/var下做一个指向/tmp的软连接即可。也就是执行如下操作:

[root@server ~]# mv /var/tmp/ /tmp

[root@server ~]# ln -s /tmp /var/tmp

如果/tmp是根目录下的一个目录,那么设置稍微复杂,可以通过创建一个loopback文件系统来利用Linux内核的loopback特性将文件系统挂载到/tmp下,然后在挂载时指定限制加载选项即可。一个简单的操作示例如下:

[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs

[root@server ~]# cp -av /tmp /tmpold

[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp

[root@server ~]# mv -f /tmpold/ /tmp/

[root@server ~]# rm -rf /tmpold

最后,编辑/etc/fstab,添加如下内容,以便系统在启动时自动加载loopback文件系统:

/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0

为了验证一下挂载时指定限制加载选项是否生效,可以在/tmp分区创建一个shell文件,操作如下:

[root@tc193 tmp]# ls -al|grep shell

-rwxr-xr-x 1 root root 22 Oct 6 14:58 shell-testsh[root@server ~]# pwd

/tmp

[root@tc193 tmp]# 。/shell-testsh

-bash: 。/shell-testsh: Permission denied可以看出,虽然文件有可执行属性,但是已经在/tmp分区无法执行任何文件了。

最后,再来修改一下/dev/shm的安全设置。由于/dev/shm是一个共享内存设备,因此也可以通过修改/etc/fstab文件设置而实现,在默认情况下,/dev/shm通过defaults选项来加载,对保证其安全性是不够的,修改/dev/shm的挂载属性,操作如下:

tmpfs /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0

通过这种方式,就限制了任何suid程序,同时也限制了/dev/shm的可执行权限,系统安全性得到进一步提升。

上面就是Linux下文件系统权限修改和设置的相关介绍了,为了系统的安全着想,可使用命令锁定重要的文件,合理的文件权限设置也是很重要的。

1、更新软件包

保持服务器软件包的最新版本是确保安全性的关键步骤之一。通过运行以下命令,我们可以更新服务器上的软件包:

sudo apt update

sudo apte upgrade

第一条命令用于更新软件包的列表,第二条命令则将包含在列表中的软件包升级到最新版本。请注意,有时候升级过程可能需要一些时间。

2、配置防火墙

防火墙是保护服务器免受恶意网络活动的重要工具。在配置防火墙之前,我们需要安装一个叫做ufw的工具。

sudo apt install ufw

安装完成后,我们可以使用以下命令启用防火墙并配置规则:

sudo ufw enable

sudo ufw allow ssh

sudo ufw allow http

sudo ufw allow https

第一条命令启用防火墙,第二至四条命令允许SSH、HTTP和HTTPS流量通过防火墙。你也可以根据需要配置额外的规则。

3、禁用不必要的服务

服务器上运行的每个服务都可能成为潜在的攻击目标。因此,我们应该仅仅启用必要的服务,并禁用不必要的服务。以下是禁用一个服务的命令示例:

sudo systemctl disable

4、使用强密码和密钥

为了防止恶意用户猜测密码和避免密码被暴力破解,我们应该设置一个强密码策略。以下是设置密码策略和使用密钥的命令示例:

sudo nano /ect/ssh/sshd_config

在打开的文件中找到以下行并进行适当的修改:

# PasswordAuthentication yes

# PubkeyAuthentication yes

将PasswordAuthentication的值改为no,将PubkeyAuthentication的值改为yes。保存文件并退出。接下来,重新启动SSH服务:

sudo service ssh restart

5、设置登录限制

为了限制登录服务器的尝试次数,我们可以配置登录限制。以下是设置登录限制的命令示例:

sudo nano /etc/ssh/sshd_config

在打开的文件中找到以下行并进行适当的修改:

# MaxAuthTries 6

# MaxSessions 10

将MaxAuthTries的值改为3,将MaxSessions的值改为5。保存文件并退出。接下来,重新启动SSH服务:

sudo service ssh restart

6、监控日志文件

监控服务器的日志文件可以帮助我们及时发现和应对潜在的安全威胁。以下是监控日志文件的命令示例:

sudo tail -f /var/log/authlog

这个命令将实时显示/var/log/authlog文件的内容,其中包含了与用户认证相关的日志信息。

命令远程连接工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等

图形远程连接工具:xmanager(需安装配置服务并打开177端口)、VNC-Viewer(linux需安装vncserver)、windows自带的远程桌面(linux需安装xrdp和vnc)

如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 为什么要用Linux做服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情