Firewall com Layer7 转贴

本文详细介绍如何在Linux环境下配置Layer 7防火墙,包括所需软件的下载与安装、内核及iptables补丁的应用、规则的创建等步骤。
转载:

Conteúdo [esconder]
1 Prefacio
2 Dependencias
2.1 Kernel
2.2 Iptables
2.3 Ferramentas
2.4 Layer7
2.5 Layer7 protocols
3 Descompactando as aplicacoes
4 Aplicando os patchs de layer7
4.1 no kernel
4.2 no iptables
5 Compilando o kernel
6 Compilando o iptables
7 Instalando o l7-protocols
8 Criando uma regra

[editar]Prefacio
Tenho percebido ultimamente uma série de pessoas querendo fazer bloqueios de msn, p2p como o emule o kazaa, entre outras softwares, entao uma solucao para esta questao é usar o modulo layer7 no kernel, junto com o iptables

[editar]Dependencias
Como dependencias para trabalharmos com o layer7 temos as seguintes dependencias

kernel 2.6.14
iptables 1.3.4
gcc
make
libncurses5-dev
l7-patchs
l7-protocols
O kernel e o iptables terao de ser compilados, pois temos de aplicar patchs para isso

[editar]Kernel
entao para baixar o kernel, use o link abaixo

[url]http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.bz2[/url]
[editar]Iptables
Para o iptables, use o link abaixo

[url]http://www.netfilter.org/projects/iptables/files/iptables-1.3.4.tar.bz2[/url]
[editar]Ferramentas
os outros pacotes, voce pode instalar pelo apt

apt-get install gcc make libncurses5-dev
[editar]Layer7
Os patchs do Layer7 voce pega no link abaixo

[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/netfilter-layer7-v2.1.tar.gz[/url]
[editar]Layer7 protocols
[url]http://ufpr.dl.sourceforge.net/sourceforge/l7-filter/l7-protocols-2006-01-22.tar.gz[/url]
[editar]Descompactando as aplicacoes
Bom, eu so ponho que voce tenha baixado todos os pacotes em /usr/src caso nao tenha feito isso, mova-os pra la

cd /usr/src
tar -xjvf netfilter-layer7-v2.1.tar.gz
tar -xjvf iptables-1.3.4.tar.bz2
tar -xjvf linux-2.6.14.tar.bz2
tar -xzvf l7-protocols-2006-01-22
mv l7-protocols-2006-01-22 /etc/l7-protocols
[editar]Aplicando os patchs de layer7
Agora com os aplicativos descompactados, podemos aplicar os patchs do layer7, vamos iniciar pelo kernel

[editar]no kernel
cd /usr/src/linux-2.6.14
patch -p1 < ../netfilter-layer7-v2.1/kernel-2.6.13-2.6.15-layer7-2.1.patch
[editar]no iptables
cd /usr/src/iptables-1.3.4
patch -p1 < ../netfilter-layer7-v2.1/iptables-layer7-2.1.patch
chmod +x extensions/.layer7-test
[editar]Compilando o kernel
Aqui eu espero que voce saiba compilar um kernel sem problemas, caso nao saiba sugiro que voce aprenda algumas coisas antes de tentar implanter este tipo de servico, pois voce esta pulando alguns passos

Para iniciarmos a compilacao do kernel vamos ate o diretorio

cd /usr/src/linux-2.6.14.3
make menuconfig
dentro do menu, vamos seguir o seguinte caminho

Networking --->
   Networking options --->
      
Network packet filtering (replace ipchains) --->
           IP: Netfilter Configuration --->
              <M> Layer 7 match support (EXPERIMENTAL)
              [ ] Layer 7 debugging output
com estas opcoes selecionadas, e as outras que voce decidir, voce ja pode salvar o arquivo e compilar

[editar]Compilando o iptables
Agora que você ja compilou o kernel, e espero que voce o esteja usando agora vamos até o diretorio do iptables

cd /usr/src/iptables-1.3.4
make KERNEL_DIR=/usr/src/linux-2.6.14
make install KERNEL_DIR=/usr/src/linux-2.6.14
Os arquivos binários serão instalados em /usr/local/sbin/

ls /usr/local/sbin/
ip6tables  iptables  iptables-restore  iptables-save
desta maneira, você pode ou passar o caminho todo no arquivo com as regras ou criar os links em /sbin

[editar]Instalando o l7-protocols
Agora precisamos instalar o l7-protocols para que o layer7 saiba como trabalhar com as regras

tar -xzvf /usr/src/l7-protocols-2006-01-22.tar.gz -C /usr/src
cd /usr/src/l7-protocols-2006-01-22
make install
[editar]Criando uma regra
Agora aqui em baixo, vou colocar um exemplo de uma regra simples:

#!/bin/bash
#
#
###############################################################
# Script de demonstracao para uso de layer7 criado por
# pruonckk le punk ( pruonckk at pruonckk.org ) para o
# tutorial de firewall com layer7 do DebianForDummies
#
# Este script nao tem nenhuma garantia, use por sua conta
# e risco, eu nao me responsabilizo por qualquer consequencia
# que voce possa ter ao usalo
#
###################################################################
#
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
#
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
#
iptables -L
iptables -t nat -L
iptables -t mangle -L
#
#
# Gerando logs do msn
#
iptables -A FORWARD -m layer7 --l7proto msnmessenger -j LOG --log-prefix "msn : "
#
# Gerando logs de emule
iptables -A FORWARD -m layer7 --l7proto edonkey -j LOG --log-prefix "edonkey : "
iptables -A FORWARD -m layer7 --l7proto gnutella -j LOG --log-prefix "gnutella : "
#
#######################
## exemplo de bloqueio
## OBS: O bloqueio deve ser feito antes do log, para que nao
## confunda o administrador
# iptables -A FORWARD -m layer7 --l7proto msnmessenger -j Drop
#
#
# Mascarando saida das conexoes
#
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# OBS: Substitua eth0 pela sua interface ligada a internet
#
Salve este arquivo em /etc/init.d com o nome de firewall

para acrescentar ele na inicializacao do debian, execute os comando abaixo

chmod +x /etc/init.d/firewall
ln -s /etc/init.d/firewall /etc/rc2.d/S99firewall
Feito isso, voce pode testar as conexoes e acompanhar os logs, e acrescentar os bloqueios de acordo com sua necessidade


Voltar

Retirado de " [url]http://www.debianfordummies.org/wiki/index.php/Firewall_com_Layer7[/url]"
<think>好的,用户想了解CentOS 7的防火墙配置和管理,我需要根据提供的引用资料来组织回答。首先,确认用户的需求是配置或解决防火墙相关问题,所以应该涵盖基本操作、常用命令和实际应用。 首先,引用[1]提到Firewalld是CentOS 7默认的防火墙解决方案,使用firewall-cmd工具管理。我需要介绍基本概念,比如区域和服务。然后,引用[4]中有重启服务和设置开机启动的例子,可以结合到防火墙服务的启动和状态管理中。 接下来,用户可能需要知道如何查看当前状态,添加端口或服务,比如开放HTTP(80端口)和HTTPS(443端口),这里需要给出具体的命令,如firewall-cmd --permanent --add-service=http。同时,引用[3]中涉及Redis部署,可能需要开放6379端口作为例子,但用户的问题是关于防火墙配置,所以应该用更常见的服务如SSH或Web服务器。 然后,区域管理部分,引用[1]提到区域的概念,需要解释如何将接口分配到不同区域,比如将eth0接口放入internal区域,并设置默认区域为public。 另外,应急模式的处理也很重要,引用[1]可能提到相关命令,需要指导用户如何进入和退出应急模式,防止被锁在外面。 最后,高级配置部分,可以包括端口转发和富规则,比如引用[4]中的Apache服务可能需要端口转发,但需要调整例子为防火墙的配置,如将80端口转发到8080。 生成的问题需要围绕用户可能遇到的后续问题,比如如何永久生效配置,如何添加自定义端口,管理区域,处理应急情况等。需要确保每个命令准确,并注意--permanent参数的使用,以及重新加载防火墙的重要性。 检查是否有遗漏,比如服务管理、运行时与永久配置的区别,以及如何确保配置在重启后仍然有效。同时,提醒用户在生产环境中谨慎操作,避免锁死自己。确保引用资料中的例子正确应用,比如引用[4]中的systemctl命令适用于防火墙服务,如systemctl enable firewalld。</think>[系统级响应] ### CentOS 7防火墙配置与管理 Firewalld是CentOS 7默认的动态防火墙管理工具,支持运行时修改与永久配置分离的特性。以下是具体操作框架: #### 1. 基础服务控制 ```bash # 查看防火墙状态 $ sudo firewall-cmd --state # 启动/停止/重启服务 $ sudo systemctl start firewalld $ sudo systemctl stop firewalld $ sudo systemctl restart firewalld # 设置开机自启 $ sudo systemctl enable firewalld ``` #### 2. 端口与服务管理 ```bash # 开放HTTP服务(永久生效需加--permanent) $ sudo firewall-cmd --add-service=http $ sudo firewall-cmd --add-service=http --permanent # 开放自定义端口(例:TCP 8080) $ sudo firewall-cmd --add-port=8080/tcp $ sudo firewall-cmd --add-port=8080/tcp --permanent # 查看已开放服务列表 $ sudo firewall-cmd --list-services ``` #### 3. 区域管理策略 ```bash # 查看默认区域 $ sudo firewall-cmd --get-default-zone # 修改接口区域(将eth0划入internal区域) $ sudo firewall-cmd --zone=internal --change-interface=eth0 # 设置默认区域为public $ sudo firewall-cmd --set-default-zone=public ``` #### 4. 应急模式处理 ```bash # 进入应急模式(仅保留ssh连接) $ sudo firewall-cmd --panic-on # 退出应急模式 $ sudo firewall-cmd --panic-off ``` #### 5. 高级配置示例 ```bash # 端口转发(将80转到8080) $ sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 # 富规则(允许192.168.1.0/24访问3306) $ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept' ``` 操作后需执行重载使永久配置生效: ```bash $ sudo firewall-cmd --reload ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值