Script Automatizado para Configuração do vsftpd
O script a seguir automatiza a instalação e configuração do servidor FTP vsftpd no Red Hat Enterprise Linux 5. Ele desativa o SELinux, para o firewall, cria usuários virtuais e define permissões direcionadas para pastas específicas.
#!/bin/bash
# Script: config_vsftpd_auto.sh
# Descrição: Instala e configura vsftpd com usuários virtuais e pastas dedicadas
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH
LANG=pt_BR.UTF-8
# Desabilitar SELinux (necessário reinicializar para efeito permanente)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
# Parar firewall
systemctl stop firewalld 2>/dev/null || service iptables stop
# Instalar pacotes
yum install -y vsftpd db4-utils
# Criar diretório base e usuário do sistema
mkdir -p /srv/ftp_virtual
useradd -d /srv/ftp_virtual ftpvirtual -s /sbin/nologin
chmod 755 /srv/ftp_virtual
chown ftpvirtual:ftpvirtual /srv/ftp_virtual
# Arquivo com usuários e senhas (formato: usuario linha impar, senha linha par)
cat > /etc/vsftpd/login_db.txt <<FIM
user1
senha123
user2
outrasenha456
user3
senha789
FIM
# Gerar banco de dados Berkeley DB
cd /etc/vsftpd
db_load -T -t hash -f login_db.txt login_db.db
chmod 600 login_db.db
# Configurar PAM para autenticação personalizada
cat > /etc/pam.d/vsftpd_virtual <<FIM
auth required pam_userdb.so db=/etc/vsftpd/login_db
account required pam_userdb.so db=/etc/vsftpd/login_db
FIM
# Remover configuração existente e criar nova
rm -f /etc/vsftpd/vsftpd.conf
cat > /etc/vsftpd/vsftpd.conf <<CONF
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd_virtual
user_config_dir=/etc/vsftpd/conf_usuarios
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=ftpvirtual
CONF
# Criar diretório de configurações individuais
mkdir -p /etc/vsftpd/conf_usuarios
# Configurar pastas para cada usuário virtual
for user in user1 user2 user3; do
mkdir -p /data/${user}
chown ftpvirtual:ftpvirtual /data/${user}
cat > /etc/vsftpd/conf_usuarios/${user} <<CFG
local_root=/data/${user}
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
CFG
done
# Reiniciar serviço
systemctl restart vsftpd 2>/dev/null || service vsftpd restart
echo "Configuração concluída. Usuários: user1, user2, user3"
Transferência de Arquivos com scp
O comando scp (Secure Copy) permite copiar arquivos entre máquinas de forma segura utilizando SSH. Abaixo exemplos práticos:
- Enviar arquivo local para servidor remoto:```
scp -rp /caminho/local/arquivo.txt usuario@servidor:/caminho/remoto/
- Baixar arquivo do servidro remoto:```
scp -rp usuario@servidor:/caminho/remoto/arquivo.txt /caminho/local/
- Copiar diretório inteiro recursivamente:```
scp -r root@192.168.1.10:/opt/aplicacao/dados/ /opt/aplicacao/backup/
Proxy via SSH (Túnel Dinâmico)
Redirecione o tráfego da rede local através de um servidor SSH. Útil para contornar restrições de firewall ou acessar conteúdo bloqueado.
PuTTY (Windows)
- Abra as configurações de sessão.
- Vá em Conexão > SSH > Túneis.
- Defina a porta de origem (ex: 8888) e selecione Dinâmico.
- Clique em Adicionar e conecte-se ao servidor.
SecureCRT (Windows)
- Conecte-se via SSH.
- Acesse Opções > Opções da Sessão.
- Navegue até Encaminhamento de Porta.
- Adicione uma regra de encaminhamento dinâmico na porta 8888.
Após configurar, ajuste o navegador para usar o proxy 127.0.0.1:8888 (SOCKS v5).
Controle de Acesso ao FTP com userlist
Para restringir quais usuários do sistema podem acessar o FTP, utilize o arquivo /etc/vsftpd/user_list.
- Edite o arquivo de configuração: ```
vi /etc/vsftpd/vsftpd.conf
Adicione as linhas: ``` userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list - Reinicie o serviço: ```
service vsftpd restart
- Adicione os usuários permitidos ao arquivo: ```
echo "usuario_permitido" >> /etc/vsftpd/user_list
Habilitando o Telnet
O Telnet deve ser usado com cautela por não ser criptografado. No RHEL 5, é gerenciado pelo xinetd.
Passo a passo
- Verifique se o pacote está instalado: ```
rpm -qa | grep telnet
- Edite o arquivo do serviço: ```
vi /etc/xinetd.d/krb5-telnet
Altere `disable = yes` para `disable = no`. - Reinicie o xinetd: ```
service xinetd restart
- Para permitir login como root, comente a linha no PAM: ```
vi /etc/pam.d/login
auth required pam_securetty.so
- Adicione terminais virtuais ao
/etc/securetty: ``` pts/1 pts/2 pts/3
Configuração do VNC
O VNC permite acesso remoto à interface gráfica do Linux. Siga os passos para habilitar no RHEL 5.
Iniciar o servidor VNC
vncserver :1
Na primeira execução, defina uma senha (mínimo 6 caracteres).
Configurar para iniciar automaticamente
chkconfig --level 35 vncserver on
Ativar a interface gráfica (GNOME)
Edite o arquivo /root/.vnc/xstartup:
unset SESSION_MANAGER
gnome-session &
Comente a linha twm & se existir.
Ajustar configurações do sistema
Edite /etc/sysconfig/vncservers:
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -depth 16"
Liberar porta no firewall
Para o display :1, libere a porta 5901 (5900 + número do display).
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
service iptables save
Conectar via cliente VNC
Utilize um cliente como RealVNC ou TightVNC e conecte-se a servidor:1.
Gerenciamento de processos
- Listar sessões ativas: ```
ps -ef | grep vnc
- Parar uma sessão: ```
vncserver -kill :1
- Verificar porta ocupada: ```
netstat -atpln | grep 5901