bom galera de antemão gostaria de avisar que os tutoriais a serem postados aqui não são de minha autoria e sim do apoca o criador do eternity, estou postando aki com a autorização dele..então os creditos não são meus e sim deles... vc podem me da reput na medida que ele for me passando mais tutoriais eu vou postando para vc´s ok?
Faça a diferença, não roube, não copie.
Caso roube, DEVOLVA. Caso copie, COLOQUE OS CRÉDITOS.
By Apocalipse
Para VISUALIZAR você precisa ser registrado.
Estou fazendo esse HowToo apenas para mostrar como fazer um servidor de Darkeden seguro e com quase tudo traduzido.
Junto do howtoo vão dicas de segurança, dicas no MySQL e dica sobre como usar melhor o VI.
O tutorial não ficará por aqui, ele irá sendo implementado cada vez mais.
Índice
Tópico 1 - Segurança;Capítulo 1.1 - Alterando senha do sistema;
Capítulo 1.2 - Configurando seu mysql;
Capítulo 1.3 - Configurando seu SSH;
Tópico 2 - Configurando um servidor básico;Capítulo 2.1 - Alterando os arquivos de configuração;
Capítulo 2.2 - Dando permissões ao usuário elcastle no mysql;
Capítulo 2.3 - Configurando os arquivos de conf;
Tópico 3 - Configurando algumas traduções;Capítulo 3.1 - Alterando o nome dos monstros;
Tópico 1 - Segurança
Em primeiro lugar vamos alterar as senhas e colocar um pouco mais de segurança no nosso servidor.
Estou levando em consideração o 1º binário que foi liberado, do qual o usuário e a senha são respectivamente root e 12356.
Capítulo 1.1 - Alterando senha do sistema;
Já logado na Shell faça como na imagem:
# passwd root
Changing password for root
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: xxxxxx
Re-enter new password: xxxxxx
Password changed.
A senha xxxxxx foi mostrada com o intuito apenas de aprendizagem, mas a mesma não aparece ao ser digitada para alteração.
Capítulo 1.2 - Configurando seu mysql;
Próxima etapa será alterar a senha de root do mysql, dando mais segurança e setando privilégios para alterar a senha dos outros users, criar novos users, etc.
Para isso vamos usar o "mysql_secure_installation" que diz o seguinte em sua descrição:
This program enables you to improve the security of your MySQL installation in the following ways:
- You can set a password for root accounts.
- You can remove root accounts that are accessible from outside the local host.
- You can remove anonymous-user accounts.
- You can remove the test database, which by default can be accessed by anonymous users.
Invoke mysql_secure_installation without arguments:
shell> mysql_secure_installation
The script will prompt you to determine which actions to perform.
Logados na shell vamos fazer de acordo com a imagem:
# mysql_secure_installation
Vamos receber as seguintes informação. Vamos respondendo tudo de acordo como está em negrito:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALLMySQL SERVERS IN PRODUCTION USE! PLEASE READ EACH
STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current password for the root user. If you’ve just installed MySQL, and you haven’t set the root password yet, the password will be blank, so you should just press enter here.Enter current password for root (enter for none):como nao colocamos senha apenas dê um enter
OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MySQL root user without the proper authorization.Set root password? [Y/n] [Y]Y
New password: (Digite aqui aquela que será a sua senha)
Re-enter new password: (Redigite a senha)
Password updated successfully!Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
… Success!
Esses comandos de segurança, alterar senha e configuração final do mysql já demonstrei a um tempo atrás no meu wordpress PowerGuide.
Após ter feito isso, poderemos então alterar a senha do nosso usuário padrão para o darkeden (elcastle) e/ou criar um novo usuário.
Para alterar a senha do usuário faça na shell:
# mysql -u root mysql -p
(Coloque a senha do root do mysql)
mysql> update user set password=password('senha_desejada') where user='elcastle';
mysql> FLUSH PRIVILEGES;
mysql> quit;
Obs1:. Deixei a shell do mysql em negrito, informando assim que essa parte "mysql>" não deve ser digitada, isso é apenas para demonstrar que estamos na shell do mysql.
Obs2:. Para que as alterações referentes ao acesso a banco de dados e ao servidor como um todo tenham efeito, é necessário que ao final de toda rotina seja digitado o comando FLUSH PRIVILEGES, responsável por validar as atualizações no MySQL.
Obs3:. Cuidado com o parâmetro "--skip-grant-tables". Este parâmetro tem a finalidade de remover as permissões dos bancos para todos os usuários. Isso é uma faca de 2 gumes, onde apenas o root tem tal parâmetro para poder acessar todos os bancos, os demais usuários devem usar "flush privileges" para setar as permissões (devem = não é obrigatório, mas se torna essencial).
Capítulo 1.3 - Configurando seu SSH;
Agora vamos mudar toda nossa segurança no SSH. Iremos criar um usuário para acessar o SSH, retirar o acesso direto como root, alterar porta do SSH também.
Para isso vamos 1º criar nosso usuário com os seguintes passos:
# useradd apocalipse
# passwd apocalipse
Changing password for apocalipse
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password: xxxxxx
Re-enter new password: xxxxxx
Password changed.
Agora vamos editar o nosso sshd_config:
# vim /etc/ssh/sshd_config
Procure pela linha Port e pela linha PermitRootLogin e altere para o seguinte:
Port 2222
PermitRootLogin no
Em port você poderá colocar qualquer porta acima de 1024. Abaixo da porta 1024 temos algumas que são FIXAS como serviços, exemplo disso é a porta 80 de http, porta 23 telnet, 21 ftp, 22 ssh (antiga porta do nosso SSH), por isso usamos de preferências as portas acima de 1024.
Fazendo essas alterações já conseguimos mais segurança no SSH quando alteramos o mesmo para outra porta, conseguimos mais segurança proibindo o acesso direto do root e poderíamos ter mais ainda segurança dizendo que só 1 user teria acesso ao SSH, assim como setar uma chave criptografada em SSL para o mesmo. Mas o intuito aqui é melhorar a segurança e não dar uma aula completa de linux ou segurança.
Após logar no SSH como usuário comum, você poderá finalmente logar como root digitando o seguinte comando:
# su -
Password: xxxxxx
Tópico 2 - Configurando um servidor básico;
Capítulo 2.1 - Alterando os arquivos de configuração;
Antes de começarmos com todas as configurações, vou primeiro dar umas dicas simples sobre o "vi" (Visual Interface) que nada mais é do que um editor em modo texto.
i ou Insert = Libera o texto para edição no caractere atual;
:%s/palavra1/palavra2 = Substitui a palavra1 pela palavra2;
:q = sair do editor;
:q! = sair do editor sem salvar;
:wq = salvar e sair do editor;
:delete = deleta a linha atual;
O comando :%s/palavra1/palavra2 é muito util para alterar uma palavra por outra, como por exemplo alterar a senha elca110 por elca220 você faria:
:%s/elca110/elca220
Fazendo isso toda palavra do texto que seja elca110 irá ser mudada para elca220, economizando assim muito tempo na alteração de várias palavras, inclusive do ip.
Depois dessa rápida demonstração de como usar o VI, vamos agora começar a configurar nossa rede. Para isso vamos usar um IP como modelo:
IP = 123.123.123.124
GW = 123.123.123.121
DNS Primário = 123.123.123.122
DNS Secundário = 123.123.123.123
Com esses dados (apenas para nosso exemplo), podemos configurar os 2 principais arquivos de nossa rede, que são: resolv.conf e ifcfg-eth0
No resolv.conf como o nome já diz é para "resolver" algo, nesse caso nosso endereços, do qual chamamos de DNS e em ifcfg-eth0 vamos configurar nossa "config iface" que é nada mais é que a configuração da nossa interface network e dizemos que a interface é a eth0.
Editando o resolv.conf:
Coloque os dados dentro (seguindo nosso exemplo):
nameserver 123.123.123.122
nameserver 123.123.123.123
Para salvar e sair clique em ESC e depois digite :wq seguido de enter.
Editando o ifcfg-eth0:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Faça semelhante ao modelo:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=123.123.123.255
IPADDR=123.123.123.124
NETMASK=255.255.255.0
NETWORK=123.123.123.0
GATEWAY=123.123.123.121
ONBOOT=yes
Para salvar e sair clique em ESC e depois digite :wq seguido de enter.
Com esse simples passos acabamos de configurar toda nossa rede. A baixo segue mais algumas formas de configurar uma rede:
ifconfig eth0 123.123.123.124 netmask 255.255.255.0
route add default gw 123.123.123.121
O único problema desses passos é perder a configuração ONBOOT, para resolver isso podemos jogar tudo no rc.local (/etc/rc.local).
Na sheel faça:
echo "ifconfig eth0 123.123.123.124 netmask 255.255.255.0" > /etc/rc.local
echo "route add default gw 123.123.123.121" >> /etc/rc.local
echo "nameserver 123.123.123.122" > /etc/resolv.conf
echo "nameserver 123.123.123.123" >> /etc/resolv.conf
Vejam que usei o "echo" para inserir nos arquivos rc.local e resolv.conf, mas poderiamos abrir os 2 arquivos com o vi e edita-los normalmente como antes.
Para explicar também o uso do ">" e do ">>". Caso você use ">", irá inserir uma palavra ou frase no arquivo escolhido, mas irá apagar tudo que já existir no arquivo. Por esse motivo ao inserir a 2 linha eu usei ">>", que irá inserir sem apagar todo o resto. Por isso sempre use ">>", para evitar apagar dados importante de um documento.
Capítulo 2.2 - Dando permissões ao usuário elcastle no mysql;
Como nosso mysql já possui segurança adequada, senha no root e permissões certinhas, poderemos então alterar a senha do elcastle sem "bugar" o usuário, que é o que acontece ao mudar sua senha sem um sistema de banco de dados 100% configurado.
Vamos criar o nosso usuário elcastle e colocar a senha 123456:
insert into user (Host, User, Password) values ('123.123.123.124', 'elcastle', PASSWORD('elca110'));
insert into user (Host, User, Password) values ('localhost.localdomain', 'elcastle', PASSWORD('elca110'));
grant all on DARKEDEN.* to 'elcastle'@'123.123.123.124';
grant all on USERINFO.* to 'elcastle'@'123.123.123.124';
grant all on DARKEDEN.* to 'elcastle'@'localhost.localdomain';
grant all on USERINFO.* to 'elcastle'@'localhost.localdomain';
flush privileges;
quit;
Agora caso queira alterar a senha do elcastle, podemos fazer isso no Navicat ou diretamente na shell do mysql.
Para isso acesse a shell do mysql como root e o banco mysql:
mysql -u root -p mysql
Enter password: 123456
Fazendo isso estaremos logados no mysql dentro do banco mysql (que é o banco responsável por todos os logins, senhas, permissões, etc).
Agora mudar a senha do usuário elcastle:
mysql> UPDATE user SET Password=PASSWORD('nova_senha') WHERE User='elcastle';
mysql> FLUSH PRIVILEGES;
Já sabendo como adicionar um usuário, como alterar a senha de um usuário e como proteger seu banco, poderemos agora configurar o banco DARKEDEN com os IP's corretos e usuários:
mysql -u root -p DARKEDEN
Enter password: 123456
update GameServerInfo set IP='123.123.123.124';
update WorldDBInfo set Host='123.123.123.124';
Obs:. Se você alterou a senha do elcastle, terá que alterar aqui também;
mysql -u root -p DARKEDEN
Enter password: 123456
update WorldDBInfo set Password='nova_senha_elcastle';
Caso você queira um novo usuário, poderá fazer:
GRANT ALL PRIVILEGES ON DARKEDEN.* TO 'cleison'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON DARKEDEN.* TO 'cleison'@'localhost.localdomain' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON DARKEDEN.* TO 'cleison'@'123.123.123.124' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON USERINFO.* TO 'cleison'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON USERINFO.* TO 'cleison'@'localhost.localdomain' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON USERINFO.* TO 'cleison'@'123.123.123.124' IDENTIFIED BY '123456';
E depois alterar o nosso WorldDBInfo:
mysql -u root -p DARKEDEN
Enter password: 123456
update WorldDBInfo set User='cleison';
Obs:. Exemplo usado com o nome cleison e senha 123456;
Se depois de tudo feito você encontrar a mensagem remota de negado ou permission denied (usando Navicat ou outro gerenciador qualquer), você poderá setar o host do qual quer acessar o banco.
Vamos supor que estou usando o ip 123.123.123.125 e quero acessar nosso servidor 123.123.123.124, logo faremos:
GRANT ALL PRIVILEGES ON DARKEDEN.* TO 'cleison'@'123.123.123.125' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON USERINFO.* TO 'cleison'@'123.123.123.125' IDENTIFIED BY '123456';
Isso dará permissão de acesso garantido ao computador com ip 123.123.123.125
Capítulo 2.3 - Configurando os arquivos de conf;
Não irei explicar muito afundo aqui, pois o intuito inicial é fazer um servidor básico.
Com as informações de segurança, mysql e vi, podemos agora montar um servidor básico com segurança.
Editando o 1º arquivo:
vi /home/darkeden/vs/conf/excel96-gameserver.conf
Já dentro do arquivo, vamos alterar o IP da seguinte forma:
:%s/192.168.1.123/123.123.123.124
Caso queira alterar o usuário, faça:
Caso queira alterar a senha, faça:
Após isso podemos subir o nosso servidor com o comando:
Isso se você estiver dentro do diretório /root
Tópico 3 - Configurando algumas traduções;
Capítulo 3.1 - Alterando o nome dos monstros;
Essa parte é muito simples. Aqui vou apenas dar um exemplo de como alterar todos os monstros para o nome "teste". Sabendo como alterar, você pode ir alterando todos para o nome que quiser, um por um:
mysql -u root -p DARKEDEN
Enter password: 123456
update LastNameInfo set Name='teste';
Faça a diferença, não roube, não copie.
Caso roube, DEVOLVA. Caso copie, COLOQUE OS CRÉDITOS.
By Apocalipse
---------- Post added at 11:52 AM ---------- Previous post was at 11:51 AM ----------
Créditos: dderek