When I was in high school, I protested stuff all the time. I also started about 12 petitions, 10 of which changed school policies (including changing the rule against same sex prom/homecoming dates).
According to law, only certain types of protests are allowed on state owned property (such as school property), if they were picketing, yes, it is against the law, and they're lucky the school didn't take it up with the authorities. Petitions are allowed. Things that don't disrupt the "learning environment." There was a student protest at my high school a few years ago, and the students involved picketed on the privately owned property across from the school with permission from the owner of the property.
It's a lot safer to protest on private property, I've picketed a lot involving animal rights and such, and getting hosed down for being on someone's property you don't have permission to be on isn't fun (though it does get you on the news

).
It's not fair, but it's the law. If they really believe in the cause, a suspension shouldn't be a big deal.