小项目:C++拦截Linux下IP和文件访问

这篇具有很好参考价值的文章主要介绍了小项目:C++拦截Linux下IP和文件访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

仓库链接:https://github.com/sixsixQAQ/ip_file_hook

Linux下实现IP和文件访问拦截,代码量1000行。

1. 使用技术

C++实现,构建工具cmake。

  1. so preload机制
  2. inotify API
  3. ptrace系统调用
  4. 其他常用linux系统调用

2. 前导知识

这个小项目可以拆出多个模块,前几篇博客都有总结。
1. 优雅地细化异常
2. 自定义format
3. 优雅地实现简易日志
ptrace()手册翻译

3. 使用效果

通过配置文件来控制文章来源地址https://www.toymoban.com/news/detail-565483.html

{
    "file_black_list": [
        {
            "file": "/home/sixqaq/protect_ip_file/test/test_black_list.txt",
            "exe": [
                "/home/sixqaq/protect_ip_file/test/deny_1",
                "/home/sixqaq/protect_ip_file/test/deny_2",
                "/home/sixqaq/protect_ip_file/test/deny_3",
                "/usr/bin/gedit",
                "/usr/bin/vim",
                "/software/pkg/vnote"
            ]
        }
    ],
    "file_white_list": [
        {
            "file": "/home/sixqaq/protect_ip_file/test/test_white_list.txt",
            "exe": [
                "/home/sixqaq/protect_ip_file/test/allow_1",
                "/home/sixqaq/protect_ip_file/test/allow_2",
                "/home/sixqaq/protect_ip_file/test/allow_3",
                "/usr/bin/cat",
                "/usr/bin/vim",
                "/usr/bin/cp"
            ]
        }
    ],
    "ip_black_list": [
        {
            "ip": "39.156.66.10",
            "exe": [
                "/home/sixqaq/protect_ip_file/test/deny_1",
                "/home/sixqaq/protect_ip_file/test/deny_2",
                "/home/sixqaq/protect_ip_file/test/deny_3"
            ]
        }
    ],
    "ip_white_list": [
        {
            "ip": "106.13.8.123",
            "exe": [
                "/home/sixqaq/protect_ip_file/test/allow_1",
                "/home/sixqaq/protect_ip_file/test/allow_2",
                "/home/sixqaq/protect_ip_file/test/allow_3",
                "/usr/bin/ping",
                "/usr/bin/ssh"
            ]
        }
    ]
}

``

到了这里,关于小项目:C++拦截Linux下IP和文件访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ 网络编程项目fastDFS分布式文件系统(四)-fastCGI项目相关技术以及linux搜狗输入法相关问题。

    目录 1. Nginx作为web服务器处理请求 2. http协议复习       Get方式提交数据 Post方式提交数据 3. fastCGI   3.1 CGI  3.2 fastCGI 3.3 fastCGI和spawn-fcgi安装         1. 安装fastCGI     2. 安装spawn-fcgi 3.4 nginx fastcgi     4其他知识点 1. fastCGI环境变量 - fastcgi.conf  2. 客户端使用Post提交数据

    2024年02月12日
    浏览(32)
  • Linux 使用 iptables 禁止某些 IP 访问

    在Linux服务器被攻击的时候,有的时候会有几个主力IP。如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了。 在Linux下封停IP,有封杀网段和封杀单个IP两种形式。一般来说,现在的攻击者不会使用一个网段的IP来攻击(太招摇了),

    2024年02月08日
    浏览(28)
  • Linux只允许特定IP访问特定端口

    目录 1、查看/开启/关闭防火墙 2、查看/开放/关闭端口 3、给指定的IP开放/关闭指定的端口 4、规则的持久化位置 5、其它命令 查看服务器的防火墙状态可使用如下命令: 开启和关闭防火墙命令如下:  当我们开启了linux的防火墙后,对该服务器的网络访问将受到控制。 可通过

    2024年02月12日
    浏览(32)
  • 基于Geoip2实现Nginx拦截国外IP访问网站

    最近公司上线了一个APP,过段时间发现告警群总有些莫名的异常,通过排查发现是被攻击了,并且攻击IP全是国外的,基于APP业务全在国内,最简单办法就是屏蔽这些IP。云上虽有产品但收费,自己动手才是王道。 目录 一、实现思路 二、配置方法    2.1 软件下载 2.1.1 Nginx下

    2024年01月16日
    浏览(29)
  • linux中iptables 设置特定IP访问指定端口

    iptables 设置特定IP访问指定端口 测试telnet 1、查询规则编号: 可以看到禁止访问8075的规则编号为1 2、删除指定规则编号的规则(如删除编号为1的规则) 1、添加规则:禁止所有IP访问8075 2、添加规则:允许127.0.0.1访问8075 3、测试: 4、保存规则

    2024年02月07日
    浏览(43)
  • Linux防火墙限制访问服务器IP和端口

    笔记 逐行执行命令 查看

    2024年02月15日
    浏览(47)
  • linux: 使用iptables阻断到某个ip某个端口的访问

    要使用 Linux 中的 iptables 阻断到特定 IP 地址的特定端口的访问,我们可以遵循以下步骤。这里以阻断到 IP 地址 192.168.1.100 的端口 80 为例: 打开终端 :首先,我们需要打开 Linux 系统的终端。 使用 iptables :使用以下命令来添加一条规则,阻断到指定 IP 和端口的访问。 这里的

    2024年02月05日
    浏览(34)
  • 本地Linux搭建web服务并发布公网访问 - 无需公网IP

    🍎 博客主页:🌙@披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 内网穿透 🌙请不要相信胜利就像山坡上的蒲公英一样唾手可得,但是请相信,世界上总有一些美好值得我们全力以赴,哪怕粉身碎骨!🌙 🍉一起加油,去追寻、去成为更好的自己

    2024年01月16日
    浏览(31)
  • 如何在Linux设置JumpServer实现无公网ip远程访问管理界面

    JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpServer 帮助企业以更安全的方式管控和登录所有类型的资产,实现事前授权、事中监察、事后审计,满足等保合规要求。 下面介绍如何简单设置即可使本地jump server 结合cpolar 内网穿透实现远程访问

    2024年02月04日
    浏览(44)
  • 可使用Linux 测试IP和端口是否能访问,查看返回状态码

    wget是linux下的下载工具,需要先安装. 用法: wget ip:port 连接存在的端口 telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet. 用法: telnet ip port

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包