백엔드 개발자의 경우 서버를 직접 세팅하는 경우가 종종 있는데요. 특히 개발 서버의 경우는 종종 있는 거 같아요. 개발 서버 세팅하면서 익혀두면 좋은 습관으로 어떤 것들이 있을까요?
예를 들어 다음과 같은 작업들이 있을 수 있겠죠.
- 보안을 위해 외부에서 root 계정으로 접속하지 못하도록 설정한다.
- 접근 편의성을 위해 ip에 대한 host 설정하고 비밀번호 입력하지 않아도 접속 가능하도록 설정한다.
- 그나마 터미널에 대한 작업 경험을 좋게하기 위해 oh-my-zsh을 설치하고 설정한다.
위 예에도 개인별로 진행하는 작업들이 있을 듯 한데요. 어떤 작업들이 있을까요? 이런 것들은 보안, 편의성을 위해 반드시 익혀두면 좋겠다는 팁들이 있을까요? 아니면 관련 자료라도 공유해 주면 시스템 작업이 많지 않은 백엔드 웹 개발자들에게 많은 도움이 될거 같아요.
0개의 의견 from FB
6개의 의견 from SLiPP
10분 안에 우분투 서버 보안 설정 이라는 글인데, 글 안에 5분안에 셋팅하기 라는 글의 링크도 있네요!
http://www.codelitt.com/blog/my-first-10-minutes-on-a-server-primer-for-securing-ubuntu/
@Sehyeon Nam 링크 글 좋네 이런 내용 모아서 체크리스트 하나 만들어 놓으면 좋겠다.
되도록이면 프로비저닝툴 스크립트를 작성해 서버세팅하기. 그게 아니면 쉘 스크립트를 작성하여 서버셋팅허기. 그것도 아니면 셋팅 후에 bash_history 를 긁어오기 정도가 가징 먼저 떠오르네요
한줄 요약: CM툴 사용하자 / 불필요한 기능은 다 막자.
우리 나라에서는 개발자들이 서버를 수동으로 세팅하는 경향이 많은데, 매번 똑같은 일을 소모적으로 하게 되죠. 반면에 운영팀에서는 자동화 툴 (CM tool - configuration management tool) 을 사용하는 경우가 많습니다. chef나 ansible, salt 같은 툴 사용법 하나만 배워서 사용하면, 평생 서버세팅하는 시간을 꽤 줄일 수 있을 것 같아요. 저는 chef를 쓰고 있는데 다양한 좋은 툴들이 많다고 합니다.
왕초보 - 리눅스 명령어를 배운다. 리눅스 명령어를 사용해서 내 서버 세팅하는 법을 배운다. 초급자 - bash 스크립트 사용법을 배운다. 스크립트로 서버 세팅을 자동화 해 본다. 이후 - CM 툴을 사용해 본다. 맘에 들면 사용하고 아니면 다시 스크립트로 돌아가자.
되도록이면 하지 말아야 할 것들 1) db 포트를 인터넷에 개방한다. 2) ssh / rdp 포트를 인터넷에 개방한다. 3) 서버 계정 패스워드를 간단하게 한다. (패스워드 방식 말고 pem 기반 로그인 권장) 5) db admin / linux root를 외부에서 접속 가능하게 한다
등등이 있겠네요.
https://davidhyk.github.io/blog/things-you-should-do-to-secure-ubuntu-part1 예전에 동규가 공유해 준 것 같은데 이것도 좋네요.
보안 체크 리스트로 사용하려고 github 에 "견고한 웹 서비스 만들기" 라는 이름의 보안 문서 프로젝트를 진행하고 있는데 참고하세요.
https://lesstif.gitbooks.io/web-service-hardening/content/
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.