quarta-feira, 23 de outubro de 2019

Instalando Samba 4 com Domínio no CentOS 7

Introdução

Configuração

Instale o repositório EPEL mais atualizado possível:

# rpm -ivh http://mirror.globo.com/epel/7/x86_64/e/epel-release-7-10.noarch.rpm

Atualize o sistema:

# yum -y update

Instale os pacotes necessários do sistema:

# yum -y install wget vim net-tools open-vm-tools
# yum -y groupinstall 'Development Tools'

Configuração do nome da máquina:

# vim /etc/hostname

nomedamaquina

Configurando o sysconfig/network:

# vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=nomedamaquina

Desabilitando o SElinux e IPtables

Para não complicar muito as coisas nesse momento e como estamos fazendo em um ambiente de controle e de teste, vamos desabilitar o SELinux e o Firewall.

# vim /etc/selinux/config

SELINUX=disabled

# systemctl stop firewalld
# systemctl disable firewalld

Reinicie a máquina:

# init 6

Preparando para a instalação do Samba4

Nesta seção, iremos preparar o ambiente para que o Samba4 seja instalado como controle de configuração do CentOS 7. Instale o repositório EPEL, mais atualizado possível:

# rpm -ivh http://mirror.globo.com/epel/7/x86_64/e/epel-release-7-10.noarch.rpm

Atualize o sistema:

# yum -y update

Instale os pacotes necessários do sistema:

# yum -y install wget vim net-tools open-vm-tools
# yum -y groupinstall 'Development Tools'

Configuração do nome da máquina:

# vim /etc/hostname

nomedamaquina

Configurando o sysconfig/network:

# vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=nomedamaquina

Para não complicar muito as coisas nesse momento e como estamos fazendo em um ambiente controla e de teste, vamos desabilitar o SELinux e o Firewall.

# vim /etc/selinux/config

SELINUX=disabled

# systemctl stop firewalld
# systemctl disable firewalld

Reinicie a máquina:

# init 6

O CentOS 7 não possui todos os pacotes necessários para compilação do Samba4 com suporte a Active Directory, por isso devemos baixar os pacotes.

Instalando pacotes necessários para a instalação do Samba4:

# yum install -y openldap-devel pam-devel git gcc make wget libacl-devel libblkid-devel gnutls-devel readline-devel python-devel cups-devel libaio-devel quota-devel ctdb-devel krb5-devel krb5-workstation acl setroubleshoot-server setroubleshoot-plugins policycoreutils-python libsemanage-python setools-libs-python setools-libs popt-devel libpcap-devel libidn-devel libxml2-devel libacl-devel libsepol-devel libattr-devel keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils bind-sdb bind-devel bind-libs bind avahi-devel mingw32-iconv gamin libcap-devel rpc2-devel glusterfs-devel python-dns pkgconfig gdb e2fsprogs-devel zlib-devel sqlite-devel perl attr acl krb5-user ntp bind bind-sdb attr bind-utils docbook-style-xsl gcc gdb krb5-workstation libsemanage-python libxslt perl perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python python-crypto gnutls-devel libattr-devel keyutils-libs-devel libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel tdb-tools

Configurando o arquivo "hosts":

# vim /etc/hosts

192.168.40.70 inf.infstorage.local inf

Configurando "fstab":

# vim /etc/fstab

defaults,acl,user_xattr

# mount -o remount /

Configurando NTP

O NTP (Network Time Protocol) é um protocolo de rede baseado no TCP/IP. Ele é usado para sincronizar o relógio dos computadores conectados a uma rede de dados de maneira precisa. A real necessidade disso é superar aos problemas causados pela latência, os quais colocam quaisquer registros sob desconfiança.

# vim /etc/ntp.conf

server a.ntp.br
server b.ntp.br
server c.ntp.br
server a.st1.ntp.br
server b.st1.ntp.br
server c.st1.ntp.br

# systemctl enable ntpd
# systemctl restart ntpd

Baixando o pacote do Samba4:

wget https://download.samba.org/pub/samba/stable/samba-4.8.2.tar.gz

Configurando o "resolv.conf":

# vim /etc/resolv.conf

search infstorage.local
domain infstorage.local
nameserver 127.0.0.1

Configurando o krb5.conf

Kerberos é um protocolo desenvolvido para fornecer poderosa autenticação em aplicações usuário/servidor, onde ele funciona como a terceira parte neste processo, oferendo autenticação ao usuário.

# mv /etc/krb5.conf /etc/krb5.conf.old
# vim /etc/krb5.conf

[libdefaults]
        default_realm = INFSTORAGE.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true

Extraindo e copilando o pacote:

# tar zxvf samba-4.8.2.tar.gz
# cd samba-4.8.2
# ./configure
# make
# make install

Provisionando o Samba4

Provisionamento do domínio em que serão utilizadas ferramentas automatizadas do próprio Samba para preparar nosso servidor como controlador do domínio. A principal ferramenta é o comando "samba-tool", que serve como frontend responsável por manipular o OpenLDAP.

# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 -interactive
Realm [INFSTORAGE.LOCAL]
Domain [INFSTORGE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:


Verificar se o Samba subiu normalmente:

# /usr/local/samba/sbin/samba
# ps uax | grep samba

Script de inicialização do Samba4

Para que o Unit baseado no Systemd seja integrado ao servidor, possibilitando assim, o controle dos processos relativos aos serviços, bem como na inicialização do sistema e o Samba possa subir automaticamente.

# vim /etc/systemd/system/samba.service

[Unit]
Description=Samba AD Daemon
After=syslog.target network.target
[Service]
Type=forking
NotifyAccess=all
PIDFile=/usr/local/samba/var/run/samba.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/local/samba/sbin/samba -D
ExecReload=/usr/bin/kill -HUP $MAINPID
ExecStop=/usr/bin/killall samba
Restart=on-failure
[Install]
WantedBy=multi-user.target

Configurando o DNS

Um Active Directory funcional baseia-se fortemente em um DNS funcional. Não é apenas para resolver endereços IP em nomes e vice-versa. Os clientes encontram seus controladores de domínio e outros serviços importantes do AD por meio de consultas DNS, isso significa que seus clientes devem usar seus controladores de domínio como seus servidores de nomes.

Acessando o "named.conf", altere ou insira:

# vim /etc/named.conf

options{
   tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
      listen-on port 53 { 127.0.0.1; 192.168.40.70;};
      forwarders {
                200.175.182.139;
                8.8.8.8;
        };
}

include "/usr/local/samba/bind-dns/named.conf";
zone "70.168.192.in-addr.arpa" {
    type master;
    file "/var/named/192.168.70.rev";
    allow-update {
     none;
        };
                };

Verificar a versão do "named":

# named -v
# vim /usr/local/samba/bind-dns/named.conf

Retire a opção # da versão do named.

Reinicie o "named":

# systemctl restart named

Testando o Samba4:

# host -t SRV _ldap._tcp.infstorage.local.
# host -t SRV _kerberos._udp. infstorage.local.
# host -t A infstorage.local

Gerando chave do Kerberos:

# kinit administrator

Verificando a chave:

# klist -e

Atualizando o DNS:

# /usr/local/samba/sbin/samba_dnsupdate –verbose

Referências

quarta-feira, 20 de março de 2019

Instalando Zabbix no CentOS 7

O Zabbix é uma ferramenta de monitoramento de código aberto, monitorando servidores, máquinas virtuais e serviços, métricas de monitoramento, utilização da rede, carga da CPU e consumo de espaço em disco. Vamos mostrar a instalação e adicionar máquinas com Linux e Windows no monitoramento.
Por: Daniel Lara Souza em 22/02/2019 | Blog: http://danniel-lara.blogspot.com/

INSTALANDO O ZABBIX


Após a instalação do CentOS, instale o epel e atualize: 

# yum install epel* -y
# yum udpate -y 

Desative o selinux e reinicie o servidor. Adicione o repositório do Zabbix: 

# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 

Instale o Zabbix e o MariaDB: 

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql mariadb-server -y 

Inicialize os serviços do Apache e MariaDB e ative na inicialização dos serviços: 

# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb 

Defina a senha para o banco de dados: 

# mysqladmin -u root password 'centos' 

Acesse o banco e crie a base de dados: 

# mysql -u root -p 

MariaDB [(none)]> CREATE DATABASE zabbix;
Query OK, 1 row affected (0.00 sec) 

MariaDB [(none)]> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec) 

MariaDB [(none)]> quit
Bye 

Agora, importe os dados para o banco: 

# zcat /usr/share/doc/zabbix-server-mysql-4.0.4/create.sql.gz | mysql -uzabbix -p zabbix 

Edita o arquivo: 

# vim /etc/zabbix/zabbix_server.conf 

E deixe-o com essas informações: 

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

Ajuste o timezone: 

# vim /etc/httpd/conf.d/zabbix.conf 

E deixe-o assim, a linha estava comentada: 

php_value date.timezone America/Sao_Paulo

Agora, reinicie o Apache: 

# systemctl restart httpd 

Inicie o Zabbix e ative na inicialização: 

# systemctl start zabbix-server
# systemctl enable zabbix-server 

CONFIGURAÇÃO VIA BROWSER

Vamos continuar a configuração via browser. 

A instalação é bem tranquila, basta ir preenchendo os dados necessários e ao logar, o usuário do zabbix é "admin" e a senha é "zabbix": 

http://<ip ou nome do server>/zabbix. 

Só Next e completando os campo que pedem. 

Next:
Se tiver tudo certo, só dar Next:
Complete o campo de acesso ao MariaDB:
No caso, só preencher Name:
Agora, só um sumário:
Parabéns, Zabbix instalado:
Agora, só logar no Zabbix:
  • Usuário = admin
  • Senha = zabbix



INSTALANDO ZABBIX-CLIENT NO LINUX


Vamos agora instalar o client do Zabbix em um servidor Linux, no caso estou usando o CentOS 7. 

Baixe o client no site do Zabbix: 

# wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.4-1.el7.x86_64.rpm 

Instale o pacote rpm: 

# rpm -ivh zabbix-agent-4.0.4-1.el7.x86_64.rpm 

Agora, efetuar o backup do arquivo "conf" do Zabbix client: 

# mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bkp 

Agora, vamos criar um arquivo novo, só com o necessário: 

# vim /etc/zabbix/zabbix_agentd.conf 

E adicione as linhas no arquivo: 

Server=192.168.122.254
Hostname=zabbix
StartAgents=3
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
Timeout=3

Salve e saia do arquivo. 

Inicie o Serviço do client: 

# systemctl start zabbix-agent 

Ative na inicialização: 

# systemctl enable zabbix-agent 

Agora no Zabbix: 

Vá em: Configuration > Hosts
Agora vá em: Create Host
Preenche os campos como Host name, Groups, IP Address:
Agora, vá em: Templates
Selecione: "Template OS Linux" > Add
Após, podemos verificar que o host já está OK no monitoramento:
Depois, pode ir em: Monitoring > Graphs
E selecionar o seu Servidor:

INSTALANDO ZABBIX-CLIENT NO WINDOWS


Agora, vamos instalar o client no Windows e adicionar no Zabbix Server. 

Baixe o client do Windows:
Crie uma pasta no c:, chamado de "Zabbix". 

Agora, descompacta o "arquivo.zip" e copie os arquivos que estão dentro da pasta "bin" e "conf" para a pasta que tu criou no c:. 

Renomeia o arquivo "zabbix_agentd.win.conf" para: zabbix_agentd.conf 

Edite o arquivo e adicione: 

Server=192.168.122.254
Hostname=srv
StartAgents=5
DebugLevel=3
LogFile=C: abbixzabbix_agentd.log
Timeout=3

Salve o arquivo.
Agora, abra um prompt de comando como adminstrador. 

Para instalar: 

C:zabbixzabbix_agentd.exe --config C:zabbixzabbix_agentd.conf --install 

Iniciar o serviço: 

C:zabbixzabbix_agentd.exe --config C:zabbixzabbix_agentd.conf --start
Agora, no Zabbix vá em: Configuration > Host groups > Create Host group
Vá em: Configuration > Host > Create Hosts 

Preenche os dados como nome do servidor, IP do servidor e o grupo que criou:
Adicione o template do Windows:
Agora, verificamos que o Windows já está sendo monitorado:
Espero que ajude. 

REFERÊNCIAS

Envio e-mail pelo sendemail

# !/bin/bash
smtpemailfrom=emailenvio@email.com #email para envio
mailto=emailrecebe@email.com #email que receberá
subject='Logado FTP Server' # Assunto do Email
smtpserver=mail.server.com # Host Servidor de Email
smtplogin= emailenvio@email.com #email para envio
smtppass=senha #senha do email
smtpauth=tls=yes #tipo de criptografia do servidor
arq=/opt/FTP/logando.txt #Aqui coloquei o arquivo que ira ser comparado e enviado 

/usr/bin/sendemail -f $smtpemailfrom -t $mailto -u $subject -o message-file=$arq -s $smtpserver:587 -xu $smtplogin -xp $smtppass

segunda-feira, 18 de fevereiro de 2019

Configuração do Quagga e seus protocolos

1 – Instalando o quagga
$ apt-get install quagga.
2 – copiando os arquivos de configuração:
$ cp /usr/share/doc/quagga/examples/* /etc/quagga.
Com este comando todos os arquivos de configuração serão copiados, no caso de utilizar somente alguns protocolos de roteamento, deve-ser copiar o arquivo zebra.conf.samples e o arquivo correspondente ao protocolo de roteamento, ex: ripd.conf.samples.
3 – Renomear os arquivos de configuração que foram copiados da pasta examples.
É necessário renomear os arquivos que serão utilizados. EX: utilizando o protocolo RIP.
$ mv /etc/quagga/zebra.conf.samples /etc/quagga/zebra.conf
$ mv /etc/quagga/ripd.conf.samples /etc/quagga/ripd.conf.
$ mv /etc/quagga/ospfd.conf.samples /etc/quagga/ospfd.conf.
$ mv /etc/quagga/bgpd.conf.samples /etc/quagga/bgpd.conf.
4 – Editar o arquivo /etc/quagga/daemons.
$ nano /etc/quagga/daemons.
No fim do arquivo está a configuração dos daemons que rodarão. Marcar com yes ou no…
Exemplo para rodar o protocolo RIP..
zebra=yes
ripd=yes
ospfd=no
deixar os outros como no.
5 – Executar o serviço quagga.
$ /etc/init.d/quagga restart
6 – Configurar o zebra
$ telnet localhost 2601.
  • A senha padrão é zebra.
Este comando acessa o console do zebra.
Router>
para habilitar o zebra.
Router> enable
# coloca o zebra em modo superusuário (Gustavão q ensinou ahah)
  • Para verificar a configuração atual executar o comando
Router$ show run
No zebra devemos configurar todas as nossas interfaces de rede
Para configurar, primeiro entrar com o comando
Router$ configure terminal
# utilizar o tab, como no linux facilita a digitação.
Router(config)$
  • Deve-se configurar as interfaces… Para isso é necessário realizar a sequencia de comandos abaixo
Ex: de configuração da interface eth0 com ip 172.16.1.2/30
Router(config)$ interface eth0
Router(config-if)$  ip address 172.16.1.2/30
Router(config-if)$ quit
Executar esta sequência para todas as interfaces…
Ao final executar o comando
Router(config-if)$ write
Sair:
Router(config-if)$ end
Router$ quit
– Nas interfaces podemos setar algumas configurações adicionais como por exemplo:
Router(config-if)$ bandwidth 100000
– Este comando indica que a interface trabalha a 100Mbps… Os valores estão em Kbps. Isto é útil quando utilizamos o protocolo OSPF e a opção auto-cost bandwidth está ativa. Ele leva em conta a largura de banda da interface.
  • Pronto o zebra está configurado, mas é só a metade.
7 – Reiniciar o zebra com as novas configurações.
$ /etc/init.d/quagga restart.
O quagga será reiniciado com as novas configurações.
8 – Configurar o RIP.
No RIP, configuraremos as redes e as interfaces… ainda não sei a necessidade das interfaces, mas consultarei alguns tutoriais, por hora é desta maneira que iremos configurar.
Entrar no console;
$ telnet localhost 2602
$ password: zebra
ripd>
  • habilitar o console
ripd> enable
  • para verificar as configurações que estão rodando executar;
ripd$ show run
  • configurar o RIP
ripd$ configure terminal
  • Entrar na configuração do RIP
ripd(config)$ router rip
  • Entrar com as configurações das networks Exemplo:
ripd(config-router)$ network 172.16.1.0/30
ripd(config-router)$ network eth0
  • realizar este procedimento para todas as redes.
  • se uma interface não deve conter tráfego das informações devemos acrescentar a opção;
ripd(config-router)$ passive-interface eth3
– Deste modo a informação não será trocada nesta interface.
– Se desejamos que as informações de rota default seja trocada acrescentamos a opção:
ripd(config-router)$ default-information originate
  • salvar as configurações
ripd(config-router)$ write
  • sair
ripd(config-router)$ end
ripd$
  • verificar as configurações
ripd$ show run
  • sair
ripd$ quit.
** CONFIGURAR O OSPF NO QUAGGA
Para habilitar o OSPF devemos editar o arquivo /etc/quagga/daemons e colocar ospfd=yes na parte de configuração dos daemons. Salvar o arquivo e reiniciar o quagga.
# nano /etc/quagga/daemons

ospfd=yes

#/etc/init.d/quagga restart
** Acessando o OSPF
O acesso ao daemon do OSPF é por telnet pela porta 2604. A senha padrão é zebra.
#telnet localhost 2604

ospfd>
Setando algumas configurações básicas… Tomando como exemplo as nossas redes.
– Configurando as redes.
ospfd>en
ospfd# configure terminal
ospfd(config)# router ospf
– Identificando o roteador no AS
ospfd(config-router)# router-id 0
– Inserindo as redes que serão propagadas
ospfd(config-router)# network 172.16.1.0/24 area 0
ospfd(config-router)# network 192.168.10.0/24 area 0
ospfd(config-router)# wr
ospfd(config-router)# end
  • se uma interface não deve conter tráfego das informações devemos acrescentar a opção;
ripd(config-router)$ passive-interface eth3
– Deste modo a informação não será trocada nesta interface.
– Se desejamos que as informações de rota default seja trocada acrescentamos a opção:
ripd(config-router)$ default-information originate

- Note que a área indica em qual AS as informações serão trocadas.

- Algumas configurações das interfaces.

[
1
2
3
4
5
]
ospfd>en
ospfd# configure terminal
ospfd(config)# interface ethx
[
]
Indica um custo para aquela interface.
[
1
2
3
]
ospfd(config-if)# ospf cost
[
]
Modifica o tempo de troca de informações: hello e dead. (dead é quando a interface passa a ser down).
ospfd(config-if)# ospf hello-interval 3 ospfd(config-if)# ospf dead-interval 5
Estas configurações devem ser as mesmas em todos os roteadores do AS
Quagga no BGP
Um exemplo de configuracao do bgp:
unixrouter# conf t
unixrouter(config)# router bgp 65002
unixrouter(config-router)# bgp router-id 192.168.0.2
unixrouter(config-router)# network 20.10.0.0/16
unixrouter(config-router)# network 20.20.0.0/16
unixrouter(config-router)# network 20.30.0.0/16
unixrouter(config-router)# network 20.40.0.0/16
unixrouter(config-router)# neighbor 192.168.0.1 remote-as 65001
unixrouter(config-router)# quit
unixrouter(config)# wr
Configuration saved to /etc/quagga/bgpd.conf
unixrouter(config)# exit
unixrouter# show ip bgp summary
BGP router identifier 192.168.0.2, local AS number 65002
2 BGP AS-PATH entries
0 BGP community entries
Neighbor V AS MsgRcvd? MsgSent TblVer? InQ OutQ Up/Down State/PfxRcd
192.168.0.1 4 65001 6 10 0 0 0 00:01:57 4
Total number of neighbors 1
unixrouter# sh ip bgp
BGP table version is 0, local router ID is 192.168.0.2
Status codes: s suppressed, d damped, h history, * valid, > best, i – internal
Origin codes: i – IGP, e – EGP, ? – incomplete
Network Next Hop Metric LocPrf? Weight Path
*> 10.10.0.0/16 192.168.0.1 0 0 65001 i
*> 10.20.0.0/16 192.168.0.1 0 0 65001 i
*> 10.30.0.0/16 192.168.0.1 0 0 65001 i
*> 10.40.0.0/16 192.168.0.1 0 0 65001 i
*> 20.10.0.0/16 0.0.0.0 0 32768 i
*> 20.20.0.0/16 0.0.0.0 0 32768 i
*> 20.30.0.0/16 0.0.0.0 0 32768 i
*> 20.40.0.0/16 0.0.0.0 0 32768 i
Total number of prefixes 8
unixrouter#
 
 
 
Ref.: https://fabiolima08.wordpress.com/2012/10/23/configuracao-do-quagga-e-seus-protocolos/

quarta-feira, 19 de dezembro de 2018

Como suspender/hibernar o computador via linha de comando

Como suspender/hibernar o computador via linha de comando


* Dica testada em Debian 9.

Se assim como eu, você detesta ter que aguardar alguns segundos para ligar e desligar o seu computador, saiba que existe um recurso chamado "suspender para a memória RAM". E como funciona?

Seu PC basicamente assume dois estados, ligado e desligado. Quando está ligado, obviamente gasta bastante energia para manter o processador, memória RAM, discos, monitores e periféricos funcionando. Quando está desligado, ele obviamente não gasta energia.

Porém é possível emular mais dois estados, que são o modo suspensão e hibernação.

Modo suspensão

O modo suspensão consiste em gravar o estado atual do PC na memória RAM. Todos os recursos da máquina serão desligados e o PC gastará energia apenas para manter a memória RAM em funcionamento.

Esse modo é a forma mais rápida de desligar/ligar seu PC, mas não é tão econômica quando a hibernação. O processo de desligar/ligar o PC em modo suspensão dura cerca de 3 segundos, é muito rápido.

Para suspender o teu PC/notebook via linha de comando, digite (pode ser como usuário comum):

systemctl suspend

Para ligar o computador basta mexer no mouse ou pressionar qualquer tecla do teclado.

Modo hibernação

O modo hibernação consiste em gravar o estado atual do PC no disco rígido. Todos os recursos da máquina serão desligados, hibernação total.

Não é tão rápido como suspender, porém é mais econômico e seguro. Se você mantiver seu computador suspenso por muito tempo, corre o risco de perder dados na memória RAM, fato que não ocorre no modo hibernação.

Para hibernar teu PC/notebook via linha de comando, digite (pode ser como usuário comum):

systemctl hibernate

Ligue o computador normalmente pelo botão power, ele fará um boot normal de máquina, a diferença é que ao carregar o sistema operacional você voltará ao estado atual de sessão de usuário.

Minha dica é, para períodos mais curtos, como sair para almoçar ou até mesmo dar aquela cochiladinha, use o modo suspensão. Para períodos mais longos, como uma pernoite, use a hibernação.

Bônus

Ao invés de usar o systemctl, é possível instalar o pacote pm-utils para fazer a suspensão/hibernação. O pacote possui uns comandinhos adicionais que não serão abordados nessa dica. Lá vai:

sudo apt install pm-utils

Suspender:

pm-suspend

Hibernar:

pm-hibernate

Comandos adicionais:

man pm-powersave
$ man pm-suspend-hibrid

sábado, 13 de outubro de 2018

APLICANDO KNOCK SOBRE IPTABLES


Knock é um aplicativo mágico que dispara através de uma sequencia enviada por um comando remoto que pode executar tanto um comando como um script pré-configurado para fazer algo no seu sistema (usem a imaginação). 

Neste caso vou guiá-los para ativar ou desativar uma porta 22 no iptables e pra quê??? 

Imagine que você não use o SSH 24 horas por dia, então porque não desativá-lo até mesmo para evitar ataques ou portscaners? 

Debian como exemplo: 

# apt-get install knockd 

Depois de instalado configuraremos 2 arquivos, um para definir qual a interface, infelizmente só da pra fazer com uma. E o segundo para habilitar o que ele faz com qual sequência que você define. 

# vim /etc/default/knockd 

Os dois parâmetros a serem mudados, onde o primeiro deve ficar como 1 pois define Knock ativo, qualquer coisa diferente disso o serviço não sobe e o segundo está eth0, coloque sua placa de rede, caso seja diferente como no Debian 9, que é enp2s0 ou enp1s0. 

START_KNOCKD=1
KNOCKD_OPTS="-i eth0"

Segundo arquivo define o que o knock faz quando você manda uma sequência X para ele: 

# vim /etc/knockd.conf 

[options]
        logfile = /var/log/knockd.log # ARQUIVO DE LOG

[openSSH]
        sequence    = numeros das portas que serão chamadas 
        seq_timeout = 5
        command     = comando para fazer X ou local de um Script
        tcpflags    = syn

[closeSSH]
        sequence    = numeros das portas que serão chamadas
        seq_timeout = 5
        command     = comando para fazer Y ou local de um Script
        tcpflags    = syn

Exemplo 1 - usando comando: 

[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 1 2 3
        seq_timeout = 5
        command     = iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT 
        tcpflags    = syn

[closeSSH]
        sequence    = 3 2 1
        seq_timeout = 5
        command     = iptables -D INPUT 1 # Remove a 1a linha do iptables 
        tcpflags    = syn 

Exemplo 2 - apontando para um script: 

[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 1 2 3
        seq_timeout = 5
        command     = /sbin/script_habilite_a_porta.sh   
 # Não esquecer de dar permissão no script se for usar um.
        tcpflags    = syn

[closeSSH]
        sequence    = 3 2 1
        seq_timeout = 5
        command     = /sbin/script_desabilite_a_bendita_porta.sh
 # Não esquecer de dar permissão no script se for usar um.
        tcpflags    = syn 

Feito isso reinicie o knockd com o comando: 

# systemctl restart knockd 

ou 

# /etc/init.d/knockd restart 

Após isso, de uma estação com Knock instalado use o comando: 

# knock ip porta porta porta 

Exemplo: 

# knock 192.168.0.1 1 2 3 

Ele deve inserir uma linha no iptables ou fazer algo programado e para desativar a porta 22 use com a outra sequencia que você programou. Lembrando que as portas são selecionáveis e sim, faça MUUUUITOS testes, dá pra iniciar até um backup se tiver um script programado. Bom uso! 

Obs.: você pode escolher quais portas e se serão UDP ou TCP, consulte a documentação. 

segunda-feira, 25 de junho de 2018

Pendrive do Windows (bootável) no Ubuntu Linux

Alguns usuários Linux precisam utilizar o Windows (7, 8, 10), seja devido aos softwares com licença que rodam nessa plataforma, ou devido alguma outra necessidade. Existem algumas alternativas, como utilizar um dual boot, máquinas virtuais, ou utilizar um pendrive bootável.

Utilizaremos o WoeUSB para criar nosso pendrive bootável utilizando o Ubuntu Linux.

O WoeUSB vem do WinUSB, que era uma ferramenta gráfica para Linux que permitia criar pendrives bootáveis para sistemas operacionais Windows, utilizando imagens ISO ou CD/DVD desse sistema operacional.

O WinUSB não vinha recebendo atualizações, então um usuário do GitHub (slacka) criou um fork do programa e o renomeou para WoeUSB, consertando a maioria dos seus erros que existiam, além de atualizar o programa para suportar os wxWidgets 2 e 3.

Para instalar no Ubuntu, abra o terminal e digite os seguintes comandos:

sudo add-apt-repository ppa:nilarimogard/webupd8 -y
$ sudo apt-get update
$ sudo apt-get install woeusb


Agora iremos criar o pendrive bootável.

Primeiro, conecte o pendrive numa porta USB do seu computador.

Agora abra o terminar e digite o seguinte comando para abrir o WoeUSB:

woeusbgui

Já na tela do WoeUSB, informe onde está a imagem ISO do Windows, depois selecione a unidade do pendrive, e finalmente, clique no botão Install.
Linux: Pendrive do Windows (bootável) no Linux Ubuntu
GitHub - slacka/WoeUSB: https://github.com/slacka/WoeUSB