I may be wrong here, but none of them are "legal". Unless you are in one of the very few states that have legalized
poker online.
Some sites "allow" US players and will pay them off. But this does not make them legal. It may be legal from where they are hosted, but that doesn't make it legal where you are.
This is super complicated, and in essence you are playing at your own risk. Most players play under the premise that they know it is illegal, but no-one has been convicted of this crime, so what is the problem. That is a decision each person needs to make, but that doesn't make it legal, it just makes it low risk (???).
Some of the Free sites that allow you to win real cash are legal, because you put nothing at risk to play and win, therefore you are not
gambling - you are just playing a game. When a pay for play site has a freeroll, then is that legal?? I could see the argument here. But these folks generally will not cash you out unless you have "validated" your account by making a deposit - now you have crossed a line by putting something at risk, I suppose.
pokerstars will not even give you an account unless you are in one of the legalized states. This should tell you something.
Good luck. If someone know something else, clue me in. This is a fairly important question to get right.