중성자 별의 충돌 에너지

2010/04/15 17:33 : 공부/0x04 LINUX

크리에이티브 커먼즈 라이선스
Creative Commons License
1. 포트포워딩?
시스템의 특정 포트로 들어오는 패킷을 다른 포트로 변경해서 패킷을 전달해주는 기능

2. xinetd 를 이용한 포트포워딩
inetd 와 xinetd 는 터미널 제어를 갖지 않는 슈퍼데몬.
슈퍼데몬이라고 칭하는 이유는 다른 네트워크 서비스(telnet, ftp 등등)들의 수퍼 서버의 역할을 하기 때문이다.

inetd 는 네트워크 연결 요청을 대기하고 있다가 연결요청이 들어오면 해당 포트에 매핑되는 서비스 프로세스를 실행하여 네트워크 스트림을 서비스 프로세스의 표준입력으로 전달하고 그 프로세스의 표준 출력은 네트워크 상의 요청한 호스트에게 보낸다.

xinetd 는 inetd를 개선한 슈퍼데몬으로 설정파일이 변경되었고 더 많은 기능을 지원.
inetd 보다 성능이 더 빠르고 보안 취약점을 더 많이 보완했으며, inetd 와 다르게 설정 파일은 /etc/xinetd.d 에 있다.

/etc/xinetd.d 디렉토리에 service 설정파일을 생성하면된다.

하위서비스 설정
service 서비스명{
변수명 = 변수값
}

3. xinetd 설정 옵션
매개변수
service
서비스명을 정의. 주로 /etc/services 에 있는 이름을 사용

id
해당 서비스의 독자적인 이름

type
특별한 서비스에만 적용

flags
  REUSE 소켓 재사용
  NAMEINARGS/NOLIBWRAP TCP 래퍼를 수동으로 호출, 모든 래퍼를 피하고 싶을 경우
 
NODELAY/KEEPALIVE TCP 소켓 튜닝
   DISABLE  상위 레벨의 "disable" 파라미터 오버라이드)
   SENSOR 서비스 거부 네트워크 공격 감시


disable
서비스 활성화시에 NO로 설정

socket_type
TCP 서비스를 사용하면 stream
UDP 서비스를 사용하면 dgram
raw 는 raw IP 데이터그램

protocol
연결에 사용되는 프로토콜 지정.

wait
no 설정시 여러 연결 요청마다 새로운 서비스를 시작
yes 설정시 하나의 서비스가 한번에 하나의 요청을 처리

server, server_args
요청 처리프로그램 즉 서비스 프로그램의 실행 파일 위치와 매개변수

port
서비스의 포트

redirect
xinetd 가 서비스로의 모든 트래픽을 다른 호스트로 보낼 수 있도록 설정

banner, banner_success, banner_fail
성공한 커넥션인지 실패한 커넥션인지 프린트하느 파일 텍스트의 커스텀 블럭

enable
disabled 매개변수와 DISABLE 플래그를 global 레벨에 포함

include, includedir
xinetd 에게 파일 또는 디렉토리를 포함 하도록 설정


환경매개변수
user, group, umask, groups
서비스를 실행할 사용자의 명, 그룹명을 지정하거나

nice
프로세스 우선순위 설정

env
서비스 핸들러용 환경변수

passenv
xinetd 로 부터 서비스 핸들러로 전달되어야 하는 환경변수

리소스 관리 매개변수
instances
즉시 시작할 수 있는 핸들러의 수. UNLIMITED 는 제한없음

max_load
시스템이 과도하게 부하가 되면 커넥션 수락을 중단. 로드의 수는 시스템에 따라 다름

rlimit_as, rlmist_cpu, rlimit_data, rlimit_rss, rlimit_stack
매개변수는 서비스 핸들러를 위해 리소스 제한

interface
서비스를 바인드 할 네트워크 인터페이스의 IP주소를 지정

보안 관련 매개변수
only_from, no_access
TCP 래퍼 보안. 우리에게 연결되는 호스트를 막는 방법. 기본적으로 모두에게 허용
only_form 은 지정한 네트워크만 허용
no_access 는 지정한 네트워크는 허용않함
ip address, 호스트명, netmask 를 설정가능

access_times
서비스가 가능한 시간

log_type, log_on_success, log_on_failure
log_type 은 SYSLOG 를 지정할 경우 syslog를 활용
                 FILE 로 지정할 경우 직접 파일에 기록
log_on_success 는 연결이 성공할 경우, log_on_failure 는 연결이 실패할 경우 로그에 기록

bind
서비스가 인터페이스 스팩이 되도록 함

per_source
소스 IP에서 서비스의 최대 인스턴스 지정

cps
허용된 초당 최대 커넥션과 서비스가 다시 가능할 때까지 걸리는 시간 설정

deny_time
SENSOR 플래그를 시작한 사람에 의한 서비스 거부 시간

4. 예문
- A서버에서 B서버로 홈페이지 이전
- 웹서비스 (80)만 포워딩
- 최대 동시 접속 수는 600으로 제한
- 512번 동시접속이 있으면, 3초간 포워딩을 하지 않음
- 127.253.13.12 IP로 리스닝
- A서버 IP : 127.253.13.2
- B서버 IP : 210.253.13.3

service http
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/ipop3d
instances = 600
cps = 512 3
bind = 127.253.13.2
redirect = 210.253.13.3 80
}

리눅스마스터1급 2차 16회 14번 문제

저작자 표시 비영리

'공부 > 0x04 LINUX' 카테고리의 다른 글

chattr 명령어  (0) 2010/04/21
mknod 명령어  (0) 2010/04/21
scp 명령어  (0) 2010/04/18
ssh 인증키를 이용한 로그인  (0) 2010/04/18
ssh-keygen 명령어  (0) 2010/04/18
xinetd 를 이용한 포트포워딩  (0) 2010/04/15
Samba의 smb.conf 파일 설정  (0) 2010/04/14
mysql configure  (0) 2010/04/14
gzip 과 gunzip 명령어  (0) 2010/04/14
cpio 명령어  (0) 2010/04/14
rdist 명령어  (0) 2010/04/14
Posted by Project Earth NextCube Trackback 0 Comment 0