Configurando IP Stático
CentOs-6
nano /etc/sysconfig/network-scripts/ifcfg-eth0
##################################################
DEVICE=eth0
HWADDR=00:0C:29:68:BC:9C
TYPE=Ethernet
UUID=3a4fdebb-025e-4556-8b1a-a29c7c44a525
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.0.123
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
##################################################
nano /etc/resolv.conf
##################################################
generated by /sbin/dhclient-script
search localdomain srv001
nameserver 192.168.0.1
nameserver 8.8.8.8
##################################################
service network restart
###################################################
Configurando a rede no Linux via linha de comando ( na mão )
ifconfig [identificador da placa de rede] [IP] netmask [IP mask] up
route add default gw [IP]
Exemplo:
ifconfig eth0 10.0.0.3 netmask 255.255.0.0 up
route add default gw 10.0.0.1
echo nameserver 10.0.0.1 > /etc/resolv.conf
============================================
CentOs-7
nano /etc/sysconfig/network-scripts/ifcfg-eno16777736
##################################################
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPADDR=192.168.0.23
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=75a170ba-6bfa-4553-8070-e658eb8ffb1e
ONBOOT=yes
ou
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPADDR=192.168.0.172
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=e43bafcd-6efa-46b3-8992-26d2e238001b
DEVICE=ens192
ONBOOT=yes
NM_CONTROLLED=no
##################################################
nano /etc/sysconfig/network
##################################################
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.0.1
##################################################
nano /etc/resolv.conf
##################################################
generated by /sbin/dhclient-script
search localdomain srv001
nameserver 192.168.0.1
nameserver 8.8.8.8
##################################################
service network restart
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alias
nano /etc/bashrc
####################################################
# /etc/bashrc
# System wide functions and aliases
# Environment stuff goes in /etc/profile
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
# are we an interactive shell?
if [ "$PS1" ]; then
if [ -z "$PROMPT_COMMAND" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%$
fi
;;
screen)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAM$
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/syscon$
;;
esac
fi
# Turn on checkwinsize
shopt -s checkwinsize
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
# You might want to have e.g. tty in prompt (e.g. more virtual machines)
# and console windows
# If you want to do so, just add e.g.
# if [ "$PS1" ]; then
# PS1="[\u@\h:\l \W]\\$ "
# fi
# to your custom modification shell script in /etc/profile.d/ directory
fi
if ! shopt -q login_shell ; then # We're not a login shell
# Need to redefine pathmunge, it get's undefined at the end of /etc/profile
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
# By default, we want umask to get set. This sets it for non-login shell.
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null 2>&1
fi
fi
done
unset i
unset pathmunge
fi
# vim:ts=4:sw=4
####################################################
source .bashrc
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copiando com scp
####################################################
Copiando um arquivo remoto para máquina local:
scp user@domain:/pasta-remota/arquivo-remoto.txt /pasta-local/arquivo-local.txt
Enviando um arquivo local para um servidor remoto:
scp /pasta-local/arquivo-local.txt user@192.160.0.10:/pasta-remota/arquivo-remoto.txt
Copiando pastas e subpastas do servidor remoto para máquina local:
scp -r user@domain:/pasta-remota/ /pasta-local/
Enviando pastas e subpastas da máquina local para o servidor remoto:
scp -r /pasta-local/ user@192.160.0.10:/pasta-remota/
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cron
####################################################
crontab -e
shift +i (para digitar)
shift + :wq (sair e salvar)
O preenchimento de cada campo é feito da seguinte maneira:
Minutos: informe números de 0 a 59;
Horas: informe números de 0 a 23;
Dias do mês: informe números de 1 a 31;
Mês: informe números de 1 a 12;
Dias da semana: informe números de 0 a 7;
Usuário: é o usuário que vai executar o comando (não é necessário especificá-lo se o arquivo do próprio usuário for usado);
Comando: a tarefa que deve ser executada.
#######################################
Exemplo
# tarefa 1
30 22 2,10 * * echo "Olá Mundo"
Exemplo 2
Para que uma música localizada em /home/seu.nome.de.usuário/caminho/da/música.ogg seja tocada, você deve iniciar uma nova linha no arquivo e escrever:
15 07 * * 1-5 mplayer /home/seu.nome.de.usuário/caminho/da/música.ogg
Vamos esmiuçar:
15 é o minuto e 07 a hora. Logo, 7h15 da manhã;
O primeiro asterisco indica que ele deve fazer isso durante todos os dias do mês;
O segundo indica que o cron deve executar o comando todos os meses;
o '1-5' indica que o comando deve ser executado de segunda (1) a sexta (5), informando que domingos correspondem ao número 0 e segundas ao número 1.
Logo, se você quiser acordar todos os dias às 8h15 da manhã, de segunda a sábado, o comando fica:
15 08 * * 1-6 mplayer /home/seu.nome.de.usuário/caminho/da/música.ogg
#######################################
Neste exemplo, a frase "Olá Mundo" é exibida às 22 horas e 30 minutos, nos dias 2 e 10, em todos os meses e em todos os dias da semana. Repare na linha "#tarefa 1". Trata-se de um comentário. Digite # e tudo o que for digitado na linha não será considerado pelo cron. É um recurso útil para inserir descrições quando se tem várias tarefas a serem executadas.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Iniciar Serviços ao iniciar o SO
####################################################
Para que um serviço ou comando inicie no Centos edite o arquivo /etc/rc.local
nano /etc/rc.local
Insira o comando salve e reinicie o SO, na inicialização o comando será executado.
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Instalando ifconfig no CentOs 7
Para utilizar este comando, é necessário instalar o pacote “net-tools”:
yum -y install net-tools
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alterando Hostname
nano /etc/sysconfig/network
#############################################################
NETWORKING=yes
HOSTNAME=nome_do_hostname
-----------------------------------------------------------------------------------------------------
No Centos 7 - Alterar Hostname
hostnamectl set-hostname meuservidor.meudominio.br
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Matar Processo
Se quiséssemos matar o firefox faríamos:
ps -ef | grep firefox
XXXXXXXXXXXXXXXXXXXXXX??????????????????????
1986 ? Sl 7:22 /usr/lib/firefox-3.5.3/firefox
kill -9 1986
########################################################################################################
DESCOMPACTAR
COMO DESCOMPACTAR ARQUIVOS ZIP, RAR, TAR.GZ, BZ2, TAR.BZ2 PELO TERMINAL
Para descompactar estes formatos de arquivos os comandos são simples:
zip:
gunzip nomedoarquivo.zip
rar:
unrar x nomedoarquivo.rar
tar:
tar -xvf nomedoarquivo.tar
tar.gz:
tar -vzxf nomedoarquivo.tar.gz
bz2:
bunzip nomedoarquivo.bz2
tar.bz2:
tar -jxvf nomedoarquivo.tar.bz2
############################################################################################
NTFS no Linux
mount error:
ntfs not found
wget https://artbackup.com.br/packages/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
rpm -Uhv rpmforge-release-0.5.3-1.el6.rf.i686.rpm;
http://www.livecd.ethz.ch/download/sl-livecd-extra/6.1/x86_64/ntfs-3g-2016.2.22-1.el6.x86_64.rpm
yum install fuse fuse-ntfs-3g dkms dkms-fuse -y;
rpm -ivh ntfs-3g-2016.2.22-1.el6.x86_64.rpm;
https://rajivpandit.wordpress.com/2012/10/31/mount-ntfs-on-linux-centos/comment-page-1/
###############################################################################################
Formatar
mkfs.ext4 /dev/sdb
Mount no Umount
mount /dev/fd0 /mnt
umount /mnt
###############################################################################################
Montando compartilhamento SAMBA
mount -t cifs //ip_do_servidor_samba/nome_do_compartilhamento /mnt/ -o username=nome_do_usuário,password=senha_do_usuário
ou
mount -t smbfs //ip_do_servidor_samba/nome_do_compartilhamento /mnt/ -o username=nome_do_usuário,password=senha_do_usuário
###############################################################################################
Montando e compartilhando NFS
https://www.vivaolinux.com.br/dica/Montando-e-conectando-em-um-servidor-NFS
Instalando NFS
yum install nfs-utils nfs4-acl-tools
###############################################################################################
grep
https://tecnoblog.net/70876/grep-tutorial-linux-codigo/
###############################################################################################
Habilitar Epel no Centos:
http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/
## RHEL/CentOS 6 64-Bit ##
# wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
Se der erro de: Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
Mudar de https para http tudo o que estiver em: /etc/yum.repos.d/epel.repo
################################################################################################
OPENVPN
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Matriz:
eth0 - Velox com endereço DNS dinâmico: openvpn.no-ip.info;
eth1 - 192.168.0.1 - rede interna;
tun0 - 10.6.0.1 - endereço IP VPN.
Filial:
eth0 - Velox;
eth1 - 192.168.1.1 - rede interna";
tun0 - 10.6.0.2 - endereço IP VPN.
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
INSTALANDO E CONFIGURANDO OPENVPN NA MATRIZ
Primeiramente vamos fazer a instalação do OpenVPN na matriz:
# yum install openvpn
Agora vamos acrescentar o módulo tun dentro do arquivo /etc/modules para que
ele seja carregado no kernel a cada boot. O módulo tun é responsável pelas
interfaces virtuais que o OpenVPN cria:
# echo tun >> /etc/modules
Com o OpenVPN instalado e o módulo tun carregado no kernel, vamos à
configuração. Acesse o diretório /etc/openvpn/, aqui dentro é onde serão
criados os arquivos de configuração e a chave estática.
A chave criada no servidor depois deve ser copiada para todas as filiais que
se conectarão à VPN. Pode-se utilizar as chaves de duas formas, a primeira é
utilizar uma única chave para todos os clientes e a segunda é utilizar uma
chave para cada cliente, do ponto de vista de segurança o ideal seria
utilizar uma chave para cada cliente. No caso de um atacante conseguir obter
uma das chaves, conseguirá somente se conectar a uma única filial e não a
todas. Uma alternativa para melhorar a segurança e tornar esses ataques
ineficazes é fazer a troca das chaves periodicamente.
Abaixo vamos criar a chave:
# openvpn --genkey --secret chave.key
Agora vamos à configuração do OpenVPN:
# vim matriz.conf
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Interface da VPN
dev tun
# Endereço IP servidor/filial
ifconfig 10.6.0.1 10.6.0.2
# Protocolo
proto udp
# Porta VPN
port 1194
# Chave estática
secret /etc/openvpn/chave.key
# Monitoramento da conexão: primeiro número ping, segundo restart da vpn em
segundos
keepalive 10 120
# Compressão de dados
comp-lzo
# Mantém a interface tun carregada quando a vpn é reiniciada
persist-tun
# Mantém a chave carregada quando a vpn é reiniciada
persist-key
# Caso o IP mude, o túnel continua estabelecido
float
# Nível do log
verb 3
# Informações de status da conexão
status /var/log/openvpn/matriz-staus.log
# Arquivo de log
log-append /var/log/openvpn/matriz.log
# Criando rotas
up /etc/openvpn/rotas.up
# Apagando rotas
down /etc/openvpn/rotas.down
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Depois de ajustar o arquivo de configuração criaremos os arquivos de log do
OpenVPN, os logs são muito importantes para detectar algum erro de conexão,
ver informações dos clientes, entre outras informações.
# mkdir /var/log/openvpn
# touch /var/log/openvpn/matriz-status.log
# touch /var/log/openvpn/matriz.log
Antes de iniciarmos a VPN vamos criar as rotas para acesso à filial, como
vimos no esboço, o endereço da VPN é diferente do endereço da rede interna, a
principio o servidor só consegue pingar no endereço IP do túnel da filial
(10.6.0.2). Para o servidor e os micros da rede conseguirem pingar e acessar
os micros da filial, é preciso adicionar uma rota no servidor indicando a
encaminhar os pacotes com destino a filial pelo túnel.
Vamos criar dois arquivos dentro de /etc/openvpn/, um arquivo cria as rotas
quando a VPN é iniciada e o outro arquivo apaga as rotas quando a VPN é
parada.
# vim rotas.up
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.6.0.1 dev tun0
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
vim rotas.down
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
route del -net 192.168.1.0 netmask 255.255.255.0 gw 10.6.0.1 dev tun0
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora vamos iniciar a VPN:
# /etc/init.d/openvpn start
Em caso de alguma mensagem de erro ou aparecer "Failed" ao iniciar a VPN,
pode consultar o log:
# tail -f /var/log/openvpn/matriz.log
=========================================================================
INSTALANDO E CONFIGURANDO OPENVPN NA FILIAL
Agora vamos fazer a instalação e configuração do OpenVPN na filial, a configuração é praticamente igual, só devem ser observadas algumas configurações mínimas. Primeiramente vamos começar instalando o OpenVPN:
# apt-get install openvpn
Igualmente feito na matriz, devemos adicionar o módulo tun dentro do arquivo /etc/modules.
# echo tun >> /etc/modules
Agora devemos copiar a chave estática criada no servidor para dentro de /etc/openvpn/, com a chave copiada vamos à configuração do OpenVPN:
# vim filial.conf
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Endereço IP servidor
remote openvpn.no-ip.info
# Interface da VPN
dev tun
# Endereço IP filial/servidor
ifconfig 10.6.0.2 10.6.0.1
# Protocolo
proto udp
# Porta VPN
port 1194
# Chave estática
secret /etc/openvpn/chave.key
# Monitoramento da conexão, primeiro número ping, segundo restart da VPN
keepalive 10 120
# Compressão de dados
comp-lzo
# Mantém a interface tun carregada quando a VPN é reiniciada
persist-tun
# Mantém a chave carregada quando a VPN é reiniciada
persist-key
# Caso o IP mude o túnel continua estabelecido
float
# Nível do log
verb 3
# Informações de status da conexão
status /var/log/openvpn/filial-staus.log
# Arquivo de log
log-append /var/log/openvpn/filial.log
# Criando rotas
up /etc/openvpn/rotas.up
# Apagando rotas
down /etc/openvpn/rotas.down
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos agora criar os arquivos de log:
# mkdir /var/log/openvpn
# touch /var/log/openvpn/filial-status.log
# touch /var/log/openvpn/filial.log
Agora vamos criar o arquivo com as rotas para acesso à matriz:
# vim rotas.up
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.6.0.2 dev tun0
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# vim rotas.down
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
route del -net 192.168.0.0 netmask 255.255.255.0 gw 10.6.0.2 dev tun0
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora é só iniciar a VPN:
# /etc/init.d/openvpn start
Prontinho... A matriz e a filial estão OK!
Obs.: Se não tiver nenhum firewall no servidor da matriz e da filial, já pode dar um ping ou acessar um compartilhamento na máquina da outra rede. Como eu duvido que ninguém que tem um pouco de conhecimento em segurança colocaria uma VPN no ar sem um firewall, vamos criar algumas regras para liberar a conexão da VPN e o tráfego do túnel.
LIBERANDO PORTAS NO FIREWALL
Bem, como foi dito no início do artigo, nenhuma VPN é 100% segura, devemos configurar com cuidado todos os serviços necessários para ter uma VPN estável e sem riscos, um firewall é o mínimo de segurança necessária.
Vamos criar algumas regras de firewall liberando a conexão da VPN e o tráfego do túnel. Estou presumindo que o firewall da matriz e filial estão com o policiamento da chains INPUT e FORWARD como drop.
Firewall matriz:
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Liberando porta de conexão VPN
iptables -t filter -A INPUT -i ppp0 -p udp --dport 1194 -j ACCEPT
# Liberando tráfego do túnel
iptables -t filter -A FORWARD -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Firewall filial:
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# Liberando porta de conexão VPN
iptables -t filter -A INPUT -i ppp0 -p udp --dport 1194 -j ACCEPT
# Liberando tráfego do túnel
iptables -t filter -A FORWARD -i tun0 -j ACCEPT
iptables -t filter -A INPUT -i tun0 -j ACCEPT
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CONCLUSÃO
Espero que esse artigo tenha esclarecido muitas dúvidas em como configurar uma VPN. Como vimos no decorrer do artigo, a configurção é bastante simples e rápida. Nos outros artigos que escreverei tratarei mais a fundo segurança e certificados digitais, uma vez que em uma rede corporativa a segurança é primordial.
Zerar Blocos no HD
# dd if=/dev/zero of=/dev/hda
Install ifconfig
# yum install net-tools
# apt-get install net-tools
Samba
1. Para samba funcionar, desabilitar o selinux:
nano /etc/selinux/config:
SELINUX=disabled
echo 0 >/selinux/enforce
yum install samba samba-client samba-common -y
ð Nunca compartilhar o ponto de montage mas sim umas pasta dentro do ponto. E ver se tem permissão de leitura, escrita, etc
2. Configuração abaixo é para acesso guest sem senha:
nano /etc/samba/smb.conf
[global]
security = share
guest account = root
map to guest = bad user
[public]
path = /mnt/dados
browseable = yes
writable = yes
guest ok = yes
====================================================
Pare o serviço IPTABLES
# service iptables stop
Adicione o usuário de acesso:
useradd -s /dev/null nome.usuario -M
Inicie o serviço Samba
service smb restart
service nmb restart
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Como desabilitar Firewall CentOs 7
#systemctl disable firewalld
#systemctl stop firewalld
Edite este menu na guia "Páginas"
Mostre-me
Serviços CentOS
Comandos que podemos usar para listar os serviços em execução no CentOS
# service --status-all
# service --status-all grep ntpd
# service --status-all less
Para saber o status de apenas um serviço
# service httpd status
Pata listar todos os serviços configurados via SysV
# chkconfig --list
Listar os serviços com as portas abertas
# netstat -tulpn
Ligando e desligando serviços
# ntsysv
#chkconfig httpd off
#chkconfig ntpd on
#########################################################################################
ATUALIZAR HORARIO DE VERÃO - TIME ZONE
Verifique se há horário de verão
zdump -v Brazil/East | grep 2019
Atualizando pacote tzdata
yum update tzdata -y
Verifique as alterações
zdump -v Brazil/East | grep 2019