1. 포트포워딩?
시스템의 특정 포트로 들어오는 패킷을 다른 포트로 변경해서 패킷을 전달해주는 기능
2. xinetd 를 이용한 포트포워딩
inetd 와 xinetd 는 터미널 제어를 갖지 않는 슈퍼데몬.
슈퍼데몬이라고 칭하는 이유는 다른 네트워크 서비스(telnet, ftp 등등)들의 수퍼 서버의 역할을 하기 때문이다.
inetd 는 네트워크 연결 요청을 대기하고 있다가 연결요청이 들어오면 해당 포트에 매핑되는 서비스 프로세스를 실행하여 네트워크 스트림을 서비스 프로세스의 표준입력으로 전달하고 그 프로세스의 표준 출력은 네트워크 상의 요청한 호스트에게 보낸다.
xinetd 는 inetd를 개선한 슈퍼데몬으로 설정파일이 변경되었고 더 많은 기능을 지원.
inetd 보다 성능이 더 빠르고 보안 취약점을 더 많이 보완했으며, inetd 와 다르게 설정 파일은 /etc/xinetd.d 에 있다.
/etc/xinetd.d 디렉토리에 service 설정파일을 생성하면된다.
하위서비스 설정
3. xinetd 설정 옵션
매개변수
환경매개변수
리소스 관리 매개변수
보안 관련 매개변수
4. 예문
- A서버에서 B서버로 홈페이지 이전
- 웹서비스 (80)만 포워딩
- 최대 동시 접속 수는 600으로 제한
- 512번 동시접속이 있으면, 3초간 포워딩을 하지 않음
- 127.253.13.12 IP로 리스닝
- A서버 IP : 127.253.13.2
- B서버 IP : 210.253.13.3
리눅스마스터1급 2차 16회 14번 문제
시스템의 특정 포트로 들어오는 패킷을 다른 포트로 변경해서 패킷을 전달해주는 기능
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 에게 파일 또는 디렉토리를 포함 하도록 설정
서비스명을 정의. 주로 /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 로 부터 서비스 핸들러로 전달되어야 하는 환경변수
서비스를 실행할 사용자의 명, 그룹명을 지정하거나
nice
프로세스 우선순위 설정
env
서비스 핸들러용 환경변수
passenv
xinetd 로 부터 서비스 핸들러로 전달되어야 하는 환경변수
리소스 관리 매개변수
instances
즉시 시작할 수 있는 핸들러의 수. UNLIMITED 는 제한없음
max_load
시스템이 과도하게 부하가 되면 커넥션 수락을 중단. 로드의 수는 시스템에 따라 다름
rlimit_as, rlmist_cpu, rlimit_data, rlimit_rss, rlimit_stack
매개변수는 서비스 핸들러를 위해 리소스 제한
interface
서비스를 바인드 할 네트워크 인터페이스의 IP주소를 지정
즉시 시작할 수 있는 핸들러의 수. 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 플래그를 시작한 사람에 의한 서비스 거부 시간
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
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 |