회원가입∴아이디/비번찾기
홈으로


7. 리눅스 서버 시스템에 대한 이해
15년 전
리눅스의 인터네트 서비스에는 그에 해당되는 데몬들이 있기 마련이다. 데몬들은 정확히 서버에서 활동 중인 프로세스를 말하는데 평소에는 쿨쿨 잠만 자고 있다가 클라이언트의 접속 요구가 생기면 깨어난다. 텔넷 서비스에는 telnet 데몬이, FTP 서비스에 대해서는 ftp 데몬이, 메일 서비스에 대해서는 mail 데몬이 그리고 NFS 서비스에 대해서는 nfs 데몬이, 마지막으로 웹 서비스에 대해서는 웹 데몬이 필요하다. 메일에 대해서는 sendmail 또는 smail이라는 데몬이 그리고 NFS에 대해서는 전술한 rpc.mountd, rpc.nfsd가 협동해야 하고 웹 서비스는 보통 httpd라는 데몬이 있는데 telnet과 ftp 의 경우에는 그렇게 단독으로 뜬다기 보다는 inetd 수퍼 데몬이라는 것에 의해서 제어를 받아서 필요할 때만 실행되도록 되어 있다. 부팅 과정을 잘 살펴보면 inetd라는 것이 뜨는 것을 볼 수 있다. inetd 데몬에 중요한 설정파일은 /etc/inetd.conf라는 파일이다. 그 내용을 일부만 살펴보도록 하자.


# See "man 8 inetd" for more information.
#
# If you make changes to this file, either reboot your machine or send the
# inetd a HUP signal:
# Do a "ps x" as root and look up the pid of inetd. Then do a
# "kill -HUP <pid of inetd>".
# The inetd will re-read this file whenever it gets that signal.
#
# <service_name>  <sock_type> <proto>   <flags> <user> <server_path>
<args>
#

#
# These are standard services.
#
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  wu.ftpd
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
nntp    stream  tcp     nowait  root    /usr/sbin/tcpd  in.nntpd
# The comsat daemon notifies the user of new mail when biff is set to y:
comsat        dgram   udp     wait    root    /usr/sbin/tcpd  in.comsat
#
# Shell, login, exec and talk are BSD protocols.
#
shell   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -L
login   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind
# exec  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rexecd
# talk  dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd
ntalk   dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd
#
# Pop et al
#
# pop2  stream  tcp     nowait  root    /usr/sbin/tcpd  in.pop2d
pop3    stream  tcp     nowait  root    /usr/sbin/tcpd  in.pop3d

#
# Finger, systat and netstat give out user information which may be
# valuable to potential "system crackers."  Many sites choose to disable
# some or all of these services to improve security.
# Try "telnet localhost systat" and "telnet localhost netstat" to see that
# information yourself!
#
finger  stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.fingerd -w
systat  stream  tcp     nowait  nobody  /usr/sbin/tcpd  /bin/ps -auwwx
netstat stream  tcp     nowait  root    /usr/sbin/tcpd  /bin/netstat -a

위 설정 파일을 조금이라도 바꾸는 경우에는 앞 부분에서 설명한 것처럼 inetd를 kill -HUP 해서 프로세스를 죽인 후 다시 띄워야 한다. 위에서 열거한 것은 시스템 운영에서 아주 중요한 데몬들이라고 할 수 있다. 이 모든 것을 관리하므로 수퍼 데몬이라고 할 수 있다. 참고로 /etc/services라는 파일을 보면 여러분의 서비스가 어떤 프로토콜( TCP 인가? UDP 인가? )인가 그리고 어떤 포트를 사용하는가에 대해서 감잡을 수 있으리라 본다. 꼭 한 번 파일의 내용을 모르더라도 훑어보기 바란다. 마지막으로 위의 inetd.conf 파일을 잘 살펴보면 그냥 in.telnetd를 수행시키는 것이 아니라 /usr/sbin/tcpd라는 것에 의해서 보호되어(Wrap) 수행된다. 이렇게 tcpd라고 부르는 것에 의해 수행되는 서비스들은 접근 제어와 모니터링이 가능해진다. 맨 페이지를 보면 정말 장황하게 설명되어 있으므로 참고하기 바란다. 일단은 tcpd에 의해서 어떻게 호스트별 접근 제한을 가할 수 있는지 알아보자. 악독한 사용자들이 많은 호스트는 접근을 거부해보자. 서로 크랙킹을 많이 하는 학교 과들 사이에서는 접근 제한을 가하는 것도 좋을 것이다. 관계된 파일은 2개이다. /etc/hosts.allow 와 /etc/hosts.deny 즉 전자는 허용하는 사이트, 후자는 거부하는 사이트가 된다. 규칙은 /etc/hosts.deny에 넣는 호스트에서는 접근이 불허된다. 하지만 /etc/hosts.allow에 들어간 사이트는 전자에 거부 호스트 목록에 상관없이 접근이 허용된다. 따라서 /etc/hosts.allow는 잘 작성해야 한다. 예제를 한 번 살펴보기 바란다. 둘 다 형식은 같으니 하나만 알아보겠다.


데몬 리스트: 호스트 리스트
ALL: ALL EXCEPT terminalserver.foobar.edu
in.talkd: ALL
in.ntalkd: ALL
in.fingerd: ALL
in.ftpd: LOCAL, .my.domain
ALL EXCEPT in.fingerd: other.host.name

콜론(:)앞에다 서비스 데몬 리스트를 적어주고 뒤에는 호스트명을 적어준다. 위의 예에서 보면 ALL, EXCEPT, LOCAL 등의 특수한 명칭이 나오는데 각각은 여러분이 사전에서 찾을 수 있는 의미와 같다고 보면 된다. ALL과 EXCEPT는 데몬 리스트와 호스트 리스트 양자에 쓰일 수 있다. 보안이 정말로 문제되는 사이트에서는 우선은 hosts.deny 파일에 ALL: ALL이라고 써준다. 이렇게 하면 모든 호스트에 대하여 어떤 서비스도 일단 불허해놓는다. 그리고 hosts.allow에서 하나씩 허용해주면 된다. 자세한 사항은 맨 페이지를 보면 된다.


$ man 5 hosts_access

추천추천 : 727 추천 목록
번호 제목
1,348
Windows 서비스 관리자에서 Apache 서버가 멈췄을 때 시스템 자체를 재부팅
1,347
윈도우에서 Apache 서버 상태를 체크한 후 문제가 발생하면 자동으로 재부팅
1,346
윈도우 서버 2019 취약점 점검 보안
1,345
윈도우 서버 2019 취약점 점검 보안 (windows server 2019)
1,344
Windows 취약점진단 보안가이드라인
1,343
Windows Admin Center를 통한 서버 관리
1,342
윈도우 서버에서 실행되는 서비스 확인
1,341
Chrome NET::ERR CERT REVOKED 해결방법
1,340
cmd 명령어 (명령 프롬프트 명령어) 모음
1,339
Windows10 특정 프로그램(OCS 2007 R2)에서 첨부파일 드래그앤드롭이 안 되는 현상
1,338
윈도우 로그, 관리 이벤트 삭제
1,337
클린 부팅
1,336
[SFC 명령어, DISM 명령어]] 무결성 검사 및 시스템 파일 손상 파일 복구
1,335
Windows Defender 검사 기록 삭제하기
1,334
간단한 윈도우 10 정품 인증 (크랙프로그램 필요없음)
1,333
오류난 폴더 강제삭제 방법
1,332
크롬에서 플래시 항상 허용하도록 설정하기 (레지스트리) reg 파일 만들기
1,331
GPT 디스크를 MBR 디스크로 변환
1,330
MBR 디스크를 GPT 디스크로 변환
1,329
구글 검색을 200% 활용하게 해주는 검색 명령어 총정리
1,328
[Jquery] jQuery로 우클릭 방지, 드래그 방지, 선택 방지 (IE10, 파이어폭스, 크롬 확인)
1,327
php 사용자 접속IP, 브라우저정보, os정보, http, https 접속프로토콜 알아오기
1,326
[PHP] IE 브라우저 접속 검출하기
1,325
윈도우10 시스템 예약 파티션 확인 및 삭제
1,324
윈도우10 복구 파티션 삭제 방법
1,323
윈도우10 부팅지연 검은화면에서 몇분간 머무는 현상 해결방법
1,322
삼성노트북 바이오스 진입이 불가능한 경우 바이오스 재설치와 NVRAM 초기화
1,321
익스플로러(IE)의 구글 검색공급자 한글로 변경 방법
1,320
윈도우 10 기본 앱 삭제 및 복구
1,319
meta 태그 http-equiv 설정방법과 차이점
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침ㅣ모바일버전
Copyright ⓒ musictrot All rights reserved.