已经解决:Refusing to start with libssl version OpenSSL &libssl version mismatch(通用freeradis下载)

本文介绍了解决Freeradius在不同版本的OpenSSL环境下运行时遇到的版本冲突问题,包括如何修改源代码以避免错误提示,并提供了一个预编译版本供下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

freeradius 在编译的时候依托某个openssl的版本,最后建立的文件radiusd在运行的时候可能会出现一些意外.


1)Refusing to start with libssl version OpenSSL 1.0.1h 5 Jun 2014 (in range 1.0.1 - 1.0.1f).  Security advisory CVE-2014-0160 (Heartbleed)

已经升级了openssl ,但还说有问题的openssl版本。

 2)libssl version mismatch.  built: 1000114f linked: 1000103f

在openssl1.0.1t 下编译的freeradius,到openssl1.0.1h下无法运行,ssl版本不匹配。可能你说重新编译一下就OK,不幸的事情就是某系统中不支持编译,是裁剪过的!


freeradius-2.2.10源代码,version.c  部分代码,检测openssl版本的,修改一下。

int ssl_check_version()
{
        long ssl_linked;


        ssl_linked = SSLeay();
        /*return 0 * / 将BUG提示都隐藏不见的好!


        /*
         *      Status mismatch always triggers error.
         */
        if ((ssl_linked & 0x0000000f) != (ssl_built & 0x0000000f)) {
        mismatch:
                radlog(L_ERR, "adjust by minifw@whuashan,libssl version mismatch.  built: %lx linked: %lx",
                       (unsigned long) ssl_built, (unsigned long) ssl_linked);


                return 0;     /*旧源代码是return -1 ;表示失败 */
        }


        /*
         *      Use the OpenSSH approach and relax fix checks after version
         *      1.0.0 and only allow moving backwards within a patch
         *      series.
         */
        if (ssl_built & 0xf0000000) {
                if ((ssl_built & 0xfffff000) != (ssl_linked & 0xfffff000) ||
                    (ssl_built & 0x00000ff0) > (ssl_linked & 0x00000ff0)) goto mismatch;
        /*
         *      Before 1.0.0 we require the same major minor and fix version
         *      and ignore the patch number.
         */
        } else if ((ssl_built & 0xfffff000) != (ssl_linked & 0xfffff000)) goto mismatch;


        return 0;
}

int ssl_check_vulnerable()
{
        long ssl_linked;


        ssl_linked = SSLeay();
      /*return 0 * / 将BUG提示都隐藏不见的好!

        /* Check for bad versions */
        /* 1.0.1 - 1.0.1f CVE-2014-0160 http://heartbleed.com */
        if ((ssl_linked >= 0x010001000) && (ssl_linked < 0x010001070)) {
                radlog(L_ERR, "Refusing to start with libssl version %s (in range 1.0.1 - 1.0.1f).  "
                      "Security advisory CVE-2014-0160 (Heartbleed)", ssl_version());
                radlog(L_ERR, "For more information see http://heartbleed.com, minifw@wuhuashan");


                return 0;  /*旧源代码是return -1 ;表示失败 */
        }


        return 0;
}


下面的地址是freeradius-2.2.10已经编译运行过的版本。在centos6 开发(2.6.32),该tgz还成功运行在深信服AF5.8系列的64位系统中。

链接:http://pan.baidu.com/s/1geMFlz9 密码: 5wst  可以下载X86_64位的glibc版本,支持任意的openssl版本,已经配置好,只需要配置几个*.sql初始化mysql。


遇到500 OOPS: vsftpd: refusing to run with writable root inside chroot错误通常是因为vsftpd服务器不允许FTP用户在其受限的chroot(chrooted jail,受限根目录)环境中拥有写入权限。这个错误通常是安全策略的一部分,防止恶意用户的滥用。 **解决方案**: 1. **理解错误**[^1]: - 根据错误信息,你需要确认是否设置了`chroot_local_user=YES`,这会限制每个本地登录的FTP用户只能在其指定的chroot目录下操作,如果该目录有可写权限,则会触发此错误。 2. **调整配置**[^2]: - 检查vsftpd.conf配置文件,移除或禁用可能导致写入权限的设置,如`chroot_local_user=YES`,并确保`write_enable=NO`以防止全局写入。 - 如果确实希望允许有限的写操作,可以创建单独的目录给特定用户,并只在那个目录上设置`chmod 770`(仅用户读写执行)。 3. **权限管理**: - 只对必要的目录授予适当的权限,例如 `/var/www` 和 `/var/lib`,而非整个根目录,以保持安全性: ```bash chmod -R 770 /var/www chmod -R 770 /var/lib ``` - 对敏感文件如SSH密钥保持更严格的权限: `chmod 600 /etc/ssh/ssh_host_rsa_key` 4. **测试并验证**[^3]: - 更改权限后,重启vsftpd服务并尝试重新连接FTP,查看错误是否已解决。 **相关问题--:** 1. 如何在不违反安全的前提下,允许FTP用户写入部分目录? 2. 是否可以在vsftpd的全局配置中更改默认的安全策略? 3. 如何通过日志记录来跟踪关于此错误的活动?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wu_huashan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值