I would like to know what the following iptables rule does exactly ? Why is it needed ?
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
The ESTABLISTED state will allow all packets that are part of an existing connection to pass. The RELATED state allows new secondary connections to be made that are related to an existing connection. This would for example allow an FTP data transfer where the control connection is on port 21 and the data port is negotiated by the protocol.
It's a little bit more complex than some of the comments above suggest.
But there are also a group of kernel modules, such as
Unless you know that you need it, I recommend not allowing