linux运维平时工作主要负责哪些内容?
1.6 Linux运维岗位及工作内容
互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。
1.数据安全:不丢不泄露。
2.7*24小时不宕机
3.服务质量
4.运维效率和成本控制
1.6.1 Linux运维工程师岗位职责
一般从企业入门到中级Linux运维工程师的工作大致有:
□挑选IDC机房及带宽、购买物理服务器。
□购买云服务及CDN服务相关。
□搭建部署压力测试和正式的业务系统运行环境(例如:网站运行环境)。
□负责日常项目或业务代码上线、故障排除、代码回滚等。
□对企业数据进行备份及故障恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)。
□对网站的运行状态及故障进行监控、提前解决网站运行的潜在安全问题。
□开发自动化程序(shell、python)或平台提高工作效率。
□根据访问量增加,提前规划和升级网站集群架构,根据公司需求增加业务应用。
□程序发布流程和规范,制定运维工作制度和规范。
□配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求。
□公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。
涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,,OpenVPN,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,Shell/Python/Go语言等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。
总的来说:Linux初中级运维工程师更多的是使用工具软件的阶段,在一线城市互联网公司的薪资一般在8000-20000/月。老男孩教育毕业学生平均13-15K
职业发展方向:系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监
1.6.2Linux运维架构师岗位职责
运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:
1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;
2、云计算部署架构及Docker+K8S及微服务架构方案;
3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10万并发的网站架构、秒杀系统的架构及解决发你个案;
5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;
6、数据库、存储及各重要服务节点的集群和高可用方案。
7、各网络服务的极端优化方案、服务解耦/拆分。
8、运维流程、制度、规范等的建设和推行。
9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。
这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。
总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-100000/月。
职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监
运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。
技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩
如何保证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/auth.log
这个命令将实时显示/var/log/auth.log文件的内容,其中包含了与用户认证相关的日志信息。
Linux运维都做什么工作?
LINUX运维岗位描述:1、对Linux下各种网络服务、应用系统、监控系统等进行版自动化脚本开发的工作权,并根据项目对系统进行性能优化;2、负责网站项目中Linux服务器的部署与维护,解决Linux系统下版本兼容性问题;3、精通linux操作系统,熟练部署和维护Linux服务器以及在linux服务器上架设各种服务;4、熟练编写shell script脚本;5、熟悉TCP/IP协议;6、良好的英语读写能力,听说能力优秀者优先。7、熟练LAMP,LNMP以及Mysql,oracle数据库维护
现在最流行的服务器操作系统是什么。.?
目前局域网中主要存在以下几类网络操作系统:
1. Windows类
对于这类操作系统相信用过电脑的人都不会陌生,这是全球最大的软件开发商--Microsoft(微软)公司开发的。微软公司的Windows系统不仅在个人操作系统中占有绝对优势,它在网络操作系统中也是具有非常强劲的力量。这类操作系统配置在整个局域网配置中是最常见的,但由于它对服务器的硬件要求较高,且稳定性能不是很高,所以微软的网络操作系统一般只是用在中低档服务器中,高端服务器通常采用UNIX、LINUX或Solairs等非Windows操作系统。在局域网中,微软的网络操作系统主要有:Windows NT 4.0 Serve、Windows 2000 Server/Advance Server,以及最新的Windows 2003 Server/ Advance Server等,工作站系统可以采用任一Windows或非Windows操作系统,包括个人操作系统,如Windows 9x/ME/XP等。
在整个Windows网络操作系统中最为成功的还是要算了Windows NT4.0这一套系统,它几乎成为中、小型企业局域网的标准操作系统,一则是它继承了Windows家族统一的界面,使用户学习、使用起来更加容易。再则它的功能也的确比较强大,基本上能满足所有中、小型企业的各项网络求。虽然相比Windows 2000/2003 Server系统来说在功能上要逊色许多,但它对服务器的硬件配置要求要低许多,可以更大程度上满足许多中、小企业的PC服务器配置需求。
2. NetWare类
NetWare操作系统虽然远不如早几年那么风光,在局域网中早已失去了当年雄霸一方的气势,但是NetWare操作系统仍以对网络硬件的要求较低(工作站只要是286机就可以了)而受到一些设备比较落后的中、小型企业,特别是学校的青睐。人们一时还忘不了它在无盘工作站组建方面的优势,还忘不了它那毫无过份需求的大度。且因为它兼容DOS命令,其应用环境与DOS相似,经过长时间的发展,具有相当丰富的应用软件支持,技术完善、可靠。目前常用的版本有3.11、3.12和4.10 、V4.11,V5.0等中英文版本,NetWare服务器对无盘站和游戏的支持较好,常用于教学网和游戏厅。目前这种操作系统有市场占有率呈下降趋势,这部分的市场主要被Windows NT/2000和Linux系统瓜分了。
3. Unix系统
目前常用的UNIX系统版本主要有:Unix SUR4.0、HP-UX 11.0,SUN的Solaris8.0等。支持网络文件系统服务,提供数据等应用,功能强大,由AT&T和SCO公司推出。这种网络操作系统稳定和安全性能非常好,但由于它多数是以命令方式来进行操作的,不容易掌握,特别是初级用户。正因如此,小型局域网基本不使用Unix作为网络操作系统,UNIX一般用于大型的网站或大型的企、事业局域网中。UNIX网络操作系统历史悠久,其良好的网络管理功能已为广大网络 用户所接受,拥有丰富的应用软件的支持。目前UNIX网络操作系统的版本 有:AT&T和SCO的UNIXSVR3.2、SVR4.0和SVR4.2等。UNIX本是针对小型机 主机环境开发的操作系统,是一种集中式分时多用户体系结构。因其体系 结构不够合理,UNIX的市场占有率呈下降趋势。
4. Linux
这是一种新型的网络操作系统,它的最大的特点就是源代码开放,可以免费得到许多应用程序。目前也有中文版本的Linux,如REDHAT(红帽子),红旗Linux等。在国内得到了用户充分的肯定,主要体现在它的安全性和稳定性方面,它与Unix有许多类似之处。但目前这类操作系统目前使仍主要应用于中、高档服务器中。
总的来说,对特定计算环境的支持使得每一个操作系统都有适合于自己的工作场合,这就是系统对特定计算环境的支持。例如,Windows 2000 Professional适用于桌面计算机,Linux目前较适用于小型的网络,而Windows 2000 Server和UNIX则适用于大型服务器应用程序。因此,对于不同的网络应用,需要我们有目的有选择合适地网络操作系统。
如何建立企业信息交流服务器
举报违规检举侵权投诉|2013-10-07 16:55 提问者采纳
Intranet是传统企业网与Internet相结合的新型企业网络
,是一个采用Internet技术建立的机构内联网络。它以TCP/IP协议作为基础,以Web为核心应用,构成统一和便利的信息交换平台。它通过简单的浏览界面,方便地提供诸如电子邮件、文件传输、电子公告和新闻、数据查询等服务,并且可与Internet连接,实现企业内部网上用户对Internet的浏览、查询,同时对外提供信息服务,发布本企业信息。
而建立企业Intranet的关键是建立企业信息交流服务器
,作为企业网络建设的管理员本人在实际操作中有一些体会,希望与同行们商榷。下面将简单介绍建立企业信息交流服务器的原则、系统构架、系统选型直至组建企业的信息交流服务器。
1、建立企业信息交流服务器的原则及可选方案
原则如下:
#保障信息传递的高效率
#保障信息高安全性 #方便用户的使用
#系统的可扩展性
#有利于其它业务应用系统的集成
基于以上原则,目前可供的选择主要包括以下几套方案:
1)Group-ware(Microsoft 系列或Lotus 系列)
此方案一般是以WindowsNT 作为服务器,再配置Microsoft NT/IIS/SQL Server /Exchange Server 或Lotus Notes 搭建而成。
优点:用户对Microsoft 产品的使用习惯,搭建系统相对简单,用户界面统一,功能齐全。
缺点:只适合有足够经费的小型企业使用,主要是因为这些软件产品主要定位为工作组级,在企业达到一定规模后不能满足需要;从企业数据安全性/稳定性的角度看,NT 服务器本身就不能达到要求;价格昂贵;功能过于复杂。
2) WWW + BBS + Mail-Server + File Management + Calendar
此方案现在很流行,只是企业一般只实现了前三个功能,配置如下:Linux/Unix Server,Apache ,BBS system,Sendmail/Qmail/Webmail system 。
优点:随着Linux/Unix的普及,各企业从安全性和稳定性的角度逐渐将用Linux/Unix服务器取代NT;费用低廉;满足企业当前的信息交流需要
缺点:系统搭建、维护复杂;管理员的要求很高(对sendmail配置管理就特别复杂);不能满足企业不断发展的信息交流的需要。
3) Communication-ware
这是一个全新的概念,它是以信息交流服务为中心,强调Any where, Any time, Any Information ,用户可以用任何通讯手段(Mobile/PC/PDA/Phone/Fax…)在任何时间与他人交互信息。
linux 服务器的安全性、稳定性与易于维护主要体现在什么地方?
安全性:因为linux是开源的,所以具有先天病毒免疫能力的操作系统,很少受到病毒攻击。对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。不过,利用Linux自带防火墙、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,
linux也是一个多用户多任务的操作系统,每个用户可以使用各种的系统资源,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响,由于Linux系统调度每一个进程是平等地访问处理器的,所以它能同时执行多个程序,而且各个程序的运行是互相独立的。
稳定性:Linux 内核的源代码是以标准规范的32 位(在64 位CPU上是64 位)的计算机来做的最佳化设计,可确保其系统的稳定性,Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
易于维护:不知道,linux上手容易,精通难,没感觉出来易于维护! 或许我是个菜鸟的原因!
linux系统运维工作内容?
linux系统运维一般RedHat的比较多,其次Ubuntu的现在也开始有了。
维护其实主要就是确保服务器上跑的进程服务,能安全高效稳定的运行。
首先要了解各种服务的配置,如FTP,DNS,APACHE,IPTABLE,ORACLE,MYSQL等。
对服务器状态进行监控,如CPU内存占用,进程僵死崩溃,磁盘空间,异常登陆等。
还要对系统进行升级,备份等等工作.而且最好能掌握C语言和SHELL脚本技术。
工资待遇根据单位要求和个人经验 不同, 从1500-15000都有可能。
Linux系统运维工作内容
linux系统运维一般红帽,Centos的较多,主要任务就是确保系统更稳定,安全,高效的运行起来,一般常见需要维护的服务为 Tomcat,APACHE,IPTABLE,ORACLE,MYSQL,还有要懂得一些HA的配置啊,比如Hearbeat,keepalived,一些监控工具,Nagios,Cacti 之类的。对系统进行监控,如CPU内存占用,进程僵死崩溃,磁盘空间,异常登陆等。还要对系统进行升级,备份等等工作.而且最好能掌握C语言和SHELL,Perl,PYTHON脚本技术。待遇其实根据个人能力和企业类型了,少的有几千块,多的2W以上。
linux运维的工作内容是什么?
本人就是做运维的,主要有以下工作
1、对Linux下各种网络服务、应用系统、监控系统等进行自动化脚本开发的工作,并根据项目对系统进行性能优化;
2、负责网站项目中Linux服务器的部署与维护,解决Linux系统下版本兼容性问题;
3、熟练部署和维护Linux服务器以及在linux服务器上架设各种服务;
4、编写shell script脚本;
5、LAMP,LNMP以及Mysql,oracle数据库维护
linux运维工作主要做什么
简单来说,就是维护Linux系统以及系统之上的相关软件服务、程序代码(Java、Php、Python)和企业核心数据正常运行,使企业能够优质、高效、快速地为企业的客户提供服务,从而盈利赚钱,随着企业增长,服务器和服务数量、要求也会成倍增加,对运维的能力和运维人员的数量都有更多的要求。在整个企业业务系统运转过程中,涉及到系统、网络、数据库、存储、开发、安全、监控、架构等综合技术于一身的人员,因此对运维人员的能力提出了更高的要求。Linux运维细分岗位:1、硬件运维:硬件维护,如服务器、交换机、路由器、存储、负载均衡等设备;2、网络运维:网络设备维护:交换机、路由器以及办公局域网的维护;3、系统运维:基础设施的维护,侧重于系统和应用,也会涉及硬件网络;4、应用运维(SRE):企业业务研发环境、测试环境、线上环境等的维护和故障处理;5、监控运维:整个业务系统所有服务器集群的业务的监控和报警;6、数据库运维:负责数据存储方案设计、数据库表设计、索引设计和SQL优化;7、安全运维:安全扫描、渗透测试,安全工具、安全事件应急处理等;8、运维开发:开发运维工具和运维平台,以及智能化以及自动化运维;运维工程师还包括一些低端的岗位,例如:网络管理员、监控运维、IDC运维,值班运维等,这些岗位发展受限,需要尽快提升,才可获得更好的发展机遇。
Linux运维每天都做什么工作
初中级运维的日常涉及工作:
1、评估产品需求及发展需求,设计网站架构。
2、选择IDC公司、云产品,CDN等产品。
3、采购服务器、安装系统、配置服务、服务器IDC上架。
4、调试网络、优化系统及服务。
5、上线代码、配合研发搭建环境、调试、测试代码。
6、监控硬件、软件及各种业务应用。
7、配置收集日志和,根据日志信息报警及优化系统及服务
8、解决日常问题,如硬件(服务器、交换机、硬件、网络等)、软件(网络服务)、各类业务服务故障。
9、编写自动化脚本(Shell、Python),自动化部署服务。
高级运维涉及的工作:
1、监控带宽、流量、并发、业务接口等关键资源及访问信息的变化趋势。
2、根据相应趋势变化不断优化网站架构。
3、设计各类解决方案,解决公司业务发展中的遇到的网站瓶颈。
4、编写各种自动化脚本(Shell、Python),自动化部署优化服务。
5、开发自动化部署和管理平台(CMDB),实现平台化运维。
6、开发运维管理平台、及运维工具产品,提升服务效率。
7、制定运维流程、规范、制度,并有序推进。
8、研究先进运维理念、模式,确保业务持续稳定、有序。
linux运维是是什么,能做什么工作?
学习Linux运维可以从事哪些工作呢?Linux运维因为入门门槛比较低,很多人在大学刚刚毕业没有进入到职场之中,都想要转行去学习Linux运维,但是很多人都不知道学习完Linux运维之后到底可以做什么工作,今天小编为大家详细的分析一下吧。
1、Linux运维工程师:Linux运维是现在每个企业都不能够缺少岗位,对于大公司的Linux运维来说是非常重要,还需懂基本的语言,对于小公司来说技术要求相对于低一点,基本用不到什么太多开发的知识。
2、linux服务器开发:如果是用C/C++之类的话,要求也很高。因为互联网行业才人流动性相对大,所以工资可观,特别是对优化延迟什么的了解很深入的,发展前景是最好的。这个岗位相对于招聘比较少的,不过这部分的从业人员对于技术要求都是非常高的。
3、Linux内核开发:是比较具有难度的工作岗位了,在手机公司是最常见的,比如说华为、小米等这些公司都有这种职位,工资待遇也是非常不错的,知识单一化一些,但是操作系统硬件更新是非常快的,操作理论要去更高一些,方向以及就业都是相关的。
4、云计算:云计算在目前市场上是Linux学习之后从业比较受关注的,也是比较火的技术之一,对大数据以及人工智能有着很大的支撑作用,相对于来说这块的人员从业薪资待遇是非常高的,同时技术基础要求也是高标准的。
5、自动化运维:自动化运维技术一直都有,不过近年来因为python技术的兴起,让自动化运维再次火爆起来。要求运维人员对开发的掌握程度较高。也是目前的高薪岗位之一。
Linux服务器的安全防护都有哪些措施
一、强化密码强度
只要涉及到登录,就需要用到密码,如果密码设定不恰当,就很容易被黑客破解,如果是超级管理员(root)用户,如果没有设立良好的密码机制,可能给系统造成无法挽回的后果。
很多用户喜欢用自己的生日、姓名、英文名等信息来设定,这些方式可以通过字典或者社会工程的手段去破解,因此建议用户在设定密码时,尽量使用非字典中出现的组合字符,且采用数字与字符、大小写相结合的密码,增加密码被破译的难度。
二、登录用户管理
进入Linux系统前,都是需要登录的,只有通过系统验证后,才能进入Linux操作系统,而Linux一般将密码加密后,存放在/etc/passwd文件中,那么所有用户都可以读取此文件,虽然其中保存的密码已加密,但安全系数仍不高,因此可以设定影子文件/etc/shadow,只允许有特殊权限的用户操作。
三、账户安全等级管理
在Linux操作系统上,每个账户可以被赋予不同的权限,因此在建立一个新用户ID时,系统管理员应根据需要赋予该账号不同的权限,且归并到不同的用户组中。每个账号ID应有专人负责,在企业中,如果负责某个ID的员工离职,该立即从系统中删除该账号。
四、谨慎使用"r"系列远程程序管理
在Linux操作系统中,有一系列r开头的公用程序,如rlogin、rcp等,非常容易被不法分子用来攻击我们的系统,因此千万不要将root账号开放给这些公用程序,现如今很多安全工具都是针对此漏洞而设计的,比如PAM工具,就可以将其有效地禁止掉。
五、root用户权限管理
root可谓是Linux重点保护对象,因为其权利是最高的,因此千万不要将它授权出去,但有些程序的安装、维护必须要求是超级用户权限,在此情况下,可以利用其他工具让这类用户有部分超级用户的权限。sudo就是这样的工具。
六、综合防御管理
防火墙、IDS等防护技术已成功应用到网络安全的各个领域,且都有非常成熟的产品,需要注意的是:在大多数情况下,需要综合使用这两项技术,因为防火墙相当于安全防护的第一层,它仅仅通过简单地比较IP地址/端口对来过滤网络流量,而IDS更加具体,它需要通过具体的数据包(部分或者全部)来过滤网络流量,是安全防护的第二层。综合使用它们,能够做到互补,并且发挥各自的优势,最终实现综合防御。
如何提高linux服务器的安全策略
安全是IT行业一个老生常谈的话题了,处理好信息安全问题已变得刻不容缓。做为运维人员,就必须了解一些安全运维准则,同时,要保护自己所负责的业务,首先要站在攻击者的角度思考问题,修补任何潜在的威胁和漏洞。主要分五部分展开:账户和登录安全账户安全是系统安全的第一道屏障,也是系统安全的核心,保障登录账户的安全,在一定程度上可以提高服务器的安全级别,下面重点介绍下Linux系统登录账户的安全设置方法。
1、删除特殊的账户和账户组 Linux提供了各种不同角色的系统账号,在系统安装完成后,默认会安装很多不必要的用户和用户组,如果不需要某些用户或者组,就要立即删除它,因为账户越多,系统就越不安全,很可能被黑客利用,进而威胁到服务器的安全。
Linux系统中可以删除的默认用户和组大致有如下这些:
可删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。
可删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。
2、关闭系统不需要的服务Linux在安装完成后,绑定了很多没用的服务,这些服务默认都是自动启动的。对于服务器来说,运行的服务越多,系统就越不安全,越少服务在运行,安全性就越好,因此关闭一些不需要的服务,对系统安全有很大的帮助。具体哪些服务可以关闭,要根据服务器的用途而定,一般情况下,只要系统本身用不到的服务都认为是不必要的服务。例如:某台Linux服务器用于www应用,那么除了httpd服务和系统运行是必须的服务外,其他服务都可以关闭。下面这些服务一般情况下是不需要的,可以选择关闭: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv
3、密码安全策略在Linux下,远程登录系统有两种认证方式:密码认证和密钥认证。密码认证方式是传统的安全策略,对于密码的设置,比较普遍的说法是:至少6个字符以上,密码要包含数字、字母、下划线、特殊符号等。设置一个相对复杂的密码,对系统安全能起到一定的防护作用,但是也面临一些其他问题,例如密码暴力破解、密码泄露、密码丢失等,同时过于复杂的密码对运维工作也会造成一定的负担。密钥认证是一种新型的认证方式,公用密钥存储在远程服务器上,专用密钥保存在本地,当需要登录系统时,通过本地专用密钥和远程服务器的公用密钥进行配对认证,如果认证成功,就成功登录系统。这种认证方式避免了被暴力破解的危险,同时只要保存在本地的专用密钥不被黑客盗用,攻击者一般无法通过密钥认证的方式进入系统。因此,在Linux下推荐用密钥认证方式登录系统,这样就可以抛弃密码认证登录系统的弊端。Linux服务器一般通过SecureCRT、putty、Xshell之类的工具进行远程维护和管理,密钥认证方式的实现就是借助于SecureCRT软件和Linux系统中的SSH服务实现的。
4、合理使用su、sudo命令su命令:是一个切换用户的工具,经常用于将普通用户切换到超级用户下,当然也可以从超级用户切换到普通用户。为了保证服务器的安全,几乎所有服务器都禁止了超级用户直接登录系统,而是通过普通用户登录系统,然后再通过su命令切换到超级用户下,执行一些需要超级权限的工作。通过su命令能够给系统管理带来一定的方便,但是也存在不安全的因素,例如:系统有10个普通用户,每个用户都需要执行一些有超级权限的操作,就必须把超级用户的密码交给这10个普通用户,如果这10个用户都有超级权限,通过超级权限可以做任何事,那么会在一定程度上对系统的安全造成了威协。因此su命令在很多人都需要参与的系统管理中,并不是最好的选择,超级用户密码应该掌握在少数人手中,此时sudo命令就派上用场了。sudo命令:允许系统管理员分配给普通用户一些合理的“权利”,并且不需要普通用户知道超级用户密码,就能让他们执行一些只有超级用户或其他特许用户才能完成的任务。比如:系统服务重启、编辑系统配置文件等,通过这种方式不但能减少超级用户登录次数和管理时间,也提高了系统安全性。因此,sudo命令相对于权限无限制性的su来说,还是比较安全的,所以sudo也被称为受限制的su,另外sudo也是需要事先进行授权认证的,所以也被称为授权认证的su。
sudo执行命令的流程是:将当前用户切换到超级用户下,或切换到指定的用户下,然后以超级用户或其指定切换到的用户身份执行命令,执行完成后,直接退回到当前用户,而这一切的完成要通过sudo的配置文件/etc/sudoers来进行授权。
sudo设计的宗旨是:赋予用户尽可能少的权限但仍允许它们完成自己的工作,这种设计兼顾了安全性和易用性,因此,强烈推荐通过sudo来管理系统账号的安全,只允许普通用户登录系统,如果这些用户需要特殊的权限,就通过配置/etc/sudoers来完成,这也是多用户系统下账号安全管理的基本方式。
5、删减系统登录欢迎信息 系统的一些欢迎信息或版本信息,虽然能给系统管理者带来一定的方便,但是这些信息有时候可能被黑客利用,成为攻击服务器的帮凶,为了保证系统的安全,可以修改或删除某些系统文件,需要修改或删除的文件有4个,分别是:/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。/etc/issue和/etc/issue.net文件都记录了操作系统的名称和版本号,当用户通过本地终端或本地虚拟控制台等登录系统时,/etc/issue的文件内容就会显示,当用户通过ssh或telnet等远程登录系统时,/etc/issue.net文件内容就会在登录后显示。在默认情况下/etc/issue.net文件的内容是不会在ssh登录后显示的,要显示这个信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下内容即可:Banner /etc/issue.net其实这些登录提示很明显泄漏了系统信息,为了安全起见,建议将此文件中的内容删除或修改。/etc/redhat-release文件也记录了操作系统的名称和版本号,为了安全起见,可以将此文件中的内容删除/etc/motd文件是系统的公告信息。每次用户登录后,/etc/motd文件的内容就会显示在用户的终端。通过这个文件系统管理员可以发布一些软件或硬件的升级、系统维护等通告信息,但是此文件的最大作用就、是可以发布一些警告信息,当黑客登录系统后,会发现这些警告信息,进而产生一些震慑作用。看过国外的一个报道,黑客入侵了一个服务器,而这个服务器却给出了欢迎登录的信息,因此法院不做任何裁决。
远程访问和认证安全
1、远程登录取消telnet而采用SSH方式 telnet是一种古老的远程登录认证服务,它在网络上用明文传送口令和数据,因此别有用心的人就会非常容易截获这些口令和数据。而且,telnet服务程序的安全验证方式也极其脆弱,攻击者可以轻松将虚假信息传送给服务器。现在远程登录基本抛弃了telnet这种方式,而取而代之的是通过SSH服务远程登录服务器。
2、合理使用Shell历史命令记录功能 在Linux下可通过history命令查看用户所有的历史操作记录,同时shell命令操作记录默认保存在用户目录下的.bash_history文件中,通过这个文件可以查询shell命令的执行历史,有助于运维人员进行系统审计和问题排查,同时,在服务器遭受黑客攻击后,也可以通过这个命令或文件查询黑客登录服务器所执行的历史命令操作,但是有时候黑客在入侵服务器后为了毁灭痕迹,可能会删除.bash_history文件,这就需要合理的保护或备份.bash_history文件。
3、启用tcp_wrappers防火墙Tcp_Wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables。Linux默认都安装了Tcp_Wrappers。作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护。iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行,免遭攻击和破坏。如果通过了第一层防护,那么下一层防护就是tcp_wrappers了。通过Tcp_Wrappers可以实现对系统中提供的某些服务的开放与关闭、允许和禁止,从而更有效地保证系统安全运行。
文件系统安全
1、锁定系统重要文件系统运维人员有时候可能会遇到通过root用户都不能修改或者删除某个文件的情况,产生这种情况的大部分原因可能是这个文件被锁定了。在Linux下锁定文件的命令是chattr,通过这个命令可以修改ext2、ext3、ext4文件系统下文件属性,但是这个命令必须有超级用户root来执行。和这个命令对应的命令是lsattr,这个命令用来查询文件属性。对重要的文件进行加锁,虽然能够提高服务器的安全性,但是也会带来一些不便。例如:在软件的安装、升级时可能需要去掉有关目录和文件的immutable属性和append-only属性,同时,对日志文件设置了append-only属性,可能会使日志轮换(logrotate)无法进行。因此,在使用chattr命令前,需要结合服务器的应用环境来权衡是否需要设置immutable属性和append-only属性。另外,虽然通过chattr命令修改文件属性能够提高文件系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var等目录。根目录不能有不可修改属性,因为如果根目录具有不可修改属性,那么系统根本无法工作:/dev在启动时,syslog需要删除并重新建立/dev/log套接字设备,如果设置了不可修改属性,那么可能出问题;/tmp目录会有很多应用程序和系统程序需要在这个目录下建立临时文件,也不能设置不可修改属性;/var是系统和程序的日志目录,如果设置为不可修改属性,那么系统写日志将无法进行,所以也不能通过chattr命令保护。
2、文件权限检查和修改不正确的权限设置直接威胁着系统的安全,因此运维人员应该能及时发现这些不正确的权限设置,并立刻修正,防患于未然。下面列举几种查找系统不安全权限的方法。
(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
没有属主的孤儿文件比较危险,往往成为黑客利用的工具,因此找到这些文件后,要么删除掉,要么修改文件的属主,使其处于安全状态。
3、/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 /tmp.old[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp[root@server ~]# mv -f /tmp.old/* /tmp/[root@server ~]# rm -rf /tmp.old
最后,编辑/etc/fstab,添加如下内容,以便系统在启动时自动加载loopback文件系统:
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
Linux后门入侵检测工具rootkit是Linux平台下最常见的一种木马后门工具,它主要通过替换系统文件来达到入侵和和隐蔽的目的,这种木马比普通木马后门更加危险和隐蔽,普通的检测工具和检查手段很难发现这种木马。rootkit攻击能力极强,对系统的危害很大,它通过一套工具来建立后门和隐藏行迹,从而让攻击者保住权限,以使它在任何时候都可以使用root权限登录到系统。rootkit主要有两种类型:文件级别和内核级别,下面分别进行简单介绍。文件级别的rootkit一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。通常容易被rootkit替换的系统程序有login、ls、ps、ifconfig、du、find、netstat等,其中login程序是最经常被替换的,因为当访问Linux时,无论是通过本地登录还是远程登录,/bin/login程序都会运行,系统将通过/bin/login来收集并核对用户的账号和密码,而rootkit就是利用这个程序的特点,使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者通过输入设定好的密码就能轻松进入系统。此时,即使系统管理员修改root密码或者清除root密码,攻击者还是一样能通过root用户登录系统。攻击者通常在进入Linux系统后,会进行一系列的攻击动作,最常见的是安装嗅探器收集本机或者网络中其他服务器的重要数据。在默认情况下,Linux中也有一些系统文件会监控这些工具动作,例如ifconfig命令,所以,攻击者为了避免被发现,会想方设法替换其他系统文件,常见的就是ls、ps、ifconfig、du、find、netstat等。如果这些文件都被替换,那么在系统层面就很难发现rootkit已经在系统中运行了。这就是文件级别的rootkit,对系统维护很大,目前最有效的防御方法是定期对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么很可能系统已经遭受了rootkit入侵。检查件完整性的工具很多,常见的有Tripwire、 aide等,可以通过这些工具定期检查文件系统的完整性,以检测系统是否被rootkit入侵。内核级rootkit是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序,也就是说,当用户要运行程序A时,被入侵者修改过的内核会假装执行A程序,而实际上却执行了程序B。内核级rootkit主要依附在内核上,它并不对系统文件做任何修改,因此一般的检测工具很难检测到它的存在,这样一旦系统内核被植入rootkit,攻击者就可以对系统为所欲为而不被发现。目前对于内核级的rootkit还没有很好的防御工具,因此,做好系统安全防范就非常重要,将系统维持在最小权限内工作,只要攻击者不能获取root权限,就无法在内核中植入rootkit。
1、rootkit后门检测工具chkrootkit chkrootkit是一个Linux系统下查找并检测rootkit后门的工具,它的官方址:http://www.chkrootkit.org/。 chkrootkit没有包含在官方的CentOS源中,因此要采取手动编译的方法来安装,不过这种安装方法也更加安全。chkrootkit的使用比较简单,直接执行chkrootkit命令即可自动开始检测系统。下面是某个系统的检测结果:
[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkitChecking `ifconfig’… INFECTEDChecking `ls’… INFECTEDChecking `login’… INFECTEDChecking `netstat’… INFECTEDChecking `ps’… INFECTEDChecking `top’… INFECTEDChecking `sshd’… not infectedChecking `syslogd’… not tested
从输出可以看出,此系统的ifconfig、ls、login、netstat、ps和top命令已经被感染。针对被感染rootkit的系统,最安全而有效的方法就是备份数据重新安装系统。chkrootkit在检查rootkit的过程中使用了部分系统命令,因此,如果服务器被黑客入侵,那么依赖的系统命令可能也已经被入侵者替换,此时chkrootkit的检测结果将变得完全不可信。为了避免chkrootkit的这个问题,可以在服务器对外开放前,事先将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始系统命令让chkrootkit对rootkit进行检测。
2、rootkit后门检测工具RKHunter RKHunter是一款专业的检测系统是否感染rootkit的工具,它通过执行一系列的脚本来确认服务器是否已经感染rootkit。在官方的资料中,RKHunter可以作的事情有:MD5校验测试,检测文件是否有改动
检测rootkit使用的二进制和系统工具文件 检测特洛伊木马程序的特征码 检测常用程序的文件属性是否异常 检测系统相关的测试 检测隐藏文件 检测可疑的核心模块LKM 检测系统已启动的监听端口
在Linux终端使用rkhunter来检测,最大的好处在于每项的检测结果都有不同的颜色显示,如果是绿色的表示没有问题,如果是红色的,那就要引起关注了。另外,在执行检测的过程中,在每个部分检测完成后,需要以Enter键来继续。如果要让程序自动运行,可以执行如下命令:
[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress
同时,如果想让检测程序每天定时运行,那么可以在/etc/crontab中加入如下内容:
30 09 * * * root /usr/local/bin/rkhunter –check –cronjob
这样,rkhunter检测程序就会在每天的9:30分运行一次。服务器遭受攻击后的处理过程安全总是相对的,再安全的服务器也有可能遭受到攻击。作为一个安全运维人员,要把握的原则是:尽量做好系统安全防护,修复所有已知的危险行为,同时,在系统遭受攻击后能够迅速有效地处理攻击行为,最大限度地降低攻击对系统产生的影响。