ntp서버와 동기화 확인
#ntpq -p
ntp 서버와 동기화만 하고싶을때 (클라이언트)
rdate -s time.bora.net
OpenSSH
- 보안에 취약한 텔넷을 대체하는 원격 제어 도구
- 네트워크 통신을 암호화하여 자료를 보호하고 강력한 사용자 인증기능을 제공
- TCP 22번 포트 사용
대칭 키 알고리즘 (Symmetric Key Encrytion Algorightms)
- 데이터의 암호화와 복호화에 사용되는 키가 동일한 알고리즘
- 이때 사용되는 키를 비밀 키 (Secret Key)라고 한다.
- 대표적으로 DES, 3DES, AED, SEED, RC4 등이 있다.
- 비밀키는 데이터 통신을 사용하는 송신자와 수신자만 공유해야 하며 공개 되어서는 안된다.
비대칭 키 알고리즘 (Asymmetric Key Encrytion Algorightms)
- 데이터의 암호화와 복호화에 사용되는 키가 서로 각각 다른 알고리즘이다.
- 즉, 암호화와 복호화에 사용되는 두개의 키가 필요한데, 이 키를 각각 공개 키(Public Key), 개인 키(Private Key)라고 한다.
- 공개 키 알고리즘이라고도 부르며, 대표적으로 RSA, DSA, DSS , Diffe-Hellman 등이 있다.
- 데이터를 공개키로 암호화하면 개인키로 복호화 해야하고, 데이터를 개인키로 암호화하면 공개키로 복호화 해야한다.
- 공개키는 통신을 위해 누구에게나 공개가 가능하지만, 개인 키는 오직 키 생성자만이 안전하게 보관해야 한다.
OpenSSH 패키지에 포함된 프로그램의 종류
- 원격 기능을 지원하는 클라이언트 프로그램
ssh, scp, sftp, sshfs
- 키 관리 프로그램
ssh-add, ssh-keysign, ssh-keyscan, ssh-keygen
- 서비스 제공 프로그램
sshd, sftp-server, ssh-agent
1. OpenSSH (Secure SHell)
Server-A
(1) #yum install openssh openssh-server openssh-clients openssh-askpass
- OpenSSH 패키지 설치
openssh : 서버와 클라이언트 모두에 필요한 필수 파일을 포함
openssh-askpass : OpenSSH 인증을 위해 X11에서 패스워드 입력을 지원하는 프로그램
openssh-clients : 서버와의 암호화된 연결을 하기위해 필요한 클라이언트 프로그램
openssh-server : 서버 설정에 필요한 sshd 데몬을 포함
(2) #rpm -qa | grep openssh
openssh-5.3p1-118.1.el6_8.x86_64
openssh-server-5.3p1-118.1.el6_8.x86_64
openssh-clients-5.3p1-118.1.el6_8.x86_64
openssh-askpass-5.3p1-118.1.el6_8.x86_64
- rpm 명령어를 이용하여 패키지 설치 확인
(3) #ls /etc/ssh
- OpenSSH 패키지를 설치하면 설정 파일은 모두 이 디렉토리에 저장된다.
파일명 설명
moduli Diffe-Hellman 키 교환에 사용되는 Diffe-Hellmandml 파라미터 값이 저장되어 있으며 안전한 전송 계층 동작을 위한 중요한 파일
*.key.pub 특정 알고리즘으로 암호화 되어있는 공개 키
*.key 특정 알고리즘으로 암호화 되어있는 개인 키
ssh_config ssh 클라이언트 설정에 필요한 파일
sshhd_config ssh 서버 설정에 필요한 파일
(4) #ls -l /usr/sbin/sshd
-rwxr-xr-x. 1 root root 571224 2016-05-12 13:52 /usr/sbin/sshd
- OpenSSH(ssh)데몬 파일
(5) #ls -l /var/log/secure
-rw------- 1 root root 1479 2017-01-17 09:03 /var/log/secure
- OpenSSH는 인증에 관련된 로그를 해당 파일에 저장하므로 인증 성공 및 실패에 대한 로그 확인 시 해당 파일을 확인 해야한다.
2. OpenSSH 서버 시작
(1) #service sshd start
- sshd 데몬 시작
(2) #chkconfig --list | grep sshd
- chkconfig 설정 확인
sshd 0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해제
(3) #service sshd status
- sshd 데몬 동작 확인
openssh-daemon (pid 2343)를 실행하고 있습니다.
(4) #ssh root@localhost
- 접속 테스트
- ssh [계정명]@[IP ADDR]
- 테스트를 위해서 명령어 ssh를 이용해 root가 localhost(Server-A)접속을 시도하면 연결을 계속 하겠냐는 메시지에 yes를 입력하고
root 패스워드를 제공하면 접속이 이루어 진다.
- 이때 ssh 서버의 호스트키 (/etc/ssh/ssh_host_rsa_key.pub)가 클라이언트 사용자의 root의 /root/.ssh/know_hosts 파일에 저장되는데,
이 키는 클라이언트가 서버를 인증하기 위해 사용된다.
(5) #ps -ef | grep sshd
- sshd 서버 데몬 (sshd) 프로세스 동작 확인
root 2268 1 0 15:49 ? 00:00:02 sshd: root@pts/0
root 2343 1 0 15:58 ? 00:00:00 /usr/sbin/sshd
root 2426 2343 0 16:17 ? 00:00:00 sshd: root@pts/1
root 2446 2428 0 16:19 pts/1 00:00:00 grep sshd
(6) #lsof -i tcp:22 (#yum -y install lsof)
- SSH데몬이 사용하는 22번 포트를 명령어 lsof로 확인
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2268 root 3r IPv4 13848 0t0 TCP 100 .100.100.110:ssh->100.100.100.1:49831 (ESTABLISHED)
(100.100.100.1은 일종의 VM의 게이트웨이로 생각하자)
sshd 2343 root 3u IPv4 14149 0t0 TCP *:ssh (LISTEN)
sshd 2343 root 4u IPv6 14151 0t0 TCP *:ssh (LISTEN)
ssh 2425 root 3r IPv6 14358 0t0 TCP localhost:53717->localhost:ssh (ESTABLISHED)
sshd 2426 root 3r IPv6 14359 0t0 TCP localhost:ssh->localhost:53717 (ESTABLISHED)
(7) #netstat -natlp | grep sshd
- netstat 명령어를 이용하여 sshd 데몬의 포트와 PID 확인
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2343/sshd
tcp 0 80 100.100.100.110:22 100.100.100.1:49831 ESTABLISHED 2268/sshd
tcp 0 0 :::22 :::* LISTEN 2343/sshd
tcp 0 0 ::1:22 ::1:53717 ESTABLISHED 2426/sshd
3. OpenSSH 방화벽 설정
(1) #vi /etc/sysconfig/iptables
- 기본 적으로 ssh(22번)접속이 허용 되어 있다.
4. OpenSSH 서버 인증 설정
- SSH서버는 기본적으로 서버 접속 시 사용자의 정보를 요구하는 인증을 사용
OpenSSH서버가 제공하는 대표적인 인증 방법
- 패스워드 기반 인증
- 공개 키 기반 인증
- 호스트 기반 인증 - 사용자가 아닌 호스트 기반 인증은 안전하지 않다.
- kerberos 기반 인증 - 사용자 인증 서비스
패스워드 기반 인증
- SSH서버가 제공하는 기본 인증 방법으로서 Telnet, FTP와 같이 시스템에
존재하는 사용자와 /etc/shadow 파일에 저장된 패스워드를 이용하여 접속하는 방법
(1) #vi /etc/ssh/sshd_config
13번라인 포트 번호 13 #Port 22
42 #PermitRootLogin yes --> 42 PermitRootLogin no
- root로 접속을 허용하지 않음(보안을 위해 root는 최소한의 개입이 요구된다.)
64 #PasswordAuthentication yes -> 64 PasswordAuthentication yes
- 패스워드 인증 허용
65 #PermitEmptyPasswords no -> 65 PermitEmptyPasswords no
- 패스워드 없이 인증을 시도할 경우 이를 허용하지 않음
(2) #service sshd restart
- 설정 적용을 위해 sshd 재시작
(3) #useradd ssh-user1
#passwd ssh-user1 PW : 123
- SSH 접속용 계정 생성
Client-Linux
(1) #yum -y install openssh-clients
-SSH 클라이언트 프로그램 설치
#rpm -qa | grep openssh-clients
openssh-clients-5.3p1-118.1.el6_8.x86_64
- 클라이언트 프로그램 설치 확인
(2) ssh [계정명]@[IP ADDR]
- 접속 테스트
- #ssh ssh-user1@100.100.100.110
동일한 네트워크에 위치한 PC에서
Server-B에 SSH Server, CLinet 패키지를 모두 설정하여
암호 기반으로 접속할 수 있도록 설정
계정 : test1
암호 : 123123
양쪽 모두 서로의 서버에 접속이 가능한 지 확인
VMware Server-B (Bridge) 설정
IP DHCP 받아온 후 동일한 네트워크에 위치한PC와 IP교환하여 진행
#ifconfig
IP ADDR : 192.168.3.X
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=dhcp
#IPADDR=100.100.100.120
#NETMASK=255.255.255.0
#GATEWAY=100.100.100.2
#DNS1=8.8.8.8
#DNS2=8.8.4.4
1. 서버에 있는 파일을 Local로 복사할때
scp [계정명]@[아이피]:/[파일경로] [파일이복사될 경로]
scp root@100.100.100.120:/practice/test /home
2. local 파일을 서버에게 전달할때
scp /home/scp_test root@100.100.100.120/practice/
PC 1 PC 2
생성할 파일 /home/testABC /practice/test123
PC1이 PC2의 파일을 복사해 올때
#scp [계정명]@[아이피]:/practice/test123 /home
PC2가 PC1의 파일을 복사해 올때
#scp [계정명]@[아이피]:/practice/testABC /practice/
PC1이 PC2에게 파일을 전달할때
#scp /home/testABC [계정명]@[아이피]:/home/
PC2가 PC1에게 파일을 전달할때
#scp /practice/test123 [계정명]@[아이피]:/practice/
/home/ /practice/
PC1 testABC test123 test123
PC2 testABC test123 testABC
'Linux' 카테고리의 다른 글
Day-29 DHCP (0) | 2017.01.22 |
---|---|
Day-28 공개키 기반 인증 (0) | 2017.01.20 |
Day-26 NTP (0) | 2017.01.19 |
Day-25 Telnet, VNC, SSH (0) | 2017.01.18 |
Day-24 Network 관리 3 (0) | 2017.01.18 |