본문 바로가기

AWS 교육/Server (화)

250218 VMware tools, ssh 보안, LVM, FTP

728x90

 먼저 CentOS 6.8버전의 폴더가 남아있으면 삭제 후 zip를 압축해제 하여 준 후 

 VMware로 작동시킨다

 

 ◇ CentOS 6.8 전체화면

  이후 VM > Install VMware Tools... 를 클릭 시 적용되지 않기에 해당 창이 열리며 linux.iso파일을 저장하여 주며

  linux.iso에 대해 필요한 부분을 적어 linux.txt형태로 저장하여 준다

  그 후 CentOS6.8에서 cd-rom에서 centos6.8.iso를 linux.iso로 변경하고 시작하여 준다

  허나 지원을 하지않는 파일이기에 cd-rom에서 disconnect 해준 후 접속하여 파일 없는 것을 확인 후

  다시 connect를 하여주면 해당 폴더가 접속되는 것을 확인할 수 있다

  이제 해당 압축파일을 vm디렉토리를 생성하여 내부에 압축을 풀어준 후

  터미널로 접속하여 해당 디렉토리로 가서 파일을 shell 실행하여 준다

  이렇게 완료하게 되면 이제 전체화면으로 띄워놓은 상태라면 로그인 시 전체화면으로 보이게 된다

 

  이제 해당 내용을 압축파일로 압축 시 해당 작업을 더이상 안해도 자동 적용된 파일로 보관

 

  이제 화면은 원하는 값에 따라 자동으로 변경된다

 

  그 후 Ctrl + Alt + F2를 입력하여 cli로 접속하여 준다 > F1~F6까지 가상 콘솔(tty)이라고 하여 한 PC로 여러 터미널을 사용할 수 있다

 

  이제 종료한 후 클론을 만들어 준 후 저번주와 같이 파일의 내용을 수정하여 준다

  그후 네트워크 설정에서 eth0의 ip를 20으로 바꾸고 eth1을 삭제하여 준 후 putty로 접속

 

  오늘은 이를 통해 저번주에 하지 못한 SSH, LVM을 배워볼 예정 (+FTP)

 

◆ SSH

2025_2_12_Wed_sshd_config 설명.txt
0.00MB

 

  centos에서 ssh key값을 보관된 장소 = /etc/ssh

  putty로 접속 시 ip가 다를 경우 경고표시가 되는 데 띄워보기 위해서

  ip를 변경하여 본 후 restart하여 주면 접속이 끊기는 데

  변경한 ip로 접속해보면 내용을 확인할 수 있으며, 내용을 해석하여 보면 캐시로 키를 저장할 지 내용을 묻는 것을 알 수 있다

 

  다시 .10으로 변경 후 접속하여 주고 Putty에서 ssh의 취약점을 확인하여 보면

  ㄴ버전을 낮추거나 보안적 요소를 건드는 것이 있다

 

  이 키에 관하여 A에서 B에 접속하는 방법에 대한 것인데

  IKE(Internet Key Exchange) = 전 세계 우리 둘만 아는 걸 만들자~라는 개념

 

  1. PSK(Preshared-Key) = 접속 전에 미리 공유한 대칭 키

                A  --- B
             1234 1234

  2. RSA = 비대칭 키

                           공개키=부호화 1234 -> $6123abc => $6asdfiasjodfajsfasfj1231241824u
                          개인키=복호화 $6123abc -> 1234  => $6asdfiasjodfajsfasfj1231241824u

  형식의 키 구조가 존재

 

  이제 sshd_config 파일의 내용을 수정 시 설정값을 바꿀 수 있다

  먼저 root 접속을 차단하여 보고

  client에서 root계정으로 실행 시 되지않는 것을 볼 수 있으며 user1 계정 접속 시 되는 것을 볼 수 있다

  (계정이 없는 것은 동일 계정이기 때문)

 

 ※ 이런 내용을 ssh가 아닌 윈도우에서도 가능한데

  다른 사람의 pc로 접속하려면 해당 인원 pc의 ip를 확인 후 컴퓨터에 있는 원격 데스크톱 연결을 하여 주는 데 

  해당 pc에서 시스템 속성 > 원격 : 원격연결 허용을 하여 준 후 해당 pc의 계정과 비번을 입력하여 주면 된다

 

 

  그 후 sshd_config파일의 no한 내용을 삭제 후 restart하여 주면 정상적으로 접속이 되는 것을 볼 수 있다 

 

  그 중 subsystem이라는 것이 있는 데 일종의 부가서비스로서 sftp는 접속 보안설정이며,

  

  먼저 test디렉토리를 만들어서 1, 2, 3파일을 생성하고 client에서는 iu 디렉토리를 생성하여 11, 22, 33파일을 생성해서

  서로 파일을 교환하는 형식이며, client에서 sftp로 접속하여 준 후 (계정이 없는 것은 동일 계정이기 때문)

  다운로드 할 디렉토리 지정 후 파일을 다운로드 하여 준다

  다운로드 위치 = 업로드 시작 위치

 ★ 다운로드는 get, 업로드는 put 명령어를 사용

   ㄴ위치가 직관적으로 바로 확인이 안되기에 pwd나 lpwd를 접속 마다 확인해주는 것이 좋은 것 같다

 

  이번에는 sftp로 접속해서 데이터를 복사했던 내용을 scp 즉, 원격지에서 데이터를 복사하여 본다

  먼저 각 /test에는 2자리를 삭제, client의 /iu 에서 1자리 숫자를 삭제하여 준 후

  client에서 scp 명령어를 사용하여 파일을 받고 보내준다

 

  이러한 내용들이 바로바로 작동되는 이유는 root계정으로 이용하기 때문이기에 root 접속을 차단 한 후 

  아무나 root가 될 수 없도록 제한을 걸고 일반계정을 생성 후 su권한을 변경하여 준다

  ㄴsu권한 소유 그룹을 wheel로 변경 및 iu계정을 그룹에 추가

     , 그 외 사용자는 실행권한 해제 및 파일 실행시 사용자(root)권한으로 실행으로 변경

 

  완료된 후 각 계정으로 접속 시 내용을 확인할 수 있으며

  test 디렉토리에서 권한을 755로 설정 시 sftp에서 get이 정상작동 되는 것을 볼 수 있으나 put은 되지 않으며

  test 디렉토리의 소유권을 변경하여 주면 정상적으로 작동되는 것을 볼 수 있다

 

 <실습>

ssh_보안문제_Server_Client.txt
0.00MB

 

 Server 설정

  1. 서버 종료 후 1G 새로운 disk 추가 후 부팅

  2. 새 disk(1G)를 fdisk라는 명령어로 파티션을 쪼개시오

          1P          200M

          2P          200M

          3Ex        etc(남은 용량 모두)

          5L          etc(남은 용량 모두)

  3. mkfs -t ext4 /dev/sdb2 명령어로 포맷 실행

  4. mkdir -p /ssh/sdb 명령어로 MP 생성

  5. vim /etc/fstab 에서 자동마운트 진행

      /dev/sdb2          /ssh/sdb                  ext4        defaults             1 2

     mount -a

  6. cd /ssh/sdb 들어가서

  7. mkdir scp sftp ssh && touch scp/chw sftp/user1 ssh/iu 로 디렉토리와 각각의 하위파일까지 생성

  8. vim /etc/ssh/sshd_config 에서 root접속 불가

  9. ls -l /bin/su 하여 SetUID 설정 및 iu라는 계정만 su 명령어 이용가능하도록 설정

 

  이렇게 완료 시 Server에 특정 파일이 있으며, client에서 형식으로 접속할 수 있도록 할 것 // 풀이

                       /ssh/sdb/scp/chw(file)      <=>   /client/scp/chw_lucky(file)      // chw 계정으로 scp하여 up/down (UID 수정)

                       /ssh/sdb/sftp/user1(file)   <=>   /client/sftp/user1_lucky(file)   // user1 계정으로 sftp방법으로 up/down

                       /ssh/sdb/ssh/iu(file)          <=>   /client/ssh/iu_lucky(file)         // iu 계정은 scp, sftp 방법 아무거나 up/down

 

 [문제 풀이]

  1. 서버 Putty를 사용하지 않으며, 모든 실행은 Client Putty에서 실행

  2. /client 하위에 있는 디렉토리에서 같은 이름의 디렉토리일 시 동기화

sftp

 

  최종 결과 

 

  완료했으므로 CentOS6.8 서버와 클라이언트 전부 삭제 후 다시 압축풀기

 

◆ LVM (Logical Volume Management)

 =물리적 다중 디스크를 모아서 하나의 볼륨 그룹으로 만든 다음 다시 논리적 볼륨으로 쪼갠다 = 뷔페

 먼저 CentOS 6.8버전을 설치 후 1G 3대와 10G 3대를 추가하여 준 후

  "fdisk -l /dev/sd[b-g]" 명령어를 활용하여 디스크 확인ㅎ

  그 후 mdadm 명령어를 사용하여 RAID를 생성하여 등록하여 준다

 - LVM은 RAID의 단점인 array 축소, 확장 불가능한 점을 고쳐서 탄력적 용량구성이 가능하나 장점이었던 속도증가와 자동복구는 되지 않는 다

 

  사용하는 방법으로는 create로 생성을 하며

  scan으로 내용을 간단하게 확인하며

  해당 공간을 볼륨으로 이름과 함께 등록(create)하고 내용을 확인(display)하여 준다

  여기서 장치를 삭제하여본다

 

  이렇게 탄력적으로 축소/확장이 용이하기 때문에 직접보다는 링크로써 간접사용하는 특징을 가진다

  ㄴ l 옵션은 대문자는 용량을 직접 지정, 소문자는 %로 구분지어 할당

 

  용량을 빼면 프리공간으로 가는데 그걸 다른곳에 주는것

  LVM2에 대부분의 용량이 있기에 뺀 용량을 더하고 비슷하게 맞춰준다

 

  이제 마운트 작업하기 위해 포맷을 하여 준 후

  해당 파일들을 바로 찾을 수 있도록 라벨을 등록하여 주고

  마운트 할 디렉토리를 생성 후 자동연결을 등록하여 준다

  이후 reboot하게되면 mount된 내용을 확인할 수 있

 

 

◆ FTP (File Transfer Protocol)

 - TCP/IP 환경에서 파일 전송용 애플리케이션

2025_2_12_Wed_fTP개념 및 설정.txt
0.01MB

 

  먼저 해당 서버에서 cd-rom을 centos6.8*.iso로 변경하고 정상 연결여부를 확인 한 후

  해당 명령어(서버용)를 입력하여 설치하여 준 후 활성화 시켜준다

  그 후 원하는 포트를 아래 명령어를 통해 선택해서 열어주며,

 

  selinux (보안정책) 설정

설정을 바꿔도

enforcing모드인데

이때는 init 6해서 재부팅하면된다

처음엔 안뜨는데

gui환경에서 로그인하니까 sr0가 나온다

재부팅해서 데몬이 꺼졌기에 해당 명령어를 통해 재시작하여 준다

  완료하고 재부팅 시 이제부터 자동으로 켜지는 것을 확인할 수 있다 

 

  이후 아래 명령어를 통해 방화벽에서 ftp를 허용으로 변경하게 되면

  cmd로 접속이 가능해지게 되고

  익명 계정으로 접속하여 준다 (익명계정이기에 비번이 없음)

  해당 익명계정으로 접속하여 "ls -l"하게 되면 파일이 하나 확인되는 데 /var/ftp 디렉토리의 파일인 것을 알 수 있다

 

 ※ 이유를 찾아보니 vsftpd에서 기본적으로 anonymous 사용자의 루트 디렉토리를 /var/ftp로 설정되며,

     이 내용은 /etc/vsftpd/vsftpd.conf에서 확인할 수 있다 ("anon_root=/var/ftp")

728x90

'AWS 교육 > Server (화)' 카테고리의 다른 글

250304 FTP  (0) 2025.03.05
250211 Partition, Clone, VNC, RAID  (0) 2025.02.11
250204 Xinetd, DNS, Apache2, Hosting  (0) 2025.02.04
250121_Mount, DNS, HTTP  (0) 2025.01.21
250114_Rocky9, Ubuntu22.04 // 마운트, 파티션, 저널링  (0) 2025.01.14