Step 1 루트 암호설정
jeong@jeongserver:~$ sudo passwd
[sudo] password for jeong:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Part 1 Ubuntu에서 SSH 루트 로그인 허용 18.04
Step 1 루트 암호설정
jeong@jeongserver:~$ sudo passwd
[sudo] password for jeong:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Step 2 루트 로그인
jeong@jeongserver:~$ su root
Password:
Step 3 ssh 서버설정.
root ssh 허용 설정
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
ssh서비스 재시작
service ssh restart
Step 4 패키지 최신업데이트
패키지 목록 갱신
apt-get update
현재 설치된 프로그램 최신버전 패치
apt-get upgrade
Step 5 시스템 시간설정.
데비안 패키지 재설정 아래 명령어 입력후 -> Asia -Seoul 찾아서 선택.
dpkg-reconfigure tzdata
Part 2 apache2/php/mysql 설치하기
Step 1 아파치2 설치
아래 명령어 입력 후 y 입력
apt-get install apache2
아파치 버전확인
apache2 -v
모드설정
a2enmod rewrite
a2enmod headers
a2enmod ssl
a2dismod -f autoindex
재시작
systemctl restart apache2
추가적인 보안설정
vi /etc/apache2/apache2.conf
//위 명령어 입력 후 〈FilesMatch “^\.ht”> 구문 다음에 아래 내용 추가.
Step 2 php 설치
아래 명령어 입력 후 y 입력
apt-get install php
php 모듈설치
sudo add-apt-repository universe
sudo apt update
sudo apt install php-dev libmcrypt-dev php-pear
sudo pecl channel-update pecl.php.net
sudo pecl install mcrypt-1.0.1
//libmcrypt prefix? [autodetect] : 이부분이 나오면 enter누르고 진행
vi편집기로 vi /etc/php/7.2/cli/php.ini 입력후 아래 문구 추가.
Add extension=mcrypt.so
mcrypt설치
apt install mcrypt
php -m | grep mcrypt
php 확장 및 응용프로그램 , apache지원, mysql지원설치
apt install php7.2 libapache2-mod-php7.2 php-mysql
설치 선택사항
apt install php-curl php-json php-cgi
다국어 처리모듈
apt-get install php-mbstring
이미지 처리모듈
apt-get install php-gd
원격지 정보 불러는 모듈 (워드프레스, 드루팔 등에서 쓰임)
apt-get install php-curl php-xml
아파치 재시작
service apache2 restart
Step 3 mysql 설치
MariaDB 설치
apt-get install mariadb-server
MariaDB 초기화 ->password 설정 및 나머지 y누르면서 enter
자세한건 안읽어봐서 나도 잘모름 ㅋ
궁금하면 아래명령어 검색후 자세한 정보 찾아보고 세팅
/usr/bin/mysql_secure_installation
root 의 인증 플러그인 정보 제거하기
mysql
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
mysql 접속방법 아래 명령어 입력 후 비밀번호 입력.
mysql -u root -p
Step 3 php 추가설정
.php .php3 .php4 .php5 .php7 .pht .phtml 확장자 파일이 기본적으로 php를 해석할 수 있게 되어있다.
아래 내용을 실행하여 .php를 제외한 나머지의 접근차단.
vi /etc/apache2/mods-available/php7.2.conf 명령어 입력 후 아래 내용 추가.
Require all denied
재시작
service apache2 restart
php 타임존설정 -> 아래 명령어를 입력하여 편집기를 열어서
date.timezone 값을 찾아서 주석을 제거하고 시간을 설정해주세요.
vi /etc/php/7.2/apache2/php.ini
vi /etc/php/7.2/cli/php.ini
date.timezone = Asia/Seoul
재시작
service apache2 restart
Step 4 mysql 외부접속 허용
mysql -u root -p로 접속 후 아래 명령어를 이용 DB계정생성
GRANT ALL PRIVILEGES ON *.* TO '계정명'@'%' IDENTIFIED BY '비밀번호';
확인하기
SELECT User, Host, Plugin FROM mysql.user;
flush privileges;
아래 명령어를 이용하여 ALL PRIVILEGES 확인
show grants for 계정명;
아래명령어를 입력하여 편집기를 실행 후 bind-address = 127.0.0.1 부분을
0.0.0.0으로 변경 후 그아래 코드 실행
vi /etc/mysql/mariadb.conf.d/50-server.cnf
/etc/init.d/mysql restart
Step 5 ufw 방화벽
우분투방화벽 설정->아래는 웹, ftp, db를 위해 열어놓은 포트이며
그 외의 포트는 접속이 안된다.
자세한 보안사항은 모르니 알고싶다면 검색해서 알아보자.
ufw enable
ufw allow 80
ufw allow 22
ufw allow 3306