SharedIT | 묻고 답하기(AMP)

공개용 서버에서 hosts.allow / deny 설정?

아주 초보자가 초보적인 질문좀 드립니다.. 


공개용 웹서비스 서버의 hosts.deny 파일에 모든 서비스, 모든 사용자를 deny 설정 하면


말그대로 외부에서 해당 서비스로 접속이 불가능한가요?



웹서버와 WAS서버로 운영되는 경우 WAS서버에서  설정을 하면


페이지 접속은 되지만 각종 기능들만 안되는 것인지.. 아님 접속 자체가 불가능한 것인지 궁금합니다.


반대로 웹서버에서만 deny 설정하면 페이지 접속이 아예 불가능한 것인지..?



 그러냐면 전임자가 남겨둔 ISMS 개선 권고 항목중 웹서버와 WAS서버에 호스트 방화벽이


설정되어 있지 않다고 지적받은 항목이 있어서요. 


공개용 웹서비스에 hosts.deny를 설정할  있는지 의문이 들어서 질문 남겨봅니다..

Tags : 태그가 없습니다.

8개의 답변이 있습니다.

에이스퐝
  0 추천 | 약 2달 전

공개용 웹서비스 서버의 hosts.deny 파일에 모든 서비스, 모든 사용자를 deny 설정 하면


말그대로 외부에서 해당 서비스로 접속이 불가능한가요?


-> 네, 불가능합니다. 


방화벽하고 동일하다고 생각하면 됩니다.


웹서버와 WAS서버로 운영되는 경우 WAS서버에서  설정을 하면


페이지 접속은 되지만 각종 기능들만 안되는 것인지.. 아님 접속 자체가 불가능한 것인지 궁금합니다.


반대로 웹서버에서만 deny 설정하면 페이지 접속이 아예 불가능한 것인지..?


-> 일단 deny을 all로 설정하냐, 아니면 sshd나 ftpd 이런것만 차단하냐에 따라서 설정이 가능합니다.

즉, 보통 웹서버가 WAS서버와 통신을 하고 WAS는 DB서버랑 통신하는게 일반적입니다.

그래서


Genghis Khan
  0 추천 | 약 2달 전

서비스 구성도가 어떻게 되어 있느냐에 따라 다릅니다.

일반적으로 web은 외부망에 있고 was는 내부망에서 DB와 연결로 보안이 되어야 합니다.

말씀하신 hosts.allow 또는 deny에 대한 부분에선 OS에서 할수는 있지만

보안 측면에선 ip, port 차단 및 허용하려면  방화벽단에서 처리하는게 맞습니다.

Simon.Park
  0 추천 | 약 2달 전

말씀하시는 웹 접속이나 WAS 접속과는 다른 부분입니다.

웹이나 WAS 접속을 차단하거나 허용하기 위해서는 방화벽을 사용하시는게 맞아요...

topkslee
  0 추천 | 약 2달 전

네트워크 관련 서비스 ftp, telnet, ssh 등에서 tcp wrapper 라이브러리를 이용하여

접근 권한 관리할 때 hosts.allow, hosts.deny 파일을 내용을 참고했어 사용합니다.

최근에는 보안솔루션이나 서버방화벽으로 허용/차단하기에 많이 사용하진 않습니다.

보안 권고사항이라면 web 방화벽, web서버와 was서버 간 core 방화벽, 

서버에 있는 서버 방화벽 설정이 더 맞지 않을까 생각됩니다.

wansoo
  0 추천 | 약 2달 전

서비스 프로그램이 hosts.deny 파일을 참조해서 판단(차단) 하는 용도로 사용된다고 보면 될 것 같습니다.

어떤 서비스 프로그램은 hosts.deny 파일을 참조해서 등록되어 있는 호스트에 대한 차단 처리를 할수도 있고... 또 어떤 서비스 프로그램은 hsots.deny 파일과 무관하게 작동할 수도 있겠고요.


단지, 공식적으로 /etc/ 디렉터리 아래에 있는 hosts.deny file을 참조해서 서비스 프로그램이 차단, 허용 작동하도록 만들어라는 표준처럼 되어 있다고 보면 될 걸로 보이네요.

서비스 프로그램을 만들면서 해당 규정에 맞추서 만들수도 있고, 해당 규정을 무시하고 만들수도 있겠고요.


OS 차원에서 차단/허용 처리해 주는 것이 아니라 어플리케이션인 서비스 차원에서 차단/허용 정책 처리 참고용 파일이라고 생각하면 되지 않을까 싶네요.


이것 보다 더 근본적인 방법은 OS 차원에서 처리하는 ip chain이나 방화벽 등으로 처리하는 차단/허용 정책이 되겠고요.

차니
  0 추천 | 약 2달 전

이전에 웹방화벽 없을때 의심 IP 등록해서 사용을 했었지만 지금은 사용하는 곳 없을 겁니다.

그리고 공개서비스이데 굳이 사용할 이유가?

앵그리파파
  0 추천 | 약 2달 전

hosts.deny은 TCP Wrapper라는 시스템으로 인터넷 서비스에 대한 접근을 제어하는 데 사용됩니다. 

그러나, 모든 서비스와 모든 사용자를 거부하는 것은 주의가 필요합니다. 이렇게 설정하면 시스템 관리자조차 원격으로 접속할 수 없기 때문입니다. 

만약 etc 아래 hosts.decy 파일에 ALL: ALL  이렇게 설정하면, 모든 서비스에 대해 모든 사용자를 거부하게 됩니다. 

이 설정은 모든 접근을 차단하게 되어, 시스템 관리자로 원격으로 SSH 등을 통한 접속이 불가능해집니다.

반드시 이 작업을 수행하기 전에 안전하게 로그인할 수 있는 다른 방법을 알아보고 설정 변경을 권장합니다. 

개인적으로는 필요한 서비스와 사용자에 대한 접근만 허용하도록 설정하는 것이 보안과 편의성을 고려한 좋은 접근 방법이라고 생각합니다. 

etc 아래 hosts.allow를 열어서 필요한 서비스 및 허용할 사용자 또는 호스트를 추가합니다.

예를 들어, SSH 서비스를 사용하고 특정IP 주소에서만 접근을 허용하려면 

  • sshd: 192.168.1.2 하면 됩니다.

만약, 여러 서비스를 사용하고 특정 사용자에게만 접근을 허용하려면,

  • sshd: 192.168.1.2

  • ftpd: .aaa.com

설정하면, 192.168.1.2에서는 SSH 서비스만 접근 가능하며, aaa.com 도메인의 모든 호스트에서는 FTP 서비스만 접근 가능합니다.

마지막으로, 특정 사용자에 대한 접근을 허용하려면,

  • sshd: tiger

이렇게 하면 사용자 tiger만 SSH 서비스에 접근 가능합니다.


inside07
  0 추천 | 약 2달 전

hosts.deny ALL:ALL로 접속자 전체 차단하면 접속은 불가 합니다.


말씀하시는 hosts.deny가 ssh 서비스만 말하시는거면 서비스 전체 차단이 될 것 이고,


방화벽(ufw 또는 iptable) deny를 말씀하시는거면 서비스 등 포트 전체 차단이 맞습니다.