vsftp를 이용한 서버에 ftp 설치


작업 개요

- 서버에 파일 전송 프로토콜(File Transfer Protocol) FTP 설치하기 

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

- CentOS 호환가능

작업 내용 

오픈소스인 vsftp를 이용해 서버에 FTP 설치하기



작업 절차 


      1. vsftp가 설치 되었는지 확인한다. 

          - rpm -qa vsftpd*


      2. yum을 이용해 vsftp 페키지를 설치한다.

          - sudo yum install vsftpd -y


      3. vsftp 상태를 확인한다.

          - sudo service vsftpd status


      4. vsftp의 config 내용을 모두 지우고 아래 내용으로 입력한다.

          - sudo vi /etc/vsftpd/vsftpd.conf

---------------------------------------------------------------------------------------------------------------------------------

    anonymous_enable=NO

    local_enable=YES

    write_enable=YES

    local_umask=022

    dirmessage_enable=YES

    xferlog_enable=YES

    connect_from_port_20=YES

    xferlog_file=/var/log/xferlog

    xferlog_std_format=YES

    chroot_local_user=YES

    listen=YES

    pam_service_name=vsftpd

    userlist_enable=YES

    tcp_wrappers=YES

    pasv_enable=NO


      5. vsftp 시작

          - sudo service vsftpd start


6. 해당 작업이 완료 되면 설치 작업이 끝난다. 그런 다음 방화벽에 21번 포트를 열어준다.




그럼 오늘도 행복한 하루 되세요.

haproxy open source 를 사용해 load balancer 구성 하기


작업 개요

- 해당 가이드는 haproxy 오픈소스 로드벨런서를 사용해 L4 L7스위치 대안으로 구성하는 방법을 다룬다.

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

작업 내용 

haproxy 오픈소스 로드벨런서를 EC2 안에 구성을 하고 로드벨런서에  DB연결을 구성한다.



작업 절차 


      1. ec2 생성  

          - test 인스턴스 img :  Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type


      2. haproxy 구성을 위해 필요 페키지 설치

          - sudo yum -y install haproxy mysql


      3. EC2에서 Aurora Serverless에 접근 가능한지 먼저 확인한다.

          - mysql -h'[end-point]' -u[mysql - user] -p

            ex) mysql -h'test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com' -uuser -p


      4. haproxy config 파일 수정 -내용을 아래 내용으로 모두 변경한다.

          - sudo vi /etc/haproxy/haproxy.cfg

---------------------------------------------------------------------------------------------------------------------------------

        // 내용

        global


            log         127.0.0.1 local2


            chroot      /var/lib/haproxy

            maxconn     4000

            pidfile     /var/run/haproxy.pid

            user        haproxy

            group       haproxy

            daemon


            stats socket /var/lib/haproxy/stats



        defaults

            log                     global

            option                  tcplog

            option                  dontlognull

            option                  redispatch

            retries                 3

            timeout queue           1m

            timeout connect         10s

            timeout client          1m

            timeout server          1m

            timeout check           10s

            maxconn                 3000


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check

----------------------------------------------------------------------------------------------------------------------------------------

****listen mysql-cluster 0.0.0.0:3306 에서 입력한 포트를 EC2 보안 그룹에서 외부에서 접속 가능하도록 열어준다.

 만약 여러 RDS를 대상으로 해당 작업을 해야하는 경우 포트만 다르게 여러 연결을 구성하면 된다.


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


        listen mysql-cluster 0.0.0.0:3305

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


      5. haproxy 재시작

          - sudo /etc/init.d/haproxy restart


이상 입니다.ㅎㅎ

그럼 오늘도 행복한 하루 되세요.

 

 

 

AWS EC2 Pem key 없이 ssh 접속 가능하게 설정하기


작업 개요

- EC2에서 Pem 키없이 비밀번호로 접속을 해야하는 상황에서 작업하는 방법

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

 

작업 내용 

- EC2에 설정파일을 수정해 EC2에 비밀번호를 이용해 접속 가능하도록 설정하고 ec2-user 사용자의 비밀번호를 설정한다.

 

** 해당 작업은 개발에 단순 편의를 위한 작업이므로 보안상 이슈가 발생하기 쉽습니다. 중요한 서버에는 적용하지 않는 것을 권장 드립니다.


 

작업 절차 

 

      1. ssh 설정 파일인 sshd_config 파일을 연다

          - sudo vi /etc/ssh/sshd_config

 

      2. 설정파일에서 아래 내용을 수정한다.

          -PasswordAuthentication 값을 yes로 변경해 비밀번호로 접근 가능하도록 설정한다.

 PasswordAuthentication no -> PasswordAuthentication yes

 

      3. EC2에서 Aurora Serverless에 접근 가능한지 먼저 확인한다.

          - mysql -h'[end-point]' -u[mysql - user] -p

            ex) mysql -h'test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com' -uuser -p

 

      4. sudo passwd 명령어를 사용해 ec2-user 비밀번호를 설정한다.

          - sudo passwd ec2-user

 

      5. ssh 서비스를 재시작 한다.

          - sudo service ssh restart

 

 

그럼 오늘도 행복한 하루 되세요.

 

AWS RDS Aurora Serverless 로컬 접속 ( local ) 개발 인스턴스 구성


작업 개요

- Aurora Serverless 의 end point는 내부 end point이기 때문에 로컬에서 접근하기위해서는 우회 방법이 필요하다.

해당 가이드는 haproxy 오픈소스 로드벨런서를 사용해 외부에서 접근 가능하도록 하기 위함이다.

작업 환경 

서비스 : EC2

AMI : Amazon Linux AMI 2018.03.0

보안그룹 : EC2에서 Aurora Serverless에 접근 가능하도록 설정한다. 

또한 EC2에 외부에서 접근 가능 하도록 설정한다.

작업 내용 

haproxy 오픈소스 로드벨런서를 EC2 안에 구성을 하고 로드벨런서에  Aurora Serverless를 연결해 로컬에서 Aurora Serverless에 접속 가능 하도록 한다.



작업 절차 


      1. ec2 생성  

          - test 인스턴스 img :  Amazon Linux AMI 2018.03.0 (HVM), SSD Volume Type


      2. haproxy 구성을 위해 필요 페키지 설치

          - sudo yum -y install haproxy mysql


      3. EC2에서 Aurora Serverless에 접근 가능한지 먼저 확인한다.

          - mysql -h'[end-point]' -u[mysql - user] -p

            ex) mysql -h'test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com' -uuser -p


      4. haproxy config 파일 수정 -내용을 아래 내용으로 모두 변경한다.

          - sudo vi /etc/haproxy/haproxy.cfg

---------------------------------------------------------------------------------------------------------------------------------

        // 내용

        global


            log         127.0.0.1 local2


            chroot      /var/lib/haproxy

            maxconn     4000

            pidfile     /var/run/haproxy.pid

            user        haproxy

            group       haproxy

            daemon


            stats socket /var/lib/haproxy/stats



        defaults

            log                     global

            option                  tcplog

            option                  dontlognull

            option                  redispatch

            retries                 3

            timeout queue           1m

            timeout connect         10s

            timeout client          1m

            timeout server          1m

            timeout check           10s

            maxconn                 3000


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check

----------------------------------------------------------------------------------------------------------------------------------------

****listen mysql-cluster 0.0.0.0:3306 에서 입력한 포트를 EC2 보안 그룹에서 외부에서 접속 가능하도록 열어준다.

 만약 여러 RDS를 대상으로 해당 작업을 해야하는 경우 포트만 다르게 여러 연결을 구성하면 된다.


        listen mysql-cluster 0.0.0.0:3306

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


        listen mysql-cluster 0.0.0.0:3305

              mode tcp

              balance roundrobin

              option tcpka

              #server sdm-db1 [aurora serverless end-point]:3306 check

              server sdm-db1 test.cluster-cksasdwsxfewefd.ap-northeast-2.rds.amazonaws.com:3306 check


      5. haproxy 재시작

          - sudo /etc/init.d/haproxy restart


이상 입니다. ㅎㅎ

그럼 오늘도 행복한 하루 되세요.

AWS Certificate Manager SSL 인증서 등록


작업 개요

- AWS  Certificate Manager 서비스는 AWS 서비스에서 제공하는 무료 SSL 인증서다.

- 해당 서비스는 AWS 서비스에서만 사용 가능한 인증서이며 적용 가능한 서비스에는 Load Balancer, Cloud Front, API Gateway 등의 서비스 들이 있다.

작업 내용 

AWS  Certificate Manager 서비스에서 SSL 인증서를 생성한다.해당 가이드에서는 관리자 메일 승인 절차를 통한 인증을 진행한다.



작업 절차 


- [서비스]를 선택하고 보안, 자격 증명 및 규정 준수 탭에 [Certificate Manager]를 선택한다.

- [시작하기]를 누른다.

- [도메인 이름]을 입력한다. 추가로 도메인 인증을 하기 원하는 경우 [이 인증서에 다르 이름 추가] 버튼을 선택하고 도메인을 입력한다.(서브 도메인 전체를 추가하는 경우 *.example.com 형태로 한다. 만약 test.test2.example.com 도메인 처럼 앞에 2가지가 있는 경우에는 하나하나 추가해줘야한다.)

- [이메일 인증]을 선택하고 [다음]버튼을 누른다.

- 도메인을 확인하고 확인 및 요청을 누르면 도메인 관리자에게 확인 메일이 간다.
- 확인 메일에서 아래 버튼을 클릭한다.


- [I Approve] 버튼을 누르면 인증이 끝난다.



- 요청이 승인되면 [상태]가 발급 완료로 나온다.




그럼 오늘도 행복한 하루 되세요.

NAS (Network Attached Storage)  Server에 마운트 (Mount)


작업 환경 

OS : Centos 6 이상

작업 내용 

- 서버에 NAS를 마운트(mount)시켜 일반 스토리지(Storage) 처럼 사용하기 위한 작업 입니다.

또한 시스템 재부팅 시에도 자동으로 마운트 작업 되도록 설정합니다.



작업 절차 


- yum 을 이용해 nas 를 마운트 하기위해 필요한 nfs-utils 페키지 설치

yum install nfs-utils


- rpcbind 서비스 시작

/etc/rc.d/init.d/rpcbind start


- rpcbind를 시작 프로그램 등록해 재부팅시 실행 될 수 있게한다.

chkconfig rpcbind on


- 마운트(mount) 할 디렉토리를 생성한다.

mkdir [디렉토리]

ex) mkdir /data


- nas를 mount 한다.

mount [NAS mount 정보] [mount 포인트 디렉토리]

ex) mount -t nfs 10.101.0.0:/n130000_nas /data


- mount 결과를 확인한다.

df -h


- /etc/fstab파일을 연다.(/etc/fstab 서버의 파일 시스템 정보(스토리지)를 저장하는 파일이다.)

vi /etc/fstab


- 최하단에 아래 형식의 내용 추가

[파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련설정] [파일점검옵션]

ex)

10.101.0.0:/n130000_nas              /data1                  nfs    defaults        1 2


*참고

[Device] : fdisk -l 명령어를 통해 확인할 수 있다.

[디렉토리] : mount 포인트 지정

[파일 시스템 형식] : 파일 시스템 형식

[파일 시스템 고유 옵션] : 파일 시스템 고유 옵션

[dump 작동 여부] : dump 명령어를 사용 할 때 [0]이면 실행 안함, [1] 실행한다는 의미를 가진다.

[무결성체크여부] : fsck 명령어로 무결성의 체크 여부를 지정 [0]일 경우 체크 안함,[1]이상의 정수를 쓰면 작은 순서로 체크한다.


**참고

- NAS 연결 끊기(언마운트 작업)

umount [mount 경로]

ex) umount /data



이상 입니다.ㅎㅎ

그럼 오늘도 행복한 하루 되세요.

'서버 셋팅 > storage' 카테고리의 다른 글

서버에 스토리지(storage) 연결(Mount)하기  (1) 2019.01.28

 일반 STORAGE mount

  • 디스크 파티션

    • 스토리지 상태 확인 및 추가 : fdisk 로 검사
        명령어 :  fdisk -l
      
        출력 내용
              Disk /dev/xvda: 53.7 GB, 53687091200 bytes
              255 heads, 63 sectors/track, 6527 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x0004f47d
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvda1   *           1        6528    52427776   83  Linux
      
              Disk /dev/xvdb: 214.7 GB, 214748364800 bytes
              255 heads, 63 sectors/track, 26108 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x00000000
      
        *설명 :  Disk identifier: 0x00000000 로 출력된 디스크를 찾으면 mount 할
                디스크의 경로를 찾을 수 있다.
                위 출력 내용에서는 /dev/xvdb 의 경로로 연결된 디스크가 아직
                mount 되지 않은 것을 알 수 있다.
      

    • 디스크 파티션
      명령어 : fdisk [mount할 디스크 경로]
          ex) fdisk /dev/xvdb
      
      출력 내용
            Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
            Building a new DOS disklabel with disk identifier 0x5fc5b993.
            Changes will remain in memory only, until you decide to write them.
            After that, of course, the previous content won't be recoverable.
      
            Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
      
            WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
                     switch off the mode (command 'c') and change display units to
                     sectors (command 'u').
      
            Command (m for help):
      
      입력 : n
      
      출력 내용
            Command action
               e   extended
               p   primary partition (1-4)
      
      입력 : p
      
      출력 내용      
            Partition number (1-4):
      
      입력 : 1
      
      출력 내용     
            First cylinder (1-26108, default 1):
      
      입력 : [Enter]
      
      출력 내용
            Last cylinder, +cylinders or +size{K,M,G} (1-26108, default 26108):
      
      입력 : [Enter]
      
      출력 내용
            Using default value 26108
      
            Command (m for help):
      
      입력 : w
      
      출력 내용
            The partition table has been altered!
      
            Calling ioctl() to re-read partition table.
            Syncing disks.   
      

  • 스토리지 포맷

    • 디스크 파티션 확인

        명령어 : fdisk -l
      
        출력 내용
              Disk /dev/xvda: 53.7 GB, 53687091200 bytes
              255 heads, 63 sectors/track, 6527 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x0004f47d
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvda1   *           1        6528    52427776   83  Linux
      
              Disk /dev/xvdb: 214.7 GB, 214748364800 bytes
              255 heads, 63 sectors/track, 26108 cylinders
              Units = cylinders of 16065 * 512 = 8225280 bytes
              Sector size (logical/physical): 512 bytes / 512 bytes
              I/O size (minimum/optimal): 512 bytes / 512 bytes
              Disk identifier: 0x5fc5b993
      
                  Device Boot      Start         End      Blocks   Id  System
              /dev/xvdb1               1       26108   209712478+  83  Linux
      

    • 포멧하기

        명령어 :  mkfs.[파일 시스템 형식] [디스크 경로]
            ex) mkfs.ext4 /dev/xvdb1
      
        참고 : OS별 명령어
              - CentOS 5.x: mkfs.ext3 [디스크 경로]
              - CentOS 7.x: mkfs.xfs [디스크 경로]
              - Ubuntu Server / Desktop: mkfs.ext4 [디스크 경로]
      
        출력 내용
              mke2fs 1.41.12 (17-May-2010)
              Filesystem label=
              OS type: Linux
              Block size=4096 (log=2)
              Fragment size=4096 (log=2)
              Stride=0 blocks, Stripe width=0 blocks
              13107200 inodes, 52428119 blocks
              2621405 blocks (5.00%) reserved for the super user
              First data block=0
              Maximum filesystem blocks=4294967296
              1600 block groups
              32768 blocks per group, 32768 fragments per group
              8192 inodes per group
              Superblock backups stored on blocks:
                      32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
                      4096000, 7962624, 11239424, 20480000, 23887872
      
              Writing inode tables: 1139/1600
              Writing inode tables: done
              Creating journal (32768 blocks): done
              Writing superblocks and filesystem accounting information:
              done
              This filesystem will be automatically checked every 23 mounts or
              180 days, whichever comes first.  Use tune2fs -c or -i to override.
      

  • 스토리지 마운트

    • 스토리지를 마운트할 디렉토리 생성

        명령어 : mkdir [디렉로리]
            ex) mkdir /data1
      

    • 스토리지를 마운트할 디렉토리 생성

        명령어 : mount [스토리지 경로] [마운트할 디렉토리 경로]
            ex) mount /dev/xvdb1 /data1
      

    • 결과 확인

        명령어 : df -h
      

    • /etc/fstab에 등록하여 서버 부팅 후에도 마운트 정보를 유지

        명령어 : vi /etc/fstab
      
        최하단에 아래 형식의 내용 추가
        ex)
        /dev/xvdb1              /data1                  ext4    defaults        1 2
      
        *참고
          [Device] : fdisk -l 명령어를 통해 확인할 수 있다.
          [디렉토리] : mount 포인트 지정
          [파일 시스템 형식] : 파일 시스템 형식
          [파일 시스템 고유 옵션] : 파일 시스템 고유 옵션
          [dump 작동 여부] : dump 명령어를 사용 할 때 [0]이면 실행 안함, [1] 실행한다는 의미를 가진다.
          [무결성체크여부] : fsck 명령어로 무결성의 체크 여부를 지정 [0]일 경우 체크 안함,[1]이상의 정수를 쓰면 작은 순서로 체크한다.


'서버 셋팅 > storage' 카테고리의 다른 글

NAS (Network Attached Storage) Server에 마운트 (Mount)  (0) 2019.02.05

AWS EC2에 Apache 2.4 설치



작업 환경 

서버 : AWS EC2 

OS : Amazon Linux AMI 이미지 사용.

작업 내용 

- EC2에 Apache 2.4 를 설치한다.



작업 절차


- 최신 버그 수정 및 보안 업데이트를 얻으려면 다음 명령을 사용하여 EC2 인스턴스의 소프트웨어를 업데이트 명령어

sudo yum update –y



- yum install 명령을 사용하여 Apache 웹 서버를 설치

sudo yum install -y httpd24



- 다음 명령을 사용하여 웹 서버를 시작

sudo service httpd start




그럼 오늘도 행복한 하루 되세요.



+ Recent posts