My suggestions would be:
basically do what Hedgehog wrote. That is the best, most practical way - imo.
But I tend to be a man of extremes, so...(and I did not think all this until today)
1) Iraq is finished as a country. Split it up. The Kurds get their own country and the other two (or three) factions get theirs. Split it up along traditional ethnic borders.
The only reason (imo) the Kurds don't leave is because Turkey would go ballistic (and maybe Russia too). Turkey has a large Kurdish population that wants independence. IF the Kurds get their own country then Turkey is worried that their own Kurds would want one too.
But Turkey wants to join the EU. ANd they can't expect to get in if they go around invading countries. So the US should keep troops along the Turkish/Kurd border (the Kurds LOVE the Americans apparently) to guard it and give the Kurds their own country. Plus it gives America a base of operations in the middle east - which apparently they REALLY want.
ANd then, if the other factions agree by a vote (and why would they not?), they will get their own countries as well. After the countires have been established (as fast as possible) then they can ask the U.S. to leave anytime they want. And the U.S. MUST go.
That would help end the civil war. But it might start a regional one. SO be it. If they want to kill each other - let them. IF the World gets pissed off enough they can send a Muslim UN force in (but ONLY Muslims).
Iraq (like Yugoslavia before it) is an ethnic mess. IT canot survive peacefully right now. Let it die. It's just a name. Why does Iraq have to stay together?
2) Israel. The American assistance to Israel has made the U.S. more enemies (imo) then anything else they ever did in the Middle East. ANd it has to stop. THe Palestinians are being treated unfairly and they MUST have their own country.
So, America should stop all aid to Israel (to the tune of 3 billion U.S. a year - most of it military, I believe) until Israel agrees to let the Palestinians go and have their own state. Keep the wall up if you like. But let the Palestinians go. They are treated like natives were treated by AMericans long ago - very badly. And AMerica is supporting it (like it or not) and it has made ALOT of people mad - as it should.
3) Put a tax (a very small one) on all imported finished goods from countries that are not democratically run. Yes, that will include China. Not such a big tax that it kills all imports from them. But large enough to send a message to all such countires. Enough to piss them off, but not enough to REALLY get them mad. And enough to tell the repressed people of the world that their voices ARE being heard. It could also help domestic manufacturers in North America and Europe.
Also, a total ban or a big tax would just make those suffering people suffer further. ANd poverty is probably their number one problem, not the U.S.. If they weren't so poor - I doubt they would be SO pissed off.
No, the US won't do it. And yes, it would not include oil - yet. But it would send a clear warning to all monarchies/dictatorships like Saudi Arabia, Egypt, Syria, etc..
In addition, cut all military aid or arms sales to these countries.
And in terms of dealing with the terrorists themselves? I am still pondering.