服务器为什么用linux
全球大量数据中心的服务器已经开始向基于Linux Server平台转移。相较windows Server而言,Linux
Server提供了更多优势。包括Google、Twitter、Facebook和Amazon在内的诸多国际互联网巨头,都在基于Linux
Server的服务器上运转他们的服务。Linux服务器具体优势如下:
1、开源
Linux Server相较windows
Server领先的首要原因是完全免费且可用作开源用途。通过开源方式,你可以轻松查看用于创建Linux内核的代码,也可以对代码进行修改和再创作。通过许多编程接口,您甚至可以开发自己的程序并将其添加到Linux操作系统中。还可以对Linux
Server操作系统进行自定义,以满足使用要求,这是windows无法实现的。
2、稳定性
Linux系统一直以其稳定性而闻名,它们可以连续运行多年而不发生任何重大问题。事实上,很多Linux用户都从未在自己的环境中遇到过系统崩溃的情况。相对windows而言,挂起和崩溃完全是一种常态。
尽管windows也可以很好地执行多任务处理,但Linux可以在处理各种任务的同时,仍能提供坚如磐石的性能。
3、安全
Linux由最初的多用户操作系统开发的Unix操作系统发展而来,在安全方面显然比windows更强。与windows作为病毒和恶意软件攻击的首要目标不同,Linux
Server只有管理员或特定用户才有权访问Linux内核,而且Linux服务器不会经常受到攻击,并且被发现的任何漏洞都会在第一时间由大批Linux开发人员修复。
4、硬件
当将Linux Server与windows
Server在硬件方面进行比较时,windows需要经常对硬件进行升级以满足各方面性能需求。而Linux对硬件的需求则很低,也不需要频繁对硬件进行升级更新,并且无论系统架构或处理器如何,都能表现得非常出色。
5、灵活性
Linux是世界上最灵活的操作系统,没有之一,您可以根据需要自定义系统。使用linux,你可以随心所欲地安装GUI界面或仅使用终端管理服务器;使用Linux,您可以选择各种工作和实用程序来管理所有与服务器相关的活动,如:添加用户、管理服务和网络,安装新应用程序以及监控性能等。
6、自由
对Linux而言,您不会被商业供应商强加产品和服务,用户可以自由选择适合需求的产品。正是这种自由使得像Amazon和Google这样的大公司选择了基于Linux的服务器来提供服务。
7、访问开源应用程序
Linux为开源应用程序开辟了一个新的世界,有数以千计的开源应用程序正在等待用户探索,您甚至可以使用特殊界面在Linux服务器上运行windows应用程序。
8、易于变更
与windows Server不同,您可以轻松对Linux Server进行变更,并且无需重启服务器。对于windows
Server而言,要使用微软发布的新功能就得购买下一个版本。
9、社区支持
Linux社区在全球都十分活跃和使用广泛,总有数千名志愿者在线活动以解决其他Linux用户的问题,所以几乎在任何linux论坛上发布的任何问题都会得到即时响应。
修改/etc/logindefs文件,控制密码的有效期
chage -l 用户名
控制密码复杂度,需已安装pam_cracklib,centos已默认安装
修改/etc/etc/pamd/system-auth文件,添加如下语句,需放置在最前面,否则可能不生效
参数说明
Linux登录失败
1 修改/etc/hostsallow文件,增加允许通过SSH连接的客户端IP
2 修改/etc/hostsdeny文件,增加禁止通过SSH连接的客户端IP
3 重启sshd服务和xinetd(可选)服务,使之生效
如果hostsallow和hostsdeny文件均包含同一ip,则以hostsall文件为准,如果只是单独配置了hostsall文件,并没有在hostsdeny文件禁止,依然不生效
1、 关闭不需要的服务
这个应该很容易理解的,凡是我们的系统不需要的服务,一概关闭,这样一个好处是减少内存和CPU时间的占用,另一个好处相对可以提高安全性
那么哪些服务是肯定要保留的呢
在linux机器上通常有四项服务是必须保留的
iptables
linux下强大的防火墙,只要机器需要连到网上,哪里离得开它
network
linux机器的网络,如果不上网可以关闭,只要上网当然要打开它
sshd
这是openssh server,如果你的机器不是本地操作,而是托管到IDC机房,
那么访问机器时需要通过这个sshd服务进行
syslog
这是linux系统的日志系统,必须要有,
否则机器出现问题时会找不到原因
除了这四项必需的服务之外,其他的服务需要保留哪些呢
这时就可以根据系统的用途而定,比如:数据库服务器,就需要启用mysqld(或oracle)
web服务器,就需要启用apache
2、 关闭不需要的tty
请编辑你的/etc/inittab
找到如下一段:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
这段命令使init为你打开了6个控制台,分别可以用alt+f1到alt+f6进行访问
此6个控制台默认都驻留在内存中,事实上没有必要使用这么多的
你用ps auxf这个命令可以看到,是六个进程
root 3004 00 00 1892 412 tty1 Ss+ Jun29 0:00 /sbin/mingetty tty1
root 3037 00 00 2492 412 tty2 Ss+ Jun29 0:00 /sbin/mingetty tty2
root 3038 00 00 2308 412 tty3 Ss+ Jun29 0:00 /sbin/mingetty tty3
root 3051 00 00 1812 412 tty4 Ss+ Jun29 0:00 /sbin/mingetty tty4
root 3056 00 00 2116 412 tty5 Ss+ Jun29 0:00 /sbin/mingetty tty5
root 3117 00 00 2396 412 tty6 Ss+ Jun29 0:00 /sbin/mingetty tty6
3 如何关闭这些进程
通常我们保留前2个控制台就可以了,
把后面4个用#注释掉就可以了
然后无需重启机器,只需要执行 init q 这个命令即可
init q
q作为参数的含义:重新执行/etc/inittab中的命令
修改完成后需重启机器使之生效
4 、如何关闭atime
一个linux文件默认有3个时间:
atime:对此文件的访问时间
ctime:此文件inode发生变化的时间
mtime:此文件的修改时间
如果有多个小文件时通常没有必要记录文件的访问时间,
这样可以减少磁盘的io,比如web服务器的页面上有多个小
如何进行设置呢
修改文件系统的配置文件:vi /etc/fstab
在包含大量小文件的分区中使用noatime,nodiratime两项
例如:
/dev/md5 /data/pics1 ext3 noatime,nodiratime 0 0
这样文件被访问时就不会再产生写磁盘的io
5、 一定要让你的服务器运行在level 3上
做法:
vi /etc/inittab
id:3:initdefault:
让服务器运行X是没有必要的
6, 优化sshd
X11Forwarding no //不进行x图形的转发
UseDNS no //不对IP地址做反向的解析
7、 优化shell
修改命令history记录
# vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=100
然后 source /etc/profile
Linux系统中,如果需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面就给绍下Linux如何禁止某个ip地址访问。
一、概述
这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下:
#服务进程名:主机列表:当规则匹配时可选的命令操作
server_name:hosts-list[:command]
/etc/hostsallow控制可以访问本机的IP地址,/etc/hostsdeny控制禁止访问本机的IP。如果两个文件的配置有冲突,以/etc/hostsdeny为准。
/etc/hostsallow和/etc/hostsdeny两个文件是控制远程访问设置的,可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
比如SSH服务,通常只对管理员开放,那就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。
二、配置
1、修改/etc/hostsallow文件
#
# hostsallow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server
#
sshd:21013218:allow
sshd:2227715:allow
all:21824129110 #表示接受110这个ip的所有请求!
intelnetd:140116440/2552552550
intelnetd:140116790/2552552550
intelnetd:14011614199
intelnetd:LOCAL
smbd:19216800/2552552550 #允许1921680网段的IP访问smbd服务
#sendmail:19216810/2552552550
#pop3d:19216810/2552552550
#swat:19216810/2552552550
pptpd:all EXCEPT 19216800/2552552550
httpd:all
vsftpd:all
以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hostsdeny这个文件配合使用),当然:allow完全可以省略的。
ALL要害字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。
2、修改/etc/hostsdeny文件
#
# hostsdeny This file describes the names of the hosts which are
# not allowed to use the local INET services, as decided
# by the ‘/usr/sbin/tcpd’ server
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hostsdeny and hostsallow In particular
# you should know that NFS uses portmap!
sshd:all:deny
intelnet:ALL
ALL:ALL EXCEPT 19216801/2552552550,192168121,
2021050/2552552550
注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。
3、启动服务。
注意修改完后:
#service xinetd restart
才能让刚才的更改生效。
众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节。linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦linux系统中发现有安全漏洞,Internet上来自世界各地的志愿者会踊跃修补它。然而,系统管理员往往不能及时地得到信息并进行更正,这就给黑客以可乘之机。相对于这些系统本身的安全漏洞,更多的安全问题是由不当的配置造成的,可以通过适当的配置来防止。服务器上运行的服务越多,不当的配置出现的机会也就越多,出现安全问题的可能性就越大。对此,下面将介绍一些增强linux/Unix服务器系统安全性的知识。一、系统安全记录文件操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行"#more/var/log/secure greprefused"来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。二、启动和登录安全性1#echo》/etc/issue然后,进行如下操作:#rm-f/etc/issue#rm-f/etc/issue三、限制网络访问1(ro,root_squash)/dir/to/exporthost2(ro,root_squash)/dir/to/export是您想输出的目录,host是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。#/usr/sbin/exportfs-a2"表示允许IP地址192允许通过SSH连接。配置完成后,可以用tcpdchk检查:#tcpdchktcpchk是TCP_Wrapper配置检查工具,它检查您的tcpwrapper配置并报告所有发现的潜在/存在的问题。3登录终端设置/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,您可以编辑/etc/securetty且注释掉如下的行。#tty1#tty2#tty3#tty4#tty5#tty6这时,root仅可在tty1终端登录。4避免显示系统和版本信息。如果您希望远程登录用户看不到系统和版本信息,可以通过一下操作改变/etc/inetdconf文件:telnetstreamtcpnowaitroot/usr/sbin/tcpdintelnetd-h加-h表示telnet不显示系统信息,而仅仅显示"login:"四、防止攻击1阻止ping如果没人能ping通您的系统,安全性自然增加了。为此,可以在/etc/rcd/rclocal文件中增加如下一行:
在局域网中的Linux服务器集群,为了保障运维安全,只能从堡垒机登录到各个Linux服务器。那么需要对Linux服务器集群进行安全加固,限制访问权限。在堡垒机上可以部署脚本来记录用户操作的审计日志(详情参考笔者的文章),那么整个局域网的Linux服务器集群的安全性就可以大大提高。
堡垒机作用明显,其提供运维统一入口和安全审计功能,切断直接访问和事后审计定责,解决“运维混乱”变得“运维有序” 。
下面是三种方法总结。分别从服务端,系统端、防火墙端来完成只允许堡垒机SSH登录的功能。
1、/etc/ssh/sshd_config
修改添加AllowUsers到ssh配置文件/etc/ssh/sshd_config :
AllowUsers myuser@201324
然后重启 sshd服务:systemctl restart sshd
2、hostsallow与hostsdeny
修改/etc/hostsdeny中添加设置 sshd : ALL ,拒绝所有的访问;
修改/etc/hostsallow,添加设置sshd : 201324 ,单独开启某个IP地址 。
这两个文件优先级为先检查hostsdeny,再检查hostsallow。
更加详细信息参考笔者的文章-Linux中hostsallow与hostsdeny 。
3、iptables防火墙
tcp协议中,禁止所有的ip访问本机的22端口。
iptables -I INPUT -p tcp--dport 22 -j DROP
只允许201324 访问本机的22端口
iptables -I INPUT -s 201324 -ptcp --dport 22 -j ACCEPT
另外/etc/pamd/sshd也可以提供访问控制功能,调用的pam_accessso模块是根据主机名、IP地址和用户实现全面的访问控制,pam_accessso模块的具体工作行为根据配置文件/etc/security/accessconf来决定。但是囿于资料过少,待以后遇到再解决把。
引:随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统。Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案。
随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统。Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案。
对Linux服务器攻击的定义是:攻击是一种旨在妨碍、损害、削弱、破坏Linux服务器安全的未授权行为。攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器。对Linux服务器攻击有许多种类,本文从攻击深度的角度说明,我们把攻击分为四级。
攻击级别一:服务拒绝攻击(DoS)
由于DoS攻击工具的泛滥,及所针对的协议层的缺陷短时无法改变的事实,DoS也就成为了流传最广、最难防范的攻击方式。
服务拒绝攻击包括分布式拒绝服务攻击、反射式分布拒绝服务攻击、DNS分布拒绝服务攻击、FTP攻击等。大多数服务拒绝攻击导致相对低级的危险,即便是那些可能导致系统重启的攻击也仅仅是暂时性的问题。这类攻击在很大程度上不同于那些想获取网络控制的攻击,一般不会对数据安全有影响,但是服务拒绝攻击会持续很长一段时间,非常难缠。
到目前为止,没有一个绝对的方法可以制止这类攻击。但这并不表明我们就应束手就擒,除了强调个人主机加强保护不被利用的重要性外,加强对服务器的管理是非常重要的一环。一定要安装验证软件和过滤功能,检验该报文的源地址的真实地址。另外对于几种服务拒绝可以采用以下措施:关闭不必要的服务、限制同时打开的Syn半连接数目、缩短Syn半连接的time out 时间、及时更新系统补丁。
攻击级别二:本地用户获取了他们非授权的文件的读写权限
本地用户是指在本地网络的任一台机器上有口令、因而在某一驱动器上有一个目录的用户。本地用户获取到了他们非授权的文件的读写权限的问题是否构成危险很大程度上要看被访问文件的关键性。任何本地用户随意访问临时文件目录(/tmp)都具有危险性,它能够潜在地铺设一条通向下一级别攻击的路径。
级别二的主要攻击方法是:黑客诱骗合法用户告知其机密信息或执行任务,有时黑客会假装网络管理人员向用户发送邮件,要求用户给他系统升级的密码。
由本地用户启动的攻击几乎都是从远程登录开始。对于Linux服务器,最好的办法是将所有shell账号放置于一个单独的机器上,也就是说,只在一台或多台分配有shell访问的服务器上接受注册。这可以使日志管理、访问控制管理、释放协议和其他潜在的安全问题管理更容易些。还应该将存放用户cgI的系统区分出来。这些机器应该隔离在特定的网络区段,也就是说,根据网络的配置情况,它们应该被路由器或网络交换机包围。其拓扑结构应该确保硬件地址欺骗也不能超出这个区段。
攻击级别三:远程用户获得特权文件的读写权限
第三级别的攻击能做到的不只是核实特定文件是否存在,而且还能读写这些文件。造成这种情况的原因是:Linux服务器配置中出现这样一些弱点:即远程用户无需有效账号就可以在服务器上执行有限数量的命令。
密码攻击法是第三级别中的主要攻击法,损坏密码是最常见的攻击方法。密码破解是用以描述在使用或不使用工具的情况下渗透网络、系统或资源以解锁用密码保护的资源的一个术语。用户常常忽略他们的密码,密码政策很难得到实施。黑客有多种工具可以击败技术和社会所保护的密码。主要包括:字典攻击(Dictionary attack)、混合攻击(Hybrid attack)、蛮力攻击(Brute force attack)。一旦黑客拥有了用户的密码,他就有很多用户的特权。密码猜想是指手工进入普通密码或通过编好程序的正本取得密码。一些用户选择简单的密码—如生日、纪念日和配偶名字,却并不遵循应使用字母、数字混合使用的规则。对黑客来说要猜出一串8个字生日数据不用花多长时间。
防范第三级别的攻击的最好的防卫方法便是严格控制进入特权,即使用有效的密码。
◆ 主要包括密码应当遵循字母、数字、大小写(因为Linux对大小写是有区分)混合使用的规则。
◆ 使用象“#”或“%”或“"countbak"一词,它后面添加“##”
攻击级别四:远程用户获得根权限
第四攻击级别是指那些决不应该发生的事发生了,这是致命的攻击。表示攻击者拥有Linux服务器的根、超级用户或管理员许可权,可以读、写并执行所有文件。换句话说,攻击者具有对Linux服务器的全部控制权,可以在任何时刻都能够完全关闭甚至毁灭此网络。
攻击级别四主要攻击形式是TCP/IP连续偷窃,被动通道听取和信息包拦截。TCP/IP连续偷窃,被动通道听取和信息包拦截,是为进入网络收集重要信息的方法,不像拒绝服务攻击,这些方法有更多类似偷窃的性质,比较隐蔽不易被发现。一次成功的TCP/IP攻击能让黑客阻拦两个团体之间的交易,提供中间人袭击的良好机会,然后黑客会在不被受害者注意的情况下控制一方或双方的交易。通过被动窃听,黑客会操纵和登记信息,把文件送达,也会从目标系统上所有可通过的通道找到可通过的致命要害。黑客会寻找联机和密码的结合点,认出申请合法的通道。信息包拦截是指在目标系统约束一个活跃的听者程序以拦截和更改所有的或特别的信息的地址。信息可被改送到非法系统阅读,然后不加改变地送回给黑客。
TCP/IP连续偷窃实际就是网络嗅探,注意如果您确信有人接了嗅探器到自己的网络上,可以去找一些进行验证的工具。这种工具称为时域反射计量器(Time Domain Reflectometer,TDR)。TDR对电磁波的传播和变化进行测量。将一个TDR连接到网络上,能够检测到未授权的获取网络数据的设备。不过很多中小公司没有这种价格昂贵的工具。
对于防范嗅探器的攻击最好的方法是:
1、安全的拓扑结构。嗅探器只能在当前网络段上进行数据捕获。这就意味着,将网络分段工作进行得越细,嗅探器能够收集的信息就越少。
2、会话加密。不用特别地担心数据被嗅探,而是要想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。
特别提示:应对攻击的反击措施
对于超过第二级别的攻击您就要特别注意了。因为它们可以不断的提升攻击级别,以渗透Linux服务器。此时,我们可以采取的反击措施有:
◆ 首先备份重要的企业关键数据。
◆ 改变系统中所有口令,通知用户找系统管理员得到新口令。
◆ 隔离该网络网段使攻击行为仅出现在一个小范围内。
◆ 允许行为继续进行。如有可能,不要急于把攻击者赶出系统,为下一步作准备。
◆ 记录所有行为,收集证据。这些证据包括:系统登录文件、应用登录文件、AAA(Authentication、Authorization、 Accounting,认证、授权、计费)登录文件,RADIUS(Remote Authentication Dial-In User Service) 登录,网络单元登录(Network Element Logs)、防火墙登录、HIDS(Host-base IDS,基于主机的入侵检测系统) 事件、NIDS(网络入侵检测系统)事件、磁盘驱动器、隐含文件等。收集证据时要注意:在移动或拆卸任何设备之前都要拍照;在调查中要遵循两人法则,在信息收集中要至少有两个人,以防止篡改信息;应记录所采取的所有步骤以及对配置设置的任何改变,要把这些记录保存在安全的地方。检查系统所有目录的存取许可,检测Permslist是否被修改过。
◆ 进行各种尝试(使用网络的不同部分)以识别出攻击源。
◆ 为了使用法律武器打击犯罪行为,必须保留证据,而形成证据需要时间。为了做到这一点,必须忍受攻击的冲击(虽然可以制定一些安全措施来确保攻击不损害网络)。对此情形,我们不但要采取一些法律手段,而且还要至少请一家有权威的安全公司协助阻止这种犯罪。这类操作的最重要特点就是取得犯罪的证据、并查找犯罪者的地址,提供所拥有的日志。对于所搜集到的证据,应进行有效地保存。在开始时制作两份,一个用于评估证据,另一个用于法律验证。
◆ 找到系统漏洞后设法堵住漏洞,并进行自我攻击测试。
网络安全已经不仅仅是技术问题,而是一个社会问题。企业应当提高对网络安全重视,如果一味地只依靠技术工具,那就会越来越被动;只有发挥社会和法律方面打击网络犯罪,才能更加有效。我国对于打击网络犯罪已经有了明确的司法解释,遗憾的是大多数企业只重视技术环节的作用而忽略法律、社会因素,这也是本文的写作目的。
0条评论