I'm setting up and hardening a dedicated headless bitcoind and lightning daemon and wanted to have a discussion about location of the bitcoin.conf.
Item #1:
Bitcoind defaults to using ~/.bitcoin/bitcoin.conf
, presumably because keeping all relevant files in one location makes it easier to copy and/or share the blockchain between different machines. Are there security implications to this? Is it substantively safer to store bitcoin.conf in /etc
instead (such as /etc/bitcoind/bitcoin.conf
)?
One argument against using ~/home/.bitcoin/bitcoin.conf
I thought of is the RPC Password is be stored in the .conf file and could be viewed by anyone with read access. So it is less readable in ~/home or in /etc?
I'd get +1 POSIX-style-points for using /etc...
One argument against using /etc/bitcoind/bitcoin.conf
is portability. It is less convenient to have the .conf file in a separate location. Less convenient means greater chance of mistake or error sometime down the road.
Item #2
Similar to #1, besides +1 style points, is there any advantage to moving logs to /var/log
? My understanding is bitcoind already rotates logs, but is there an advantage to how systemd does log rotation in /var/log
?
Thanks, these are good points. You're right about bitcoin.conf being in /etc and it causing difficulty accessing the daemon on a day-to-day basis. In my case this server is meant to serve a small local workgroup on the same machine and on the LAN and has bitcoind running without a wallet to serve a local lnd and electrumx instance. Both of these access bitcoind through RPC via localhost, so the location of bitcoin.conf is irrelevant to them.
Even if bitcoind was run as a system-level service to be used as a wallet, users wouldn't necessarily need to access bitcoin.conf if they used RPC. Local users could each have their own bitcoin.conf in their home folders with RPC credentials. This would eliminate their need to specify bitcoin.conf at the command line.
You may then secure the file with "chmod 600", so only the owner can read/write >the bitcoind.conf file (and root and/or the admins after tweaking the >permissions).
^^This would do more for security than just moving to /etc.
So there is no one right answer, but that if running bitcoind as a system-level service it might make more sense (if not actually increase security) and get +1 POSIX style points to put bitcoin.conf in /etc, but if running bitcoind in the user space for a single local user it makes more sense just to keep everything in ~/home to save RPC credentialing hassles.