전체 글 84

메일 서버 보안 설정

SMTP, IMAP 프로토콜을 이용해 메일을 주고받을 때 평문으로 메일을 전송하기 때문에 공격에 취약하다.  그래서 SSL/TLS를 적용하여  메일 서버의 보안을 강화할 수 있다. 그러나 이 실습을 하기 위해서는 공식 도메인이 있어야 하고 공식 인증서도 필요하다. 이번 실습에서는 이 부분은 생략하고 안티바이러스 및 스팸 메일 방지 패키지를 설치하는 방법으로 대체할 것이다. 패키지 설치메일 송수신 할때 스팸 메일이나 메일 내용에 바이러스가 있어 트로이 목마나 바이러스 등이 침투할 가능성이 있다. 이것을 방어하기 위해서 안티바이러스를 설치하고 스팸 메일 방지 패키지를 설치한 후 postfix와 dovecot에 연계해줘야 한다.그래서 안티바이러스를 위해 사용하는 패키지로 clam antivirus(clamav..

메일 서버 설치

이번 실습에서는 메일 서버에 SSL/TLS 보안 프로토콜을 적용해서 메일 서버의 보안을 강화하고, 메일을 주고받을 때 메일에 악성 코드나 스팸 메일이 포함되지 않도록 안티바이러스 및 스팸 메일 필터 패키지를 설치해 볼 것이다. 우선 메일 서버 부터 설치하자. 메일 서버에는 MSA, MTA 기능을 제공해주는 postfix 패키지와 POP3/IMAP 프로토콜로 메일함 서비스를 제공해 주는 dovecot패키지를 설치해야 한다. SSL/TLS 프로토콜을 사용하려면 인증서가 필요하고, 해당 인증서를 사용하려면 테스트 도메인이 아닌 실제 운영하는 도메인이 필요하다. 하지만 지금 실제 운영하는 도메인이 없기에 maxoverpro.org라는 가상 도메인을 사용해서 실습해 볼 것이다.  postfix 패키지를 설치하기전..

메일 서버 해킹

메일 서버메일 서버는 이메일을 주고받을 수 있는 기능을 수행하는 서버로, 기업들은 각 기업의 도메인을 가진 메일 서버를 운영하거나 메일 서비스를 제공하는 서비스 제공자에게 위탁하고 있다.  이러한 메일 서버의 역할은 4가지가 있다.메일 전송 에이전트(MTA, Mail Transfer Agent)이메일을 주고받는 서버이다.메일 제출 에이전트(MSA, Mail Submission Agent)송신자가 작성한 이메일을 받아서 MTA에게 전달한다.메일 배달 에이전트(MDA, Mail Delivery Agent)MTA에게 이메일을 전달받아서 수신자의 메일함에 저장한다.메일 사용자 에이전트(MUA, Mail User Agent)사용자가 이메일을 읽고 작성하는 데 사용하는 메일 클라이언트이다.이러한 메일 서버는 SMT..

안전한 파일 공유 서버 구축

이번 실습에서는 안전한 SMB 프로토콜 기반의 파일 공유 서버를 구축하는 실습을 해볼 것이다. 먼저 samba를 설치하고 사용자 권한 및 보안 설정을 해볼 것이고, SMB 프로토콜은 TCP 139번, 445번 포트를 사용하기 때문에 방화벽에서 해당 포트를 허용해야 한다. samba 설치apt install samba samba-client설치가 끝났다면 방화벽 설정을 해주자. 자, 이렇게 파일 공유 서버를 설치하면 공유할 경로와 해당 파일 공유 서버에 접근할 수 있는 사용자를 설정해야 한다.  우선 공유할 경로를 만들자.mkdir /samba를 입력해서 디렉토리를 하나 만들고 samba 패키지 환경 설정 파일인 /etc/samba/smb.conf에 접속해서 파일 공유 서버의 저장 경로를 /samba로 지..

Samba 원격 코드 실행 취약점

Samba Samba는 주로 Linux 및 Unix 시스템에서 사용되는 오픈 소스 소프트웨어로, 윈도우와 파일 및 프린터 공유를 가능하게 해주는 소프트웨어이다. Samba를 사용하면 Linux 서버가 윈도우 클라이언트와 동일한 네트워크에서 파일과 프린터를 공유할 수 있다. 이번에는 CVE-2017-7494 취약점인 삼바 파일 공유 서버를 설치하고 어떻게 공격자가 취약점을 가지고 대상 서버에 침입하는지 실습하면서 알아보자. 우선 삼바 설치하기 전 필요한 라이브러리를 설치하자.이제 취약한 삼바 버전 다운로드 및 소스 컴파일을 할 것이다.wget https://download.samba.org/pub/samba/stable/samba-4.6.3.tar.gz다운로드가 끝났다면 파일하나가 생길텐데 압축을 풀어주고..

안전한 FTP 서버 구축

FTPFTP(File Transfer Protocol)는 서버와 클라이언트 간 파일을 전송할 때 사용하는 프로토콜이다. 이전에는 익명 사용자도 사용할 수 있고 전송할 때 암호화를 하지 않아서 보안 취약점이 많았다. 그러나 최근에는 FTPS, SFTP 등 암호화 통신을 지원하는 프로토콜이 등장하면서 보안이 강화되었다. FTP의 전송방식으로는 두가지가 있다. Active Mode접속을 위해 연결할 때 클라이언트에서 서버로 접근하지만, 데이터 전송을 할 때는 서버에서 클라이언트로 접근하는 방식Passive mode접속과 데이터 전송 모두 클라이언트에서 서버로 접근하는 방식그래서 네트워크 설정이 제대로 이루어져 있다면 원활하게 접속 가능한 패시브 모드를 주로 사용한다. 위에서 썼듯이 FTP는 암호화 통신을 하지..

안전한 원격 접속 환경 구축

리눅스 서버를 관리할 때 원격으로 접속하여 작업하는 일이 많다. SSH는 주로 CUI, VNC나 XRDP를 사용하는 경우엔 GUI환경에서 작업을 한다. 그러나 원격으로 서버에 접속할 때 열린 통신 포트의 보안 설정이 되어있지 않다면 해킹에 취약해질 수 있다. 이번 실습에서는 원격 접속 해킹을 방지하기 위한 보안 설정을 해볼 것이다. 실습하기에 앞서 원격 접속 환경을 구축해야한다.1. SSH 원격 접속SSH 원격 접속apt install openssh-server2. XRDP 원격 접속XRDP란 RDP(Remote Desktop Protocol)를 리눅스에서도 접속하게 해주는 툴로 다른 원격 데스크톱 방식인 VNC와 많이 사용한다. 이것들을 사용해서 접속하려면  리눅스 GUI 환경인 X-Window환경 등..

데이터베이스 장애를 방지하기 위한 이중화 구성

데이터베이스가 DDOS 공격이나 해킹을 당해서 장애가 발생하더라도 데이터베이스 서비스는 유지되어야 한다. 이를 위해서 여러 대의 데이터베이스 서버를 구성하여서 주 서버가 예비 서버에게 데이터를 실시간으로 복제하거나 3대 이상의 서버로 구성하는 클러스터 기능을 사용하자. 이번 실습에서는 MariaDB에서 제공하는 복제기능을 사용해서 데이터베이스 이중화를 구성해 볼 것이다.데이터베이스 이중화데이터베이스 이중화를 구성하려면 먼저 이중화를 위한 서버를 하나 생성해야한다. 기존 서버를 종료하고 오른쪽 마우스를 클랙하면 복제버튼이 나올 것이다. 복제를 누르면 이러한 창이 뜬다.예비 서버를 slave로 지정하고 복제를 해보자.이렇게 설정이 끝났다면 slave 서버가 하나 복제가 될 것이다.자, 이제 복제한 slave..

데이터베이스 네트워크 보안 설정

데이터베이스는 사용자 다수가 외부에서 접근하는 서비스로 네트워크 보안이 가장 중요하다. 만약 데이터베이스에 누구나 접속이 가능하다면 서비스 거부 공격이나 SQL Injection 같은 해킹 공격에 취약해질 수밖에 없다. 이번 실습에서는 방화벽 설정을 통해서 데이터베이스를 사용하는 특정 포트만 네트워크에 접근하게 하고, 원격 접속을 제한하여 네트워크 보안을 강화해 볼 것이다. 데이터베이스의 네트워크 방화벽 설정MariaDB와 Mysql은 주로 TCP 3306번 포트로 통신을 한다. 외부 사용자가 데이터베이스에 접근하도록 하려면 해당 포트의 방화벽을 허용해야 한다. 그러나 이렇게 모든 사용자가 접근하도록 방화벽 정책을 사용한다면 해킹공격에 매우 취약해진다. 보안을 강화하기 위해서 데이터베이스를 사용하는 서버..

데이터베이스 초기 보안 설정

데이터베이스를 공격하는 대표적인 방법으로 파일 업로드 공격으로 인한 webshell공격, 네트워크 취약점을 활용하여 hydra를 사용한 공격 등이 있다. 안전한 데이터베이스 구축을 위해 고려할 요소는 데이터베이스의 접근 통제, 데이터베이스의 통신보안, 데이터베이스 가용성, 암호화 등이 있다. 이번 실습에서는 실무에서 많이 사용하는 MySQL 기반의 오픈소스인 MariaDB를 설치하고 데이터베이스를 안전하게 구축하기 위한 데이터베이스 초기 환경을 설정할 것이다. 데이터 베이스 초기 설정우선 MariaDB를 설치하고 실행해서 정상적으로 작동되는지 확인하자.MariaDB에서는 관리자 비밀번호 설정 및 초기 보안 설정을 위한 명령어를 제공한다. 그래서 초기 설정을 위해 다음과 같이 실행해 보자.그러면 여러 가지..