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