APF防火墙的安装和使用

APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptables的规则,易于理解及使用。

下载,安装apf

root@linux:/home/zhangy# wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz

root@linux:/home/zhangy# tar -xvzf apf-current.tar.gz

root@linux:/home/zhangy# cd apf-9.7-1

root@linux:/home/zhangy/apf-9.7-1# ./install.sh

安装成功的提示信息如下:

root@linux:/home/zhangy/apf-9.7-1# ./install.sh

Installing APF 9.7-1: Completed.

Installation Details:

Install path: /etc/apf/

Config path: /etc/apf/conf.apf

Executable path: /usr/local/sbin/apf

Other Details:

Listening TCP ports: 22,25,111,3306,53976

Listening UDP ports: 111,917,936,5353,49640,54744

Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.

配置apf

vim /etc/apf/conf.apf

IG_TCP_CPORTS="21,22,80,443,3306,8080" //设置服务器允许被访问的TCP端口IG_UDP_CPORTS="53" //设置服务器允许被访问的UDP端口EG_TCP_CPORTS="21,25,80,443,43,2089" //设置服务器允许对外访问的TCP端口EG_UDP_CPORTS="20,21,53" //设置服务器允许对外访问的UDP端口

DEVEL_MODE="1" 改为 DEVEL_MODE="0"

DLIST_SPAMHAUS="0" 改为 DLIST_SPAMHAUS="1"

DLIST_DSHIELD="0" 改为 DLIST_DSHIELD="1"

配置过程中要注意以下几点:

1,根据不同的服务器开放不同的端口,web服务器根mysql服务器开放的端口肯定不一样。

2,DEVEL_MODE=”1″表示在调试模式下,每五分钟重调配置,这样能避免因为错误的配置而使服务器崩溃。

3,设置只通许192.168.1.139远程连接22端口

// 在/etc/apf/allow_hosts.rules添加如下信息:tcp:in:d=22:s=192.168.1.139

out:d=22:d=192.168.1.139

// 在/etc/apf/deny_hosts.rules添加如下信息:

tcp:in:d=22:s=0/0

out:d=22:d=0/0

开始的时候,我以为只要在allow_hosts.rules里面加就行了,改过一后,我换了一个IP,已然可以连接,搞得我很无语。后在deny_hosts.rules加上了上面的规则后,在连接时就提示超时了。allow_hosts.rules和deny_hosts.rules里面都加了规则后,重起apf会提示配置成功的信息,偶然发现的。

apf(12234): {trust} allow outbound 192.168.1.139 to port 22

apf(12234): {trust} allow inbound tcp 192.168.1.139 to port 22

apf的常用命令

apf -s // 启动APF防火墙

apf -r // 重启APF防火墙

apf -f // 刷新APF防火墙配置文件

apf -l // 列出APF的过虑规则

apf -t // APF的日志信息

apf -e // 将域名解释加入信认规则

apf -a // 将IP/IP段添加到白名单

apf -d // 将IP/IP段添加到黑名单

apf -u // 将IP/IP段从白/黑名单中删除

apf -o // 将IP/IP段从白/黑名单中删除

常用端口列表

21/tcp //ftp

22/tcp //ssh

25/tcp //smtp

53/udp //dns

80/tcp //http

110/tcp //pop

3143/tcp //imap

443/tcp //https

993/tcp //imaps

995/tcp //pop3

3306/tcp //mysql

5432/tcp //postgresql

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/7779.html

(0)
晴川运维晴川运维
上一篇 2025年6月10日
下一篇 2025年6月10日

相关推荐

  • 快速上手Vue.js

    Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得我…

    Linux系统 2025年7月9日
  • 以源码的方式讲解一下Rarp协议

    rarp是通过mac地址查询ip的协议,主要用于有mac的主机,但是没有ip的情况。 rarp协议的格式和arp协议是一样的,他们都是通过一种地址查询另外一种地址。操作系统内维护了…

    Linux系统 2025年10月19日
  • 通过sestatus命令查看SELinux的当前状态

    sestatus命令用于查看系统上正在运行的SELinux的当前状态。本文讲述sestatus命令输出详细说明,在sestatus中显示所选对象的安全上下文,显示所有的布尔值 1.…

    Linux系统 2025年6月4日
  • Linux下使用dd命令克隆硬盘

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,本篇文章为大家演示一下使用dd命令克隆硬盘具体方法。 只拷贝…

    Linux系统 2025年6月8日
  • Linux下使用php访问sql server

    Linux下如何使用php访问sql server?本篇文章重点为大家讲解一下Linux下使用php访问sql server具体方法,有需要的小伙伴可以参考一下。 安装freeID…

    Linux系统 2025年9月23日
  • Linux下快速挂载U盘

    Linux下如何挂载U盘?在Linux系统中挂载U盘的方法非常简单,下面为大家分享一下Linux下快速挂载U盘具体方法。 1、 插入U盘 2、 #sudo fdisk –l 查看所…

    Linux系统 2025年6月19日
  • Ubuntu 18.04 LTS部署Rsyslog日志服务

    Rsyslog 是一个 syslogd 的多线程增强版。它提供高性能、极好的安全功能和模块化设计。虽然它基于常规的 syslogd,但 rsyslog 已经演变成了一个强大的工具,…

    Linux系统 2025年6月8日
  • 在 Fedora 上为 SSH 设置双因子验证

    每天似乎都有一个安全漏洞的新闻报道,说我们的数据会因此而存在风险。尽管 SSH 是一种远程连接系统的安全方式,但你仍然可以使它更安全。本文将向你展示如何做到这一点。 此时双因子验证…

    Linux系统 2025年6月9日
  • Linux下使用Linfo显示服务器运行状况

    Linfo 是一个自由开源的跨平台的服务器统计 UI 或库,它可以显示大量的系统信息。Linfo 是可扩展的,通过 composer,很容易使用 PHP5 库以程序化方式获取来自 …

    Linux系统 2025年6月8日
  • 通过https访问www服务

    Web服务器在默认情况下使用HTTP,这是一个纯文本的协议。正如其名称所暗示的,纯文本协议不会对传输中的数据进行任何形式的加密。而基于HTTP的Web服务器是非常容易配置,它在安全…

    Linux系统 2025年10月23日

发表回复

登录后才能评论