fwknop--配置1.0.2

上篇:fwknop-client—安装1.0.1

导航:

整理好情绪,开始了!

开始前我们要先把我们的firewalld防火墙启动起来。

第一步:到我们的server端电脑找到fwknopd.conf 并进行配置

一般情况会在/etc/fwknop/
[root@192 fwknop]# cd /etc/fwknop/ && ls
[root@192 fwknop]# vim fwknopd.conf

拉到最下面,如果有兴趣的小伙伴可以看我一个具体的环境解释(书虫的方式哦,这是地址
我们需要配置修改几个地方:

PCAP_INTF                   ens33;
ENABLE_FIREWD_COMMENT_CHECK N;
FIREWALL_EXE                /usr/bin/firewall-cmd;
(这里解释一下:因为很多官方都给我们默认选择了不需要了,改一些自己不同的就行了)
注:PCAP_INTF 的名字查看
# ifconfig 
显示:
ens33(这里是名字): flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
......
.......
FIREWALL_EXE位置我们可以
# find / -name firewall-cmd
查看一下,找到我们对应的填写上即可

配置好最后:wq 退出

第二步:打开我们的client端配置连接参数

注:root用户下

[root@192 fwknop]# fwknop -A tcp/22,tcp/993 -a 你的本地client地址192.168.1.102 -D 你的本地server地址192.168.1.102 --key-gen --use-hmac --save-rc-stanza
[+] Wrote Rijndael and HMAC keys to rc file: /root/.fwknoprc

[root@192 fwknop]# vim ~/.fwknoprc
[192.168.1.96]
ALLOW_IP                    192.168.1.96
ACCESS                      tcp/22,tcp/993
SPA_SERVER                  192.168.1.96
KEY_BASE64                  H3EJJXuh6lcgX8wt0pPOFP2e9JdEw5udSSfEkYzi+bk=
HMAC_KEY_BASE64             L8bttFde+b1TldfTBfotA60zmSyQTnZXPJ/od3Uclm5slE2EFDOgDQ36EoCSDPOsuDeT9IZWvlRF/638HnXBqA==
USE_HMAC                    Y

第三步:将我们的KEY_BASE64、HMAC_KEY_BASE64 复制到server配置上

打开我们server的 /etc/fwknop(第一步所在的目录)

[root@192 fwknop]# vim access.conf
位置拉到最后,找到原本的配置,然后进行修改填充
SOURCE              ANY
OPEN_PORTS                 tcp/22,tcp/993    #对应client端的配置写上这是成功后要打开的端口
EQUIRE_SOURCE_ADDRESS      Y
KEY_BASE64                  H3EJJXuh6lcgX8wt0pPOFP2e9JdEw5udSSfEkYzi+bk=
HMAC_KEY_BASE64             L8bttFde+b1TldfTBfotA60zmSyQTnZXPJ/od3Uclm5slE2EFDOgDQ36EoCSDPOsuDeT9IZWvlRF/638HnXBqA==
FW_ACCESS_TIMEOUT          240    #有效时间240秒

:wq退出

第五步:运行server端fwknopd服务

[root@192 fwknop]#  fwknopd
查看日志:
[root@192 fwknop]# tail /var/log/messages
Dec 12 17:02:26 192 fwknopd[58419]: Added jump rule from chain: PREROUTING to chain: FWKNOP_PREROUTING
Dec 12 17:02:26 192 fwknopd[58419]: Sniffing interface: ens33
Dec 12 17:02:26 192 fwknopd[58419]: PCAP filter is: 'udp port 62201'
Dec 12 17:02:26 192 fwknopd[58419]: Starting fwknopd main event loop.

准备工作已经全部做完

测试

第六步:client敲门

1.切换到client端

# fwknop -n 192.168.1.100(第二步命令的地址--你的server地址)

2.切换到server端
#iptables -nL -line

Chain FWKNOP_INPUT (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.102         0.0.0.0/0            tcp dpt:22 /* _exp_1544608666 */
ACCEPT     tcp  --  192.168.1.102         0.0.0.0/0            tcp dpt:4432 /* _exp_1544608666 */
到这里是恭喜你敲门成功!!!后续可以自行关闭相应端口进行敲门检测玩一下了,成功就可以不用看第七步了

友情提供:【server端】关闭端口【client端】再次敲门尝试一下连通ssh22端口吧

  【server端】# iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -j DROP
  【client端】# ssh root@192.168.1.96

但是博主想告诉你的是: 成功了就恭喜你,不成功没有关系,你现在不一定成功了,不成功不要高兴太早,我们以一个检测的方式来说吧,先说一点你要先按照我的步骤来,我之后告诉你为什么这样,除非你对于防火墙的机制比较清楚,那你就忽略第七步就可以了,自己直接就可以开心的玩了,不行的话看下面的吧。哈哈

第七步:检测下成果吧

1.准备检测环境

接上为例:我们检测的目标是22、4432端口

【server端192.168.1.96】

1.禁用掉22、4432端口(这里就只禁用一个22,比较明显。大家都有)
注:22端口是ssh端口,你要有心理准备关闭了可就把自己的ssh客户端关门外面了,你要去你的虚拟机或者主机上去操作了

关闭22端口命令(其他端口模仿一下):

# iptables -I INPUT 1 -i ens33 -p tcp --dport 22 -j DROP
ens33是网络名:不知道网络名的去看上一篇文章,本门开头有连接

2.我们去虚拟机终端

fwknopd服务重启
# fwknopd -R
【client192.168.1.102】

我们已经禁用了22端口,我们先来看看我们是一个匿名机器我们来请求一下

# ssh root@192.168.1.96
ssh: connect to host 192.168.1.96 port 22: Connection timed out

我们看到是敲门敲不通的
(可跳过)使用nmap扫描试一下

#nmap -sS -p 22 192.168.1.96   或   nmap -sS 192.168.1.96 -p 22

Starting Nmap 6.40 ( http://nmap.org ) at 2018-12-13 10:00 CST
Nmap scan report for 192.168.1.96 (192.168.1.96)
Host is up (0.00029s latency).
PORT   STATE    SERVICE
22/tcp filtered ssh
MAC Address: XX:XX:XX:XX:XX:XX (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
看到是连不通的

1.敲门试试看

# fwknop -n 192.168.1.96

2.再次连接
SSH连接

ssh root@192.168.1.96
root@192.168.1.96's password: 
输入root密码登录
Last login: Thu Dec 13 09:54:08 2018

成功连通没有问题!!!

(可跳过)查看状态:

[root@192 ~]# nmap -sS 192.168.1.96 -p 22

Starting Nmap 6.40 ( http://nmap.org ) at 2018-12-13 10:05 CST
Nmap scan report for 192.168.1.96 (192.168.1.96)
Host is up (0.00032s latency).
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: XX:XX:XX:XX:XX:XX (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

抱着0信任的思想考虑我们去其他电脑或者其他虚拟机终端请求server的ssh22端口

[root@192 ~]# ssh root@192.168.1.96
ssh: connect to host 192.168.1.96 port 22: Connection timed out

依旧如此看到是无法连通的这下我们就放心了


为什么让大家这么步骤走?问题点在于一个防火墙小问题,你在做完第六步的时候不知道你有没有发现,你的一切成果和我都是一样的,但是当你自己真正检测是否可用时候,发现依旧不能连通像这样:
# ssh root@192.168.1.96
ssh: connect to host 192.168.1.96 port 22: Connection timed out

这里有一个点,简单讲下小原理iptables,规则会逐条进行检验,
1.第一条命令是我们的不接受所有连接,那么只有你的电脑自己能连接,当第一条不通过就走第二条
2.这样我们考虑我们的问题,如果我们上来加上22端口不通过,好么,一下22端口的都干死了,不走你的敲门成功添加的规则了
3.思考:把我们的链放到第一个就ok了。
4.既然如此,我们最简单的方式就是:在所有的防火墙不动了之后,再启动我们的fwknopd服务,这样我们的FWKNOP_INPUT链会在第一条,这样就会进行先行检验我们的规则,看是否通过了
5.如果所有都不通过,走下面的22端口禁用策略直接拦在门外了
iptables
这个问题是一个防火墙的问题,可以看我一篇针对于防火墙的简单介绍你就可以完全理解了,对防火墙比较熟悉的朋友也能轻松理解

持续下篇·····
希望防火墙比较熟悉的朋友来交流一下,可以微博私聊我

友情提示命令:

Usage: fwknopd [options]

 -a, --access-file       - 指定accss配置文件
 -c, --config-file       - 指定config配置文件备用地址
 -f, --foreground        - 在前台运行fwknopd(不要成为后台守护进程)。
 -i, --interface         - 指定监听传入SPA包的接口。
 -C, --packet-limit      - 当达到这个限制时,限制要处理和退出的候选SPA包的数量。
 -d, --digest-file       - 指定替代摘要。缓存文件。
 -D, --dump-config       - 转储当前fwknop配置值。
 -K, --kill              - 杀死当前正在运行的fwknopd。
 -l, --locale            - 提供系统默认设置以外的地区设置。
 -O, --override-config   - 指定一个包含配置项的文件,该文件将覆盖fwknop .conf中的配置项
 -p, --pid-file          - 指定一个备用fwknopd.pid文件。
 -P, --pcap-filter       - 指定Berkeley包过滤器语句来覆盖fwknop .conf中的PCAP_FILTER变量。
 -R, --restart           - 强制当前正在运行的fwknopd重新启动。
     --rotate-digest-cache
                         - 通过将文件重命名为具有-old后缀的相同路径来旋转摘要缓存文件。
 -r, --run-dir           - 设置路径到本地状态运行目录。
                         - 通过将摘要缓存文件重命名为“-old”来旋转它,并启动一个新文件。
 -S, --status            - 显示任何正在运行的fwknopd进程的状态。
 -t, --test              - 测试模式,处理SPA包,但不做任何防火墙修改。
 -U, --udp-server        - 设置UDP服务器模式。
 -v, --verbose           - 设置冗余模式。
     --syslog-enable     - 即使设置了前台模式,也允许将消息发送到syslog。
 -V, --version           - 打印版本号。
 -A, --afl-fuzzing       - 运行在美国模糊Lop (AFL)模糊模式,使明文SPA数据包通过stdin被接受。
 -h, --help              - 打印此使用消息并退出。
 --dump-serv-err-codes   - 列出所有服务器错误代码(仅测试套件需要)。
 --exit-parse-config     - 解析配置文件并退出。
 --fault-injection-tag   - 启用错误注入标记(仅测试套件需要)。
 --pcap-file             - 从现有的pcap文件中读取潜在的SPA包。
 --pcap-any-direction    - 默认情况下,fwknopd处理发送到嗅探接口的数据包,但是这个选项支持处理来自接口的数据包(例如在转发情况下)。
     --fw-list           - 列出fwknop创建的所有防火墙规则然后退出            
     --fw-list-all       - 列出完整策略中的所有防火墙规则,包括那些与fwknop无关的规则。
     --fw-flush          - 刷新fwknop创建的所有防火墙规则。
     --gpg-home-dir      - 指定GPG主目录(这通常在访问中完成。conf文件)。
     --gpg-exe           - 指定到GPG的路径(这通常在访问中完成。conf文件)。
     --sudo-exe          - 指定到sudo的路径(默认路径是/usr/bin/sudo)。
 --no-firewd-check-support
                         - 禁用“防火墙cmd…”- c的支持。
 --no-ipt-check-support  -禁用“iptables -C”支持的测试。
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值