The security depends more on how you configure your linux box and network
The following might help
1) put a firewall in front of your box and do port forwarding as gardo said or
2) if you need to keep the linux box on public ip, add a second NIC eth1 to your linux box on a local IP, bind all TCP services (http, https, ssh etc) to eth1 only, bind mysql to localhost, stop services not needed, configure iptables and just allow the udp ports below on eth0, keep your agents on local ip, asterisk should shoudl bind to 0.0.0.0 (listen on all interfaces)
configure iptables to allow following ports on eth0 (public ip)
sip - 5060 UDP
iax - 4569 UDP
udp ports 10000-20000 UDP
configure iptables to allow following ports on eth1 or u can make eth1 trusted
sip - 5060 UDP
iax - 4569 UDP
udp ports 10000-20000 UDP
http - 80 TCP
https -443 TCP
SSH - 22 TCP
mysql -3306 TCP if you are load balancing or bind mysql to localhost if using a single server
3) join a mailing notification list for you OS and regulary update all packages and asterisk whenever a security notification is released
4) monitor and check your system logs regularly use a log checker that emails you reports on system activity
5) last but not the least learn how to secure your box
http://tldp.org/HOWTO/Security-HOWTO/
Regards
Diyanat