메뉴 건너뛰기

聚仙閣

I T소식

자작나스

2022.12.20 12:15:21

  개인적으로 우부투 운영체제를 서버용으로 추천합니다. 다른운영체재도 좋겠지만 우분투에만 익숙해서입니다. 유저가 많을경우에는 셋팅하기가 힘들어지네요. 

 

  일단  하드웨어, 작은 사이즈 선호한다면 ITX 보드를 추천합니다. 많은 기능이 필요없기때문에 ITX보드면 충분합니다. SSD는 128GB에서 1TB HDD는 8TB~18TB 선택하면 됩니다. <18테라 HDD는 가격이 좀 나가기때문에 10TB이상 외장하드 적출해서 사용하는것을 추천합니다. 10TB 외장하드 아마존에서 20만원선에서 구입할수 있습니다. 가격할인할때를 노려보세요. > SSD는 128GB 256GB모두 충분합니다. SSD는 /운영체재만 설치하고 대용량 데이터는 HDD에 저장하면 되기때문입니다. 예전에 200GB HDD서버 임대하는데 엄청난 비용이 들었죠. 5GB 공간을 임대해서 홈페이지를 운영하기도 했었죠. 256GB면 우부투를 설치하고 웹사이트를 돌리는데 충분합니다. 회원이 많고 사이트 접속자가 많다면 1TB SSD로 하셔도 됩니다. <생각밖으로 공간을 많이 차지하지 않습니다. 사진을 원본파일로 업로드한다면 감당이 안됩니다. 이미지 프로세서를 설치하여 이미지를 자동으로 줄여주세요.> 

 

  ubuntu 설치

  우분투 설치하는 방법은 유투브를 검색하면 많이 나옵니다. 일단 우분투 홈페이지 접속해서 우분투를 다운받습니다. https://ubuntu.com/download/desktop 서버버전도 있지만 데스크탑 버전이 좀 더편리합니다. http://www.softsea.com/download/ISO-to-USB.html 에서 ISO to USB프로그램을 다운받습니다. USB를 삽입하고 다운로드한 우분투 파일을 선택합니다. 파일시스템은 FAT32 Burn버튼을 클릭하면 부팅용 설치미디어가 완성됩니다. usb3.0이상 버전의 메모리를 추천합니다. 외장하드로 사용해도 됩니다. <용량은 32GB이하로 설정해야 합니다.>

ISO.jpg

  우분투를 설치할때  SSD에 512MB를 EFI 부팅용으로 하고 남은공간을 / 에 할당합니다. HDD는 통으로 /home/data나 /var/www/data로 할당합니다. /data나 /아래 다른폴더를 만들경우 www:data 웹에서 접근이 불가할수 있습니다. 우분투를 설치 완료했다면 로그인해서 CTRL+ALT+T를 누릅니다. sudo su를 입력해서 루트권한을 얻습니다. 

apt update     업데이트 확인

apt upgrade -y 업데이트 설치

업데이트가 완료되었다면 필수 어플들을 설치합니다. 

 

 

  웹서버셋팅

apt install mc vsftpd ssh samba sambaclient  

mc GUI모드, vsftp ftp서버(mc 환경에서 /etc폴더 아래 끝에 내려가면 vsftpd.conf 파일이 있습니다. #writeenable 주석을 제거하면 ftp 업로드 가능해집니다.)ssh ssh서버(휴대폰이나 다른컴에서 터미널접속) samba 삼바서버, sambaclient 삼바서버 접속프로그램(owncloud나 nextcloud 외부저장소 연결할때 사용할수 있습니다.)

apt install lamp-server^     apache2 mysql php 자동설치

apt install php-gd php-imagick php-zip php-mbstring php-intl  php-curl php-xml 

service apache2 reload

브라우저를 열고 localhost를 입력하면 아파치 관련메시지가 나옵니다. 

mc를 입력해서 GUI모드로 들어갑니다. cd /etc/apache2 폴더안에 apache2.conf 파일을 클릭하고 f4버튼을 눌러서 수정합니다. <편집기는 mcediter가 그래픽모드로 개인적으로 가장 편합니다.> 스크롤을 쭈욱 내려서 아래문구를 찾습니다. 웹서비스할 폴더를 변경하려면 /var/www/를 /home이나 /home/www로 설정해도 됩니다. /var/www아래나 /home/www로 설정하는게 편합니다. 

rewrite 모드설정

<directory /var/www/>         

        Options Indexes FollowSymlinks

        AlllowOverride None      

        Require all granted

</Directory>

 None All로 바꾸면 rewrite모드로 사용할수 있습니다.

F2눌러서 저장하고 

a2enmod rewrite

service apache2 reload

우분투 16.04까지 lamp-server^ 설치할때 mysql 비밀번호 설정할수 있는데 18.04  버전부터는 auth socket로 바뀌어 root사용자가 비밀번호가 없으며 phpmyadmin으로 로그인할수 없습니다. 루트권한으로 mysql을 입력합니다. 

root@localhost# mysql

mysql> use mysql;
mysql> select user, host, plugin from mysql.user;   root가 auth_socket 되어있음

mysql> update user set plugin='mysql_native_password' where user='root';

mysql> flush privileges;

mysql> select user, host, plugin from user;

root 유저가 mysql_native_password로 바뀌었다면 웹에서 접속하여 데이터베이스 설정할수 있습니다. 

mysql 비밀번호설정

$ mysql_secure_installation
Enter current password for root (enter for none): → 엔터

Set root password? [Y/n] → Y 이후 사용할 암호 입력
Remove anonymous users? [Y/n] → Y
Disallow root login remotely? [Y/n] → N
Remove test database and access to it? [Y/n] → Y
Reload privilege tables now? [Y/n] → Y

조금 다르기도 하지만 어느정도 영어를 알아본다면 간단합니다. root로그인 거부는 n라고 하세요. 

https://www.phpmyadmin.net/ 들어가서 phpmyadmin을 다운받습니다. 압축해제후 폴더명을 간단하게 정리합니다.<폴더명을 그대로 두면 phpMyAdmin-5.1.0-all-languages로 됩니다. 웹에서 입력하기 힘드니 phpmyadmin이나 기억하기 쉬운 이름으로 하세요.>  /var/www/html폴더 아래로 복사합니다.

웹브라우저를 열고 localhost/phpmyadmin을 입력하면 데이터베이스를 설정할수 있습니다. 

 

 

가상호스트 설정

mc 환경에서 cd /etc/apache2를 입력합니다. sites-available 폴더를 통으로 백업합니다. 폴더는  TAB를 눌러서 /home/유저 폴더아래 backup폴더를 만듭니다. sites-available 폴더를 클릭하고 F5를 누르면 복사가 됩니다. sites-available 더블 클릭하거나 엔터를 치면 가상호스트가 보입니다. 기본으로 000-default가 보일것입니다. F5를 눌러서 복사합니다.<가상호스트> daum.net.conf naver.com.conf google.com.conf 등 본인이 소유한 도메인에 .conf를 입력해서 동일폴더아래 복사합니다. daum.net.conf 를 클릭하고 f4를 누릅니다. 

      ServerAdmin webmaster@localhost

      DocumentRoot /var/www/html  보일것입니다. 

그 위에다

        ServerName daum.net

        ServerAlias www.daum.net music.daum.net mc.daum.net ServerAlias는 여러개 사이트를 하나로 묶을때 사용합니다. ServerName 입력하지 않으면 사이트를 찾을수 없게 됩니다. DocumentRoot /var/www/daum/ 이나 DocumentRoot /var/www/daum.net/ 각사이트를 구별하기 쉽게 입력하면 됩니다. 해당사이트 만들때 사이트.conf에 설정한데로 만들어야 합니다.  앞에 빈공간 <------> TAB 두번 누르면 나옵니다. 가상호스트 설정 예를 들면 

/etc/apache2/sites-available/daum.net.conf

      ServerName daum.net

      ServerAlias www.daum.net music.daum.net mc.daum.net

      ServerAdmin webmaster@localhost

      DocumentRoot /var/www/daum/

/etc/apache2/sites-available/naver.com.conf

      ServerName naver.com

      ServerAlias www.naver.com music.naver.com mc.naver.com

      ServerAdmin webmaster@localhost

      DocumentRoot /var/www/naver/

/etc/apache2/sites-available/google.com.conf

      ServerName google.com

      ServerAlias www.google.com music.google.com map.google.com

      ServerAdmin webmaster@localhost

      DocumentRoot /var/www/google/

site 활성화

a2ensite daum.net naver.com google.com   .conf는 입력하지 않아도 됩니다. (ServerAlias 뒤에 사이트는 입력하지 않아도 자동으로활성화 됩니다.) 

service apache2 reload

홈페이지 프로그램은 XE XE3 라이믹스 워드프레스등 자신이 원하는 프로그램을 다운받으면 됩니다. 클라우드 프로그램은  OWNCLOUD NEXTCLOUD 에서 다운받을수 있습니다. 파일을 다운받은후 압축을 풉니다. 압축을 풀고나면 latest(xe3) xe wordpress rhymix가 보일것입니다. mc를 입력하고 cd /var/www 사용하는 프로그램을 선택하고 F5를 눌러 복사합니다. daum.net로 사용하려면 위에 설정대로 /var/www/daum 입력하고 엔터치면 됩니다.

chmod -R 707 /var/www/daum

dns서버에서 아이피를 현재 아이피로 설정했다면 사이트 주소를 치면 설치화면이 나올것입니다. 필요한 프로그램이 설치되어 있지 않거나 퍼미션이 설정되지 않았다면 진행할수가 없습니다. <클라우드일경우 mysql모든권한을 요구합니다. 클라우드는 독립적인 컴퓨터에 설치하는것을 권장합니다.>

 

 

 

  certbot 암호화 프로그램

snap install core; snap refresh core
apt remove certbot

snap install --classic certbot

https://certbot.eff.org/lets-encrypt/ubuntufocal-apache

root 계정으로 certbot 입력하면 설정이 됩니다. 

certbot 엔터

이메일계정 입력 엔터

사용자 동의 y 엔터

이메일수신  수락&거부 n

활성화된 사이트가 뜹니다. naver.com www.naver.com music.naver.com mc.naver.com google.com www.google.com music.google.com map.google.com daum.net www.daum.net music.daum.net mc.daum.net 순서대로 1 2 3 4 5 6 7 나올것입니다. 해당사이트 아이피가 현재 컴아이피가 아닐경우 설치 실패가 뜹니다. 공유기를 사용중이라면 DMZ설정이나 포트포워딩을 현재 컴퓨터 아이피로 설정하면 됩니다. DNS서버 응답시간이 오래걸릴경우 실패할수도 있습니다. DNS서버는 DNSEVER.COM 서비스를  추천합니다. 도메인신청기관의 서비스가 너무 느려서 애먹은적이 한두번이 아닙니다. <라이믹스는 자체 멀티도메인을 지원합니다. 여러사이트를 한폴더로 서비스 가능합니다. 각 사이트마다 다른 메뉴 레이아웃 사용 가능합니다.>

 

 

  삼바서버

root권한으로 mc를 입력합니다. cd /etc/samba 를 입력하면 smb.conf가 보입니다. F4를 눌러서 편집합니다. 아래끝으로 내려가서 공유할 폴더를 설정합니다. 

[samba]     다른컴에서 보입니다. 

comment = samba  폴더 설명

path = /home/data/samba   폴더위치

valid users = user     삼바유저

public = yes

writeable = yes        쓰기

read only = no         읽기전용

creat mode = 0777

creat mode = 0777

guest ok = no          누구나 볼수 있게 하려면 yes 아니면 이 옵션을 지우면 됩니다. 

공유폴더 hdd를 /var/www/data로 설정했다면 아래폴더로 /var/www/data/samba 폴더이름은 본인 원하는데로 입력하시면 됩니다. 

[다른컴에서 삼접속이 안되어 설정이 잘못된줄 알았는데 방화벽에서 samba포트를 열어주니 정상적으로 접속이 됩니다. ufw에 samba포트를 허용목록에 추가해주시면 됩니다. ufw allow samba ]

 

  클라우드

plex 미디어서버

8C5B2600-352D-4524-8891-93CC9E0A8638.png

4FA5EFDC-5B1B-4F96-BA85-ADFDD69CB74A.png

 

 

 

 

 서버보안

  요즘 공유기 성능이 좋아서 디도스 공격도 방어 잘합니다. 그래도 내부망에서 장난삼아 해킹할수 있으니 꼭 필요한 포트만 열고 방화벽을 활성화 해주는것이 좋습니다. 웹서비스를 위하여 공유기 80번 443번포트를 서버아이피로 지정해줘야 합니다. 외부에서 ssh 접속하려면 다른포트로 22번포트 연결해주면 됩니다.(외부에서 ssh 접속할때 설정한 포트를 지정해서 연결할수 있습니다.)`http(80) https(443)  웹서버포트 samba(모름) ssh(22) ftp(21)그외 모든 포트를 잠금. 

ufw allow http

ufw allow https

ufw allow samba

ufw allow ftp

ufw allow ssh

ufw enable 

수정한 이유 :

위로