관심가져주신 분들 감사합니다.

devworx의 이미지

유익한 댓글 적어주신 분들은 감사합니다.
그 외 주제넘는 발언을 하거나 인신공격 및 대응할 가치도 없는 말로 댓글 남긴 익명들은 무시하겠습니다.
얘기나온대로 최고의 보안 방법은 가능하면 포트를 안여는 것이다
이런 논리라면 최고의 대응 방법은 아무 대꾸도 하지 않는 것이겠지요.
그동안 해당 건에 관심가져주신 분들 모두 감사합니다. ^^

pokev25의 이미지

3306...이걸 any로 열겠다는건..다 털어가세요..라는 뜻이구요.

마찬가지로 다른 포트도 보통은 괜찮겠지만..취약점 찾아서 공격 들어오지 않는다는 보장 없습니다.

보통은. 80 을 제외한 포트들은 사용자가 특정된다고 봅니다.

두가지 방법이 있는데

하나는 VPN 인데..이건 관공서 특성상 불가능 할 것 같구요.

다른 하나는 고정 IP 를 지정해서 그 IP에서만 접속 가능하도록 방화벽을 구성하는 방법입니다.

유동 IP에서도 되어야 한다..라면 답 없구요.

devworx의 이미지

정말 답이 없는건가요? ㅠ.ㅠ
Mysql 3306은 딴 포트를 바꾸면 되지 않나요? 저기 써놓은 포트들은 예시입니다.
DB 실 포트는 3306에서 실제 서비스 들어가면 55506 포트로 바꿨다 치죠.
이러면 다 털어가란 말은 안나오겠나요? 똑같습니다. 공격자는 포트 스캐닝 프로그램 돌려서
열려있는 포트를 찾아서 공격들어오니깐요.

이쪽 네트워크팀에서 얘기하는건 알려진 db 포트 등이 너무 많이 열려서 불안하다가 아니라
80을 제외한 특정포트 오픈 요청이 10개나 되기 때문에 부담이 된다는 얘기입니다.
그래서 오픈된 포트 위주로 어떤 대비책이 없는지 툴 내지는 기술을 여쭤본겁니다. ^^

그리고 만약 답이 없다면
네이버나 다음카카오 SK플래닛이나 nc소프트는 같은 잘나가는 민간 IT기업들은
어떻게 협업과 구성관리시스템을 유지하고 신규 서비스를 과감하게 런칭할 수 있을까요.
지금 저희는 관공서에서 더이상 구더기가 무서워서 장을 못담그는 폐단에서 벗어나려고 발버둥 치고 있는 겁니다.
안된다고 막고 부담된다고 막아서 자신의 바리케이트를 쳐서 더이상 발전을 못하는 방식이 아닌
더 나은 발전을 위해 오픈하고 그에 대한 방비책을 세우는 플랜을 택하려 합니다.

협업을 위한 시스템이기 때문에 메이븐 넥서스 같은 경우엔 any로 설정해야 합니다.
불특정 다수의 개발자들이 유동 IP에서 접근하니깐요. 저런 것이 너댓개나 더 됩니다.
정말 방법이 없는 건가요? ㅠ_ㅠ
불특정 포트를 열어놨을때 들어오는 디도스 공격이나 해킹 공격 혹은 이상 리퀘스트를 감시하는 솔루션 같은 것들이 없단 말인지요?
저는 뭔가 있을거라고 생각됩니다 제 바램인 뿐인지요?....
좀 더 경험이 녹아있는 답변을 듣고 싶습니다.
조언 부탁드립니다.

익명 사용자의 이미지

개발용 네트워크는 production deployment와는 분리되어 있고, 개발용 네트워크에서 모든 테스트를 거쳐 배포용 파일까지 CI가 준비완료해놓으면, production에서 http로 접근해 가져가서 설치하도록 구성하시면 안되나요?

개인적으로는 http/https외에 ssh도 열어놓기는 합니다만, ssh를 안열더라도 불가능한 것 같지는 않습니다만.

익명 사용자의 이미지

첨언하면 ssh만 열려 있으면 포트 포워딩으로 원하는 걸 다 하실 수 있습니다. 다만 개발용 셋업과 production 셋업이 잘 구분되어 있고 deployment process가 잘 정의되어있다면, 설령 ssh가 열려있지 않더라도 가능하다는 것입니다.

powersys의 이미지

포트포워딩하는것은 보안상으로 포트여는것이나 크게 다를바가 없습니다.. 네트웍담당자 눈속임일뿐입니다.

그걸 허용할꺼면 차라리 포트열어주는 편이 나을정도라고 봅니다.

접속자(유저)가 믿을만하다면 vpn 이용 하시는게 좋을듯합니다.

그렇지않다면.. 제가볼땐 확실한방안이 있을때까지 제안하신것같은 서비스를 차라리 안하는게 좋을듯합니다. 보안이 더중요하죠..

익명 사용자의 이미지

ssh 포트포워딩을 추천한 건 아니었구요..

개발 환경을 현대화하는 건 좋은 일이지만 그렇다고 보안을 희생할 일은 아니라는데 동의하고요, 다만 원 글을 제가 이해하기로는 CI 등 개발에 필요한 셋업을 위해 포트를 열어달라는 것으로 읽혀서, 포트를 여니 마니 할 게 아니라 개발 셋업을 프로덕션 셋업에서 아예 분리하는 방식을 말씀드린 것입니다.

익명 사용자의 이미지

익명님께선 계속 프로덕션 디플로이라고 하시네요. (혹시 외국에서 살다오셨는지요? 교과서적으로 영어 철자까지 적어주시고 ㅎㅎ)
암튼 일단 지극히 당연한 얘기겠지만 상용 서비스(실 서비스) 서버는 따로 있습니다.
현재 구축하고 외부로 오픈하려는 것은 개발과 자동 배포가 이루어지는 개발 서버입니다.
이 서버에서 모든 외주 개발자들과 관청의 전산인력들이 협업을 통해 소스코드를 올리고 소스에 대한 피드백을 주고 받으며
커밋 여부에 따라 빌드 파일을 상용 서버로 자동배포(CI) 합니다.
하지만 제 글의 요지 즉 중요한 것은 CI가 아닙니다. 익명님은 CI 서버니깐 본 서버랑 http 혹은 ssh로 통신 하면 되지 않겠느냐는 말씀을 자꾸 하시는데.....

이 문제는 배포 테스트서버와 상용서비스 서버의 연결 방법을 여쭤본 것이 아닙니다. 맥락을 잘못 짚고 계십니다.
CI와 개발서버라는 생각을 아예 빼고 본 서버라고 생각하고 접근해보세요. 그러면 그게 제가 여쭤본 질문입니다.

그리고 개발 환경을 현대화하는 걸 아직 발생하지도 않은 일로 인해서 그리고 머리를 맞대고 궁리해보면 대비책이 있는데도 불구하고
그 발생하지도 않은 일로 인해 무서워서 바꾸지 않는다면 관공서는 영원히 이 상태 그대로입니다.
민간 기업과 관공서의 네트워크 보안이나 백엔드 환경 수준차이가 그래서 벌어지는 겁니다.
관공서에서도 어디선가 누군가는 앞장서서 레퍼런스를 남겨야하죠....ㅠ_ㅠ

jick의 이미지

저도 보안에 대해서는 문외한입니다만 DB 포트를 외부에 any로 연다는 얘기는 들어본 적이 없고 이런 게 필요하다면 필요성을 주장하시는 분이 이게 왜 필요한지를 설득력 있게 얘기해 주셔야 하지 싶습니다.

민간 기업과 관공서의 수준차이를 논하시는데, 네이버나 다음이나 구글 같은 데도 절대 자사 서버 포트를 그냥 열어놓지는 않죠.

(그리고 사족입니다만 svn과 apache도 훌륭한 오픈소스 소프트웨어입니다.)

devworx의 이미지

네이버나 다음이나 구글 같은 데도 절대 자사 서버 포트를 그냥 열어놓지는 않죠.

그래서 관공서에서도 서버 포트를 그냥 열어놓지 않으려고

네이버나 다음이나 구글같은 민간 기업에서는 어떤 식으로 운영하고 있는지
(혹시나 관련회사 프로젝트 참여한 경험이 있다던가 알고 계시다면)

그리고 리눅스에 포트 감시 솔루션이나 공격 감지 방법 등이 있으면

알려달라고 계속 요청드리고 있습니다. 그게 저의 질문입니다. 진정 없는 건가요?

제 질문이 좀 어려웠는지 다른 분들은 자꾸만 엉뚱한 소리를 하고 계시네요.

익명 사용자의 이미지

혹시 "리눅스에서 돌아가는 포트 감시 솔루션이나 공격 감지 방법" 으로 관공서를 설득시킬려고 하신다면 포기하시는 것이 좋습니다.

그리고 이미 답은 댓글에 다른 분들이 말씀해 주셨습니다. 원하는 답글을 찾지 못하여 모두들 엉뚱한 소리를 한다고 말씀하시는 것 같군요.

익명 사용자의 이미지

선무당이 사람잡을 소릴 마치 자랑처럼 하고 계시네요.

침입 감지 솔루션이 왜 없겠습니까. 세금 쓰는 것이 정당화될 수 있는 필요라면 쓸 수 있는 솔루션들은 많이 있지요. 문제는 그 어떤 훌륭한 솔루션도 공격면 자체를 줄이는 것보다 나을 수는 없으며, 그보다 더 문제는 님이 얘기한 이유만으론 그런 비용이나 리스크, 보안담당자의 업무 부담 증가 등을 감수하라고 정당화할 수 없다는 겁니다. 내 돈 쓰듯 당당하게 내놓으라고 요구하는 님의 레퍼런스야 하나 늘겠지만. 사고 나면 보안 담당자 책임일테고 말이죠.

익명 사용자의 이미지

원 글을 쓰신 분께서 네트워크 토폴로지를 어떻게 구성해서 쓰고 있는지야 모르겠지만, DB서버만이 아니라 개발용 웹서버, git, CI, 이슈트래커 등도 공개망에 물려쓰는 경우는 거의 보지 못한 것 같습니다.

보통 개발용 서버들은 조직내 private 네트워크에 물려 쓰지만, 외부 개발자들도 접근하게 하려면 조직 네트워크와는 격리된 개발용 네트워크를 구성해서 vpn으로 접근하게 하는 게 답이겠죠. 만약 그게 아니라 개발용 서버들을 내부망이나 심지어 공개망에 물려서 외부에서 접근가능하게 하자고 제안하는 거라면, 그걸 거부하는 네트워크 담당자가 구더기 무서워 장 못 담그거나 시대에 뒤떨여져서 그런게 아니고, 그런 제안을 하는 사람이 무식해서 용감한 겁니다. 다른 분야 전문가의 경험을 존중하면서 자기 문제 의식을 잘 설명해서, 그 사람이 내가 원하는 것을 할 수 있도록 돕게 만드는 편이 현명하겠지요.

익명 사용자의 이미지

+1. 이게 정답이죠.

prankenmk2의 이미지

+1

정리 잘해주셨네요.
이게 가장 좋은 답 같습니다.

any로 허용은 꼭 필요한 포트만 해야하는건 보안에선 가장 기본이죠.

말씀하신 서비스 들은 보안 솔루션을 도입하기 보다는 그냥 방화벽에서 닫아놓고 쓰는게 맞습니다.

글쓴이께서 말씀하신 개발사 접속 같은 경우는 VPN 적용이나 특정 IP만 허용하는 방법 등 해결법이 많습니다.

나와있는 해결법들을 적용해 보시는게 어떨까요.

익명 사용자의 이미지

자기가 잘 모르는 업무 파트너의 영역에서, 파트너의 의견을 제압할 목적으로 인터넷에 물어보는 사람들이 있지요.

그런 것을 '주제를 넘는다'고 합니다.

prankenmk2의 이미지

"최고의 보안 방법은 가능하면 포트를 안여는 것이다" 라고 하셨는데

포트를 안 여는게 최고의 방법이 아니고 "필요한 곳"만 "적절한 방법"으로 열어주는게 좋다는 겁니다.

왜 원글은 지우셨고, 어떻게 저런 결론을 내린건가요?

익명 사용자의 이미지

안 가능하면 열어야죠. 열어야할 필요가 있으면 안여는 게 가능한 상황이 아닌 거 아닙니까.

결국 그렇게 조언해줘도 납득 못할 사람입니다.

익명 사용자의 이미지

제대로 알지를 못하니 무식하고 조언을 해줘도 불통이며 나중에 비슷한 시행착오를 겪을 사람에게 도움이 안되게 올렸던 질문을 지우며 부조리한 부정적 감정을 끝내 감추지도 못하니 졸렬합니다.

부디 내 세금이 댁같은 사람에게 발주하는데 안쓰이기 바라지만 댁같은 사람 바닥도 못 알아보고 고용하는 것도 공무원이고 댁같은 사람의 제안이 위험천만한 건 그래도 알아차리는 것도 공무원이니 그 담당자가 조금이라도 슬기롭길 바랄 수 밖에... 그저 이번 경우 공무원 특유의 보수성 때문에 발현된 확률이 온 얼마 안되는 행운일 가능성이 더 크지만...

이하 차후에 비슷한 궁금증이나 시행착오를 겪을 분에게 도움이 되도록 질문 내용을 복원해둡니다.

안녕하세요. KLDP님들
조언을 구하고자 글을 남깁니다.
이번에 관공서 웹 서버쪽 소프트웨어 및 형상관리 프로그램들을
민간 IT기업에서 사용하는 수준으로 끌어올리려고 계획하고 있습니다.
즉 이미 민간기업 쪽에서 사용이 검증이 된 좋은 오픈소스들을 채택하여
관공서에도 적용을 하려고 시도하고 있습니다.
예를들어 svn 대신 git을, ant빌드 대신 maven으로,
수동 배포 대신 jenkins CI서버를 구축하여 자동배포하고
웹서버는 apache 대신 nginx를 도입하여 변화를 주고 진보된
메시징 서버를 구축하여 향후 10년을 대비하고자 계획중입니다.
OS는 CentOS 6.6입니다.
하지만 소프트웨어 쪽으로는 계획과 구상이 바로 섰으나
통신팀쪽에 문의를 해보니 관련된 소프트웨어들이 사용하는 포트를
오픈해야한다고 부담이 된다고 하네요.
예상하시다시피 관공서는 DMZ망이고 안에서 밖으로 나가는 것과
밖에서 안으로 들어오는 것 둘 80포트를 제외하곤 다 막혀 있습니다.
내부와 외부가 둘 다 원활히 접속되어야 하는
열어야할 포트는 아래와 같다고 할경우
 
8081 Maven Repository NEXUS
8090 CI server JENKINS
3306 DB server MySQL
 
네트워크 담당자 얘기는 any (어디서든 접속가능하게)로 해당 포트를 열게되면 디도스 공격이라던가 오픈된 포트를 타고 들어와서
같은 망에 있는 다른 피씨들을 감염시킬까 두렵다 너무 많이 포트를 오픈한다. 대응책을 마련하라고 얘길 합니다.
하지만 제가 근본이 개발쪽이다보니 네트워크나 보안쪽으로는 무지한 편입니다.(사실 이건 네트워크 담당자가 고민해야할 문제가 아닌가 싶기도 합니다.....)
그래서 궁리 중입니다. 하지만 유지보수 업체 개발자들과도 협업을 하기 위한 새로운 시스템이기 때문에 any로 오픈해야 합니다.
 
열린 포트를 통해 혹시나 공격이 들어올 수 있는 상황을 막아야하는데 (혹은 관리자에게 알림)
혹시 제가 열고 싶은 포트들을 감시하고 있다가 이상한 공격이나 의도치 않은 리퀘스트 등이 들어오면 알람을 주는 툴이라던가
리눅스에서 제공하는 포트 감시 혹은 개방 포트 방어 같은 기술이 있겠는지요?
 
개인적으로 관공서가 바뀌려면 소프트웨어만 발전해선 소용이 없고 네트워크 기술쪽도 함께 발전해야하는데
구더기 무서워서 장 못담그는거 아니냔 소리를 하고 싶었지만 영 틀린 말은 아니여서 대안책을 마련해보겠다고 하고 일단락했습니다.
어떤 방법과 기술을 사용하면 특정 포트를 많이 열어놓아도 네트워크 담당자의 불안을 줄여줄 수 있을까요?
보안 쪽 솔루션이 있다면 추천해주시면 감사하겠습니다.(비용이 발생해도 괜찮습니다)
익명 사용자의 이미지

본인도 인정하셨든 잘 모르는 분야라면, 나의 (틀린) 답을 정해놓고 동료에게 강제하려 하기보단 문제의식을 잘 설명해서 그 사람의 도움을 얻어 함께 해결방법을 모색하는 게 낫지 않겠습니까? 개발환경을 업그레이드 하는 것 문제의식 자체는 좋은 생각이니까요. 동료가 걸림돌이라고 생각하고 대하면 당연히 상대도 협조하고 싶은 마음이 안들고, 정해져 있는 답이 돌아오지요. 그리고 그건 글쓴 분의 전문분야가 아니기 때문에 혼자 해결할 수 없습니다.

다만 원하시는 것을 하려면 네트워크 구성을 추가하건 vpn을 도입하건 보안 시스템을 추가하건, 조직이 지불해야 할 비용이 늘어날 수 밖에 없고, 성사 여부는 결정권자가 종합적으로 판단할 일이겠죠.

공무를 담당하는 두 분이 합심해서 발전적인 결과를 만들어내시면 좋겠네요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.