O sistema operacional Linux oferece várias ferramentas para gerenciamento e edição de arquivos, neste artigo mostram como usar alguns comandos para substituir uma ou mais palavras em um arquivo de texto. Um comando bastante útil quando você precisa substituir uma ou mais palavras em alguns arquivos é este:
sed -i 's/parola1/parola2/g' *.txt
desta forma será substituído por word1 word2em todos os arquivos de texto no diretório atual.
Mas se tivéssemos que fazer isso também substituir os arquivos em algumas pastas, então sob o comando torna-se:
find ./ -type f -exec sed -i 's/parola1/parola2/g' '{}' \;
neste caso, eu fiz sem o filtro do tipo de arquivo .txt e depois serão levados em conta todos os arquivos no diretório atual e seus subdiretórios.
Com o comando find que foi utilizado o “-exec” que permite executar um comando de cada vez que um arquivo é encontrado, que respeite as regras estabelecidas para a pesquisa. No caso anterior, a pesquisa inclui todos os elementos de “file” tipo e excluir os diretórios. Tudo está coberto por “-exec” é o comando a ser executado e seus parâmetros, para o caractere “;” indicando o final da cadeia de comando. Outro elemento-chave é o símbolo “{}“Indica que o nome real do arquivo e descobriu que, desta forma ser usado como um parâmetro do comando que deseja executar. No comando anterior chaves” {} “foram listadas e no final de comando é precedido de uma barra “\” para proteger esses símbolos de ‘expansão shell. O comando é executado no diretório de partida, então se o comando digitado necessita de uma saída deve ser levado em conta.
Conselho a buscar em primeiro lugar a palavra, só para ver o que será encontrado e substituído:
find ./ -type f -exec grep -r "parola1" '{}' \;
Ou você pode usar o comando:
find ./ -type f -print0 | xargs -0 grep "parola1"
desta forma irá exibir todas as linhas que contêm a string.
Em particular, a directiva tem sido usado “-print0” que permite a saída do nome completo terminada por um caractere nulo. Desta forma, o string produzida pode ser interpretado corretamente pelo programa a seguir. Na verdade, a saída do findestá conectada com um tubo para xargs comando cujo parâmetro “-0” indica que os nomes dos arquivos recebidos como um fim de entrada com um caractere nulo.
O comando “xargs” é responsável por receber os nomes dos arquivos e executar o comando ” grep “, que por sua vez usa os parâmetros passados para xargs.
Se você só quer ver exibido o nome do arquivo que a contém, o comando é:
O parâmetro “-l” indica que temos como saída uma lista de nomes de arquivos, mas não as linhas, foram encontrados nos jogos.
Faço notar que em todos os comandos listados tem sido sugerido que a pesquisa para acontecer no diretório atual e todos os seus sub-diretórios, mas se quisermos olhar para qualquer diretório que você deve inserir o caminho (relativo ou absoluto):
find /home/user/ -type f | xargs grep -l "parola1"
Finalmente, se não fosse necessário o uso de parâmetros complexos para a busca de arquivos e deseja apenas pesquisa recursivamente uma palavra ou frase dentro dos arquivos em subdiretórios múltiplas, muito mais simples basta usar o comando grep com o “-r ”
grep “this text” *.php -rDesta forma ele vai olhar para a string “este texto” em todos os arquivos. “Php” no diretório atual e todos os seus subdiretórios.
Download feito, mídia queimada, vamos à instalação.
Após o boot, essa é a primeira tela, que se você estiver de bobeira nem vai ver, pois ela só é exibida por 5 segundos, dá um Enter ou deixa rolar.
Sabe aqueles termos que ninguém lê…
Install…
Escolha o teclado e “S” ou navegue até o Select com o Tab.
Eu não vi nenhuma necessidade de particionamento diferenciado, então eu fui de Auto mesmo.
E aguarde a cópia dos arquivos e a instalação.
Caso seja necessária alguma configuração adicional via shell (prompt) selecione Y, no meu caso, fui de N.
Será necessário reiniciar o sistema.
Instalação concluída! Agora vamos começar as configurações. Ao reiniciar, ele vai procurar pelas placas de rede e é imprescindível que o sistema as encontre, dando tudo certo, ele vai te mostrar as interfaces válidas e te perguntar se quer criar uma VLan, no meu caso não é necessário (acredito que no seu também não) então N.
É possível ver que ele deu um nome qualquer para as duas interfaces de rede e mostrou o status de ambas (down, pq estão desconectadas). Após decidir sobre a VLan, você deve dizer quem vai ser a sua Wan e Lan.
Confirmado, as interfaces vão tentar pegar IP e agora você tem a tela de boas vindas do pfSense.
Não vou explicar as opções, (elas são bem diretas) vou só deixar uma observação no que diz respeito as interfaces. É possível na opção 2) Set interfaces IP address configurar o IP das interfaces pelo shell mesmo, mas resolvi fazer isso pela interface web.
Para acessar a interface web, basta entrar com o ip da Lan no navegador de um computador que esteja nessa rede. O login default é: admin e a senha pfsense.
Ao acessar pela primeira vez, temos um assistente para as primeiras configurações.
O passo 1 é sobre o suporte que é oferecido, você pode ler mais sobre isso ou clicar em Next.
Passo 2: você pode configurar um nome, um domínio e DNS.
Passo 3: ele já vem configurado com um servidor de tempo, mas eu preferi usar o a.ntp.br, a timezone você vai trocar para uma mais adequada com sua região.
Passo 4: configurar a Wan.
Passo 5: Configurar a Lan.
Passo 6: redefinir a senha do administrador.
Clique em Reload.
Clique para continuar no pfSense WebConfigurator.
Pronto, aí está o Dashboard do pfsense.
Observações: Configurando um IP público e DNS na Wan, o interno na Lan, basta você configurar o IP da Lan do pfSense como gateway do seu cliente que ele já conseguirá navegar na internet. Se você for em: Firewall/Rules/LAN, verá que já existem duas regras default (IPv4 e v6) permitindo o todo o tráfego pela LAN.
Tive um contratempo com resolução de nomes em alguns sites então depois de muito pesquisar, testar e errar até acertar, consegui resolver da seguinte forma:
1. Vá na aba Services/ DNS Resolver e desmarque esta opção.
2. Vá na aba Services/DNS Fowarder, marque esta opção e em Interfaces selecione LAN.
3. Caso use o DNS do Windows, vá nas propriedades do seu servidor DNS/Encaminhadores e defina a LAN do pfSense como um encaminhador.
FTPS, or encrypted FTP, is not affected. The proxy could not have affected its traffic before.
A client on a LAN or other internal interface behind a pfSense firewall will likely not notice any difference. Most clients, aside from the Microsoft command line FTP program, default to passive (PASV) FTP, where clients make outbound connections to servers.
Passive mode on the client will require access to random/high ports outbound, which could run afoul of a strict outbound ruleset. Environments with a security policy that requires strict outbound firewall rules likely would not be using FTP anyhow, as it transmits credentials without encryption.
Active mode FTP through NAT will not function as that relies on a proxy or similar mechanism. Use Passive mode instead. Another option is the recently added FTP Client Proxy package which leverages in FreeBSD to allow clients on local interfaces to reach remote FTP servers with active FTP.
Active mode FTP for a client that does not involve NAT (Client has a public IP address) should work so long as WAN rules pass the appropriate traffic back to the client. The client may have a configurable active port range to make that simpler.
Server Behind pfSense
FTPS, or encrypted FTP, is not affected. The proxy could not have affected its traffic before.
A server behind pfSense would work fine with active mode, there would be no difference here. In active mode the server would make outbound connections back to the client, so as long as the firewall rules on the interface containing the server allow outbound connections, it will work.
A server behind pfSense running in Passive mode will function but requires a few items to be configured:
Port forwards or 1:1 NAT to forward not only port 21, but also the passive port range in to the server
The passive port range must be configured on the server, corresponding to the range of ports forwarded in the previous step.
The server may also need to be configured to account for NAT. Some clients will ignore private addresses in passive responses so this may not be necessary.
Sample Configuration for vsftpd
In vsftpd.conf:
# Do not allow the client to use PORT
port_enable=NO
# Use the hostname in the PASV response (DNS must be setup and match!)
pasv_addr_resolve=YES
# Enable Passive Mode
pasv_enable=YES
# Set the passive port range (1000 ports)
pasv_min_port=20000
pasv_max_port=20999