1] Setup CentOS 6 64-bit as in guide (http://www.malaya-digital.org/setup-a-minimal-centos-6-0-64-bit-setup-with-networking/). eth1 will be for the WAN while eth0 will be for the LAN. eth1 is to be set via DHCP, while eth0 should be given the IP 192.168.1.1, with netmask 255.255.255.0 and no GATEWAY and DNS settings in /etc/sysconfig/network-scripts/ifcfg-eth0. Also, I've made an /etc/sysconfig/iptables example for this setup(see it below), so you may not need to make your own firewall rules.
2] "vi /etc/sysconfig/selinux" and set "SELINUX=disabled"
3] "setenforce 0"

BIND
1] All following steps are to be done as root.
2] "yum install bind bind-chroot"
3] "vi /etc/named.conf". Make sure:

  • A] "listen-on port 53 { 127.0.0.1; };" becomes "listen-on port 53 { 127.0.0.1; 192.168.1.1; };".
  • B] comment out "listen-on-v6 port 53 { ::1; };"
  • C] "allow-query { localhost; };" becomes "allow-query { localhost; 192.168.1.0/24; };"

4] "vi /etc/resolv.conf" and have "127.0.0.1" as the nameserver (eg line: "nameserver 127.0.0.1"). You will have to make this persistent. I suggest you replicate this operation in /etc/rc.local (A "cp /etc/resolv.conf.prod /etc/resolv.conf" will do. /etc/resolv.conf.prod should be a copy of the working /etc/resolv.conf.)
5] "service named restart"
6] "chkconfig named on"

DHCP
1] All following steps are to be done as root.
2] "yum install dhcp"
3] "vi /etc/dhcp/dhcpd.conf" and make sure it's like this:

option domain-name "server.world";
option domain-name-servers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.100 192.168.1.250;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}
4] "service dhcpd restart"
5] "chkconfig dhcpd on"

Squid
1] All following steps are to be done as root.
2] "yum install squid"
3] You can use this sample /etc/squid/squid.conf: http://www.malaya-digital.org/squid.conf
4] "service squid start"
5] "chkconfig squid on"

Firewall
1] Use this sample /etc/sysconfig/iptables file: http://www.malaya-digital.org/iptables . Please note that this sample configuration file is aggressive towards minimizing ICMP access.
2] "service iptables restart"
3] "chkconfig iptables on"

Everything in this guide should work now. :)