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

linux网络防火墙

文章标题:linux网络防火墙。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  网络防火墙安全策略
  一个组织的全局性安全策略必须根据安全分析和业务需求分析来决定。因为防火墙只与网络安全有关,所以只有在正确定义了全局安全策略的情况下,防火墙才具有一定的价值。网络防火墙安全策略是指要明确定义那些允许使用或禁止使用的网络服务,以及这些服务的使用规定和规定中的一些特殊情况。而且,网络防火墙安全策略中的每一条规定都应该在实际应用时得到实现。总的来说,一个防火墙应该使用以下方法之一。
  * 每一个没有明确允许的都被拒绝
  这种方法堵塞了两个网络之间的所有流量,除了那些被明确允许的服务和应用程序(application)。因此,每一个想保留的服务和应用程序都应该挨个实现,而任何一个可能成为防火墙漏洞的服务和应用程序都不能允许使用。刚才所说的是一个最安全的方法,那就是除非是系统管理员明确允许使用的服务和应用程序,否则都必须拒绝。另一方面,从用户的角度来看,这样可能会限制更多,不是非常方便。在本书中,我们在防火墙配置中会使用这种方法。
  * 每一个没有明确拒绝的都允许
  这种方法允许两个网络之间所有流量,除非那些被明确禁止的服务和应用程序。因此,每一个不信任或有潜在危害的服务和应用程序都应该逐个拒绝。但是,虽然这对用户是一个灵活和方便的方法,它却可能引起一些严重的安全问题。
  
  包过滤
  
  包过滤是一种内置于Linux 核心的防火墙类型。过滤型防火墙工作在网络层。数据只有在防火墙规定允许的情况下才能发出去,而到达的包要则根据它们的类型,源地址,目的地址和每个包中包含的端口信息进行过滤。
  在绝大部分时间里,包过滤的工作是由一个能根据过滤规定转发数据包的路由器完成的。当一个数据包到达一个能进行包过滤的路由器时,这个路由器从该数据包的包头中解读某些信息,然后根据过滤规定决定数据包是通过还是被丢弃。
  下面是能从包头中解读的信息:
  * 源IP地址
  * 目的IP地址
  * TCP/UDP源端口
  * TCP/UDP目的端口
  * ICMP消息类型
  * 协议信息(TCP,UDP,ICMP或IP隧道)
  
  因为只需要分析很少的数据,而且登录到防火墙只占用很少CPU时间,网络延迟也非常小,所以如果想使用防火墙保护网络系统,可以通过很多种方法来建设网络。
  
  拓扑结构
  
  在网络中,所有的服务器都至少必须关闭所有没有用的端口,即使它不是一个防火墙服务器。这样做是为了更安全。想象一下,有人获得了对防火墙服务器的访问权,而这只是因为你邻近的服务器没有配置成关闭所有端口,才造成这种情况。对于本地连接,这也是一样的,没有安全认证的员工能从内部的其他服务器获得对另一个服务器的访问权。
  在我们下面的配置中,我们将会给出三个例子,它们有助于你根据要保护的服务器类型和它们在网络结构中的地位决定防火墙规定。第一个防火墙规定适用于Web服务器,第二个适用于邮件服务器,最后一个适用于作为内部代理服务器使用的网关服务器。详见图。
  
  
  
  www.openarch.com
  Caching Only DNS
  208.164.186.3
  Deep.openarch.com
  Master DNS Server
  208.164.186.1
  mail.openarch.com
  Slave DNS Server
  208.164.186.2
  1. Unlimited traffic on the loopback interface allowed
  2. ICMP traffic allowed
  3. DNS Caching and Client Server on port 53 allowed
  4. SSH Server on port 22 allowed
  5. HTTP Server on port 80 allowed
  6. HTTPS Server on port 443 allowed
  7. SMTP Client on port 25 allowed
  8. FTP Server on ports 20, 21 allowed
  9. Outgoing traceroute request allowed
  1. Unlimited traffic on the loopback interface allowed
  2. ICMP traffic allowed
  3. DNS Server and Client on port 53 allowed
  4. SSH Server and Client on port 22 allowed
  5. HTTP Server and Client on port 80 allowed
  6. HTTPS Server and Client on port 443 allowed
  7. WWW-CACHE Client on port 8080 allowed
  8. External POP Client on port 110 allowed
  9. External NNTP NEWS Client on port 119 allowed
  10. SMTP Server and Client on port 25 allowed
  11. IMAP Server on port 143 allowed
  12. IRC Client on port 6667 allowed
  13. ICQ Client on port 4000 allowed
  14. FTP Client on port 20, 21 allowed
  15. RealAudio / QuickTime Client allowed
  16. Outgoing traceroute request allowed
  
  1. Unlimited traffic on the loopback interface allowed
  2. ICMP traffic allowed
  3. DNS Server and Client on port 53 allowed
  4. SSH Server on port 22 allowed
  5. SMTP Server and Client on port 25 allowed
  6. IMAP Server on port 143 allowed
  7. Outgoing traceroute request allowed
  
  上表显示了根据防火墙脚本文件在不同服务器上缺省打开的端口。根据服务器必须要对外提供的服务,你必须配置相应的防火墙脚本文件,以允许在指定端口上的通讯。表中,www.openarch.com是我们的Web服务器,mail.openarch.com是唯一对外的邮件服务器,deep.openarch.com是网关服务器。它们会用在本章所有的例子中。
  
  
  编译一个支持IPCHAINS防火墙的内核
  
  首先,必须确信LINUX内核已经编译成“Network Firewall support”和“Firewalling”(支持网络防火墙-译者注)。记住,所有服务器都至少必须关闭所有不使用的端口,即使它不是防火墙服务器。在内核2.2.14中,必须对下面两个问题回答“Y”。
  
  Networking 选项:
  Network firewalls (CONFIG_FIREFALL) [N] Y
  IP: Firewalling (CONFIG_FIREWALL) [N] Y
  IP: TCP synCOOKIE support(CONFIG_SYN_COOKIES) [N] Y
  
  注释:如果你在阅读《Linux 内核》一节时就重新编译了内核,那么上面这些选项应该已经设置好了。
  只对网关服务器有用的IP Masquerading 和 IP ICMP Masquerading:
  IP: Masquerading (CONFIG_IP_MASQUERADE) [N] Y
  IP: ICMP Masquerading (CONFIG_IP_MASQUERADE_ICMP) [N] Y
  
  注释:只有网关服务器才需要支持“IP: Masquerading”和“IP: ICMP Masquerading”内核选项,它需要把内部网对外界伪装起来。
  
  在这里,伪装的意思是,如果在本地网中的一台计算机想要发送一些东西到网络外部,而这个本地网络由一个Linux盒 (Linux box:可以是任何简易的Linux 设备-译者注) 充当网络防火墙,那么这个Linux盒就可以伪装成那台要发送内容的计算机。例如,Linux盒转发了到网络外部的所有流量,但是对外部来说,这些都象是来自防火墙本身。
  它可以通过两种方式工作:如果外部主机应答,Linux防火墙就将把这些流量转发到相应的本地计算机,在这种情况下,在本地网络中的计算机对于外部是完全不可见的,即使它们可以访问外界并收到应答。这样,即使本地网络中的计算机没有合法的IP地址也能够访问Internet。
  IP伪装的代码只能工作在下面这种条件下,即在系统启动并安装(mount)了/proc 文件系统之后,“IP转发”能够通过下面这行代码执行:
  echo "1" > /proc/sys/net/ipv4/ip_forward
  
  你可以在“/etc/rc.d/rc.local”文件中加上这一行,这样在下次计算机重新启动时就会自动支持IP转发。
  编辑rc.local文件 (通过 vi /etc/rc.d/rc.local )并加上下面这行:
  echo "1" > /proc/sys/net/ipv4/ip_forward
  
  注释:上面有关IP转发的命令行只有在对内核选项“IP: Masquerading (CONFIG_IP_MASQUERDE)”回答“Y”,并且配置了网关服务器来伪装内部网络的情况下才是必须的。
  
  如果选择了支持IP Masquerading,模块ip_masq_ftp.o(用于ftp文件传输),ip_masq_irc.o(用于irc chats),ip_masq_quake.o (用途你可以猜得到),ip_masq_vdolive.o(用于VDOLive 的视频连接),ip_masq_cuseeme.o(用于CU-SeeMe 广播)和ip_masq_raudio.o(用于RealAudio 下载)将会自动编译,它们是这些协议工作时所需要的。
  同时,你需要在回答“Enable loadale module support (CONFIG_MODULES)”时选择“Y”以编译一个模块化的内核而不是整体型的内核,这样就可以在网关服务器上使用伪装功能和象ip_masq_ftp.o之类的模块。
  上面所讲的对“IP: masquerading”而言的基本伪装代码只能处理TCP或UDP包(以及当前连接的ICMP错误)。IP: ICMP Masquerading 增加了对伪装ICMP包的附加支持, 比如Windows 95 跟踪程序使用的ping 或 probe。
  
  注释:记住,其它类型的服务器象Web 服务器和邮件服务器并不需要支持这些选项,因为它们要不是拥有一个真实的IP地址,就是不用担任内部网络的网关。
  注意事项
  如果你的系统与Internet相连,那你确实可以假设你处在潜在的危险中。因为你的网关是对Internet的暴露点,所以我们建议以下几点:
  * 网关服务器除非确实有必要,一定不要在上面新增任何应用程序。
  * 网关服务器上应该严格限制能够通过的协议种类和数量(许多协议都是潜在的安全漏洞,比如FTP和telnet )。
  * 任何装有机密和敏感信息的系统都不应该能从Internet 上直接访问。
  
  
  解释一下防火墙脚本文件的一些
推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
author-avatar
晨钟暮鼓芋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有