This is totally reasonable. main.c is a reasonable place to define any global variables you have. If they need extern declarations main.h would be the place to put them. I would give second thought to defining any functions in main.c that need to be declared elsewhere, but that is not a hard no, just something I would carefully consider. main itself should not have a prototype, so if someone is using main.h to provide that it is a definite error.
I do agree that compile time constants settings are usually better off in something called config.h than main.h.