FreePBX / issue-tracker

The unified FreePBX issue tracker.
https://www.freepbx.org
GNU General Public License v3.0
9 stars 1 forks source link

[bug]: TFTP Root not set correctly #383

Closed craigarn closed 1 month ago

craigarn commented 1 month ago

FreePBX Version

FreePBX 17

Issue Description

Default TFTP server (tftpd-hpa.service) under a fresh Debian 12 install is using /srv/tftp as a root, instead of /tftpboot. I am not sure if this is a TFTP server included with the OS install or if it is installed by the script.

Phones using TFTP provisioning are not able to download their config, as Endpoint Manager is dropping files in /tftpboot.

Steps to reproduce:

Install FreePBX 17 Attempt to get any file created by EPM using a tftp client

Expected outcome:

File is retrieved

Actual outcome:

File is not found

I used my fairly poor linux skills to temporarily fix it, which works, but does not solve whatever the root cause is - I poked around some config files but I am unable to tell where or why tftpd is being called using /srv/tftp as a root.

rm -r /srv/tftp
ln -s /tftpboot /srv/tftp
systemctl restart tftpd-hpa.service

Operating Environment

Fresh install of FreePBX 17.0.19.1 using script version 1.5 (downloaded/installed August 1, 2024). No other changes made other than doing a hardware activation.

freepbx17-install-2024.08.01-10.19.41.log

Asterisk 21.4.1 built by jenkins @ 2d4a220bf72f on a x86_64 running Linux on 2024-07-30 05:37:05 UTC
Linux freepbx-dev 6.1.0-22-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21) x86_64 GNU/Linux  

| accountcodepreserve | 17.0.0.1  | Enabled | GPLv2       | Sangoma   |
| adv_recovery        | 17.0.4    | Enabled | Commercial  | Sangoma   |
| allowlist           | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| amd                 | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| announcement        | 17.0.2.1  | Enabled | GPLv3+      | Sangoma   |
| api                 | 17.0.1.6  | Enabled | AGPLv3+     | Sangoma   |
| areminder           | 17.0.3.10 | Enabled | Commercial  | Sangoma   |
| arimanager          | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| asterisk-cli        | 17.0.2    | Enabled | GPLv3+      | Sangoma   |
| asteriskinfo        | 17.0.2    | Enabled | GPLv3+      | Sangoma   |
| backup              | 17.0.5.58 | Enabled | GPLv3+      | Sangoma   |
| blacklist           | 17.0.1.2  | Enabled | GPLv3+      | Sangoma   |
| broadcast           | 17.0.1.6  | Enabled | Commercial  | Sangoma   |
| builtin             |           | Enabled |             | Unsigned  |
| bulkhandler         | 17.0.5    | Enabled | GPLv3+      | Sangoma   |
| calendar            | 17.0.4.15 | Enabled | GPLv3+      | Sangoma   |
| callaccounting      | 17.0.5    | Enabled | Commercial+ | Sangoma   |
| callback            | 17.0.2.1  | Enabled | GPLv3+      | Sangoma   |
| callerid            | 17.0.1    | Enabled | Commercial  | Sangoma   |
| callforward         | 17.0.1.6  | Enabled | AGPLv3+     | Sangoma   |
| calllimit           | 17.0.1.2  | Enabled | Commercial  | Sangoma   |
| callrecording       | 17.0.3.7  | Enabled | AGPLv3+     | Sangoma   |
| callwaiting         | 17.0.3.4  | Enabled | GPLv3+      | Sangoma   |
| cdr                 | 17.0.4.16 | Enabled | GPLv3+      | Sangoma   |
| cdrpro              | 17.0.3.19 | Enabled | Commercial  | Sangoma   |
| cel                 | 17.0.2.8  | Enabled | GPLv3+      | Sangoma   |
| certman             | 17.0.3.12 | Enabled | AGPLv3+     | Sangoma   |
| cidlookup           | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| conferences         | 17.0.3.2  | Enabled | GPLv3+      | Sangoma   |
| conferencespro      | 17.0.1.7  | Enabled | Commercial  | Sangoma   |
| configedit          | 17.0.1.1  | Enabled | AGPLv3+     | Sangoma   |
| contactmanager      | 17.0.5.11 | Enabled | GPLv3+      | Sangoma   |
| core                | 17.0.13   | Enabled | GPLv3+      | Sangoma   |
| cos                 | 17.0.1.1  | Enabled | Commercial  | Sangoma   |
| customappsreg       | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| customcontexts      | 17.0.1.3  | Enabled | GPLv2+      | Sangoma   |
| dashboard           | 17.0.4.3  | Enabled | AGPLv3+     | Sangoma   |
| daynight            | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| dictate             | 17.0.1.2  | Enabled | GPLv3+      | Sangoma   |
| directory           | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| disa                | 17.0.3    | Enabled | AGPLv3+     | Sangoma   |
| donotdisturb        | 17.0.2.3  | Enabled | GPLv3+      | Sangoma   |
| dynroute            | 17.0.3.1  | Enabled | GPLv3+      | Sangoma   |
| endpoint            | 17.0.1.73 | Enabled | Commercial  | Sangoma   |
| extensionroutes     | 17.0.1    | Enabled | Commercial  | Sangoma   |
| extensionsettings   | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| fax                 | 17.0.3.4  | Enabled | GPLv3+      | Sangoma   |
| faxpro              | 17.0.1.18 | Enabled | Commercial  | Sangoma   |
| featurecodeadmin    | 17.0.2    | Enabled | GPLv3+      | Sangoma   |
| filestore           | 17.0.2.22 | Enabled | AGPLv3      | Sangoma   |
| findmefollow        | 17.0.4.9  | Enabled | GPLv3+      | Sangoma   |
| firewall            | 17.0.1.26 | Enabled | AGPLv3+     | Sangoma   |
| framework           | 17.0.19.1 | Enabled | GPLv2+      | Sangoma   |
| hotelwakeup         | 17.0.1.6  | Enabled | GPLv2       | Sangoma   |
| iaxsettings         | 17.0.1    | Enabled | AGPLv3      | Sangoma   |
| infoservices        | 17.0.1.1  | Enabled | GPLv2+      | Sangoma   |
| ivr                 | 17.0.6    | Enabled | GPLv3+      | Sangoma   |
| languages           | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| logfiles            | 17.0.3.3  | Enabled | GPLv3+      | Sangoma   |
| manager             | 17.0.6    | Enabled | GPLv2+      | Sangoma   |
| miscapps            | 17.0.3    | Enabled | GPLv3+      | Sangoma   |
| miscdests           | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| missedcall          | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| music               | 17.0.5    | Enabled | GPLv3+      | Sangoma   |
| outcnam             | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| outroutemsg         | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| paging              | 17.0.3    | Enabled | GPLv3+      | Sangoma   |
| pagingpro           | 17.0.1.6  | Enabled | Commercial  | Sangoma   |
| parking             | 17.0.2.4  | Enabled | GPLv3+      | Sangoma   |
| parkpro             | 17.0.1.4  | Enabled | Commercial  | Sangoma   |
| pbxmfa              | 17.0.2.1  | Enabled | Commercial+ | Sangoma   |
| phpinfo             | 17.0.1    | Enabled | GPLv2+      | Sangoma   |
| pinsets             | 17.0.3.2  | Enabled | GPLv3+      | Sangoma   |
| pinsetspro          | 17.0.2    | Enabled | Commercial  | Sangoma   |
| pm2                 | 17.0.3.2  | Enabled | AGPLv3+     | Sangoma   |
| pms                 | 17.0.2.15 | Enabled | Commercial  | Sangoma   |
| presencestate       | 17.0.2.4  | Enabled | GPLv3+      | Sangoma   |
| printextensions     | 17.0.1.2  | Enabled | GPLv3+      | Sangoma   |
| queueprio           | 17.0.1.4  | Enabled | GPLv3+      | Sangoma   |
| queues              | 17.0.1.10 | Enabled | GPLv2+      | Sangoma   |
| queuestats          | 17.0.1.7  | Enabled | Commercial  | Sangoma   |
| qxact_reports       | 17.0.3    | Enabled | Commercial  | Sangoma   |
| recording_report    | 17.0.3.8  | Enabled | Commercial  | Sangoma   |
| recordings          | 17.0.2.2  | Enabled | GPLv3+      | Sangoma   |
| restapps            | 17.0.1.20 | Enabled | Commercial  | Sangoma   |
| ringgroups          | 17.0.2.4  | Enabled | GPLv3+      | Sangoma   |
| sangomaconnect      | 17.0.1.35 | Enabled | Commercial  | Sangoma   |
| sangomacrm          | 17.0.1.16 | Enabled | Commercial  | Sangoma   |
| sangomartapi        | 17.0.1.28 | Enabled | Commercial  | Sangoma   |
| setcid              | 17.0.1.2  | Enabled | GPLv3+      | Sangoma   |
| sipsettings         | 17.0.6.8  | Enabled | AGPLv3+     | Sangoma   |
| sipstation          | 17.0.3.3  | Enabled | Commercial  | Sangoma   |
| sms                 | 17.0.1.15 | Enabled | Commercial  | Sangoma   |
| smsplus             | 17.0.3    | Enabled | Commercial  | Sangoma   |
| soundlang           | 17.0.4.1  | Enabled | GPLv3+      | Sangoma   |
| superfecta          | 17.0.2    | Enabled | GPLv2+      | Sangoma   |
| sysadmin            | 17.0.1.92 | Enabled | Commercial  | Sangoma   |
| timeconditions      | 17.0.1.18 | Enabled | GPLv3+      | Sangoma   |
| tts                 | 17.0.1.1  | Enabled | GPLv3+      | Sangoma   |
| ttsengines          | 17.0.1    | Enabled | AGPLv3      | Sangoma   |
| ucp                 | 17.0.4.20 | Enabled | AGPLv3+     | Sangoma   |
| userman             | 17.0.6.26 | Enabled | AGPLv3+     | Sangoma   |
| vmblast             | 17.0.2    | Enabled | GPLv3+      | Sangoma   |
| vmnotify            | 17.0.1.7  | Enabled | Commercial  | Sangoma   |
| voicemail           | 17.0.5.22 | Enabled | GPLv3+      | Sangoma   |
| voicemail_report    | 17.0.1.1  | Enabled | Commercial  | Sangoma   |
| voipinnovations     | 17.0.1.4  | Enabled | Commercial  | Sangoma   |
| vqplus              | 17.0.1.16 | Enabled | Commercial  | Sangoma   |
| weakpasswords       | 17.0.1    | Enabled | GPLv3+      | Sangoma   |
| webcallback         | 17.0.4    | Enabled | Commercial  | Sangoma   |
| webrtc              | 17.0.2.2  | Enabled | GPLv3+      | Sangoma   |
+---------------------+-----------+---------+-------------+-----------+

Relevant log output

root@freepbx-dev:~# systemctl status tftpd-hpa.service
● tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: active (running) since Thu 2024-08-01 10:24:17 MDT; 2 weeks 4 days ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 1 (limit: 9488)
     Memory: 1.0M
        CPU: 3min 8.107s
     CGroup: /system.slice/tftpd-hpa.service
             └─36092 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure /srv/tftp

#Attempt to get a random file from the provisioning directory after installation
%>tftp freepbx-dev
tftp> get legacy_sip.cfg
Got ERROR packet: File not found
Error code 256: File not found

#And after linking the tftpboot folder and restarting - no other changes made
tftp> get legacy_sip.cfg
Received 191699 bytes during 0.1 seconds in 375 blocks
tftp>
kguptasangoma commented 1 month ago

thanks @craigarn for catching this config issue. yes we have to change the tftp process path.

Added below fix into the install script so now it should be good.

sed -i -e "s|^TFTP_DIRECTORY=\"/srv\/tftp\"$|TFTP_DIRECTORY=\"/tftpboot\"|" /etc/default/tftpd-hpa