热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用自由软件维护异构网络的安全

文章标题:使用自由软件维护异构网络的安全。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  导言
  计算机网络安全很可能是21世纪几大技术挑战之一。
  总之,象许多让人忧心的领域,每个人都谈论它,但是即使是应该感受最深的人也没有察觉到潜在灾难的规模是如此之大。”感受最深”指的是支撑软件或系统软件设计者。最好的例子一再被提到,来自于Redmond,在那里,安全可没有象市场那样运转的按步就班。
  幸运地,在20世纪的最后2个10年里诞生了自由软件和随之而来的哲学。如果你想提高你的机器,你的系统,你的网络的安全的话,你就应该在这里多花些工夫。自由软件团体在安全方面的工作比所有的大公司合起来都多。
  可以这么说,工具不能解决所有的问题,维护一个网络的安全是永久性的任务:因为总是会出现新的情况。
  这意味着你不能说一个网络100%的安全。你能做到的是消除潜在的隐患。我们这里讨论的只是你能减少隐患的一小部分。读完这份特刊(作者注:你应该记住这篇文章是一本法国的Linux杂志关于安全的特刊),你会了解更多一些安全的知识,但是无论如何你不能说你的网络是安全的。在这里我预先警告过你一下。
  当然象这样一篇文章不能穷尽所有问题。安全问题已经形成了许多自己的文化但是距离彻底的解决问题还很远。相应地,不要从这篇文章中揣测象操作系统,工具,配置等等事情。
  作为导言的结束,在这篇文章中我们引用LinuxFocus的文章的几部分,不要担心,已经征得作者同意:已经证实他和本人是同一个人!
  
  引言
  首先,我们探讨有着很多不同系统的异构网络的结构,其中的系统或多多少已经地广泛传播。操作系统越多,系统越复杂,因为不是所有的系统在表现?上都是一致的。更进一步,作为服务器的机器在网络中有不同的功能:我们将拥有一个多样化的网络。
  其次, 我们将浏览一系列的对提高安全性有助益的工具。选择是很多的:我们不可能一一列举。很显然,我们会讲解如何使用这些工具来提高机器和网络的安全性。下一章节回顾不同系统在安全性方面的特点。
  结论将解释安全过程的”相对性”,说明为什么安全性还有一条很长的路要走,而不是把它”划分” 到未来学里面去。
  
  一个异构网络的例子
  第一个有利的是地球上所有的操作系统都”讲”TCP/IP语言。有了这一点不同的系统可以相互通信。相应地作为探讨网络的一个例子,TCP/IP总是被提到。换而言之,其他专有的,不常见的和过时的协议不会提到。我们也不讨论物理结构,比如连接的形式,分类等等。
  这样我们在这个网络里什么都放一些进去。当然会包括UNIX,无论专有的或免费的,比如,Solaris2.6,或SunOs 5.6,如果你原意也可以是Irix 6.5,Linux(RH 6.2)或MacOs X。我们可以加一些QNX,NeXTSTEP,NetBSD或OpenBSD。为了遵循”传统”,我们将包括那个叫Not Terminated 4.0的东西(不是,没有什么别的意思,只是它比你想像的更糟糕)。 这里呢,我们还包括OS2这个稍好一点的系统。最后我们加入一些”非传统”的OS,比如BeOS,AmigaOS(是的,它存在。不相信吗?)
  当然有的人已经抱怨了:什么没有AIX,没有HP-UX?没有。如果你提到每一个UNIX,那会写一个10卷的文章。无论如何,基本的安全准则对所有的系统都是有效的。
  
  现在,我们能叫它们做些什么呢?
  举例来说,可以让Solaris作为应用服务器。Irix负责备份。NT作为另一个应用服务器。 Linux作为网关。另一个Linux机器用做http服务器或者数据库服务器。其他所有的机器都是客户机。网络中大约30台机器使用密文认证。我们将选择比较复杂的认证方式: NIS (Yellow Pages),LDAP或者Kerberos...。为了让事情简单一点。我们不使用NFS,它也许有用并且安全性能有所改善,但是从安全着眼,你最好忘记它。在法国,有句老话,”最好不要把所有的鸡蛋放到一个篮子里”。不是”一定要”但最好是服务或者协议一个系统只使用一种。举例来说,一个ftp服务器,http服务器很适宜在各自的UNIX机器上。另一些UNIX机器可以用做SSH服务器,其他的做SSH的客户端。后面我们会提到SSH。我们将使用静态的IP:不要DHCP。换而言之,我们使用基本的功能即可。这个样子可以构成一个有50台机器的网络。机器再多那就会变成恶梦的。
  
  安全工具和如何使用他们
  一般来说,做一件事情总是有不止一种方法(TIMTOWDI)。理想的情况是一切从头来,安装机器建立网络。但是现实可不是演电影!相应地,我们的网络应该是用过一段时间了,机器从这里搬到哪里,旧的去新的来。因为CPU在Mhz上的”竟赛”,举例来说,今天的Intel 的机器不会持续很长的时间。大约3年以后,机器的零部件就很难买到了。你要不让你的机器废物利用做些轻便的工作要不就是干脆把它扔掉:无奈但是很现实。幸运的是,其他的系统持续时间长一些并且还可以继续提高。不要说这些跑了题:一个管理员总是要尽量利用现有的条件。
  
  基本的东西
  工作的第一步通常做我们称”一般性”的部分。那就是去掉每台机器中没有用到的东西:这可不是一件轻松的差使。每个操作系统,包括Unix在内,安装了数不清你用不到的服务,协议。主说:扔掉它。在Unix环境下,简单。。粗暴的方法是注释掉/etc/inetd.conf 文件中的每一个服务。这样就干掉了一些。 这好像有一点霸道,但是在许多机器上这是值得推荐的。这也要看你的需求是什么了。在Linux中和其他一些很少见的系统中你可以使用chkconfig 命令去删除一些服务。
  还要检查SUID/SGID文件,毫不犹豫地把”失误”位去掉。或不要激活程序。一个如下的命令: find / -user root -a ( -perm -4000 -o -perm -2000 ) -print 可以列表所有这样的文件。去掉S位,键入chmod a-s programname (注意:你去掉s位后可能失掉一些功能。 它终归有其目的)。
  去掉所有”危险”或已知的”冒险”的程序:远程命令如rsh,rlogin,rcp等等。可以使用SSH取而代之。
  检查象/etc,/var这样目录的权限,越严格越好。比如,给包含起动文件(在许多Unix系统中是 /etc/rc.d/init.d)的目录使用chmod -R 700是不错的主意。相同的规则可以运用到所有系统的网络部分,去掉你不使用的,至少不激活它。对NT来说,你可以轻松地在配置面板中设置。这里有很多基本的东西去做并许多文化的主题都来源于此。
  
  工具
  让我们从Unix说起,因为它是唯一真正考虑过安全问题的操作系统。其次,Unix可以运行很多的自由工具软件并且大多数也能运行在Unix的衍生版本中。
  
  从现在起,我们开始安装各个机器。为了达到网络安全,在做各种事情之前,首先考虑事情的各个元素达到安全要求没有。安装这些工具是很轻松的工作,所以我们不会在这里浪费时间。安全工具不同的参数取决于系统,需求...甚至根据自己的意图来定制。第一个安装的工具是shadow utils。它的意思是做密码加密。幸运地,这已经成了许多Unix发布版本的一部分。文件/etc/shadow就是/etc/passwd”创建”的。
  
  更好的工具是PAM(插入认证模块)限制用户访问某种服务。每个被关注的服务都使用目录中的配置文件管理一切的事务。这个配置文件一般是/etc/pam.d。许多服务都是PAM”驱动”的,比如,ftp,login,xdm等等,让管理员分配每个人有不同的权限。
  
  下一个工具是必需提到的:TCPWrapper 。它可以工作在大多数的类Unix版本中。简短解说,它限制某些主机对一些服务的访问。这些主机允许还是拒绝由2个文件来决定: /etc/hosts.allow和/etc/hosts.deny。TCPWrapper可以通过2种方法配置:或者把它放到后台,或者改变 /etc/inetd.conf 配置文件。如果选择后者,你可以看到TCPWrapper可以和其他的工具和平相处。你可以在下面的链接中找到它: ftp://ftp.porcupine.org/pub/security
  
  另一个有益的工具就是xinetd。简短解说,xinetd是inetd的更新换代,它有更多的特性。刚才我们已经评论过了inetd,所以我们不推荐它。如果你感兴趣,你可以在以下的网址找到它: http://www.xinetd.org.
  
  在Linux环境下,这个工具你一定要有:它的名子是Bastille-Linux。它的链接是:http://www.bastille-linux.org. 这个工具是用Perl写的,不仅很dd还很有效率。运行了一个脚本后,你会回答很多的问题, Bastille-Linux会根据你的每个回答一一配置。每一个问题都有解释并且提供缺省的设置。你可以不改变缺省的设置,起动一个新的配置,然后检查一下Bastille-Linux做了些什么。你都看到了吧!它也提供了一个防火墙的配置:我们回过头会在讨论它。写这篇文章的时候,Bastille-Linux的版本是1.1.1,但是1.2.0 作为候选版本已经发布了。它提高了不少,并且提供了基于Tk和Perl模块的图形界面。(作者提示:这篇文章在几个月前写的。事实上, Bastille-Linux最近的版本是1.3.0)。
  
  入侵监测系统也是不错。2个”重量级”的工具是snort和portsentry。第一个可以从下面下载: http://www.snort.org,第二个可以从Abacus网站下载, http://www.psionic.com。这2个有所不同:NIDS (网络入侵监测系统)主要是提供入侵信息,但是第2个可以说是面向主机并且功能更强大。 snort有很多的可选项来监测网络通讯。你可以监听所有你想知道的:从主机出去的信息,到主机的信息,防火墙以内的,防火墙以外的。当然,它会产生巨大的log文件,但是你应该知道你想监测那些东西。Win 32版本也是有的,它是蛮重要的,因为这些”系统”中自由软件的数量是很有限的。
  
  portsentry有一个很有意义的特性:它可以根据的你选择来阻塞被扫描的端口。你或者把攻击者重定位到一个没有使用的地址,或者重定位到防火墙上。当然,你可以选择哪些阻塞,那些不阻塞。现在我们就可以回到TCPWrapper上来了:portsentry可以编辑/etc/hosts.deny文件,如果你想。这样,portsentry的效率会
推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Linux下安装免费杀毒软件ClamAV及使用方法
    本文介绍了在Linux系统下安装免费杀毒软件ClamAV的方法,并提供了使用该软件更新病毒库和进行病毒扫描的指令参数。同时还提供了官方安装文档和下载地址。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • scrcpy通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何ro ... [详细]
  • 本文摘自JavaGuide。1、简单易学;2、面向对象(封装,继承,多态);3、平台无关性(Java虚拟机实现平台无关性);4、可靠性;5、安全性;6、支持多线程(C++语言没有内 ... [详细]
author-avatar
mobiledu2502906927
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有