Vultr 클라우드 서버 설정

  • Deploy
  • Shared CPU
  • Ubuntu 23.10 x64

ufw enable # 방화벽을 활성화한다.
ufw allow 80/tcp  # 일반 웹 정보 관련 입출력 통로
ufw allow 443/tcp  # SSL 설치 시 웹 정보 관련 입출력 통로 
ufw allow 22/tcp  # ssh용 신규 포트
  • /etc/ssh/sshd_config 에서 Port 22 를 찾아서 자기가 사용할 포트 숫자를 기억하기 쉽고 10000자리이상에서 임의의 숫자를선택한다. 예를 들어 58722, 65322 등등
service ssh restart # 서버 재시작

ufw allow *****/tcp  # *****는 ssh 포트로 기본 22번 포트대신 사용할 포트로 개인만 알 수 있는 만단위 숫자를 사용한다.
ufw deny 22/tcp  # ssh용으로 22포트를 사용할 수 없게 한다.

fail2ban

apt-get install fail2ban
vi  /etc/fail2ban/jail.conf
  • ignoreip에는 ban을 하면 않되는 IP를 적는다. 10.100.102.103/32 형식으로 적으며, 추가는 스페이스바로 구분한다.
  • bantime은 접속 차단 시간으로 기본이 600(10분)으로 되어 있음
  • findtime은 통계를 찾을 시간.
  • maxretry 는 fail 횟수이다. 기본으로 5가 세팅되어 있는데 이 정도면 충분하다고 보고 유지했다

쉘 기본 언어값 확인

apache2
  • 영어가 아닌 다른 언어가 나오면 vi /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en"

운영체제 프로그램 업데이트

# apt-get update 
# apt-get upgrade -y

시스템 시간 설정

dpkg-reconfigure tzdata asia > seoul


PHP 설치

  • 최신버전 확인 : https://www.php.net/downloads.php
apt-get install php


# vi /etc/php/7.2/fpm/php.ini
# vi /etc/php/7.2/cli/php.ini

date.timezone = Asia/Seoul

PHP에러표시

  • <?php phpinfo();?>
  • Loaded configuration file에서 php.ini경로를 확인 할 수 있음
  • vi /etc/php/8.2/apache2/php.ini
  • display_error = 0을 1로 변경
  • service apache2 restart
  • php에러를 직접 출력하는건 취약점 노출이 될수 있음
    에러 로그 위치
    /var/log/httpd/error_log 이 위치는 RHEL / Red Hat / CentOS / Fedora Linux Apache
    /var/log/apache2/error.log 이 위치는 Debian / Ubuntu Linux Apache
    /var/log/httpd-error.log 이 위치는 FreeBSD Apache
    

PHP 페이지에서 에러표시 구문 추가

<?php
    error_reporting(E_ALL);
    ini_set("display_errors",1);
?>

apache2 설치

apt install apache2


vi /etc/apache2/apache2.conf

<Direvtory /var/www/>
    Options lndexes FollowSymlinks // indexes 옵션 삭제
</Directory>
cd /etc/apache2/sites-available
cp 000-default.conf 새이름.conf

vi 새이름.conf

a2dissite 000-default.conf
a2ensite 새이름.conf
systemctl reload apache2
service apache2 restart

  • home 하위 폴더에 onethelab 디렉토리 추가
  • mkdir 폴더명
  • 접근할 수 있도록 디렉터리 권한 변경
  • chmod 755 디렉토리이름
  • /etc/apache2/apache2.conf 설정파일내 폴더 접근 허용
<Directory /디렉토리명>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
  • 001_새이름.conf 내용중 DocumentRoot에 루트폴더 추가

SFTP (Secure File Tansfer Protocol), SSH(Secure SHell)

  • sudo apt update
  • sudo apt upgrade
  • sudo apt install openssh-server
  • sudo apt-get install ssh

서버 상태확인 명령어

  • sudo systemctl status ssh

서버 실행

  • sudo systemctl start ssh

ssh 접속포트 변경

  • sudo vi /etc/ssh/sshd_config
  • 기본 22포트를 주석(#)처리하고 포트번호 입력
  • ssh 재시작 sudo service ssh restart
  • 방화벽 열기 sudo ufw allow 새포트번호/tcp
  • sudo ufw reload

폴더 소유자, 권한 설정

  • adduser [user name]
  • addgroups [group name]
  • usermod -G [group name] [username]
  • chmod -R [8bit permission] [file name or folder name]
  • chown -R [owner name]:[group name] [filename or directory]

Call to undefined function imagecreatefromjpeg()

  • php-gd 라이브러리가 없어서 생기는 오류
  • php -v php버전확인
  • sudo apt-get install php5-gd 제대로 설치되지 않는듯
  • sudo apt-get install php-gd 제대로 설치 되는듯
  • service apache2 restart