fuser -v -n tcp 1099
Author: Gustavo Santos
Tail com destaque de palavras
tail -100f /var/log/iptables.log | perl -pe / ‘s/FORWARD/\e[1;31;43m$&\e[0m/g’
Visualização dos módulos ativos do Apache
apache2ctl -t -D DUMP_MODULES
Redirect de página usando HTML
** Devido a um bug no editor do WordPress quando digito – – junto, o que é o correto no prompt ele agrega para — portanto em todos os posts pode ser necessário essa correção em algum momento. Outro problema são as aspas duplas e simples que quando copiadas não são reconhecidas no linux.
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<html>
<frameset border=”false” frameborder=”0″ rows=”*”>
<frame name=”main” scrolling=”YES” src=”endereço_redirecionamento”/>
</frameset>
</html>
Exemplo de script de iptables usando variáveis
** Devido a um bug no editor do WordPress quando digito – – junto, o que é o correto no prompt ele agrega para — portanto em todos os posts pode ser necessário essa correção em algum momento. Outro problema são as aspas duplas e simples que quando copiadas não são reconhecidas no linux.
# !/bin/bash
echo “Ativando Regras de Firewall”
#########################
# Variaveis / Entidades #
#########################
iptables=”/sbin/iptables”
# Redes
# Maquinas
# Portos
FTP=”20,21″
FTP_DATA=”20″
FTP_ATIVO=”21″
SSH=”22″
SMTP=”25″
DNS=”53″
HTTP=”80″
SNMP=”161,162″
HTTPS=”443″
ORACLE=”1521″
RECEITA=”3456″
MSTSC=”4899″
HTTP_PROXY=”8080″
MON_ZABBIX=”10050,10051″
FWSSH=”65534″
echo Variaveis Carregadas! 166
################
# Habilitacoes #
################
# IP Forward
echo 1 > /proc/sys/net/ipv4/ip_forward
# Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Loga Marcianos – end. impossiveis
echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
# Disponibilizando maior quantidade de portos
echo 10000 65000 > /proc/sys/net/ipv4/ip_local_port_range
# Aumentando a memoria resevarda por conexao recebida/enviada
echo 256960 > /proc/sys/net/core/rmem_default
echo 256960 > /proc/sys/net/core/rmem_max
echo 256960 > /proc/sys/net/core/wmem_default
echo 256960 > /proc/sys/net/core/wmem_max
echo “4096 87380 4194304” > /proc/sys/net/ipv4/tcp_rmem
echo “4096 16384 4194304” > /proc/sys/net/ipv4/tcp_wmem
# Tempo para finalizar uma conexao fechada pelo host
echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout
# Número de testes antes de finalizar a conexao
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
# Habilita a reciclagem de conexões em TIME_WAIT para novas conexoes consideradas seguras pelo protocolo
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
# Ignora Broadcast de ICMP
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Bloqueia tentativa de burlar a conexao em uma interface especifica
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
# Modulos FTP
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
# Aumento de quantidade de requisicoes atendidas
echo 10000000 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
# Controle de Execucao
echo Habilitacoes concluidas! 222
############
# Flush all#
############
$iptables -F
$iptables -X
$iptables -Z
$iptables -F -t nat
# Controle de Execucao
echo Limpeza de regras executada! 234
####################
# Politicas Padrao #
####################
$iptables -P INPUT DROP
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD DROP
# Controle de Execucao
echo Politicas aplicadas! 245
#############################
# Conexoes ja Estabelecidas #
#############################
$iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
$iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
# Controle de Execucao
echo Manutencao de conexao aplicada! 255
##############
# IP´s Alias #
##############
ifconfig eth2:1 END_IP_ALIAS # Alias do Firewall
# Controle de Execucao
echo Alias Levantados! 264
############
# IP`s NAT #
############
ifconfig eth3:1 END_IP_NAT # Nat Administrativo // Rede
# Controle de Execucao
echo Enderecos NAT Levantados! 289
##########################
# Bloqueio IPs Suspeitos #
##########################
# Bloqueio Your Freedom
$iptables -A FORWARD -d 212.227.0.0/16 -j DROP
$iptables -A FORWARD -s 212.227.0.0/16 -j DROP
$iptables -A FORWARD -s 213.251.0.0/16 -j DROP
$iptables -A FORWARD -d 213.251.0.0/16 -j DROP
$iptables -A FORWARD -s 66.90.0.0/16 -j DROP
$iptables -A FORWARD -d 66.90.0.0/16 -j DROP
$iptables -A FORWARD -s 66.96.0.0/16 -j DROP
$iptables -A FORWARD -d 66.96.0.0/16 -j DROP
$iptables -A FORWARD -s 67.159.0.0/16 -j DROP
$iptables -A FORWARD -d 67.159.0.0/16 -j DROP
$iptables -A FORWARD -s 81.169.0.0/16 -j DROP
$iptables -A FORWARD -d 81.169.0.0/16 -j DROP
$iptables -A FORWARD -s 85.214.0.0/16 -j DROP
$iptables -A FORWARD -d 85.214.0.0/16 -j DROP
echo Your Freedom Bloqueado! 311
######################
# Liberacao Firewall #
######################
# Syn-Flood
#$iptables -N syn-flood
#$iptables -A INPUT -p tcp –syn -j syn-flood
#$iptables -A FORWARD -p tcp –syn -j syn-flood
#$iptables -A syn-flood -m limit –limit 35/s -j RETURN
#$iptables -A syn-flood -j DROP
# Log USERX – Um usuário suspeito na sua rede
$iptables -A FORWARD -s $USERX -j LOG –log-level debug –log-prefix “IPTABLES-FORWARD-USERX”
# Novos devem ser Syn
$iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP
# Anti Xmas
$iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
# Null mal formado
$iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
# Fragmentos
$iptables -A INPUT -f -j DROP
$iptables -A FORWARD -f -j DROP
# Pacotes Invalidos
$iptables -A INPUT -i eth0 -m state –state INVALID -j DROP
$iptables -A FORWARD -m state –state INVALID -j DROP
# MTU
$iptables -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –set-mss 1460
# Controle de ICMP
$iptables -A INPUT -p icmp -s $LAN -m limit –limit 10/s -j ACCEPT
$iptables -A INPUT -p icmp -s $DMZ -m limit –limit 10/s -j ACCEPT
$iptables -A INPUT -p icmp -s $SERV -m limit –limit 10/s -j ACCEPT
$iptables -A FORWARD -p icmp -s $LAN -m limit –limit 10/s -j ACCEPT
$iptables -A FORWARD -p icmp -s $DMZ -m limit –limit 10/s -j ACCEPT
$iptables -A FORWARD -p icmp -s $SERV -m limit –limit 10/s -j ACCEPT
# Acesso SSH
$iptables -A INPUT -p tcp -s $MAQ1 –dport $FWSSH -j ACCEPT
$iptables -A INPUT -p tcp -s $MAQ2 –dport $FWSSH -j ACCEPT
# Monitoracao Zabbix
$iptables -A FORWARD -p tcp -m multiport –dport $MON_ZABBIX -s $ZABBIX -j ACCEPT
# Monitoracao Cacti
$iptables -A INPUT -p udp -m multiport –dport $SNMP -s $CACTI -j ACCEPT
$iptables -A FORWARD -p udp -m multiport –dport $SNMP -s $CACTI -j ACCEPT
$iptables -A FORWARD -p udp -m multiport –dport $SNMP -d $CACTI -j ACCEPT
# Consulta DNS
$iptables -A INPUT -p udp -d $DNS1 –dport $DNS -j ACCEPT
$iptables -A INPUT -p udp -s $DNS1 –sport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -d $DNS1 –dport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -s $DNS1 –sport $DNS -j ACCEPT
$iptables -A INPUT -p udp -d $DNS2 –dport $DNS -j ACCEPT
$iptables -A INPUT -p udp -s $DNS2 –sport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -d $DNS2 –dport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -s $DNS2 –sport $DNS -j ACCEPT
$iptables -A INPUT -p udp -d $CORREIO_INT_DNS3 –dport $DNS -j ACCEPT
$iptables -A INPUT -p udp -s $CORREIO_INT_DNS3 –sport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -d $CORREIO_INT_DNS3 –dport $DNS -j ACCEPT
$iptables -A FORWARD -p udp -s $CORREIO_INT_DNS3 –sport $DNS -j ACCEPT
# Controle de Execucao
echo Liberacoes do Firewall aplicadas! 382
#############
# Redirects #
#############
# Redirect Relay
$iptables -t nat -A PREROUTING -p tcp -d $RELAY –dport $SMTP -j DNAT –to-destination $NRELAY:$SMTP
# Redirect proxy
$iptables -t nat -A PREROUTING -p tcp -d $FW_SEDE_USU_Eth1 –dport $HTTP_PROXY -j DNAT –to-destination $PROXY:$HTTP_PROXY
# Controle de Execucao
echo Redirects implementados! 798
###################
# Sistema de Logs #
###################
# Dados Bloqueados
$iptables -A INPUT -j LOG –log-level debug –log-prefix “IPTABLES-INPUT-DROP: ”
$iptables -A FORWARD -j LOG –log-level debug –log-prefix “IPTABLES-FORWARD-DROP: ”
# Controle de Execucao
echo “Log do que e descartado implementado!” 809
####################
# Mensagens finais #
####################
sleep 1
echo “Regras de Firewall Ativadas”
#OBS: As rotas se encontram no arquivo /etc/rotas
############# FIM #############
Instalação PHP 7.1 ou mais atual no Debian
** Devido a um bug no editor do WordPress quando digito – – junto, o que é o correto no prompt ele agrega para — portanto em todos os posts pode ser necessário essa correção em algum momento. Outro problema são as aspas duplas e simples que quando copiadas não são reconhecidas no linux.
Para isto existe o projeto sury.org . Para tanto execute os seguintes comandos como root:
apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg / https://packages.sury.org/php/apt.gpg
sh -c ‘echo “deb https://packages.sury.org/php/ $(lsb_release -sc) / main” > /etc/apt/sources.list.d/php.list’
apt-get update
Desta forma você terá a disposição a opção das versões mais novas de PHP no seu Debian. Caso não queira atualizar a versão é só comentar a linha no arquivo /etc/apt/sources.list.d/php.list .
Alterando o log do iptables para um arquivo separado
** Devido a um bug no editor do WordPress quando digito – – junto, o que é o correto no prompt ele agrega para — portanto em todos os posts pode ser necessário essa correção em algum momento. Outro problema são as aspas duplas e simples que quando copiadas não são reconhecidas no linux.
criar o arquivo:
vi /etc/rsyslog.d/iptables.conf
com o conteúdo:
:msg, contains, “IPTABLES-” -/var/log/iptables.log
& ~
reiniciar o serviço de log.
/etc/init.d/rsyslog restart
Transformar o script em binário
Sempre utilizei o programa shc (shell script compiler), mas o mesmo foi descontinuado. Como até o momento não encontrei alternativa melhor segue como utilizar ele.
Pré-requisitos:
apt-get install g++ gcc cpp
Comando:
shc -f script.sh
Exemplo de script de limpeza
#!/bin/bash
rm -f /home/gustavo/backup/*
rm -f /home/gustavo/restaura/*
rm -f /home/gustavo/.restaura/*
Exemplo de script de restauração de backup
#!/bin/bash
# Variaveis
servidor=`hostname`
dirbase=”/home/gustavo/backup”
# Seleciona o diretorio raiz como corrente
cd /
# Descriptografa o arquivo
unzip -P senha -q /home/gustavo/.restaura/$servidor-*.zip
# Descompacta os arquivos
tar -xzf $dirbase/$servidor-*.tgz -p -s
# Envia o arquivo para o administrador
cat /root/msg/b | mutt -s “Restaurado o Backup do FWSede” usuario@sua_organização -c chefe@sua_organização -b usuario2@sua_organização
# Limpa os arquivos
rm $dirbase/* -Rf
rm /home/gustavo/.restaura/$servidor-*.zip
Exemplo de Script de Backup
#!/bin/bash
# Variaveis
servidor=`hostname`
data=`date +%d-%m-%Y-%Hh%M`
tgz=`ls /home/gustavo/`
dirbase=”/home/gustavo/backup”
dirbase2=”/home/gustavo/.restauraR”
diriptable=”/etc/iptables/”
dirinterfaces=”/etc/network/”
dirrotas=”/etc/rotas/”
dircacti=”/etc/snmp/”
dircacti2=”/etc/default/”
diretc=”/etc/”
dirpostfix=”/etc/postfix/”
diriptable2=”/etc/rsyslog.d/”
dirsshh=”/etc/ssh/”
regras=”/etc/iptables/regras.sh”
interfaces=”/etc/network/interfaces”
rotas=”/etc/rotas/rotas.sh”
cacti=”/etc/snmp/snmpd.conf”
cacti2=”/etc/default/snmpd”
syslog=”/etc/rsyslog.conf”
postfix=”/etc/postfix/main.cf”
iptable2=”/etc/rsyslog.d/iptables.conf”
sshh=”/etc/ssh/sshd_config”
lista=”/etc/network/interfaces /etc/rotas/ /etc/iptables/ /etc/snmp/ /etc/default/ /etc/rsyslog.conf /etc/rsyslog.d/ /etc/init.d/firewall /etc/ssh/ /root/msg /etc/postfix/”
# descompacta o arquivo para comparacao
cd $dirbase2
unzip -P C4%iop0Z# $dirbase2/.regras-*.zip
unzip -P C4%iop0Z# $dirbase2/.interfaces-*.zip
unzip -P C4%iop0Z# $dirbase2/.rotas-*.zip
unzip -P C4%iop0Z# $dirbase2/.cacti-*.zip
unzip -P C4%iop0Z# $dirbase2/.cacti2-*.zip
unzip -P C4%iop0Z# $dirbase2/.syslog-*.zip
unzip -P C4%iop0Z# $dirbase2/.iptables-*.zip
unzip -P C4%iop0Z# $dirbase2/.ssh-*.zip
rm .regras-*.zip .interfaces-*.zip .rotas-*.zip .cacti-*.zip .cacti2-*.zip .syslog-*.zip .iptables-*.zip .ssh-*.zip
# copia o arquivo atual para comparacao futura
cd $diriptable
zip -r9 -P senha $dirbase2/.regras-$data.zip regras.sh
cd $dirinterfaces
zip -r9 -P senha $dirbase2/.interfaces-$data.zip interfaces
cd $dirrotas
zip -r9 -P senha $dirbase2/.rotas-$data.zip rotas.sh
cd $dircacti
zip -r9 -P senha $dirbase2/.cacti-$data.zip snmpd.conf
cd $dircacti2
zip -r9 -P senha $dirbase2/.cacti2-$data.zip snmpd
cd $diretc
zip -r9 -P senha $dirbase2/.syslog-$data.zip rsyslog.conf
cd $diriptable2
zip -r9 -P senha $dirbase2/.iptables-$data.zip iptables.conf
cd $dirsshh
zip -r9 -P senha $dirbase2/.ssh-$data.zip sshd_config
# Apaga o arquivo anterior
rm -Rf $dirbase/*
# Compara os arquivos
echo “Diferencas no arquivo de regras:” > $dirbase/mudancas.log
diff $regras $dirbase2/regras.sh >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de interfaces:” >> $dirbase/mudancas.log
diff $interfaces $dirbase2/interfaces >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de rotas:” >> $dirbase/mudancas.log
diff $rotas $dirbase2/rotas.sh >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de configuracao do cacti (primeiro):” >> $dirbase/mudancas.log
diff $cacti $dirbase2/snmpd.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de configuracao do cacti (segundo):” >> $dirbase/mudancas.log
diff $cacti2 $dirbase2/snmpd >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de syslog:” >> $dirbase/mudancas.log
diff $syslog $dirbase2/rsyslog.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de iptables:” >> $dirbase/mudancas.log
diff $iptable2 $dirbase2/iptables.conf >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Diferencas no arquivo de ssh:” >> $dirbase/mudancas.log
diff $sshh $dirbase2/sshd_config >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
# conta as linhas de arquivo
echo “Linhas do arquivo de regras anterior:” >> $dirbase/mudancas.log
cat $dirbase2/regras.sh | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de regras atual:” >> $dirbase/mudancas.log
cat $regras | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de interfaces anterior:” >> $dirbase/mudancas.log
cat $dirbase2/interfaces | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de interfaces atual:” >> $dirbase/mudancas.log
cat $interfaces | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de rotas anterior:” >> $dirbase/mudancas.log
cat $dirbase2/rotas.sh | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de rotas atual:” >> $dirbase/mudancas.log
cat $rotas | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (primeiro) anterior:” >> $dirbase/mudancas.log
cat $dirbase2/snmpd.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (primeiro) atual:” >> $dirbase/mudancas.log
cat $cacti | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (segundo) anterior:” >> $dirbase/mudancas.log
cat $dirbase2/snmpd | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de cacti (segundo) atual:” >> $dirbase/mudancas.log
cat $cacti2 | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de syslog anterior:” >> $dirbase/mudancas.log
cat $dirbase2/rsyslog.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de syslog atual:” >> $dirbase/mudancas.log
cat $syslog | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de iptables anterior:” >> $dirbase/mudancas.log
cat $dirbase2/iptables.conf | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de iptables atual:” >> $dirbase/mudancas.log
cat $iptable2 | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
echo “Linhas do arquivo de ssh anterior:” >> $dirbase/mudancas.log
cat $dirbase2/sshd_config | wc -l >> $dirbase/mudancas.log
echo “Linhas do arquivo de ssh atual:” >> $dirbase/mudancas.log
cat $sshh | wc -l >> $dirbase/mudancas.log
echo ” ” >> $dirbase/mudancas.log
# Apaga os arquivos comparados
cd $dirbase2
rm *.sh *.conf interfaces sshd_config snmpd
# Compacta os arquivos de configuracao no diretorio /home/gustavo
tar -czf $dirbase/$servidor-$data.tgz $lista -p -s
# Criptografa o arquivo
zip -r9 -P senha $dirbase/$servidor-$data.zip $dirbase/*.tgz
# Envia o arquivo para o administrador
cat $dirbase/mudancas.log | mutt -s “Backup FWSede” -a $dirbase/*.zip usuario@sua_organização -c chefe@sua_organização -b usuario2@sua_organização
rm $dirbase/mudancas.log
# Chama a funcao limpa
/sbin/limpa.sh
Shell Colorido
Mudar no arquivo .bashrc a linha:
export PS1=
para:
export PS1=’\[\033[01;31m\]\h: \[\033[01;34m\]\w \$ \[\033[00m\]’
Descobrir se o S.O. é 32bits ou 64bits
$ getconf LONG_BIT
Ferramentas pouco utilizadas mas bastante interessantes
bing – teste de banda
ifstat – estatística de throuput real time das interfaces
iftop – estatística de throuput real time + tráfego de origem/destino
nload – estatística de throuput real time das interfaces
jnettop – tráfego real time + possibilidade de filtros/análise + tráfego de origem/destino
apachetop – requisições + consumo de banda por requisição + qtde de banda do sítio
atop – top + real –> mesmo do dstat só que mais limpa a visualização
dstat – top mais leve
iotop – top de disco
iptstate – estado das conexões do iptables
htop – melhor top
psmisc – possui o killall
lfm – gerenciador de arquivos
Atualização de versão do GLPI
Instalação do GLPI no Debian com PHP 5
** Devido a um bug no editor do WordPress quando digito – – junto, o que é o correto no prompt ele agrega para — portanto em todos os posts pode ser necessário essa correção em algum momento. Outro problema são as aspas duplas e simples que quando copiadas não são reconhecidas no linux.
Incluir o repositório non-free na lista do Debian:
# echo “deb http://ftp.br.debian.org/