地址

Linux防火墙基本知识

Linux防火墙

4小时弄懂什么是防火墙

防火墙的分类

包过滤防火墙

  • 数据包过滤(packet Filtering)技术是在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(access control lable,ACL)。
  • 通过检查数据流中每个数据包的源地址目的地址所用的端口号协议状态等因素,或他们的组合来确定是否允许该数据包通过。
  • 优点是:它对用户来说是透明的,处理速度快且易于维护。
  • 缺点是:
    1. 非法访问一旦突破防火墙,即可对主机上的软件和配置漏洞进行攻击;
    2. 数据包的源地址、目的地址和IP的端口号都在数据包的头部,可以很轻易地伪造。
    3. “IP地址欺骗”是黑客针对该类型防火墙比较常用的攻击手段。

代理服务型防火墙

  • 代理服务(proxy service)也称链路级网关TCP通道。它是针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,
  • 其特点是将所有跨跃防火墙的网络通信链路分为两段。当代理服务器接收到用户对某个站点的访问请求后就会检查请求是否符合控制规则
  • 如果规则允许用户访问该站点,代理服务器就会替用户去那个站点取回所需的信息,再转发给用户,内外网用户的访问都是通过代理服务器上的“链接”来实现的,从而起到隔离防火墙内外计算机系统的作用。
  • 此外,代理服务也对过往的数据包进行分析和注册登记,并形成报告,同时当发现有被攻击迹象时会向网络管理员发出警告,并保留攻击记录,为证据收集和网络维护提供帮助。

防火墙的工作原理

包过滤防火墙的工作原理

  • 包过滤是在IP层实现的,因此,它可以只用路由器来完成。

  • 包过滤根据包的源IP地址、目的IP地址、源端口、目的端口及包传递方向等报头信息来判断是否允许包通过,过滤用户定义的内容,如IP地址。

  • 工作原理是系统在网络层检查数据包,与应用层无关。包过滤器的应用非常广泛,因为CPU用来处理包过滤的时间可以忽略不计。

  • 而且这种防护措施对用户透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便。这样系统就具有很好的传输性能,易扩展。

  • 但是这种防火墙不太安全,因为系统对应用层信息无感知 : 也就是说,它们不理解通信的内容,不能在用户级别上进行过滤,即不能识别不同的用户和防止地址的盗用。

    如果攻击者把自己主机的IP地址设成一个合法主机的IP地址,就可以很轻易地通过包过滤器,这样更容易被黑客攻破。

  • 基于这种工作机制,包过滤防火墙有以下缺陷:

    1. 通信信息:包过滤防火墙只能访问部分数据包的头信息。
    2. 通信和应用状态信息:包过滤防火墙是无状态的,所以它不可能保存来自于通信和应用的状态信息。
    3. 信息处理:包过滤防火墙处理信息的能力是有限的。

代理服务型防火墙工作原理

  • 代理服务型防火墙在应用层上实现防火墙功能
  • 它能提供部分与传输有关的状态,能外圈提供与应用相关的状态和部分传输的信息,它还能处理和管理信息。

加固服务器安全

系统安全策略

  • SSH端口修改
  • SUDO
  • 禁用管理员登录

文件指纹

1
md5sum 123.txt

selinux , 自身程序用于自身文件的访问 , 修改删除监控

Linux软件防火墙

  • centos6 : iptables (服务器自身和网络通信流量控制)
  • centos7 : firewall

firewall

安装firewalld

1
yum install firewalld firewall-config
1
2
3
4
systemctl start firewalld.service         #启动firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl status firewalld # 查看防火墙状态

firewalld好处有两个:

  1. 支持动态更新,不用重启服务;
  2. 加入了防火墙的zone概念

firewalld的字符界面管理工具是 firewall-cmd

firewalld默认配置文件有两个:

  1. /usr/lib/firewalld/ (系统配置,尽量不要修改)
  2. /etc/firewalld/ (用户配置地址)

firewalld相关命令

1
2
3
4
firewall-cmd --reload   # 更新防火墙规则
firewall-cmd --zone=public --add-interface=eth0 # 将接口添加到区域,默认接口都在public
firewall-cmd --zone=public --add-interface=eth0 --permanent #永久生效
firewall-cmd --zone=dmz --list-ports # 查看所有打开的端口

zone

firewalld存在以下区域

  1. drop:默认丢弃所有包
  2. block:拒绝所有外部连接,允许内部发起的连接
  3. public:指定外部连接可以进入
  4. external:功能上和public相同,允许指定的外部连接
  5. dmz:和硬件防火墙一样,受限制的公共连接可以进入
  6. work:工作区,概念和workgroup一样,也是指定的外部连接允许
  7. home:类似家庭组
  8. internal:信任所有连接