따라서, 이전 버전과 달리 TCP/Wrapper 구동하는 방법이 달라졌다.
아래와 같이 설정하여 사용하도록 한다.
1. 현재 TCP/Wrapper 설정 확인
# inetadm -p
NAME=VALUE
bind_addr=""
bind_fail_max=-1
bind_fail_interval=-1
max_con_rate=-1
max_copies=-1
con_rate_offline=-1
failrate_cnt=40
failrate_interval=60
inherit_env=TRUE
tcp_trace=TRUE
tcp_wrappers=FALSE <- 현재 정지된 상태임
connection_backlog=10
2. 접근 허가 또는 접근 불가 host list를 작성한다.
(1) 접근허가 : hosts.allow
# vi /etc/hosts.allow
in.telnetd:100.100.100.111
in.ftpd:100.100.100.111
ALL:localhost <- 자기 자신에 대해 모든 접근 허가
(2) 접근불가 : hosts.deny
ALL:ALL <- 어떤 host든 접근 불가
3. TCP/Wrapper를 사용가능하게 한다.
# inetadm -M tcp_wrappers=true
* 사용불가로 하고 싶을 경우에는 아래와 같이 한다.
# inetadm -M tcp_wrappers=false
추가로, tcp wrapper에 대한 상세 설명은 아래와 같다.
출처 : http://boanin.tistory.com/112
- 유닉스(솔라리스)에서 접근 제어를 하기 위해 TCPWrapper를 사용합니다.
- TCPWrapper를 이용한 접근 제어를 하기 전에 inetd(수퍼 데몬)의 대한 이해가 필요합니다. 그래서 먼저 inetd에대해 살펴보고 그 후 TCPWrapper를 이용한 설정에 대해 알아보겠습니다.
1. inetd 데몬
<inetd 데몬의 구성>
(1). 그림과 같이 텔넷과 FTP 클라이언트가 서버에 접속을 요구하면 inetd 데몬이 이를 확인
(2). /etc/inetd.conf 파일에 데몬에 대한 설정을 읽음
(3). /etc/services 파일에서 설정된 포트 번호에 대해 클라이언트의 요청이 있을 때 텔넷 데몬을 실행
- /etc/inetd.conf 파일을 vi를 통해 열면 아래 그림과 같다. 파일에는 여러 데몬에 대한 설정이 7개 부분으로 나와 있는데 각 부분에 대해 알아보자.
①. telnet -> 서비스
- 서비스 이름을 정의하며, /etc/services에 정의되어 있어야 한다.
②. stream -> 소켓 타입
- tcp의 경우 stream, udp의 경우 dgram
③. tcp6 -> 프로토콜
- /etc/protocols에 정의된 프로토콜의 종류와 번호
④. nowait -> 대기설정
- inetd가 서비스 요청을 받은 경우 즉시 처리할 것인가의 여부에 따라 nowait or wait
⑤. root -> 로그인 이름
- 데몬을 어떤 사용자의 권한으로 수행할 것인가 명시
⑥. /usr/sbin/in.telnetd -> 서버
- 해당 서비스를 수행하기 위해 어떤 프로그램을 실행시킬 것인가를 절대경로로 표시
⑦. in.telnetd -> 인자
- 데몬을 실행하는데 필요한 인자 값
2. TCPWrapper Tool
- 솔라리스 9에는 /usr/sfw/sbin에 기본적으로 설치되어 있다.
- 위에서 inetd 데몬에 대해 알아보았습니다. 여기에 TCPWrapper가 설치되면 데몬의 동작이 아래와 같이 바뀝니다.
①. inetd 데몬은 클라이언트의 요청을 tcpd 데몬에게 넘겨준다.
②. tcpd 데몬은 클라이언트의 요청이 적절한 접근 권한이 있는지 확인
- TCPWrapper의 설정(telnet의 경우)
①. /etc/inetd.conf 파일의 telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd을
telnet stream tcp6 nowait root /usr/sfw/sbin/tcpd in.telnetd로 바꿔줍니다.
②. 접근 제어 설정 시 /etc/hosts.allow와 /etc/hotst.deny를 사용
-> 두파일에 기록하는 접근 통제 규칙
③. 설정 확인
05. 파일 및 디렉터리 관리
- PATH에 현재 디렉터리를 의미하는 '.'를 포함시키지 않는다.
- umask값을 022 또는 027로 지정
- /etc 디렉터리
▷ 여러가지 시스템에 대한 설정 파일을 담고 있는 디렉터리
▷ 기본은 755이나 751로 주는 것이 좋다.
- /bin
▷ 명령에 대한 실행 파일을 담고 있는 디릭터리
▷ 기본은 777이나 771로 주는 것이 좋다.
- /usr/bin
▷ 기본은 755이나 751로 주는 것이 좋다.
- /sbin
- /tmp, /var/tmp
▷ 임의의 사용자가 모두 사용할 수 있는 디렉터리
▷ 이 디렉터리에는 스티키 비트가 설정되어 있다.
- /var/log
▷ 여러가지 로그 정보를 담고 있는 파일
▷ 755 -> 751
- /etc/ssh
▷ ssh 연결 시 필요한 공개키 등의 정보를 담고 있다.
▷ 755 -> 750
- /etc/crontab
▷ cron 데몬에 의한 자동 실행을 설정할 수 있는 파일
- /etc/syslog.conf
▷ 시스템 로그에 대한 설정을 담고 있는 파일
▷ 640이하로 권한 설정
- /var/log/wtmp
▷ 시스템 접속에 대한 로깅
▷ 640이하로 권한 설정
- /var/log/lastlog
▷ 시스템에 로그인한 사용자에 대한 로그 정보
▷ 640이하로 권한 설정
- /etc/ftpusers
▷ 관리자나 특정 계정에 대해 ftp 로그인이 불가능하도록 설정하는 파일
▷ 644 -> 600
- /etc/passwd
▷ 계정에 대한 기본적인 정보를 제공
▷ 444 -> 400
- /etc/shadow
▷ 암호화된 패스워드가 있는 파일
- /etc/hosts.equiv
▷ 시스템에 대한 신뢰(trust)를 설정할 수 있는 파일
▷ 권한을 600이하로 설정
- /etc/hosts.allow, /etc/hosts.deny
▷ 기본적으로 존재하는 파일이 아니므로 생성 후 권한 변경
▷ TCPWrapper에서 접근 권한을 설정하는 파일
▷ 권한을 600이하로 설정
- /etc/securetty
▷ 텔넷 등에 대한 접근 제어 설정
▷ 권한을 600이하로 설정
- /etc/rc.d/init.d, /etc/init.d
▷ 시스템을 부팅할 때의 설정 파일
▷ 755 -> 750
- /etc/initd.conf
▷ 시스템이 제공하는 서비스에 대한 정보를 담고 있다.
▷ 777 -> 600
- /etc/cron.allow, /etc/cron.deny
▷ cron 데몬에 대한 접근 제어 파일
▷ 기본적으로 존재하는 파일이 아니므로 생성 후 권한 변경
▷ 권한을 400으로 준다.
- /etc/hosts
▷ 시스템에 접근하는 호스트들에 대한 IP와 호스트 이름을 확인할 수 있는 정보를 제공
▷ 권한을 644 이하로 준다.
'Solaris > 기술과 팁' 카테고리의 다른 글
[보안]솔라시스 암호없는 사용자 검색 및 로그인 실패 기록, root 로그인 제한 등의 방법 (0) | 2010.01.21 |
---|---|
core dump 분석 (0) | 2010.01.21 |
솔라리스에서 기본적으로 동작되는 서비스에 대한 설명 (0) | 2010.01.21 |
root 이외의 관리자 계정의 존재 여부를 확인 및 root 이외 관리자 계정 생성하기 (0) | 2010.01.21 |
[보안] root 계정의 텔넷접속 방지 (0) | 2010.01.20 |