3) all the client ip adress i have configured according to the server (ie. pc1 - 192.168.0.1 and the default gateway i assigned 192.168.1.1 (adsl gateway) and in the dns field i assigned 192.168.0.100).
----
I'd set up a DHCP server (dhcpd) on the Linux box. That way you can forget about managing 18 static IP addresses on the clients. Then make sure that DHCP server has the correct "routers" (gateway) setting. You must then configure your Linux box to do IP Masquerading. There is a IP Masquerade howto available on the net. Instead of using iptables manually you might want to consider the excellent fwbuilder program. If you don't want any of the hassle with chains and policies then you could try firestarter or guarddog.
Hopefully I did not misunderstand your configuration.
If the Internet cafe is meant strictly for browsing (not for Windows-specific tasks) then you could also experiment with thin-client approach, in which you have one or two very powerful X server machines and all the clients use the desktop and resources of those servers. With XDMCP this is trivial to accomplish. If you are worried about security you can secure the (plaintext) traffic from clients to servers with IPSec or SSH tunnels.
I've used several old (120-233Mhz) desktop computers as "thin" clients with XDMCP for maybe three years and I can tell that they require no mainteinance unless some hardware part breaks. The clients are in effect only "windows" to the server's desktop.
Hopefully I did not stray too far from the subject