melhores praticas para implementar appserver webspeed
TRANSCRIPT
Melhores Práticas para Implementar o AppServer™ e o WebSpeed™
Roberto Oltman
© 2007 Progress Software Corporation2 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation3 COMP-11: Best practices for Deploying AppServer and WebSpeed
Arquitetura Genérica do OpenEdge® Server
OpenEdge Server Host
AdminServer
ubroker.properties
Progress Explorerou
Utilitários de Gerenciamento
Editor de Textos,MERGEPROP
ouUtilitários deConfiguração
NameServer
OpenEdgeServerBroker
ClientProcess
OpenEdgeServer
Agents/Servers
© 2007 Progress Software Corporation4 COMP-11: Best practices for Deploying AppServer and WebSpeed
Arquitetura do WebSpeed OpenEdge Server
OpenEdge Server Host
AdminServer
ubroker.properties
Progress Explorerou
Utilitários de Gerenciamento
NameServer
WebSpeedBroker
WebSpeedMessenger
WebSpeedAgents
Editor de Textos,MERGEPROP
ouUtilitários deConfiguração
© 2007 Progress Software Corporation5 COMP-11: Best practices for Deploying AppServer and WebSpeed
Arquitetura do AppServer OpenEdge Server
OpenEdge Server Host
AdminServer
ubroker.properties
Progress Explorerou
Utilitários de Gerenciamento
NameServer
AppServerBroker
AppServerServers
Any Client,AIA,AIA/Sor WSA
Editor de Textos,MERGEPROP
ouUtilitários deConfiguração
© 2007 Progress Software Corporation6 COMP-11: Best practices for Deploying AppServer and WebSpeed
“Round Trip” Padrão para uma Solicitação
NameServer
Broker
Agentsor
Servers
Client
Etapa 0
Etapa 1
Etapa 2
Etapa 3
Etapa 4
Etapa 5
Etapa 6
© 2007 Progress Software Corporation7 COMP-11: Best practices for Deploying AppServer and WebSpeed
“Round Trip” Comum para uma Solicitação
Etapa 0: O Broker envia detalhes ao NameServerEtapa 1: O Client solicita um serviço do NameServerEtapa 2: O NameServer responde com detalhes do
BrokerEtapa 3: O Client conecta-se ao Broker e solicita um
Server para atender a solicitaçãoEtapa 4: O Broker responde com o detalhes do ServerEtapa 5: O Client conecta-se ao Server e passa
informações sobre a solicitaçãoEtapa 6: O Server envia a resposta
© 2007 Progress Software Corporation8 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation9 COMP-11: Best practices for Deploying AppServer and WebSpeed
Exemplos de Implementação –Desenvolvimento
Servidor de Desenv.
Database
Web.PL & .R
Common.PL & .R
AppServ.PL & .R
WebSpeed
AppServer
WebServer &
WebSpeedMessenger
DevTools
PC do Desenvolvedor
© 2007 Progress Software Corporation10 COMP-11: Best practices for Deploying AppServer and WebSpeed
Exemplos de Implementação – Intranet de Produção
Servidor de Produção
Database
Web.PL
Common.PL
AppServ.PL
WebSpeed
AppServer
WebServer &
WebSpeedMessenger
GUI/CharClient orBrowser
PC do Usuário
© 2007 Progress Software Corporation11 COMP-11: Best practices for Deploying AppServer and WebSpeed
Exemplos de Implementação – Internet de Produção
Web ServerInternetInternet
WebSpeedMessenger
WebSpeedBroker
InternetNameServer
WebSpeedAgents
Protocolo: UDPProtocolo: TCP
DMZ Rede Interna
© 2007 Progress Software Corporation12 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation13 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede
A razão para se ter segurança de rede émanter os intrusos do lado de fora e ainda assim permitir acesso a partir da internet públicaOs dados trafegados pela internet podem precisar de proteção para evitar que sejam lidos e/ou modificadosLembre-se que nada é 100% seguro e tudo que podemos fazer é tornar o mais difícil possível a quebra da segurança
© 2007 Progress Software Corporation14 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede – Patrulha de Fronteiras
A primeira linha de defesa é o Firewall
Firewalls
© 2007 Progress Software Corporation15 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede – SSL
SSL (Secure Socket Layer) – um protocolo para criptografar o tráfego TCP/IP de uma redeUsado corretamente, toda a comunicação entre o cliente e o servidor serão criptografadas e não poderão ser quebradas*Geralmente usado em Web sites que pedem dados de cartão de crédito aos usuáriosO SSL diminuirá a performance devido ao overhead para criptografar e descriptografar
* Em um tempo razoável – Qualquer criptografia pode ser quebrada, apenas depende quanto tempo você quer esperar!
© 2007 Progress Software Corporation16 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede – Específico ao Progress
Somente instale o AIA, AIA/S, WSA ou WebSpeed Messenger em uma máquina da DMZNão use as portas ou “nomes” padrão para o Name Server, Broker e Agents/Servers• Exclua o WSBROKER1, ASBROKER1, NS1, etc• Re-crie os brokers apropriados usando portas
não-padrão• Por exemplo, não use a porta 5162 para o Name
Server e não o chame de NS1
© 2007 Progress Software Corporation17 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede – Específico ao Progress (cont)
Se precisar do WebSpeed Messenger, AIA ou WSA acesse a páginawww.progress.com/openedge/support e click em “download” no canto inferior direitoUtilize seu login ESD ou use a opção de registro para o download de “Deployment Components”
© 2007 Progress Software Corporation18 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Rede – Específico ao Progress (cont)
Esses componentes fazem parte da mídiaOpenEdge, portanto utilize os códigos de controle e número serial do Download Centercaso já possua o CD (ou imagem de CD) daplataforma requerida
© 2007 Progress Software Corporation19 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation20 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Máquina
Limite o acesso físico a máquinaMinimize o número de serviços em execuçãoTroque o userid do root/administrator paraevitar que as pessoas tentem adivinhar o login id• Windows 2000
http://support.microsoft.com/kb/320053• Windows 2003
http://support.microsoft.com/kb/816109• Windows XP
http://support.microsoft.com/kb/555441
© 2007 Progress Software Corporation21 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança de Máquina (cont)
Implemente rotinas de segurança de senhaque forcem a troca regular e obriguem o usode “senhas fortes” (alfa-numérica)Verifique frequentemente nas logs as tentativas de acesso não autorizado (Firewall, servidor DMZ e servidor interno)
Aplique os patches dos fornecedores (apóstestes de validação)Crie usuários e grupos com acesso limitadono sistema operacional aos diretórios do Progress e da aplicação
© 2007 Progress Software Corporation22 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation23 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico
Remova do diretório DLC os arquivos .R e .PL que não forem necessários para executarsua aplicaçãoRemova os comandos proDebugEnable, _debugEnable, proDebugConfig e _debugConfig do diretório DLC/bin da suamáquina de produçãoUtilize SSL com o OpenEdge 10 para as comunicações entre os componetes Progress
© 2007 Progress Software Corporation24 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Este diagrama fazparte do manual Core Business Services do OpenEdge 10.1B e mostra o fluxo de comunicação do ambienteOpenEdge quepode ser protegidocom o protocoloSSL
© 2007 Progress Software Corporation25 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Mude o usuário “proprietário” do Broker
© 2007 Progress Software Corporation26 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Use o AdminServerPlugins.properties paraesconder o AdminPort do comando “ps -ef”
## Policy for the AdminServer itself.# This group is processed by both the jvmStart tool# and the AdminServer bootstrap. ...# The following additional properties are allowed for this group only:# port - port where the AdminServer process resides# adminport - Communication port between the AdminServer and databases#[PluginPolicy.Progress.AdminServer]classpath=C:\DLC101B/java/ext/jmxri.jar, ...jvmargs=pluginclasspath=!{value-of:classpath}
© 2007 Progress Software Corporation27 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Use requireusername e admingrouppara carregar o AdminServer
>proadsv -start -requireusername -admingroup AdministratorsOpenEdge Release 10.1B as of Wed Jan 10 12:21:31 EST 2007
>wtbman -start -name Exchange2007OpenEdge Release 10.1B as of Wed Jan 10 12:21:31 EST 2007
Connecting to Progress AdminServer using rmi://localhost:20931/Chimera (8280)Searching for Exchange2007 (8288)Connecting to Exchange2007 (8276)User not authenticated (8304)
© 2007 Progress Software Corporation28 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Renomeie os arquivos WSA e AIA para tirá-los da URL. Fica mais complicado para oshackers descobrirem quem você é…WSA e AIA• Renomeie os diretórios para mudá-los de
WSA ou AIA• Modifique o arquivo WEB.XML de acordo
© 2007 Progress Software Corporation29 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – Genérico (cont)
Renomeie o arquivo WebSpeed Messenger para tirá-lo da URL. Fica mais complicadopara os hackers descobrirem quem você é…WebSpeed Messenger• Windows, veja o arquivo cgiip.wsc em
C:\inetpub\scripts para informações (não use .wsc, escolha outra extensão)
• Unix/Linux, simplesmente renomeie o script de exemplo do messenger wspd_cgi.sh
© 2007 Progress Software Corporation30 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – AppServer
Faça o Broker AppServer rodar sem DEBUG
© 2007 Progress Software Corporation31 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – WebSpeed
Faça o Broker WebSpeed rodar no modo de PRODUÇÃO
© 2007 Progress Software Corporation32 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – WebSpeed (cont)
Faça o Broker WebSpeed rodar sem DEBUG
© 2007 Progress Software Corporation33 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – WebSpeed (cont)
.../* Output any pending messages */
IF available-messages(?) THENoutput-messages("all", ?, "Messages:").
IF CAN-DO ("text/html*,text/x-server-parsed-html*",output-content-type) THEN
{&OUT} "~n~n<!-- Generated by Webspeed:http://www.webspeed.com/ -->~n":U.
OUTPUT {&WEBSTREAM} CLOSE....
Remova a mensagem “Generated by Webspeed” (OE10)
© 2007 Progress Software Corporation34 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – WebSpeed (cont)
Minimize o acesso a ferramenta de adminstração do WebSpeed Messenger
© 2007 Progress Software Corporation35 COMP-11: Best practices for Deploying AppServer and WebSpeed
Infraestrutura Progress – WebServices Adapter
Minimize o acesso a ferramenta de administração do WebServices Adapter
© 2007 Progress Software Corporation36 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation37 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – Genérico
Use RCODEKEY e DBAUTHKEY para limitarquais .R’s podem rodar contra o banco de dadosObjeto CLIENT-PRINCIPALPrograme “defensivamente”• Certifique-se que as falhas ocorram de forma
segura• Nunca aceite parâmetros de um usuário sem
verificação
© 2007 Progress Software Corporation38 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – WebSpeed
Modifique o WEB-DISP.P para:• Verifique usando o user-id e limite acesso a
programas• Certifique-se de que eles estejam “logados”• Remova o acesso ao DEBUG, PING e RESET
Passe parâmetros de forma criptografadaReconecte ao banco de dados se não estiverconectado
© 2007 Progress Software Corporation39 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – WebSpeed (cont)
...AppProgram = (IF AppProgram = "debug":U THEN
"webutil/debug.p":U ELSE(IF AppProgram = "ping":U THEN
"webutil/ping.p":U ELSE(IF AppProgram = "reset":U THEN
"webutil/reset.p":U ELSEAppProgram))).
RUN run-web-object IN web-utilities-hdl(AppProgram) NO-ERROR.
...
Código WEB-DISP.P antigo
© 2007 Progress Software Corporation40 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – WebSpeed (cont)
...vGUID = get-field ("GUID").find first tState where tState.GUIDField = vGUID.if not available tStatethen AppProgram = "logon.r".else
if not can-find(tProgs where tProgs.UsersID = tState.UsersID
and tProgs.ProgID = AppProgram)then AppProgram = "invalidprogram.r".
RUN run-web-object IN web-utilities-hdl(AppProgram) NO-ERROR.
...
Código SECURE-WEB-DISP.P novo
© 2007 Progress Software Corporation41 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – AppServer
Use as procedures CONNECT ou STARTUP para “setar” os programas disponíveis aousuário via o método EXPORT do SESSION handle
© 2007 Progress Software Corporation42 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – AppServer (cont)
DEFINE VARIABLE hAppSrv AS HANDLE NO-UNDO.DEFINE VARIABLE lOK AS LOGICAL NO-UNDO.CREATE SERVER hAppSrv.lOK = hAppSrv:CONNECT ("-AppService inventory",
"FRED","MYPASSWORD").
...RUN XXX.P ON hAppSrv....hAppSrv:DISCONNECT () NO-ERROR.DELETE OBJECT hAppSrv NO-ERROR.
Código Cliente para coxenão com o AppServer
© 2007 Progress Software Corporation43 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança da Aplicação – AppServer (cont)
DEFINE INPUT PARAMETER pUserID AS CHARACTER.DEFINE INPUT PARAMETER pPassWd AS CHARACTER.DEFINE INPUT PARAMETER pASInfo AS CHARACTER.
find first tUsers where tUsers.UsersID = pUserIDand tUsers.PassWd = pPassWd
no-lock no-error.if available tUsersthen
SESSION:EXPORT (tUsers.AllowedProgsList).else
RETURN ERROR "Invalid UserId and/or Password".
Código Servidor em CONNECT.P
© 2007 Progress Software Corporation44 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation45 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança do Banco de Dados
Esta é a última linha de defesaPreferencialmente as outras técnicasconseguiram impedir o acesso de intrusos
© 2007 Progress Software Corporation46 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança do Banco de Dados (cont)
Criptografia• Campos individuais via a função ENCRYPT• O banco de dados inteiro via o sistema de
arquivos do sistema operacional– Linux – dm-crypt e outros– Solaris – zfs (um dia)– IBM – Referência não encontrada– HP – Referência não encontrada– Windows – Muitas soluções
• Dispositivos de Hardware– Seagate Momentus® 5400 FDE.2
© 2007 Progress Software Corporation47 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança do Banco de Dados (cont)
CAN-READ, CAN-WRITE, etc• Segurança em tempo de compilação• Queries dinâmicas podem tentar user estes
campos e causar algum problemaDesabilite o “Blank” userid (usuário em branco)Aplique permissões do sistema de arquivos aosarquivos do banco de dados para minimizar o risco de acesso direto pelos usuários
© 2007 Progress Software Corporation48 COMP-11: Best practices for Deploying AppServer and WebSpeed
Segurança do Banco de Dados (cont)
Se não for necessário, não instale os recursosde SQL-92 do banco de dadosConfigure através do comando GRANT a sugurança SQL-92 para minimizar os acessovia ODBC/JDBC• GRANT SELECT ON customer TO dbuser2;
© 2007 Progress Software Corporation49 COMP-11: Best practices for Deploying AppServer and WebSpeed
Agenda
Componentes do AppServer e do WebSpeedExemplos de implementaçãoSegurança• Rede• Máquinas• Infraestrutura Progress• Aplicação• Banco de Dados
Sumário
© 2007 Progress Software Corporation50 COMP-11: Best practices for Deploying AppServer and WebSpeed
Em Resumo
Sempre implemente acessos a Internet ouExtranet usando Firewalls e DMZProteja suas máquinas, aplicação e redeDesligue o Desenvolvimento no WebSpeed
© 2007 Progress Software Corporation51 COMP-11: Best practices for Deploying AppServer and WebSpeed
Perguntas?
© 2007 Progress Software Corporation52 COMP-11: Best practices for Deploying AppServer and WebSpeed
Conteúdo Relevante no PSDN
INT-10: Understanding the AppServer, Inside-out
COMP-1: Securing your web application against hackers
DB-14: OpenEdge Database Run-TimeSecurity Revealed
DEV-4: OpenEdge in an LDAP World
© 2007 Progress Software Corporation53 COMP-11: Best practices for Deploying AppServer and WebSpeed
Para Mais Informações, acesse…
Documentação:• OpenEdge Getting Started: Core Business
Services– Security and authentication
• OpenEdge Revealed – Achieving Server Control with Fathom Management
• OpenEdge Application Server: Administration
© 2007 Progress Software Corporation54 COMP-11: Best practices for Deploying AppServer and WebSpeed
Para Mais Informações, acesse…
Progress Software Knowledgebase• 19533 – Running WebSpeed in Production Mode• P22658 – The new DATABASES environment
variable for WebSpeed
© 2007 Progress Software Corporation55 COMP-11: Best practices for Deploying AppServer and WebSpeed
Obrigado pelaatenção