Ola pessoal , todos ja viram , ou pelo menos ouviram falar do Linux , certo ?
Oque é linux ? Ele é simplesmente a melhor opçao para hospedagem de otserv e website. alem de sua alta capacidade para rodar otservs , ele tambem é bem resistente contra os famosos "Nukers" ... chega de papo , vamo la (:
Bom primeiramente se voce tiver um VPS ou Dedicado baixe o SSH e a TRUNK
Caso voce for hostear o ot , baixe apenas a TRUNK
Primeiramente vamos instalar as Libs :
sudo apt-get install autoconf libxml2-dev liblua5.1-0-dev g++ libgmp3-dev libcrypto++-dev libboost-filesystem1.40-dev libboost-system1.40-dev libboost-regex1.40-dev libboost-thread1.40-dev libmysqlclient15-dev
Logo depois que voce baixou passe a pro VPS ou Host e verifique se o comando 7z esta ativado Digitando :
# apt-get install p7zip-full se extiver tudo OK ! , extraia a TRUNK
# 7z x trunk.r3777.7z
Logo após extrair . Vamos dar todas as permissoes e ir até a pasta da trunk Digitando ...
# chmod -R 777 trunk*
# cd trunk*
# sh autogen.sh
# ./configure --enable-mysql
Possiveis Erros :
Logo após isso , daremos continuação a compilação ...
root@hostingjogos:/trunk.r3777# ./configure --enable-mysql
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... no
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for ptrdiff_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for working memcmp... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for ceil... yes
checking for floor... yes
checking for ftime... yes
checking for gethostbyname... yes
checking for gethostname... yes
checking for memset... yes
checking for pow... yes
checking for sqrt... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking for strstr... yes
checking for strtol... yes
checking for xml2-config... /usr/bin/xml2-config
checking for libxml - version >= 2.6.5... yes (version 2.7.6)
checking gmp.h usability... yes
checking gmp.h presence... yes
checking for gmp.h... yes
checking for __gmpz_init2 in -lgmp... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for main in -lz... yes
checking for main in -lboost_thread-gcc-mt... no
checking for main in -lboost_thread-mt... yes
checking for main in -lboost_regex-gcc-mt... no
checking for main in -lboost_regex-mt... yes
checking for main in -lboost_system-gcc-mt... no
checking for main in -lboost_system-mt... yes
checking for main in -lboost_date_time-gcc-mt... no
checking for main in -lboost_date_time-mt... yes
checking for main in -lboost_filesystem-gcc-mt... no
checking for main in -lboost_filesystem-mt... yes
checking boost/asio.hpp usability... yes
checking boost/asio.hpp presence... yes
checking for boost/asio.hpp... yes
checking boost/tr1/unordered_set.hpp usability... yes
checking boost/tr1/unordered_set.hpp presence... yes
checking for boost/tr1/unordered_set.hpp... yes
checking cryptopp/sha.h usability... yes
checking cryptopp/sha.h presence... yes
checking for cryptopp/sha.h... yes
checking cryptopp/md5.h usability... yes
checking cryptopp/md5.h presence... yes
checking for cryptopp/md5.h... yes
checking cryptopp/adler32.h usability... yes
checking cryptopp/adler32.h presence... yes
checking for cryptopp/adler32.h... yes
checking cryptopp/hex.h usability... yes
checking cryptopp/hex.h presence... yes
checking for cryptopp/hex.h... yes
checking cryptopp/base64.h usability... yes
checking cryptopp/base64.h presence... yes
checking for cryptopp/base64.h... yes
checking cryptopp/hmac.h usability... yes
checking cryptopp/hmac.h presence... yes
checking for cryptopp/hmac.h... yes
checking cryptopp/cryptlib.h usability... yes
checking cryptopp/cryptlib.h presence... yes
checking for cryptopp/cryptlib.h... yes
checking for main in -lcryptopp... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LUA... yes
checking mysql/mysql.h usability... yes
checking mysql/mysql.h presence... yes
checking for mysql/mysql.h... yes
checking for main in -lmysqlclient... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
theforgottenserver 0.4
Server diagnostics.......... : no
Login server mode........... : no
OTAdmin protocol............ : no
Root run permission......... : no
Login server mode........... : no
Home-directory configuration : no
OTServ custom allocator..... : no
Debug build................. : no
Using LuaJIT................ : no
Build with MySQL............ : yes
Build with SQLite........... : no
Build with PostgreSQL....... : no
Configure complete, now you may type './build.sh'.
root@hostingjogos:/trunk.r3777#
Devemos digitar . make
E pronto , começara a compilação , enquanto isso , crie uma pasta com o nome de otserv , Digitando ...
# mkdir otserv
logo depois que acabar a compilação , copie o theforgottenserver , data , mods , schemas e o theforgottenserver.s3db para pasta otserv , com o seguinte Comando
# cp -rp /trunk*/theforgottenserver mods data schemas theforgottenserver.s3db /otserv/
Logo após ter copiado iremos dar permissões para a pasta otserv com o seguinte Comando ...
# chmod -R 777 otserv
E pronto , seu otserv estará pronto para rodar ... baste voce digitar o seguinte Comando ...
# cd ot*
# ./theforgottenserver
BOÔNUS 2 IpTables Ant-DoS
Iptables Ant Dos By:@Gustavo Ferreira ;
echo "Block TCP-CONNECT scan attempts (SYN bit packets)"
iptables -A INPUT -p tcp --syn -j DROP
echo "Block TCP-SYN scan attempts (only SYN bit packets)"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH SYN -j DROP
echo "Block TCP-FIN scan attempts (only FIN bit packets)"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN -j DROP
echo "Block TCP-ACK scan attempts (only ACK bit packets)"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH ACK -j DROP
echo "Block TCP-NULL scan attempts (packets without flag)"
iptables -A INPUT -m conntrack --ctstate INVALID -p tcp --tcp-flags ! SYN,RST,ACK,FIN,URG,PSH SYN,RST,ACK,FIN,URG,PSH -j DROP
echo "Block "Christmas Tree" TCP-XMAS scan attempts (packets with FIN, URG, PSH bits)"
iptables -A INPUT -m conntrack --ctstate NEW -p tcp --tcp-flags SYN,RST,ACK,FIN,URG,PSH FIN,URG,PSH -j DROP
echo "Block DOS - Ping of Death"
iptables -A INPUT -p ICMP --icmp-type echo-request -m length --length 60:65535 -j ACCEPT
echo "Block DOS - Teardrop"
iptables -A INPUT -p UDP -f -j DROP
echo "Block DDOS - SYN-flood"
iptables -A INPUT -p TCP --syn -m iplimit --iplimit-above 9 -j DROP
echo "Block DDOS - Smurf"
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
iptables -A INPUT -p ICMP --icmp-type echo-request -m pkttype --pkttype broadcast -j DROP
iptables -A INPUT -p ICMP --icmp-type echo-request -m limit --limit 3/s -j ACCEPT
echo "Block DDOS - UDP-flood (Pepsi)"
iptables -A INPUT -p UDP --dport 7 -j DROP
iptables -A INPUT -p UDP --dport 19 -j DROP
echo "Block DDOS - SMBnuke"
iptables -A INPUT -p UDP --dport 135:139 -j DROP
iptables -A INPUT -p TCP --dport 135:139 -j DROP
echo "Block DDOS - Connection-flood"
iptables -A INPUT -p TCP --syn -m iplimit --iplimit-above 3 -j DROP
echo "Block DDOS - Fraggle"
iptables -A INPUT -p UDP -m pkttype --pkt-type broadcast -j DROP
iptables -A INPUT -p UDP -m limit --limit 3/s -j ACCEPT
echo "Block DDOS - Jolt"
iptables -A INPUT -p ICMP -f -j DROP
Ant-DoS By :@Matheus