[24] openSSH, system-config-firewall, scp, sftp

|


- 2014.12.09




1. openSSH


시스템을 침입하거나 네트워크를 통해 전송되는 패킷을 가로채는(Sniffing) 기술은 날로 증가하고 있으며 그 발전속도 또한 매우 빠르다.

리모트 시스템에 접속 시 편리함을 이유로 rlogin, rsh, telnet과 같은 프로그램을 많이 이용한다. 하지만 이러한 프로그램들은 데이터 전송시 평문으로 데이터들이 전송된다는 큰 단점이 있다. 이러한 문제점을 보완하기 위한 서비스가 SSH(Secrue Shell)이다.



1) SSH (Secure Shell)


SSH 서비스는 패킷이 암호화 되어 전송되기 때문에 Telnet과 같은 비 암호화 프로그램들을 대체하여 사용할 수 있으며, 또 패킷을 암호화시켜 전송하기 때문에 제 3자에 의해서 패킷이 도청(Sniffing)된다고 하더라도 암호화된 패킷을 해독할 수 있는 해독키가 없으므로 내용을 파악 하는 것은 매우 어렵다.




[실습]


DVD1 마운트 하여 openssh* PKG 설치

-> 설치되어 있음, CentOS 는 기본적으로 SSH 를 사용한다.


ssh 설정 파일 백업 후 진행

# cp /etc/ssh/sshd_config /backup/


# vi /etc/ssh/sshd_config

     12

     13 #Port 22

     14 #AddressFamily any

     15 #ListenAddress 0.0.0.0


13번 주석 삭제 후 포트 번호 바꾸면 SSH 접속 포트 변경 가능.


# /etc/rc.d/init.d/sshd restart

sshd 를 정지 중:                                           [  OK  ]

sshd (을)를 시작 중:                                       [  OK  ]


# netstat -lntup | grep sshd

tcp        0      0    0.0.0.0:2222                0.0.0.0:*                   LISTEN      2739/sshd

tcp        0      0    :::2222                            :::*                        LISTEN      2739/sshd


2222번으로 바뀐것 확인. 하지만 푸티로 다시 접속이 되지 않는다. 바로 방화벽에서 막고 있기 때문.



네트워크 신호는 아래의 단계를 거쳐(아래에서 위로) 접속된다.

우리는 port 까진 설정 했지만 방화벽은 아직 열지 않은 것이다.


OS(방화벽)

port

IP

MAC

전기


# system-config-firewall


사용자 설정 - 다음 - 다음 - eth0 꺼주고 다시 이전으로 들어와

2222 포트, tcp 프로토콜 추가 한 뒤 종료한다.


# vi /etc/ssh/sshd_config

     13 Port 2222

     14 #AddressFamily any

     15 #ListenAddress 0.0.0.0

     16 ListenAddress 192.168.1.134

     17 #ListenAddress ::


15번 줄을 16번 줄에 백업 시킨 후 현재 서버의 ip를 입력한다.

그리고 CentOS의 ip를 변경 후 변경된 ip로 putty를 접속하면 실패한다.

ListenAddress 는 접속하는 클라이언트의 ip 가 아니라 서버의 ip 이다.

시스템에 여러 ip가 존재 할 경우 서비스할 특정 ip를 지정하는 기능이다.


     21 # activation of protocol 1

     22 Protocol 2


22번 줄의 SSH 서비스 시 이용할 버전을 선택하는 것으로 보안상의 이유로 Protocol2 을 사용한다.


     30 # Lifetime and size of ephemeral version 1 server key

     31 #KeyRegenerationInterval 1h

     32 #ServerKeyBits 1024


31번 줄 : 자동으로 생성된 키의 유효시간 지정

32번 줄 : 서버의 암호키 생성시 사용하는 bit 수 지정, 최소값은 512.


     42 #LoginGraceTime 2m

     43 #PermitRootLogin yes

     44 PermitRootLogin no

     45 #StrictModes yes


42번 줄 : 로그인 안하고 대기중인 시간

43번 줄 : (44번으로 백업 해놓음) 루트 권한 접속 금지

=> 루트의 다이렉트 접속 금지, 서버 구축 시 2번째로 해야 할 보안 사항. (1번째는 grub 암호 설정)

이렇게 되면 일반 사용자로 로그인, su - 로 관리자 권한 얻어야 한다.


     45 #StrictModes yes

     46 #MaxAuthTries 6

     47 #MaxSessions 10


46번 줄 : 시도 6번


    130 # no default banner path

    131 #Banner none

    132


131번 줄 : 배너 설정. ex) /ban/a 처럼 디렉터리 형식으로 문서 파일을 지정한다.




[ssh 접속 방법]


1) ssh servier_ip

        접속 되어 있는 계정으로 접속

2) ssh -l 계정명 server_ip

        3) 과 같음

3) ssh 계정명@server_ip


기본적으로 Windows 에서는 기본적으로 SSH를 제공하지 않는다.

따라서 무료인 PuTTY 나 유료인 SecureCRT 를 많이 쓴다.





2. scp


scp(Secure Copy) : 원격지의 데이터 복사하기


scp [-op] [s] [s] ... [t]


ex) p155

host:10, /tmp/A

host:20, /test/B


1) # scp 192.168.1.10:/tmp/A /test/

=> # scp samadal@192.168.1.10:/tmp/A /test/


2) # scp /tmp/A 192.168.1.20:/test/

=> # scp /tmp/A samadal@192.168.1.20:/test/



1) 의 경우는 root(나)가 samadal 계정으로 접속하여 복사해오는 것. 성공

=> download의 개념

# scp samadal@192.168.1.10:/tmp/A /test/

         rwx------                   rwxrwxrwt  rwxr-xr-x

             1                                            2   43


2) 의 경우는 samadal 정으로 로그인된 것으로 /test/ 에다 /tmp/A 를 복사하는 것.

이 경우에는 이미 /test/A 가 있기 때문에 덮어쓸 때에 /test/A 파일을 덮어 쓸 권한이 없어 실패.

하지만 chmod 646 /test/A 처리를 한 뒤면 samadal 계정도 해당 파일에 대한 w 권한이 있기 때문에 성공한다.

만약 /test/A 파일이 존재하지 않았다면 /test/ 디렉터리에 o+w 권한이 필요.

=> upload의 개념

# scp /tmp/A samadal@192.168.1.20:/test/

        rwxrwxrwt      rwx------                 rwxr-xr-x

            1                    2                                   43





3. sftp


sftp : Secure FTP

일반적인 FTP 서비스는 암호화된 통신을 하지 않으므로 서비스 이용 시 안정성을 보장 받지 못한다.

sftp 서비스는 SSH 서비스와 함께 동작하는 서비스로, 데이터 전송 시 암호화된 데이터로 안정성을 보장받을 수 있다.



[명령어]


1) sftp server_ip  : 현재 자신의 계정으로 접속

2) sftp 계정명@servier_ip



[사용법]


1) 작업하려는 디렉터리로 이동

2) put, get 으로 업로드 및 다운로드 진행

3) 종료는 quit, exit, Ctrl+Z 등 다양한 방법으로 가능




[문제]


(host:10)

/tmp/testfile 을 아래 3개의 디렉터리명의 방법으로 각각 복사.


(host:20)

1) /test/ssh/

2) /test/sftp/

3) /test/scp/



# chmod -R o+w /test/


1)

# ssh samadal@192.168.1.134

[samadal@samadal ~]$ scp samadal@192.168.1.134:/tmp/testfile /test/ssh/


2)

# cd /tmp/

# sftp samadal@192.168.1.134

sftp> cd /test/sftp

sftp> put testfile


3)

# scp /tmp/testfile samadal@192.168.1.134:/test/scp




'Study > CentOS' 카테고리의 다른 글

[26] vnc(2), vnc with ssh, ftp  (0) 2015.03.28
[25] vnc(1)  (0) 2015.03.28
[23] xinetd, telnet, krb5-telnet  (0) 2015.03.28
[22] SELinux(소개), NIC, route, netstat, arp, nslookup, dig  (0) 2015.03.28
[21] 이론 - ip, subnetmask, prefix  (0) 2015.03.28
And