Linux下安装与配置APF防火墙

APF是一款Linux下的iptables防火墙,由R-fx Networks开发维护,实现代码基本为SHELL。个人觉得这是Linux下最易用,且强大的防火墙脚本。类似级别的还有Bastille,FireHol,Kill my firewall等。但我还是喜欢APF。

一,下载,安装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/12810.html

(0)
晴川运维晴川运维
上一篇 2025年9月19日
下一篇 2025年9月19日

相关推荐

  • 在 Fedora 上为 SSH 设置双因子验证

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

    Linux系统 2025年6月9日
  • 详解Spring中AOP

    AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个…

    Linux系统 2025年6月28日
  • Linux umount命令:卸载文件系统

    前面介绍了如何将光盘和 U 盘挂载在系统中,而在使用完成后,需要先将其与挂载点取消关联,然后才能成功卸载。不过,硬盘分区是否需要卸载,取决于你下次是否还需要使用,一般不对硬盘分区执…

    Linux系统 2025年7月7日
  • Linux中高效的学习数学

    Linux 提供了大量的教育软件和许多优秀的工具来帮助各种年龄段和年级的学生学习和练习各种各样的习题,这通常是以交互的方式进行。本文为这些各种各样的教育软件和应用提供了一个介绍。 …

    Linux系统 2025年6月4日
  • 快速上手Linux ptrace 的实现

    Ptrace 提供了一种父进程可以控制子进程运行,并可以检查和改变它的核心image。它主要用于实现断点调试。一个被跟踪的进程运行中,直到发生一个信号。则进程被中止,并且通知其父进…

    Linux系统 2025年6月12日
  • Linux Mint 安装 Linux Kernel 4.12

    Linus Torvalds 发布了 Linux 内核 4.12。你可以从这里直接下载相关的 deb 包来安装。或者,继续阅读本文,按下面的步骤安装新内核。 警告:Linux 内核…

    Linux系统 2025年6月17日
  • Linux终端中使用Nmcli命令连接WiFi具体方法

    nmcli命令是redhat7或者centos7之后的命令,该命令可以完成网卡上所有的配置工作,并且可以写入配置文件,永久生效,本篇文章重点为大家讲解一下在Linux终端中使用Nm…

    Linux系统 2025年6月13日
  • Java基础HashSet使用详解

    HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。HashSet 允许有 null 值。HashSet 是无序的,即不会记录插入的顺序。 一. Hash…

    Linux系统 2025年7月5日
  • 详解cat、more、less命令区别

    cat、more、less命令都是用来查看文本内容的命令,但是他们的使用方法和特点各有不同,本篇文章就为大家讲解一下cat more less的区别。 cat cat命令功能用于显…

    Linux系统 2025年10月6日
  • PHP 删除数组中元素具体方法

    在PHP中没有一种专门删除一个特定数组元素的方法,但是可以借助其他的函数进行实现,下面为大家详细讲解一下PHP 删除数组中元素具体方法。 删除数据中的一个元素 如果你想删除数组中的…

    Linux系统 2025年9月21日

发表回复

登录后才能评论