To define the good and bad for kids, it is necessary that you are yourself clear about the moral values that you want your kids to follow. Giving freedom and space to your kids and yet making them learn what you feel your child should follow is a skillful task. It is necessary that you do not force anything on your kids. The more you force them the more they will retaliate.
Learning and respecting various values and ethics occur over a period of time. These cannot be taught the way you teach alphabets to a child. Hence it should be the responsibility of each and every member in the family to enforce good and discourage bad behavior for kids.
What should typically be discouraged is lying, stealing, rude behavior, anger, throwing tantrums etc. The best way to define what is good and what is bad to a child is to positively reinforce them when they perform a good action and discourage or feel upset and explain the kid why a particular behavior is undesirable. Punishments and scolding are absolutely the wrong way to teach a child. However, you should know where to draw the line! In case of repeated warnings and multiple explanations, if the child still continues his or her bad behavior it is time to give a final warning and be stern. However, in no way should one hit the child. Visit a counselor if need arises, but do not hit or give physical punishments to the child.
On the other hand, also try to reinforce positive behavior by appreciating his good actions like respecting elders, eating on time, being honest, doing something creative, etc.
It is all about dealing with your child and understanding his reasons behind a particular behavior. The key is to be patient and skillful.