우분투 그냥 따라하기 CHAPTER 1

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 명령어 입력 후 아래 내용 추가.


<FilesMatch ".+\.ph(p3|p4|p5|p7|t|tml)$">
    Require all denied
</FilesMatch>

			

재시작


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
기본세팅은 여기까지 끝입니다.