Pós instalação do Archlinux para Servidores
Quando eu comecei esse blog eu fiquei pensando sobre o que escrever, e na realidade vi que existem poucas coisas que realmente são necessárias, uma delas (que era pra ser o primeiro post) era o de montar um servidor caseiro com usando a distribuição Archlinux, sendo que o mesmo só tivesse uma única placa de rede :)
Neste post eu vou desconsiderar que quem terminou de instalar o Arch em seu computador tenha feito alguma modificação na instalação padrão do mesmo (ou seja base full com as configurações que ele sugere).
1 - Configurando a internet
Considerei para os determinados fins que minha rede seria totalmente colocada no switch ou seja, meu modem e os demais computadores estão todos ligados no switch, assim como o meu servidor Archlinux. Sendo assim podemos começar a configurar a internet no servidor:
# pppoe-setup
Aqui você precisará ler um pouco de inglês para seguir as instruções, ele irá pedir:
a. Seu usuário (usuário da adsl)
b. Seu servidor dns (caso seja automático, simplesmente escreva “server” sem as aspas e tecle )
c. Sua senha (senha do usuário adsl)
d. Método do Firewall, aqui escolha 2 (MASQUERADE)
Depois de terminar de configurar seu discador simplesmente poderá discar com pppoe-start.
Obs: É de suma importância que você ligue o modem antes de todos os computadores espetados no switch, sendo o servidor Arclinux o seguinte, e somente depois que o mesmo estiver inteiramente ligado (e bootado), você poderá terminar de upar sua rede (sem ordem necessária).
Bom, levando em consideração que você obteve sucesso na conexão:
# ping [qualquer host]
Obs: Estou usando [ ] para indicar que pode ser qualquer host, porém precisará informar um host (ex: ping www.archlinux-br.org)
Agora que sua conexão já foi verificada (o ping retornou normalmente) poderemos então atualizar o nosso sistema:
# pacman -Syu
Entre com “y” como resposta para todas as perguntas e espere que o pacman atualize seu servidor. Logo após reinicie a máquina:
# reboot
2 - Adicionando o primeiro usuário
Bom, até aqui nenhum segredo, simplesmente conectamos o nosso servidor na internet e fizemos com que ele se atualizasse toda a base de pacotes. Vamos então configurar então o nosso primeiro usuário:
# adduser
Novamente será apresentado um dialog interativo, siga os passos.
3 - Configurando o teclado
No meu caso uso Brasil-ABNT2, creio que todos estejam usando o mesmo:
# loadkeys /usr/share/Kbd/Keymaps/i386/qwerty/br-abnt2
4 - Configurando o nosso sistema para que fique em português
Obs: O pacman ainda que em seu funcionamento rotineiro esteja com o locale (configurações locais) funcionando perfeitamente, contém um bug (até quando eu estive fazendo esse artigo) que se você executar os comandos:
# pacman -Sc
ou
# pacman -Scc
Ele exibirá se você tem certeza que deseja deletar o cache, simplesmente escolhendo “s”, como informado, ele ignora, pois não tem o locale neste caso, logo se for escolher remover o cache do pacman, entre com a reposta em inglês, no caso “y”.
Configurações de regiões:
# vi /etc/locale.gen
Remova o comentário das linhas:
pt_BR.UTF-8 UTF-8
pt_BR ISO-8859-1
Salve o arquivo (no caso do vi :wq), e execute o comando:
# locale-gen
Ele irá gerar todas as configurações para que seu sistema esteja em pt-br. Edite o arquivo principal de configuração do sistema:
# vi /etc/rc.conf
Editem as seguintes linhas para que fiquem assim:
locale = “pt_BR.UTF8″ (UTF-8)
timezone = “Sao_Paulo/America”
hostname = “”
keymap=”br-abnt2″
Obs: Todas as aspas deverão ser usadas, e em por convenção eu uso como opção, ou seja, seria alguma coisa opicional, ou então como precinar seria apertar a tecla enter. Ou seja, em hostname, por exemplo entre com “archlinux”.
Agora reiniciaremos o computador:
# reboot
Bom, temos o computador com o sistema base atualizado e configurado para a nossa lingua, com o teclado funcionando também (muitos utilizam a configuração do teclado na instalação do sistemas, mas se você também for apressado igual eu, esqueceu de configurar :-))
4 - Configurando acesso remoto seguro
Vamos começar a instalar os programas para compartilhar a internet, antes de mais nada vamos instalar o openssh (para suporte remoto, e configurar o mesmo para que não seja tão “vulnerável” quanto a configuração padrão)
# pacman -Sy openssh
# vi /etc/ssh/sshd_config
Descomente e mude a linha:
Port 22 p/ Port x (sendo x o número que você escolher, simplesmente interprete que precisaremos mudar a porta padrão, para evitar os bots que ficam escaneando os computadores, e precisaremos mais tarde, lembrar da mesma porta para podermos fazer acesso remoto em nosso servidor).
Descomente também:
LoginGraceTime 1m
PermitRootLogin no
StrictModes yes
MaxAuthTries 2
MaxStartupes 5:80:10
PermitTunnel no
Salve e Feche. Com essas configurações (as opções são autoexplicativas) temos como fazer acesso remoto em nosso servidor sem precisar nos preocuparmos com os scan bots, vamos editar então mais algumas opções:
#vi /etc/hosts.deny
Comente a linha:
ALL:ALL:DENY
5 - Roteando a internet com o DnsMasq
Pronto, agora já estamos com o nosso acesso remoto devidamente configurado. Seguiremos então para compartilhar a internet entre os outros computadores da rede:
# pacman -Sy dnsmasq
O pacman vai instalar o dnsmasq que usaremos como servidor proxy e dns.
# vi /etc/dnsmasq.conf
Vamos descomentar as linhas:
domain-needed
bogus-priv
filterwin2k
interface=eth0
Primeira dhcp range (existem mais de uma linha de dhcp range no arquivo de configuração, descomente a primeira)
Salve e feche o arquivo, então editemos o outro:
# vi /etc/sysclt.conf
net.ipv4.ip_forwared=1
kernel.syssrq=1
tcp_syncookies=1
Salve e feche também este arquivo, então teremos nossa internet sendo compartilhada, mas ainda não acabou, eu ainda vou configurar o firewall e realizar algumas modificações para que seu servidor seje totalmente automático, bastando somente ligá-lo para que o mesmo já esteja compartilhando a internet automaticamente.
6 - Instalando o firewall
Finalmente estamos quase terminando o servidor, só falta cuidar um pouco da parte de segurança do mesmo. Vamos então instalar um firewall.
# pacman -Sy iptables
# iptables-save
# vi /etc/ppp/firewall-masq
No arquivo de configuração do firewall, comente a seguinte linhas:
iptables -t filter -P INPUT DROP
Depois em baixo da linha “iptables -t filter -F adicione a seguinte linha:
iptables -t filter -P FORWARD ACCEPT
Comente também as seguintes linhas e seus respectivos grupos:
Allow incoming SSH
Log & Deny the rest of the privileged ports
Log & Deny NFS
Log & Deny X11
Log & Deny XFS
Deny TCP connection attempts
Pronto, seu firewall está configurado. Vamos então instalar mais alguns serviços, (igd e upnp).
7 - Instalando e configurando o servidor UPNP
Primeiramente, quando escrevi este artigo não se encontravam os dois pacotes nos repositórios community, porém estavam os 2 no aur, logo vamos fazer o download dos mesmos:
# wget http://aur.archlinux.org/packages/Linuxigd/Linuxigd.tar.gz
# wget http://aur.archlinux.org/packages/Libupnp/Libupnp.tar.gz
O processo de instalação no Archlinux sem o pacman também se dá de maneira bem simples, basta descompactar o pacote, gerar o .pkg (binário) e usar o pacman (ops) para instalar:
# tar -zxvf Libupnp.tar.gz
# cd Libupnp
# makepkg
# pacman -U Libupnp.pkg (o pacote gerado pelo makepkg)
# tar -zxvf Linuxigd.tar.gz
# cd Linuxigd
# makepkg
# pacman -U Linuxigd.pkg (o pacote gerado pelo makepkg)
Agora com os 2 pacotes instalados, vamos então startar a daemon upnpd
# /etc/rc.d/upnpd start
Pronto, servido upnp rodando :)
8 - Configurando arquivo de inicialização (parte de DAEMONS)
# vi /etc/rc.conf
Deixe a lista de Daemons assim:
(sys-log network !netfs !crond adsl sshd dnsmasq upnp)
Agora só precisamos reiniciar o computador vuala, servidor upado e compartilhando a internet até com direito à upnp.
Espero que tenham gostado, até o próximo post.
About
Leandro Pincini:
Quase formado Tecnólogo em Processamento de Dados pela Faculdade de Tecnologia (FATEC) de Taquaritinga. Sim, estou naquela faze chata de final de curso em que temos que escrever nossas monografias.
Áreas de interesse:
Arch Linux, Programação (Java, Python, Ruby), Tecnologia.