과제: 텔넷 서비스 접근 제어과제 설명)보안을 위해 특정 사용자의 telnet 접근을 제한하고 싶은 경우와 telnet 서비스 자체를 완전히 막는 경우, /etc/xinetd.d/telnet 파일을 활용해서 IP 주소가 192.168.1.*인 모든 호스트로부터는 접근을 허용하고, 그 이외의 호스트에서의 접근은 차단하도록 설정하고 설명하시오.1. 특정 사용자의 telnet 서비스 접근 제한 방법위와 같이 /etc/hosts.deny 파일을 설정해 특정 호스트(사용자)가 telnet 서비스에 접근하지 못하도록 설정할 수 있다.특정 id 사용자가 telnet서비스에 접근하는 것을 차단하기 위해서는 /etc/passwd의 사용자 쉘을 /bin/false로 설정하면 telnet 뿐만 아니라 ssh, ftp접속도 불가능해 진다.2. telnet 서비스 자체를 완전 차단# ntsysv명령을 사용해서 telnetd가 체크되어 있는 것을 해제하고 확인을 누르면 telnet 서비스가 정지된다.혹은 /etc/xinetd.d/telnet 파일의 내용을 아래와 같이 변경한다. 중요한 것은 disable의 값을 yes로 해야 telnet 서비스를 이용하지 않겠다는 것이다. 아래와 같이 설정하고# /etc/rc.d/init.d/xinetd restart명령을 실행해서 설정을 적용한다.[root@edu /]# cat /etc/xinetd.d/telnetservice telnet{disable = yesflags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID}[root@edu /]#3. /etc/xinetd.d/telnet 파일을 이용해서, 192.168.1.*의 호스트만 접근을 허용하고 나머지 호스트는 접근을 차단해당 파일의 only_from 필드를 다음과 같이 작성한다.[root@edu /]# cat /etc/xinetd.d/telnetservice telnet{disable = noonly_from = 192.168.1.0/24flags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID}[root@edu /]## /etc/rc.d/init.d/xinetd restart명령을 실행해서 설정을 적용한다.참고)/etc/xinetd.d/telnet 항목socket_type: 어떤 형식으로 통신을 수행하는지에 대한 내용을 언급하는 지시어로, 사용되는 값은 UDP 서비스의 경우에는 dgram, TCP 서비스의 경우에는 stream, IP를 직접 접근하는 경우에는 raw 등의 값이 사용됨wait: 쓰레드에 대한 서비스 동작을 정의하는 지시어로 YES, NO 두 값이 가능하며, YES인 경우에는 단일 쓰레드 서비스로 이 유형의 접속은 단 하나의 쓰레드만이 실행되며, NO인 경우에는 정의된 최대 한계에 따라 각각의 새로운 서비스 요청에 대해 xinetd는 새로운 응용 서버를 실행(기본적으로 최대 한계는 무제한 임)log_on_failure: xinetd는 서버가 자원 부족 또는 접근 규칙 때문에 구동할 수 없을 때 다양한 정보를 기록하는데, 이 지시어에 적용될 수 있는 값은 HOSTID, USERID, ATTEMPT, RECORD 등이며, HOSTID의 경우에는 접속을 시도한 클라이언트의 주소를 기록하고, USERID의 경우에는 RFC1413의 식별 프로토콜에 따른 원격 사용자의 아이덴티티를 기록하고, ATTEMPT의 경우에는 접근 시도를 기록하며 다른 값이 제공되자마자 실행되며, RECORD는 클라이언트에 대해 얻을 수 있는 모든 정보를 기록disable: 해당 서비스가 xinetd에 의해 서비스를 실행할 것인지를 결정하는 것으로, xinetd에 의해 서비스를 수행하고자 하면 반드시 이 값이 no로 설정되어야 한다.
1. 과제 설명 요약1) 아파치 기반의 가상 호스팅 방법에 대해 설명하시오.2) 둘 이상의 도메인에 대해 웹 서비스를 수행할 수 있도록 이름 기반 가상 호스팅을 설정하고 각 지시어의 의미를 작성하여 제출하시오.2. 과제 해결1) 가상 호스트는 한 컴퓨터에서 여러 웹사이트를 서비스하는 것을 의미한다. 가상 호스트에는 각 웹서비스마다 다른 IP 주소를 사용하는 “IP기반(IP-based)”방식과 한 IP 주소당 여러 이름을 가지는 “이름기반(Name-based)” 방식이 있다. 여러 사이트들이 같은 서버에서 돌고 있다는 사실을 웹 사용자가 알기는 어렵다. 기본으로 IP 기반 가상 호스트를 지원한 초창기 서버 중 하나이지만, 아파치 버전 1.1 이상은 IP기반과 이름 기반 가상 호스트를 모두 지원한다. 이름 기반 가상호스트를 호스트기반 또는 비 IP 가상 호스트 라고도 부른다.2) 가상 호스팅 설정 및 설명NameVirtualHost 192.178.1.2:80ServerAdmin lee@mine.comDocumentRoot /www/mineServerName www.mine.comServerAlias mine.com *.mine.comErrorLog logs/host.mine.com-error_logCustomLog logs/host.mine.com-access_log_commonServerAdmin lee@yours.comDocumentRoot /www/yoursServerName www.yours.comServerAlias yours.com *.yours.comErrorLog logs/host.yours.com-error_logCustomLog logs/host.yours.com-access_log_commonNameVirtualHost : 연결을 받을 IP 주소와 포트를 지정한다. 포트별로 사용하지 않을 경우 포트를 생략 가능하고 모든 IP에 서비스를 하려면 IP부분은 *로 대체할 수 있다. 과제에서는 192.168.1.2로 지정했기 때문에 해당 IP를 사용하였다.VirtualHost : 서비스 하려는 호스트 별로 블록을 만든다. IP와 포트는 NameVirtualHost 와 동일해야 한다.ServerAdmin : 서버 관리자의 이메일 주소를 지정한다.DocumentRoot : 호스트의 내용이 위치한 파일 시스템의 경로를 지정한다.ServerName : 서비스할 호스트의 이름을 지정한다.ServerAlias : 열거한 이름으로 동일한 웹 사이트를 볼 수 있다.ErrorLog : 에러로그가 기록될 경로를 지정한다.CustomLog : 커스텀 로그가 기록될 경로를 지정한다.주의 : 주 호스트가 없어진다.기존에 사용하던 웹서버에 가상호스트를 추가한다면 기존에 사용하뎐 호스트에 대한 블록도 추가해야 한다. 이 블록에 포함하는 ServerName과 DocumentRoot는 전체 ServerName과 DocumentRoot와 같아야 한다. 설정파일에서 이 가상 호스트를 먼저 적으면 기본 호스트가 된다.그림 SEQ 그림 * ARABIC 1 fttpd.conf 파일의 설정 예