글 수 369
ssh 는 패킷간에 암호화를 하기 때문에 스니퍼 같은 패킷 캡쳐 프로그램으로
패킷들이 캡쳐당하더라도 보안상 더 낫기 때문에 텔넷 사용을 권장하지 않음.
http://www.openssh.org
- 목 차 -
1. RPM을 통한 설치방법
2. 소스설치
3. ssh-Server 설정파일 수정방법
#######################
1. RPM을 통한 설치방법
#######################
1) Openssh RPM 패키기 구성 화일 www.openssh.org 또는 www.norlug.org에서 다운로드
openssh-3.1p1-6
openssh-server-3.1p1-6
openssh-clients-3.1p1-6
openssh-askpass-3.1p1-6
openssh-askpass-gnome-3.1p1-6
2) 설치
#> rpm -Uvh openssh-*
#######################
2. 소스설치
#######################
참고: 기타 설치시 문제는 http://www.openssh.org/faq.html#3.2 참고할것.
1) 최근 파일 다운로드
#> wget http://openbsd.md5.com.ar/pub/OpenBSD/OpenSSH/portable/
2) 컴파일 및 설치
#> ./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-md5-passwords
#> make
#> make install
#> vi /etc/rc.d/rc.local
# ------------ ssh-server Daemon 자동시작 -----------
# (ssh-Server 프로세스 중지방법: killall sshd )
/usr/local/ssh/sbin/sshd
###################################
3. ssh-Server 설정파일 수정방법
###################################
1) ROOT로 ssh 접속 막는 방법
#>vi /etc/ssh/sshd/sshd_config
-> PermitRootLogin no
#>/etc/init.d/sshd restart
2) 사용자의 상위디렉토리 이동 방지
상위디렉토리관련은 현재 openssh에서는 없고, 패치형태로 존재하는데
http://chrootssh.sourceforge.net/를 이용.
3) sshd 접속 유지
#>vi /etc/ssh/sshd_config
적당한 위치에 ClientAliveInterval 삽입
4). telnet xxxx 22 시 ssh버전 뜨는 것 방지
-> 소스 설치시 컴파일전에 version.h 파일을 적당히 수정.
5). ssh 접속 포트 변경
#>vi /etc/ssh/sshd/sshd_config
Port 22 ---> Port 2222
#>/etc/init.d/sshd restart
6). ssh로 다른곳 접속 가능하게 하기
접속하려는 곳을 전에 접속할때 도메인네임으로 혹은 로컬 네트웍에서
호스트네임으로 접속해서 생긴 현상으로 ssh의 설정파일에 동일한
호스트의 정보가 겹쳐서 일어나는 현상이므로, known_hosts안의
내용을 삭제하고 다시 접속하면 됨.
7). ssh1이 동작하는지 ssh2가 동작는지 알수 있는 방법
/etc/ssh/sshd_config파일에 Protocol 2 이면 ssh2 임.
또는 telnet localhost 22 로 연결해보면 알수 있음.
8). 웹으로 ssh 사용 방법
다운: http://javassh.org/ 에서 접속하여 다운로드
데모: http://webssh.decf.berkeley.edu/
http://hopper.mathcs.wilkes.edu/~mcsclub/ssh/
다운: http://www.appgate.com/mindterm/
컴파일: http://mindterm.appgate.com/pipermail/mindterm-users/2002q1/000489.html
9). root를 제외한 다른 사용자의 ssh접속을 막기
- root에게 원격접속을 허용하지 않는 것은 보안의 제 1원칙
- /etc/pam.d/sshd 이 파일을 수정
#> vi /etc/pam.d/sshd
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user
sense=allow file=/etc/sshusers onerr=succeed
위의 내용을 맨 윗줄에 추가하신 후
#> vi /etc/sshusers ( 접속을 허용할 계정을 한줄에 하나씩 기입)
linuxer
10) iptables 를 이용한 방화벽 설정 방법
가. ssh의 취약점을 통한 root 권한 획득을 위해 불량접근 IP 잠금처리
#> iptables -A INPUT -s 204.60.81.110 -p tcp --dport 22 -j DROP
나. ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
#> vi /etc/rc.d/rc.local [Enter]
# ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
/sbin/iptables -A OUTPUT -s 210.118.118.118 -p tcp --dport 22 -j DROP
#>reboot
다. 설정 내역 열람
#> iptables -l [Enter]
11) ssh에서 자기계정 내용외에는 볼수 없게 하는 방법 ( for 웹서버운영시)
#> cd /home [enter]
#> chmod 750 계정명 [enter]
#> chown 계정명.nobody 계정명 [enter]
12. ssh 접속 사용자별 제한 설정
#> vi /etc/ssh/sshd_config
가. AllowGroups
:ssh 로그인을 해당 그룹으로 제한한다.
각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.
나. AllowUsers
:ssh 로그인을 해당 유저로 제한한다. 사용법은 AllowGroups과 같다.
다. DenyGroups
:AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.
라. DenyUsers
:AllowUsers의 반대 역할을 한다. 지정된 사용자는 로그인이 거부된다.
예) DenyUsers admin testman invain
#> /etc/init.d/sshd restart
이하여백.
패킷들이 캡쳐당하더라도 보안상 더 낫기 때문에 텔넷 사용을 권장하지 않음.
http://www.openssh.org
- 목 차 -
1. RPM을 통한 설치방법
2. 소스설치
3. ssh-Server 설정파일 수정방법
#######################
1. RPM을 통한 설치방법
#######################
1) Openssh RPM 패키기 구성 화일 www.openssh.org 또는 www.norlug.org에서 다운로드
openssh-3.1p1-6
openssh-server-3.1p1-6
openssh-clients-3.1p1-6
openssh-askpass-3.1p1-6
openssh-askpass-gnome-3.1p1-6
2) 설치
#> rpm -Uvh openssh-*
#######################
2. 소스설치
#######################
참고: 기타 설치시 문제는 http://www.openssh.org/faq.html#3.2 참고할것.
1) 최근 파일 다운로드
#> wget http://openbsd.md5.com.ar/pub/OpenBSD/OpenSSH/portable/
2) 컴파일 및 설치
#> ./configure --prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-md5-passwords
#> make
#> make install
#> vi /etc/rc.d/rc.local
# ------------ ssh-server Daemon 자동시작 -----------
# (ssh-Server 프로세스 중지방법: killall sshd )
/usr/local/ssh/sbin/sshd
###################################
3. ssh-Server 설정파일 수정방법
###################################
1) ROOT로 ssh 접속 막는 방법
#>vi /etc/ssh/sshd/sshd_config
-> PermitRootLogin no
#>/etc/init.d/sshd restart
2) 사용자의 상위디렉토리 이동 방지
상위디렉토리관련은 현재 openssh에서는 없고, 패치형태로 존재하는데
http://chrootssh.sourceforge.net/를 이용.
3) sshd 접속 유지
#>vi /etc/ssh/sshd_config
적당한 위치에 ClientAliveInterval 삽입
4). telnet xxxx 22 시 ssh버전 뜨는 것 방지
-> 소스 설치시 컴파일전에 version.h 파일을 적당히 수정.
5). ssh 접속 포트 변경
#>vi /etc/ssh/sshd/sshd_config
Port 22 ---> Port 2222
#>/etc/init.d/sshd restart
6). ssh로 다른곳 접속 가능하게 하기
접속하려는 곳을 전에 접속할때 도메인네임으로 혹은 로컬 네트웍에서
호스트네임으로 접속해서 생긴 현상으로 ssh의 설정파일에 동일한
호스트의 정보가 겹쳐서 일어나는 현상이므로, known_hosts안의
내용을 삭제하고 다시 접속하면 됨.
7). ssh1이 동작하는지 ssh2가 동작는지 알수 있는 방법
/etc/ssh/sshd_config파일에 Protocol 2 이면 ssh2 임.
또는 telnet localhost 22 로 연결해보면 알수 있음.
8). 웹으로 ssh 사용 방법
다운: http://javassh.org/ 에서 접속하여 다운로드
데모: http://webssh.decf.berkeley.edu/
http://hopper.mathcs.wilkes.edu/~mcsclub/ssh/
다운: http://www.appgate.com/mindterm/
컴파일: http://mindterm.appgate.com/pipermail/mindterm-users/2002q1/000489.html
9). root를 제외한 다른 사용자의 ssh접속을 막기
- root에게 원격접속을 허용하지 않는 것은 보안의 제 1원칙
- /etc/pam.d/sshd 이 파일을 수정
#> vi /etc/pam.d/sshd
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user
sense=allow file=/etc/sshusers onerr=succeed
위의 내용을 맨 윗줄에 추가하신 후
#> vi /etc/sshusers ( 접속을 허용할 계정을 한줄에 하나씩 기입)
linuxer
10) iptables 를 이용한 방화벽 설정 방법
가. ssh의 취약점을 통한 root 권한 획득을 위해 불량접근 IP 잠금처리
#> iptables -A INPUT -s 204.60.81.110 -p tcp --dport 22 -j DROP
나. ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
#> vi /etc/rc.d/rc.local [Enter]
# ssh의 취약점을 통한 외부로의 접근 봉쇄(로컬 --22-->외부)
/sbin/iptables -A OUTPUT -s 210.118.118.118 -p tcp --dport 22 -j DROP
#>reboot
다. 설정 내역 열람
#> iptables -l [Enter]
11) ssh에서 자기계정 내용외에는 볼수 없게 하는 방법 ( for 웹서버운영시)
#> cd /home [enter]
#> chmod 750 계정명 [enter]
#> chown 계정명.nobody 계정명 [enter]
12. ssh 접속 사용자별 제한 설정
#> vi /etc/ssh/sshd_config
가. AllowGroups
:ssh 로그인을 해당 그룹으로 제한한다.
각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.
나. AllowUsers
:ssh 로그인을 해당 유저로 제한한다. 사용법은 AllowGroups과 같다.
다. DenyGroups
:AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.
라. DenyUsers
:AllowUsers의 반대 역할을 한다. 지정된 사용자는 로그인이 거부된다.
예) DenyUsers admin testman invain
#> /etc/init.d/sshd restart
이하여백.