Xinetd 설치하기&설명 정보
Linux Xinetd 설치하기&설명
본문
# tar xvfz xinetd-2.3.3.tar.gz
# cd xinetd-2.3.3
# ./configure --prefix=/usr/local/xinetd
# make
# make install
Xinetd 데몬의 특징
1) 접근 제어
①configure시 libwrap 옵션을 사용하면 tcp_wrapper에서 사용하는 hosts.allow,
deny파일을 사용하여 접근제한을 할 수 있다. 물론 옵션을 지정하지 않고 기존
inetd.conf에서처럼 설정하여 tcpd의 기능을 사용할수도 있다.
② 시간에 근거한 접근제한을 걸수 있다.
2) DoS공격 방지
① 연결요청에 대한 제한을 둘 수가 있다.
② 로그화일의 사이즈 제한을 둘수있어 디스크가 full되는 것을 막을수 있다.
3) 확장된 로깅기능
① 서비스별로 syslog의 설정을 할 수 있다.
② 접속 시작시간과 종료시간을 기록할 수 있다. 따라서 사용자가 서비스를
이용한 시간을 체크할수 있다.
③ 접속에 실패한 기록에 대해 좀더 많은 로그를 기록할수 있다.
4) 원격 호스트로의 서비스 전달
-TCP stream을 다른 호스트로 전달하는 기능.
5) IPv6 지원
6) 사용자별 서비스 차등적용
-사용자의 연결상태와는 상관없이 매번 다른 배너를 보여줄 수 있다.
Xinetd.conf 설정 파일 형식
1)inetd.conf 파일을 xinetd.conf 파일로 변환하기
와우 리눅스 6.2에서 inetd 슈퍼데몬 대신에 xinetd 수퍼데몬으로 사용하고자
소스 컴파일을 설치한 경우 inetd 데몬의 inetd.conf 파일을 xinetd.conf 파일로
변환하여 그대로 사용할 수 있다. 소스 컴파일 을 설치한 경우
/usr/sbin/xconf.pl 펄 스크립트를 사용하여 다음과 같은 명령을 통해 기존의
inetd.conf 설정 파일을 xinetd.conf파일로 변환할 수 있다.
# xconv.pl < /etc/inetd.conf > /etc/xinetd.conf
2)xinetd.conf 설정 파일 형식
default
{
<속성 attribute> <연산자 assign_op> <값 value> <값 value>....
}
Service 서비스명(service_name)
{
<속성 attribute> <연산자 assign_op> <값 value> <값 value>....
}
default section은 xinetd 수퍼데몬에서 다루는 모든 서비스에 적용되는 속성과
속성값들을 지정해 주 는 부분으로, 여러 유용한 속성들을 설정해 줌으로써
DoS공격과 같은 외부로의 불법적인 공격 및 침입 에 대해서 보안성을 제공할 수
있다.
service section은 하나의 xinetd.conf 파일 내에 서비스하고자 하는 모든 서비스
데몬들을 default section과 같은 형식으로 "Service 서비스명"을 선언하고
설정할 수 있으며, 또는 includedir 속성을 사 용하여 /etc/xinetd.d 디렉토리에
실행하고자 하는 서비스마다 설정 파일을 만들어 서비스할 수 있다.
연산자에는 '=', '+=', '-=' 세 개의 값을 사용할 수 있다. 대부분의 속성들은
'='값만 지원하는데, 두 개의 속성값을 갖는 속성들은 모든 연산자를 지원한다.
이러한 속성들에 있어서 '+='값은 하나의 속성 값을 더해 주며 '-='값은 하나의
속성값을 뺀다는 의미이다.
xinetd 실행하기
xinetd 슈퍼데몬 시작과 중지는 /etc/rc.d/init.d/xinetd 스크립트를 사용할 수
있다.
다음과 같이 명령을 실행하여 xinetd 슈퍼데몬을 시작한다.
# /etc/rc.d/init.d/xinetd start
슈퍼데몬의 재실행은 xinetd 스크립트에 restart 옵션을 사용한다.
# /etc/rc.d/init.d/xinetd restart
9.xinetd 설정 파일 보안 유지하기
xinetd 설정 파일을 일반 사용자들이 읽을 수 없도록 퍼미션을 걸어 두는 것이
좋다.
xinetd.conf 파일에 다음과 같이 퍼미션을 주도록 한다.
# chmod 600 /etc/xinetd.conf
-----------------------------------------------------------------------------------------------------
Xinetd(Extended Internet Services daemon) 슈퍼데몬이 란?
서비스 데몬들을 관장하는 데몬을 inetd또는 xinetd(슈퍼데몬) 라고 한다.
inetd 많은 보안문제 또는 관리 문제를 개선하여 나온것이 xinted 데몬이다..
슈퍼데몬은 기존의 inted 보다 보안성이나 관리나 설정관련부분이 한층더 쉽고 강해졌다.
설치 방법은 여러가지가 있다..
참고 사이트 http://www.xinetd.org/
xinetd 소스를 직접 설치를 한다.
http://rpmfind.net/linux/RPM/index.html
여기서 xinetd 검색하여 제일 최신버전으로 받는다.
yum 이용하여 업데이트 및 또는 설치를 할수가 있다.
rpm 설치시
rpm -ivh xinetd-2.3.13-6.i386.rpm
yum 설치시
yum install xinetd
yum update xinetd
소스 설치
받은 파일을 적당한곳에 풀어준다..
tar xvfx -C /usr/src xinetd-2.3.14.tar.gz
cd /usr/src
이동을 하여 README 또는 INSTALL 파일을 읽어본다..
소스로 설치하는것은 RPM 이나 기타 배포본 설치하는것보다 의존성이나 기타 여러가지 문제로 설치가 안되는경우가 있으니 설치하기전에 항상 보는 습관을 들이자.
설 정 보 기
--prefix
설치할곳을 /usr 이쪽으로 설정을 해줬다..
시스템 바이너리 파일은 /usr/sbin 을 깔린다.
실행파일도 위치를 바꿔주려면은 ./configure --help 참고 하면은 된다.
--sysconfdir
설정파일을 /etc 에다가 설정
--with-libwrap
xinetd의 컴파일시 libwrap을 지원하도록 컴파일 할수있다.
--winth-loadavg
서버의 최대실행 설정 옵션및 dos 공격을 막을수 있다.
이 옵션은 되도록이면은 설정해주자.
--with-inet6
IPV6를 이용하고자 한다면 이 옵션을 사용할수 있다.
---
./configure --prefix=/usr --sysconfdir=/etc --with-libwrap --with-loadavg
make ; make install
설치까지 끝나면은 /etc/xinetd.conf 비어 있으며은 xinetd 디렉토리가서 복사해준다.
기본 inetd 사용하고 있으면 컨버터로 이용하여 변환시켜준다.
cd /usr/src/xinetd-2.3.14/contrib
[root@www contrib]# cp xinetd.conf /etc
[root@www contrib]# cp xinetd /init.d/
스크립트 복사
[root@www contrib]# cd /etc/rc3.d/
[root@www contrib]#ln -s /etc/init.d/xinetd S13Xinetd
시작시 자동으로 등록
vi /etc/xinetd.conf
#
# This is the master xinetd configuration file. Settings in the
# default section will be inherited by all service configurations
# unless explicitly overridden in the service configuration. See
# xinetd.conf in the man pages for a more detailed explanation of
# these attributes.
defaults
{
# The next two items are intended to be a quick access place to
# temporarily enable or disable services.
#
# enabled =
# disabled =
# Define general logging characteristics.
log_type = SYSLOG authpriv
log_on_success = PID HOST
log_on_failure = HOST ATTEMPT
# Define access restriction defaults
#
# no_access =
# only_from =
# max_load = 0
cps = 50 10
instances = 50
per_source = 10
# Address and networking defaults
#
# bind =
# mdns = yes
v6only = no
# setup environmental attributes
#
# passenv =
# groups = yes
# umask = 002
# Generally, banners are not used. This sets up their global defaults
#
# banner =
# banner_fail =
# banner_success =
}
includedir /etc/xinetd.d
이파일을 가장많이 쓰이는 방법으로 또는 자신이 원하는 설정으로 맞춰서 쓰세요.
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
per_source = 10
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
디폴트 섹션
/etc/xinetd.conf
instances
동시에 서비스를 실행할수 있는 서버의 최대 개수
(설정을 잘하면은 dos 공격이나 기타 여러가지공격을 막을수 있음)
SYSLOG demon [debug]
로그 종류를 정해주는것으로 demon,auth,authpriv,user
레벨은 emerg ,alert, crit,waming,notic,debug 레벨
SYSLOG FILE[max_size[absolute_max_size]
MAX SIZE= 소프트 리미트 그다음 하드 리미트라고 생각하면은 된다.
파일 크기가 한계값에 도달하면 우선 메시지를 syslogd에 보내고 다음에 이 서비스에 대한 로깅을 중지한다
log_on_success = PID HOST
서버가 성공하게되면은 기록할내용
PID Xinetd 프로세스 id
HOST 원격호스트 IP
USERID 원격사용자 ID
EXIT 프로세스 종료 상태
DURATION 서버 세션 지속 기간
log_on_failure = HOST ATTEMPT
실패할경우 기록될 내용들
HOST 원격호스트 IP
USERID 원격사용자 ID
RECORD 클라이언트 대한정보
ATTEMPT 접근했을때 실패 했을경우
cps
들어오는 접속수를 제한할때 첫번째숫자가 한계가 되었을때
두 번째 인수로 제공되는 주어진 시간(초) 동안 서비스가 비활성화된다.
per_source
동시 접속 가능한수
include =/etc/xinetd.d
/etc/xinetd.d 파일 내에 서비스마다 하나의 파일로 지정하고 자 할때 쓰는옵션이다.
이옵션을 제가 할경우 디폴트 설정과 xinetd.d 에 있는 파일을 들을 설정 내용을 하나로 합쳐 사용을 할수 있다.
예) /etc/xinetd.conf
defaults
{
instances = 60
per_source = 10
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
service ssh
disable = no
flags = REUSE
socket_type = stream
wait = no
port = 22
server =/usr/sbin/sshd
server_args = -i
log_on_failure += HOST ATTEMPT
log_on_success += PID HOST
user = root
}
서비스 섹션
서비스 섹션은 각 /etc/xinetd.d 에 들어있는 옵션을 말한다.
service ssh
{
disable = no
flags = REUSE
socket_type = stream
wait = no
port = 22
server =/usr/sbin/sshd
server_args = -i
log_on_failure += HOST ATTEMPT
log_on_success += PID HOST
user = root
}
service telnet
서비스 속성으로 설정하고 자 이름을 지정을 해주면은 된다.
예)ssh,http,ftp
disable = yes
disable 항목에 yes라면은 서비스를 xinetd 관리를 안하는경우 즉 standalone 쓸때 켜주면은 된다. xinetd 관장을 해서 실행을 시키려면 no 선택해주면된다.
flags= REUSE
서비스 소켓에 SO _REUSEADDR 플래그를 성정하도록 한다
예)DISABLE 서비스가 실행되지 않게 한다.
다른옵션들은 다른문서나 참고를 하면되겠습니다.
protocol = tcp
프로토콜 옵션을 적지 않으며은 서비스가 사용하는 프로그램에 맞게 설정됨
socket_type = stream
예)datagram
raw
아이피에 직접 접근을 요하는경우
seqpacket
신뢰성있는 연속적인 데이터 그램을 전송하는 요하는경우
wait = no
yes : 단일 쓰레드 만 지원을 함
no : 다중 쓰레드 지원을 함
( 무한적으로 생성을 할수 있으니 주의)
port = 22
서비스가 사용하는 포트를 정해줌
nice = -20
nice 명령어와 같이 서버 우선권을 변경한다.
-20 가장 빠른우선권 19는 가장 느림
설정을 다하고 나서
/etc/init.d/xinetd start
그리고 일반사용자들이 보지 못하게 퍼미션 조정
chmod 600 /etc/xinetd.conf
chmod 600 /etc/xinet.d/*
(참고) inetd.conf를 xinetd.conf로 변환
/usr/sbin/xconv.pl < /etc/inetd.conf > /tmp/xinetd.conf
0
댓글 0개