Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: preg_match(): Unknown modifier '-' in /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php on line 783

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794

Warning: Cannot modify header information - headers already sent by (output started at /home/akl1986/public_html/support/wp-content/plugins/redux-framework/redux-core/inc/extensions/metaboxes/class-redux-extension-metaboxes.php:783) in /home/akl1986/public_html/support/wp-includes/rest-api/class-wp-rest-server.php on line 1794
{"id":2296,"date":"2019-11-26T07:23:20","date_gmt":"2019-11-26T07:23:20","guid":{"rendered":"https:\/\/support.aklwebhost.com\/?post_type=manual_kb&p=2296"},"modified":"2019-12-05T00:49:30","modified_gmt":"2019-12-05T00:49:30","slug":"setting-up-teamspeak-3-on-debian-wheezy","status":"publish","type":"manual_kb","link":"https:\/\/support.aklwebhost.com\/knowledgebase\/setting-up-teamspeak-3-on-debian-wheezy\/","title":{"rendered":"Setting Up Teamspeak 3 on Debian Wheezy"},"content":{"rendered":"

This article will show you how to run a\u00a0Teamspeak 3 server<\/strong>\u00a0under\u00a0Debian Wheezy<\/strong>. Before you can start with it, you should do some preparation on your\u00a0VPS<\/strong>.<\/p>\n

If you already have a firewall in place, make sure that traffic to the\u00a0Teamspeak server<\/strong>\u00a0is allowed by adding the following rules:<\/p>\n

iptables -A INPUT -p udp --dport 9987 -j ACCEPT\r\niptables -A INPUT -p udp --sport 9987 -j ACCEPT\r\niptables -A INPUT -p tcp --dport 30033 -j ACCEPT\r\niptables -A INPUT -p tcp --sport 30033 -j ACCEPT\r\niptables -A INPUT -p tcp --dport 10011 -j ACCEPT\r\niptables -A INPUT -p tcp --sport 10011 -j ACCEPT\r\n<\/code><\/pre>\n

Otherwise, here is a basic list of rules that allows SSH and ICMP traffic (as well as traffic for Teamspeak of course) and drops everything else, IPv4 and IPv6:<\/p>\n

iptables -A INPUT -i lo -j ACCEPT # Since a lot of interprocess-communication goes over the loopback-interface you should allow it to avoid very, very weird and difficult problems\r\niptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Accept packets that respond to outgoing requests\r\niptables -A INPUT -p icmp -j ACCEPT\r\niptables -A INPUT -p tcp --dport 22 -j ACCEPT\r\niptables -A INPUT -p udp --dport 9987 -j ACCEPT\r\niptables -A INPUT -p tcp --dport 30033 -j ACCEPT\r\niptables -A INPUT -p tcp --dport 10011 -j ACCEPT\r\niptables -P INPUT DROP # DROP everything else\r\n\r\nip6tables -A INPUT -i lo -j ACCEPT\r\nip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT\r\nip6tables -A INPUT -p icmpv6 -j ACCEPT\r\nip6tables -A INPUT -p tcp --dport 22 -j ACCEPT\r\nip6tables -A INPUT -p udp --dport 9987 -j ACCEPT\r\nip6tables -A INPUT -p tcp --dport 30033 -j ACCEPT\r\nip6tables -A INPUT -p tcp --dport 10011 -j ACCEPT\r\nip6tables -P INPUT DROP\r\n<\/code><\/pre>\n

After spinning up your server, login as root. While permanently working as root is generally frowned upon by the internet community, it also has serious implications for the security of your server. According to the\u00a0Internet Storm Center<\/a>\u00a090% of all brute-force attacks on SSH are targeting the root-account. There are hundreds if not thousands of automated scans out there trying to break into servers with weak administrative passwords – so it’s definitely a good idea to use a separate user in combination with sudo.<\/p>\n

First, add another user and give it a strong password:<\/p>\n

useradd -m -s \/bin\/bash yourusername\r\npasswd yourusername\r\n<\/code><\/pre>\n

Next, edit\u00a0\/etc\/sudoers<\/code>\u00a0to allow yourself to use it:<\/p>\n

yourusername    ALL=(ALL:ALL) ALL\r\n<\/code><\/pre>\n

Then, logout and log back into the machine with your new user. You can then disable root login in\u00a0\/etc\/ssh\/sshd_config<\/code>:<\/p>\n

PermitRootLogin no\r\nAllowUsers yourusername\r\n<\/code><\/pre>\n

For even more security, you can consider implementing password-less authentication using SSH-keys. For more information on password-less authentication. Congratulations, you saved yourself from over 90% of attackers out there. Now, onto installing the Teamspeak server.<\/p>\n

It is bad practice to run a service as root, so create a user solely for Teamspeak:<\/p>\n

sudo useradd -m -s \/bin\/bash teamspeak\r\n<\/code><\/pre>\n

Afterwards, log into that user account and switch to the home directory:<\/p>\n

sudo su teamspeak\r\ncd\r\n<\/code><\/pre>\n

Download Teamspeak. Depending on your architecture, you will need either the\u00a0x64<\/strong>\u00a0version:<\/p>\n

wget http:\/\/dl.4players.de\/ts\/releases\/3.0.11.1\/teamspeak3-server_linux-amd64-3.0.11.1.tar.gz\r\n<\/code><\/pre>\n

Or<\/em>\u00a0the\u00a0x86<\/strong>\u00a0version:<\/p>\n

wget http:\/\/dl.4players.de\/ts\/releases\/3.0.11.1\/teamspeak3-server_linux-x86-3.0.11.1.tar.gz\r\n<\/code><\/pre>\n

Unpack the downloaded archive:<\/p>\n

tar -xzvf *.tar.gz && rm *.tar.gz\r\n<\/code><\/pre>\n

Now, you have a folder named\u00a0teamspeak3-server_linux-amd64<\/strong>\u00a0with some scripts in it. Switch back to your normal user:<\/p>\n

exit\r\n<\/code><\/pre>\n

Setup a script to automatically start your server after a reboot. This script also easily stops or restarts the Teamspeak service. Paste the following into\u00a0\/etc\/init.d\/teamspeak<\/strong>:<\/p>\n

#!\/bin\/sh\r\n### BEGIN INIT INFO\r\n# Provides: teamspeak\r\n# Required-Start: $local_fs $network\r\n# Required-Stop: $local_fs $network\r\n# Default-Start: 2 3 4 5\r\n# Default-Stop: 0 1 6\r\n# Description: Teamspeak 3 Server\r\n### END INIT INFO\r\n\r\nUSER=\"teamspeak\"\r\nDIR=\"\/home\/teamspeak\/teamspeak3-server_linux-amd64\"\r\n###### Teamspeak 3 server start\/stop script ######\r\ncase \"$1\" in\r\nstart)\r\nsu $USER -c \"$DIR\/ts3server_startscript.sh start\"\r\n;;\r\nstop)\r\nsu $USER -c \"$DIR\/ts3server_startscript.sh stop\"\r\n;;\r\nrestart)\r\nsu $USER -c \"$DIR\/ts3server_startscript.sh restart\"\r\n;;\r\nstatus)\r\nsu $USER -c \"$DIR\/ts3server_startscript.sh status\"\r\n;;\r\n*)\r\necho \"Usage: \" >&2\r\nexit 1\r\n;;\r\nesac\r\nexit 0\r\n<\/code><\/pre>\n

Make that file executable:<\/p>\n

sudo chmod 700 \/etc\/init.d\/teamspeak\r\n<\/code><\/pre>\n

Now, make Teamspeak start at boot:<\/p>\n

sudo update-rc.d teamspeak defaults\r\n<\/code><\/pre>\n

All that’s left is to start the service:<\/p>\n

sudo service teamspeak start\r\n<\/code><\/pre>\n

Happy chatting!<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","manualknowledgebasecat":[105,233,242],"manual_kb_tag":[203],"_links":{"self":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2296"}],"collection":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb"}],"about":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/types\/manual_kb"}],"author":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/comments?post=2296"}],"version-history":[{"count":1,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2296\/revisions"}],"predecessor-version":[{"id":2297,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb\/2296\/revisions\/2297"}],"wp:attachment":[{"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/media?parent=2296"}],"wp:term":[{"taxonomy":"manualknowledgebasecat","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manualknowledgebasecat?post=2296"},{"taxonomy":"manual_kb_tag","embeddable":true,"href":"https:\/\/support.aklwebhost.com\/wp-json\/wp\/v2\/manual_kb_tag?post=2296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}