Those would work, although if you are not running Dovecot or Cyrus on your main mailserver there is another option.
I will call your server with the main mailserver
Linode M, and your other servers
Linode 1,
Linode 2,
Linode 3...
On Linode M, edit your Postfix main.cf to include:
Code:
mynetworks = 127.0.0.0/8, Linode M IP, Linode 1 IP, Linode 2 IP, Linode 3 IP...
This will cause those servers to be considered trusted senders allowed to relay mail.
Set up Linodes 1, 2, 3... as
null clients. Edit main.cf on these servers to include:
Code:
relayhost = Linode M hostname or IP
inet_interfaces = loopback-only
local_transport = error:local delivery is disabled
This configures these machines to relay all mail through Linode M. You could set
myorigin = $mydomain so people won't try to reply to these machines, which don't accept outside mail. However, this can make it more difficult to figure out exactly which machine cron and system messages are coming from.
Note that if you want this mail to be transferred over the private network (assuming all your Linodes are in the same datacenter), you can specify private IP addresses above instead of the public ones.
You may also have to set up a non-local alias (edit /etc/aliases and run
newaliases) on Linodes 1, 2, 3... for root so that delivery of cron and system messages isn't attempted locally.