linux (ubuntu) 해킹 방어 (webserver, database 등)

개인 펫 프로젝트 용으로 AWS를 운영 중이라, 초기에 보안에는 크게 신경을 쓰지 않았는데

서버상태를 자세히 보니 여러 형태의 해킹흔적을 발견했다.

 

  1. Tomcat web-shell 악성코드 deploy

    Tomcat admin site를 편의상 사용 중이 었는데, admin 계정의 password가 허술했던게 원인으로 보인다.
    해당 web-shell project들을 삭제하고 admin 계정의password의 복잡도를 올려 변경하였다.


  2. Database(MYSQL) 서버 접속 흔적 (mysql, error.log)

    web-shell을 통해 취득한 db접속정보를 이용해 원격접속을 계속해서 시도한 흔적이 발견되었다.  mysql user host 접속 제한으로 denied 된 것으로 보이나,
    추가 적으로 접속가능 host를 제한하여 user 정보를 변경하였다.


  3. 접속자 IP정보 조회 및 IP차단 (linux – iptables)

    접속흔적이 남은 ip를 whois에서 searching 해보았다.  역시 나 중국으로 예상된다.

    iptables를 이용해 해당 ip를 차단 처리 하였다.

     

AWS EC2 [t2.micro (무료)]에서의 Memory 관리

AWS의 무료 Instance (EC2, T2.micro)에 blog, mysql, webServer(tomcat) 등을 운영하려 하니

Memory Size가 1GB 밖에 되지 않아 메모리 문제가 발생한다. (cannot allocate memory)

 

  1. linux swap 할당 (기본적으로 AWS의 경우 swap이 할당되지 않은 상태로 instance가 생성된다.)

    > swap 할당 (2GB)

    > 할당 상태 확인

     

  2. MYSQL (innodb buffer size 조정)

    > /etc/mysql/my.cnf    (or)  /etc/mysql/mysql.conf.d/mysqld.cnf

    > MYSQL 재시작 후 적용 확인 (/var/log/mysql/error.log)

     

AWS instance (ubuntu) – 표준 시간

AWS – instance (ubuntu) 생성 후 시간을 확인하니, UTC로 표시되어 진다.

KST로 변경을 위해 아래와 같이 변경처리

 

현재설정 확인

 

가능한 timezone  리스트 확인

 

timezone 설정변경

 

UTC (협정 세계시) – 영국 그리니치 천문대(경도 0)를 기준으로 하는 세계의 표준시간대로서, 동경 135도를 표준시로 하는 우리나라보다는 9시간이 느림)

KST (한국 표준시)

linux (ubuntu) – 사용자(user) 관련 (생성/삭제/권한 등)

1 . adduser  : 계정생성시 비밀번호 까지 입력받으며 기본정보를 바로 입력.  홈 디렉토리 또한 자동으로 생성.

 

2. useradd  : 순수계정만 생성되며 홈디렉토리, 비밀번호 설정은 별도로 필요.

3. usermod  : 계정의 Group, 홈디렉토리 등을 핸들링.

 

usermod -aG sudo