Sei sulla pagina 1di 55

Melhores Prticas para Implementar o AppServer e o WebSpeed

Roberto Oltman

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
2
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Arquitetura Genrica do OpenEdge Server


OpenEdge Server Host AdminServer Client Process Name Server Progress Explorer ou Utilitrios de Gerenciamento

ubroker.properties

OpenEdge Server Broker OpenEdge Server Agents/Servers

Editor de Textos, MERGEPROP ou Utilitrios de Configurao

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Arquitetura do WebSpeed OpenEdge Server


OpenEdge Server Host AdminServer WebSpeed Messenger Name Server Progress Explorer ou Utilitrios de Gerenciamento

ubroker.properties

WebSpeed Broker

WebSpeed Agents

Editor de Textos, MERGEPROP ou Utilitrios de Configurao

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Arquitetura do AppServer OpenEdge Server


OpenEdge Server Host AdminServer Any Client, AIA,AIA/S or WSA Name Server Progress Explorer ou Utilitrios de Gerenciamento

ubroker.properties

AppServer Broker

AppServer Servers

Editor de Textos, MERGEPROP ou Utilitrios de Configurao

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Round Trip Padro para uma Solicitao


Name Server Etapa 0

Etapa 1 Etapa 2

Client

Etapa 3 Etapa 4 Etapa 5 Etapa 6 Agents or Servers Broker

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Round Trip Comum para uma Solicitao



7

Etapa 0: O Broker envia detalhes ao NameServer Etapa 1: O Client solicita um servio do NameServer Etapa 2: O NameServer responde com detalhes do Broker Etapa 3: O Client conecta-se ao Broker e solicita um Server para atender a solicitao Etapa 4: O Broker responde com o detalhes do Server Etapa 5: O Client conecta-se ao Server e passa informaes sobre a solicitao Etapa 6: O Server envia a resposta

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
8
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Exemplos de Implementao Desenvolvimento


Servidor de Desenv.
Web Server & WebSpeed Messenger PC do Desenvolvedor Dev Tools WebSpeed AppServer Common .PL & .R AppServ .PL & .R Database

Web .PL & .R

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Exemplos de Implementao Intranet de Produo


Servidor de Produo
Web Server & WebSpeed Messenger PC do Usurio GUI/Char Client or Browser WebSpeed AppServer Common .PL AppServ .PL Database

Web .PL

10

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Exemplos de Implementao Internet de Produo


DMZ Rede Interna Internet Name Server Internet Internet Web Server WebSpeed Messenger WebSpeed Broker WebSpeed Agents Protocolo: TCP Protocolo: UDP

11

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
12
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana de Rede

A razo para se ter segurana de rede


manter os intrusos do lado de fora e ainda assim permitir acesso a partir da internet pblica Os dados trafegados pela internet podem precisar de proteo para evitar que sejam lidos e/ou modificados Lembre-se que nada 100% seguro e tudo que podemos fazer tornar o mais difcil possvel a quebra da segurana

13

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana de Rede Patrulha de Fronteiras

A primeira linha de defesa o Firewall

Firewalls

14

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana de Rede SSL

SSL (Secure Socket Layer) um protocolo


para criptografar o trfego TCP/IP de uma rede Usado corretamente, toda a comunicao entre o cliente e o servidor sero criptografadas e no podero ser quebradas* Geralmente usado em Web sites que pedem dados de carto de crdito aos usurios O SSL diminuir a performance devido ao overhead para criptografar e descriptografar
2007 Progress Software Corporation

* Em um tempo razovel Qualquer criptografia pode ser quebrada, apenas depende quanto tempo voc quer esperar! 15
COMP-11: Best practices for Deploying AppServer and WebSpeed

Segurana de Rede Especfico ao Progress

Somente instale o AIA, AIA/S, WSA ou


WebSpeed Messenger em uma mquina da DMZ No use as portas ou nomes padro para o Name Server, Broker e Agents/Servers
Exclua o WSBROKER1, ASBROKER1, NS1, etc Re-crie os brokers apropriados usando portas no-padro Por exemplo, no use a porta 5162 para o Name Server e no o chame de NS1
16
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana de Rede Especfico ao Progress


(cont)

Se precisar do WebSpeed Messenger, AIA


ou WSA acesse a pgina www.progress.com/openedge/support e click em download no canto inferior direito Utilize seu login ESD ou use a opo de registro para o download de Deployment Components

17

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana de Rede Especfico ao Progress


(cont)

Esses componentes fazem parte da mdia


OpenEdge, portanto utilize os cdigos de controle e nmero serial do Download Center caso j possua o CD (ou imagem de CD) da plataforma requerida

18

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
19
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana de Mquina

Limite o acesso fsico a mquina Minimize o nmero de servios em execuo Troque o userid do root/administrator para
evitar 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
20
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana de Mquina (cont)

Implemente rotinas de segurana de senha


que forcem a troca regular e obriguem o uso de senhas fortes (alfa-numrica) Verifique frequentemente nas logs as tentativas de acesso no autorizado (Firewall,
servidor DMZ e servidor interno)

Aplique os patches dos fornecedores (aps


21

testes de validao) Crie usurios e grupos com acesso limitado no sistema operacional aos diretrios do Progress e da aplicao
2007 Progress Software Corporation

COMP-11: Best practices for Deploying AppServer and WebSpeed

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
22
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Infraestrutura Progress Genrico

Remova do diretrio DLC os arquivos .R e


.PL que no forem necessrios para executar sua aplicao Remova os comandos proDebugEnable, _debugEnable, proDebugConfig e _debugConfig do diretrio DLC/bin da sua mquina de produo Utilize SSL com o OpenEdge 10 para as comunicaes entre os componetes Progress

23

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)



Este diagrama faz parte do manual Core Business Services do OpenEdge 10.1B e mostra o fluxo de comunicao do ambiente OpenEdge que pode ser protegido com o protocolo SSL

24

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)

Mude o usurio proprietrio do Broker

25

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)

Use o AdminServerPlugins.properties para


esconder 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}

26

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)

Use requireusername e admingroup


para carregar o AdminServer
>proadsv -start -requireusername -admingroup Administrators OpenEdge Release 10.1B as of Wed Jan 10 12:21:31 EST 2007 >wtbman -start -name Exchange2007 OpenEdge 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)

27

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)

Renomeie os arquivos WSA e AIA para tir


los da URL. Fica mais complicado para os hackers descobrirem quem voc WSA e AIA
Renomeie os diretrios para mud-los de WSA ou AIA Modifique o arquivo WEB.XML de acordo

28

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress Genrico (cont)

Renomeie o arquivo WebSpeed Messenger


para tir-lo da URL. Fica mais complicado para os hackers descobrirem quem voc WebSpeed Messenger
Windows, veja o arquivo cgiip.wsc em C:\inetpub\scripts para informaes (no use .wsc, escolha outra extenso) Unix/Linux, simplesmente renomeie o script de exemplo do messenger wspd_cgi.sh

29

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress AppServer

Faa o Broker AppServer rodar sem DEBUG

30

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress WebSpeed

Faa o Broker WebSpeed rodar no modo de


PRODUO

31

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress WebSpeed (cont)

Faa o Broker WebSpeed rodar sem DEBUG

32

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress WebSpeed (cont)


Remova a mensagem Generated by Webspeed (OE10)
... /* Output any pending messages */ IF available-messages(?) THEN output-messages("all", ?, "Messages:"). IF CAN-DO ("text/html*,text/x-server-parsedhtml*",output-content-type) THEN {&OUT} "~n~n<!-- Generated by Webspeed: http://www.webspeed.com/ -->~n":U. OUTPUT {&WEBSTREAM} CLOSE. ...

33

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress WebSpeed (cont)

Minimize o acesso a ferramenta de


adminstrao do WebSpeed Messenger

34

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Infraestrutura Progress WebServices Adapter

Minimize o acesso a ferramenta de


administrao do WebServices Adapter

35

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
36
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana da Aplicao Genrico

Use RCODEKEY e DBAUTHKEY para limitar


quais .Rs podem rodar contra o banco de dados Objeto CLIENT-PRINCIPAL Programe defensivamente
Certifique-se que as falhas ocorram de forma segura Nunca aceite parmetros de um usurio sem verificao

37

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana da Aplicao 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 parmetros de forma criptografada Reconecte ao banco de dados se no estiver


conectado

38

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana da Aplicao WebSpeed (cont)


Cdigo WEB-DISP.P antigo
... 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 ELSE AppProgram))). RUN run-web-object IN web-utilities-hdl (AppProgram) NO-ERROR. ...

39

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana da Aplicao WebSpeed (cont)


Cdigo SECURE-WEB-DISP.P novo
... vGUID = get-field ("GUID"). find first tState where tState.GUIDField = vGUID. if not available tState then 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. ...
2007 Progress Software Corporation

40

COMP-11: Best practices for Deploying AppServer and WebSpeed

Segurana da Aplicao AppServer

Use as procedures CONNECT ou STARTUP


para setar os programas disponveis ao usurio via o mtodo EXPORT do SESSION handle

41

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana da Aplicao AppServer (cont)


Cdigo Cliente para coxeno com o AppServer
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.

42

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana da Aplicao AppServer (cont)


Cdigo Servidor em CONNECT.P
DEFINE INPUT PARAMETER pUserID AS CHARACTER. DEFINE INPUT PARAMETER pPassWd AS CHARACTER. DEFINE INPUT PARAMETER pASInfo AS CHARACTER. find first tUsers where tUsers.UsersID = pUserID and tUsers.PassWd = pPassWd no-lock no-error. if available tUsers then SESSION:EXPORT (tUsers.AllowedProgsList). else RETURN ERROR "Invalid UserId and/or Password".

43

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
44
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana do Banco de Dados

Esta a ltima linha de defesa Preferencialmente as outras tcnicas


conseguiram impedir o acesso de intrusos

45

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana do Banco de Dados (cont)

Criptografia
Campos individuais via a funo ENCRYPT O banco de dados inteiro via o sistema de arquivos do sistema operacional
Linux dm-crypt e outros Solaris zfs (um dia) IBM Referncia no encontrada HP Referncia no encontrada Windows Muitas solues

Dispositivos de Hardware
Seagate Momentus 5400 FDE.2
46
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Segurana do Banco de Dados (cont)

CAN-READ, CAN-WRITE, etc


Segurana em tempo de compilao Queries dinmicas podem tentar user estes campos e causar algum problema

Desabilite o Blank userid (usurio em branco) Aplique permisses do sistema de arquivos aos
arquivos do banco de dados para minimizar o risco de acesso direto pelos usurios

47

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Segurana do Banco de Dados (cont)

Se no for necessrio, no instale os recursos


de SQL-92 do banco de dados Configure atravs do comando GRANT a sugurana SQL-92 para minimizar os acesso via ODBC/JDBC
GRANT SELECT ON customer TO dbuser2;

48

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Agenda

Componentes do AppServer e do WebSpeed Exemplos de implementao Segurana


Rede Mquinas Infraestrutura Progress Aplicao Banco de Dados

Sumrio
49
COMP-11: Best practices for Deploying AppServer and WebSpeed 2007 Progress Software Corporation

Em Resumo

Sempre implemente acessos a Internet ou


Extranet usando Firewalls e DMZ Proteja suas mquinas, aplicao e rede Desligue o Desenvolvimento no WebSpeed

50

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Perguntas?

51

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Contedo Relevante no PSDN

INT-10: COMP-1: DB-14: DEV-4:

Understanding the AppServer, Inside-out Securing your web application against hackers OpenEdge Database Run-Time Security Revealed OpenEdge in an LDAP World

52

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Para Mais Informaes, acesse

Documentao:
OpenEdge Getting Started: Core Business Services
Security and authentication

OpenEdge Revealed Achieving Server Control with Fathom Management OpenEdge Application Server: Administration

53

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Para Mais Informaes, acesse

Progress Software Knowledgebase


19533 Running WebSpeed in Production Mode P22658 The new DATABASES environment variable for WebSpeed

54

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation

Obrigado pela ateno

55

COMP-11: Best practices for Deploying AppServer and WebSpeed

2007 Progress Software Corporation