I made one long ago, starting from a fresh horn off the bull my neighbor dehorned. Put it on an anthill to let them clean it, which worked beautifully, and only took a couple weeks. (I covered it with an old board to keep the sun and rain off so they could work without interruptions!)
I let it dry behind the woodstove the next winter until I had time to work on it, then proceeded to make a hook scraper out of an old file to scrape the inside free of the natural ridges. This can be done with a long knife, but it is tedious work and risks cutting through the horn. Heat and bend the file to a hook on the end, and reheat it to cherry red. Quench it in water from red heat to harden it again, and grind the hook to a rounded end to fit well up into the horn. The narrower the file, the farther you can get into the horn. Grind the rounded end to a sharp edge to cut on the pull stroke, and resharpen as needed as you scrape out the horn.
Once the horn is smooth and of even thickness at the big end, sand the big end until it is flat so the rear plug will fit tight against it. Your choice from here for how to make the plugs for each end. Most people lathe turn a rear plug out of cherry or some other wood with even, fine grain.
You can make the plug tapered to fit it inside, but since horns are never truly round, use the tapered plug blank for an arbor to make it round. Boil the horn in water, or steam it in teakettle exhaust (maybe outside--it doesn't smell real nice) until it softens, and push in the tapered rear plug. This taper should be more pointed than the inside of the horn so it wedges at the very end of the horn. Let it dry with the plug in it, loosening slightly after a day, to allow shrinkage of the horn without splitting it.
When the horn is dry again, after a couple days in the sun, mark around the plug at the end of the horn, and from there outward, put the plug back in the lathe and turn it to a straight diameter from that line outward toward the bigger end for about 3/8" and leave a shoulder there. Now turn the outer end of the plug to a knob for tying on the carry thong and remove it from the lathe before it breaks off! Hold the tapered end in a vise and saw off that excess, leaving only the 3/8" that goes into the horn.
Sand a bit if needed on the 3/8" step so it will just wedge tightly into the horn. Now drill the small end so you can get a rod through it to knock out the big plug for now. Later, it will get pegged in place.
The small end needs to be drilled about 5/16" diameter, aimed at a slight angle to follow the natural curve of the horn. Taper the inside of this 5/16" hole slightly, first by scraping with a small knife blade, then sand it with paper wrapped around the tapered peg that you will use for a stopper, twisting it in gently until you achieve a smooth tight fit as deep as you want.
The stopper can be made of anything--deer antler, or wood to match the butt plug are common choices. Lately, some are using tuning pegs from a string bass, or viola. Make a groove on the stopper for a thong, also tied around the neck of the horn to keep from losing it.
About 3/4" down the neck of the horn from the stopper, carve a groove for the carry thong. Clean the inside of the horn carefully, and install the butt plug for the last time. Drill 1/16" holes through the horn into the butt plug and drive in hickory pegs. Cut them off flush with the outside of the horn, and you are ready to scrimshaw, or otherwise decorate the body of the powder horn. Fine steel wool will slick up the horn nicely, followed by paste floor wax, or beeswax, to waterproof it and achieve a fine polish. Do that before scrimshaw, to avoid ink penetrating where you don't want it. Then when ink is applied, it will only stick in the scratches. When the decorating is done, wax again to seal the scrimshaw watertight.
Hope this helps someone.