telnet : 암호화 통신 X
ssh : 암호화 통신
/etc/ssh/sshd_config : sshd 서버 설정파일
/etc/ssh/sshd_config 설정파일 형식
# 으로 시작하면 주석
ex1) # This sshd was compiled
#지시자(지시어) 값 으로 시작하면 기본값으로 설정되어 있는 지시자
ex2) #Port 22
Port 22
SSH 서비스 포트를 지정하는 지시자로 기본값은 22번으로 설정되어 있지만 보안을 위해 임의의 포트로 변경한다.
보안상 실무에서는 변경을 한다. (상황에 따라서 다르다.)
ListenAddress 0.0.0.0
IPV4를 사용할 때 설정한다.
SSH 서버에서 Listen 할 로컬 호스트 주소를 설정한다.
여러 개의 IP주소를 사용중일 때 특정 IP주소로 SSH 접속이 가능하도록 설정하는 옵션으로 0.0.0.0은 모든 IP주소를 의미한다.
ListenAddress ::
IPV6 를 사용할 때 설정한다. 기본값 그대로 놔둔다.
#Hostkey ~
Protocol 1, 2(rsa, dsa) 의 호스트키 위치를 지정한다.
KeyRegenerationInterval 1h
자동으로 생성된 키의 유효시간을 지정한다(기본 3600sec 이고 h를 붙이면 1 hour의 의미이다).
이 옵션은 호스트의 세션에 있는 키를 캡쳐해서 암호를 해독하거나 훔친 키를 재사용 하지 못하도록 하기 위함이다.
ServerKeyBits 1024
서버 키의 비트 길이를 설정한다.
SyslogFacility AUTH
rsyslog 데몬에 의한 로그 facility를 지정한다.
sub system 종류 및 내용은 syslog 관련 자료를 참조.
LogLevel INFO
로그 레벨(메시지 종류)를 지정한다.
LoginGraceTime 2m
지정한 시간내에 로그인 하지 않으면 자동으로 접속을 끊는다. 0값은 무제한.
PermitRootLogin no
클라이언트에서 root로 접근을 허용할 것인지 지정하는 지시자로 보안상 실무에서는 no 로 설정한다.
StrictModes yes
로그인을 허용하기 앞서 파일 모드 및 사용자 홈 디렉토리 소유권과 원격 호스트의 파일들을 ssh 데몬이 체크 할 수 있도록 할 때 사용한다.
MaxAuthTries 6
접속당 최대 인증 시도 횟수. 기본값 6, 인증 실패시 /var/log/secure 파일에 로그가 기록된다.
#PubkeyAuthentication yes
공개키 인증 설정. Protocol 2에 적용된다.
#AuthorizedKeysFile .ssh/authorized_keys
인증키를 저장할 위치를 지정한다.
HostbasedAuthentication no
호스트 기반의 인증 허용 여부를 결정한다.
IgnoreUserKnownHosts no
RhostsRSAAuthentication, HostbasedAuthentication 인증시 ~/.ssh/knownhosts 파일의 호스트들을 제외할 것인지 설정한다.
rhosts 파일을 허용하지 않았으므로 기본값 no로 설정한다..
IgnoreRhosts yes
~/.rhosts와 ~/.shosts 파일 사용여부를 결정한다. 보안상 이유로 사용하지 않는다.
PermitEmptyPasswords no
패스워드 인증시 비밀번호가 없는 사용자를 허가 여부를 결정한다.
PasswordAuthentication yes
패스워드 인증을 허용한다.
Protocol 1, 2 모두 적용되고 현재는 Protocol 1은 사용하지 않는다.
ChallengeResponseAuthentication no
Challenge-Response 인증을 허용할지 여부를 설정한다.
UsePAM 옵션을 yes로 설정할 경우 이 옵션은 no로 설정해야 한다.
UsePAM yes
ChallengeResponseAuthentication을 이용한 PAM 인증을 허용하는 옵션이다. 이 옵션을 yes로 설정하는 경우 비밀번호 인증과 동일하게 적용되므로, 비밀번호 인증 또는 ChallengeResponseAuthentication 옵션을 꺼 놓아야 한다.
AllowTcpForwarding yes
TCP 포워딩을 가능토록 설정하는 옵션이다. 보안상 실무에서는 no 로 설정하기도 한다. (상황에 따라서 다르다.)
GatewayPorts no
클라이언트에 포워드된 포트로 원격 호스트 들이 접속할 수 있도록 설정하는 옵션이다.
X11Forwarding no
원격에서 X11 포워딩을 허용할지 여부를 설정하는 옵션이다.
보안상 실무에서는 no 로 설정하기도 한다. (상황에 따라서 다르다.)
X11DisplayOffset 10
X11 포워딩이 될 때 디스플레이 offset을 설정. 허용하지 않았으므로 주석 처리.
PrintMotd yes
ssh 로그인시 /etc/motd 파일의 내용을 보여줄 것인지 여부결정.
ssh 로그인을 환영하는 메시지나 공지사항 등을 출력되도록 할 수 있음.
PrintLastLog yes
로그인 시 지난번 로그인 기록을 보여줄 것인가를 설정.
TCPKeepAlive yes
클라이언트의 접속이 끊어졌는지를 체크하기 위해 서버가 일정시간 메시지를 전달한다.
PermitUserEnvironment no
~/.ssh/enviroment와 ~/.ssh/authorized_keys 파일의 environment = 옵션을 sshd 데몬에서 처리 되도록 할것 인가를 설정한다.
Compression delayed
압축 사용여부를 결정한다.
ClientAliveInterval 0
클라이언트로부터 sshd 데몬이 아무런 데이터를 받지 못하게 되면 암호화된 채널을 통해서 메시지를 클라이언트의 요청에 응답하여 보내는데 이 때의 시간 간격을 초단위로 설정한다. 0은 클라이언트에 메시지를 보내지 않는 것을 의미. Protocol 2에서 적용된다.
ClientAliveCountMax 3
서버에게 전달되는 클라이언트의 생존 메시지 회수를 지정한다. 이 옵션으로 지정한 값에 도달하게 되면 sshd 데몬은 클라이언트와의 연결을 끊어 버리고 세션을 종료시킨다.
UseDNS no
접속한 클라이언트의 호스트 주소를 DNS로 해석하므로 접속 시 느려질 수 있어서 no 로 설정한다.
PidFile /var/run/sshd.pid
sshd 데몬의 PID를 저장할 파일을 지정한다.
MaxStartups 5
로그인하고 있지 않는 최대 접속 수를 설정한다.
이 값을 초과하게 되고 인증이 성공적으로 이뤄지지 않으면 그 다음 접속이 불가능 하다.
Subsystem sftp /usr/libexec/openssh/sftp-server
sftp는 프로토콜 버전 2에서 사용되는 것으로서 ssh와 같이 ftp의 보안을 강화하기 위해 사용되는 보안 ftp 프로그램이다.
openssh를 설치하면 /usr/libexec/openssh/sftp-server 파일이 설치된다.
이것은 sftp 서버용 프로그램으로 클라이언트 sftp 프로그램은 sftp 이다.
따라서 서버로 가동시키고 원도용 ssh클라이언트 프로그램이나 SSH2를 설치하면 sftp를 사용이 가능하다.
ChrootDirectory yes
sshd 에서 제공하는 chroot 기능으로 보안에 관련된 내용으로 chroot의 고립된 형태로 ssh를 작동시킨다.