우분투 개인 서버 세팅하기 (홈페이지 서버개인운용시)
작성자 yun, 작성일 2021-01-28 19:14:54, 조회 785
**해킹방지용도

1. sudo apt install fail2ban


**putty 접속용도

2. sudo apt install ssh

     sudo apt install openssh-server

     sudo service ssh restart

     ifconfig

       안되면, sudo apt install net-tools

    방화벽확인

    sudo ufw status verbose

    활성화 되어있으면 비활성화  sudo ufw disable 

    외부 터미널(윈도우 ) 에서 putty로작업.

    윈도우에서 putty 설치


**bind9설치용도

    가비아에서 네임서버를 내 아이피로 설정 (ex:ns.jesuschristchurch.kr)

                     giveinjesus.xyz 는 도메인을 서버ip와 연결해놓음- 추우 아파치에서 연결설정

3. sudo apt install bind9

     sudo su

     nano  /etc/bind/named.conf.options

         제일밑에 추가

         recursion yes;

        allow-transfer { none; }  

        forwarders {

            8.8.8.8;

            8.8.4.4;

        };

        forward only;

        allow-query { any; };


     nano /etc/bind/named.conf.local

            제일 밑에 추가

            zone "jesuschristchurch.kr" IN {

               type  master;

               file "/etc/bind/db.jesuschristchurch.kr";

            }  ;

    cat> /etc/bind/db.jesuschristchurch.kr

        밑에꺼 추가하고 저장은 ctrl+d

             $TTL    86400

          @   IN  SOA ns.jesuschristchurch.kr. root.ns.jesuschristchurch.kr. (

                  1004     ; Serial

                 14400      ; Refresh

                 14400     ; Retry

              1209600     ; Expire

                86400 )   ; Negative Cache TTL

          @   IN  NS  ns.jesuschristchurch.kr.

          @   IN  A   221.163.8.***

          ns   IN  A   221.163.8.***

            ;

    확인  nano  /etc/bind/db.jesuschristchurch.kr

네임서버시작

 service bind9 start

상태 확인

service bind9 status

복사 붙여 넣는과정에서 이상한 보이지 않는 문자 삽입됨

       vi 에디터로 제거  dd를 눌러서제거후 저장 :wq

service bind9 restart

service bind9 status

성공적으로 실행되면  윈도우 컴퓨터에서 cmd 명령어를 사용하여 ping jesuschristchurch.kr 로 확인


**아파치 설치

4.  apt install apache2

 윈도우 크롬에 jesuschristchurch.kr 를 입력하여 기본화면이 뜨는지 확인.

  아파치 서버 보안

   "참고:https://blog.lael.be/post/73"

#a2enmod rewrite

 #a2enmod headers

 #a2enmod ssl

 #a2dismod -f autoindex

/etc/apache2/apache2.conf 설정파일 중간에 추가

# deny file, folder start with dot

<DirectoryMatch "^.|/.">

    Require all denied

</DirectoryMatch>

  

# deny (log file, binary, certificate, shell script, sql dump file) access.

<FilesMatch ".(?i:log|binary|pem|enc|crt|conf|cnf|sql|sh|key|yml|lock|gitignore)$">

    Require all denied

</FilesMatch>

  

# deny access.

<FilesMatch "(?i:composer.json|contributing.md|license.txt|readme.rst|readme.md|readme.txt|copyright|artisan|gulpfile.js|package.json|phpunit.xml|access_log|error_log|gruntfile.js|bower.json|changelog.md|console|legalnotice|license|security.md|privacy.md)$">

    Require all denied

</FilesMatch>

 

# Allow Lets Encrypt Domain Validation Program

<DirectoryMatch ".well-known/acme-challenge/">

    Require all granted

</DirectoryMatch>

 nano /etc/apache2/apache2.conf

         안되면 cd  /etc/apache2.conf   이동후    nano apache2.conf한후에 위의 것을 추가해준다.

         그리고  <Directory  /home/bs~/www

                           AllowOverride None

                           Require all granted

                       Directory/>

  가끔 복사 붙여넣기 하면 이상한 문자가 삽입되므로 제거해야됨.


**php 설치

5.  apt install php

  현재 version: 7.4

     apt install php-mbstring//다국어

     apt install php-gd  php-curl php-xml php-json//그래픽

  php.ini 설정

  nano  /etc/php/7.4/apache2/php.ini

    short_open_tag = On

    memory_limit =4000M (개인서버라서 마음대로 설정중)

    post_max_size = 4000M

   upload_max_size = 4000M


** mysql 설치

6. apt install mysql-server

     apt install mysql-client

     apt install php-mysql

    mysql_secure_installation

    mysql -u root -p

      mysql>show databases;

   mysql이 테이블에 보이면 성공.

    mysql>use mysql;

    mysql>select user,host from mysql.user;

   mysql>create user '아이디'@'%' identfied by '비밀번호';  //모든권한을 가진 아이디 생성

  mysql> grant all privileges on *.* to '아이디'@'%' with grant option;

  

**phpmyadmin 설치

7.  apt install phpmyadmin

 nano /etc/apache2/apache2.conf

        include /etc/phpmyadmin/apache.conf 추가

service apache2 restart

외부접속확인 jesuschristchurch.kr/phpmyadmin/


**외부 윈도우 접속 파일 업로드용도 파일질라설치

8.  apt install vsftpd

 nano /etc/vsftpd.conf

     write_enable=yes 앞의 주석제거

     xferlog_file=/ver/log/vsftpd.log 앞의 주석제거

  service vsftpd restart

 apt install filezilla

윈도우에서 파일질라 클라이언트 다운로드 후 실행하여 접속(포트번호 22)


실제로 해보고 올린 것입니다.  서버운영중에  ssd가 1년도 안되어서 갑자기 고장이 나서 정리 할 겸 다시 설치 하면서 기록으로 남기고 또 누군가 필요하신 분들에게도 도움이되기를 바랍니다.

 모든 사람들이  하나님의 아들이시고, 우리의 죄를 위하여 죽으시고, 우리의 영생을 위하여 부활하시고, 하나님의 우편에 앉아서 통치하시고 계시는 예수 그리스도 우리 주님을 믿기를 바랍니다. 
    댓글을 불러오는 중입니다.