Hello and welcome to CentOS.
There are several packages for providing each of your wanted services. For instance, http can be provided by Apache httpd, or by lighttpd, or... Which one to use depends on what you will have to do and what the server will have to provide.
Personally, I work with the following packages.
* DNS: bind, which daemon is called named. Look for named.conf howtos on Internet, you'll find plenty of them.
* FTP: vsftpd. There are others, lighter, but for safety reasons and an easy virtual users management, it's my preferred. (Can use mysql DB back-end for virtual users.)
* Web: as stated earlier, there are plenty. I used to run Apache httpd. But it was quite "over capable" for what I needed. Lighttpd does exactly what I need and is lighter.
* Network: that does not mean anything really. If you're looking fore something that gives IP addresses, this is called DHCP and you should use dhcpd.
* Windows file: it uses CIFS. Samba is what you need. If you are planning on using your server as a primary domain controller (NT like) with Windows$ 7 computers, you should use samba-3 as pschaff mentioned.
* Server config tools: vim or nano are your best friends !
Some tools are providing more "friendly" ways to do this: webmin for instance (not available directly with yum).
* Mail: I know you did not mentioned it, but you will need this. The default is sendmail. I don't like the way it is configured so I generally use postfix.
These are me personal choices and may be a starting point for you. I would advise you to take a little time to choose your own packages and learn how to configure and use them.