가정용 서버 다양한

소개



집 서버의 개인 비망록 겸 아이디어 풀입니다.
우연히 디스크 이미지를 저장 한 우분투 18.04 LTS를 가정합니다.

모쿠지


  • ssh 서버
  • GitLab 서버
  • 웹 서버
  • 카메라 이미지 스트리밍
  • 패킷 캡처

  • 스토리지 서버
  • 글로벌화

  • IP 관련


    
    $ sudo apt install net-tools
    

    이제 ifconfig 등을 사용할 수 있습니다.
    앞으로이 컴퓨터의 Local IP는 ${L_IP}, Global IP는 ${G_IP}입니다.

    ssh 서버


    
    $ sudo apt install openssh-server
    

    공개키 인증을 위해


    $ sudo mkdir /home/${USER_NAME}
    $ sudo mkdir /home/${USER_NAME}/.ssh
    $ sudo chmod 700 /home/${USER_NAME}/.ssh
    $ sudo vim /home/${USER_NAME}/.ssh/authorized_keys
    # ホストマシンの公開鍵を記入
    $ sudo chmod 600 /home/${USER_NAME}/.ssh/authorized_keys
    

    비밀번호 인증을 해제하고 공개 키 인증에만


    
    $ sudo vim /etc/ssh/sshd_config
    # PasswordAuthentication no
    # PubkeyAuthentication yes 
    # を設定
    

    sshd 재부팅


    $ sudo systemctl restart sshd
    

    호스트 컴퓨터에서 ssh


    $ ssh ${USER_NAME}@${L_IP}
    

    GitLab 서버



    종속 설치


    
    $ sudo apt install curl openssh-server ca-certificates
    $ sudo apt install postfix
    

    GitLab 패키지 등록


    
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    

    GitLab 설치


    
    $ sudo apt install gitlab-ce
    

    GitLab 구성


    
    $ sudo vim /etc/gitlab/gitlab.rb
    # external_urlでURLを決める  
    $ sudo gitlab-ctl reconfigure
    

    웹 서버



    apache2 설치


    $ sudo apt install apache2
    

    서버 이름 변경


    $ sudo vim /etc/apache2/apache2.conf
    # ServerNameを設定
    

    기본적으로 /var/www/html/는 루트 디렉토리입니다.

    루트 디렉토리 변경


    $ sudo vim /etc/apache2/apache2.conf
    # <Directory "ルートにしたいディレクトリ">
    #        Options Indexes FollowSymLinks
    #        AllowOverride None
    #        Require all granted
    # </Directory>
    
    $ sudo vim /etc/apache2/sites-available/000-default.conf
    # DocumentRoot を ルートにしたいディレクトリ に変更
    

    포트 변경



    http는 80 번이지만, 바꾸고 싶을 때 용
    이번에는 8080번으로 설정
    $ sudo vim /etc/apache2/apache2.conf
    # ServerName www.example.com:8080
    $ sudo vim /etc/apache2/ports.conf
    # Listen 8080 に変更
    

    아파치 재부팅


    $ sudo systemctl restart apache2
    

    카메라 이미지 스트리밍



    mjpg-streamer 설치


    $ sudo apt-get install subversion imagemagick libjpeg-dev
    $ svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer
    $ cd mjpg-streamer/mjpg-streamer/
    $ make
    $ sudo make install
    

    mjpg-streamer 시작



    해상도 1280×720, fps 30, 포트 14230으로 부팅
    배경화하기 위해 -b 추가
    mjpg_streamer -i "/usr/local/lib/input_uvc.so -y -q 100 -r 1280x720 -f 30" -o "/usr/local/lib/output_http.so -w ~/Documents/mjpg-streamer/mjpeg-streamer/www -p 14230" -b
    

    브라우저에서 http://${L_IP}:14230/?action=stream에 액세스하면 재생됩니다.

    패킷 캡처



    ubuntu에는 사전 설치된 tcpdump 사용
    이번에는 동일한 LAN상의 http/https 프로토콜을 가로 채기
    $ sudo tcpdump  -vvv port 80 or port 443
    

    스토리지 서버



    ownclouds 사용

    설치


    $ sudo wget -nv https://download.owncloud.org/download/repositories/10.0.3/Ubuntu_17.04/Release.key -O Release.key
    $ sudo apt-key add - < Release.key
    $ sudo echo 'deb http://download.owncloud.org/download/repositories/10.2/Ubuntu_18.04/ /' > /etc/apt/sources.list.d/owncloud.list
    $ sudo apt-get update
    $ sudo apt-get install owncloud-files
    

    아파치 설정



    웹 서버 참조
    기본값 /var/www/ownclouds에 엔티티가 설치되므로 apache 경로를 통과합니다.

    의존성 해결



    웹 페이지에 액세스하면 모듈 XXX가 설치되지 않았다고 표시되므로 apt로 가져옵니다.
    $ sudo apt install -y php-xxx
    # mb multibyteは、`php-mbstring`をインストール
    $ sudo systemctl restart apache2
    

    글로벌화



    지금까지의 장에서는 동일한 LAN으로의 액세스를 전제로했습니다.
    외부에서도 액세스할 수 있도록 설정

    고정 IP화



    우분투 설치시 설정할 수 있습니다.
    새로 설정하는 경우 GUI로 설정 가능

    ifconfig에서 조사한 정보를 바탕으로 주소 넷 마스크 게이트웨이를 적절하게 설정

    포트 매핑



    라우터의 글로벌 IP에 액세스 할 때 집 서버의 포트 관련 설정
    UPnP 클라이언트 사용

    설치


    $ sudo apt install miniupnpc
    

    포트 목록



    글로벌 IP도 획득 가능
    $ upnpc -l
    

    포트 매핑 추가



    이것은 http 용 (80 번) 설정
    httpd, ssh 등도 마찬가지입니다.
    $ upnpc -a ${L_IP} 80 80 tcp
    # ローカルIP 内向きポート番号 外向きポート番号 通信プロトコル(tcp/udp)
    

    포트 매핑 삭제


    $ upnpc -d ${L_IP} 80 
    # ローカルIP 外向きポート番号
    

    DDNS



    글로벌 IP 이름 확인을 위한 DDNS
    집에서 계약하는 라우터의 글로벌 IP가 한 달 일어나기 때문에 사용
    mydns이라는 온라인 서비스를 사용했습니다.

    등록



    사이트에 등록한 후 DOMAIN INFO에서 사용하려는 ${MYDNS_NAME} 이름을 설정

    CRON 설정



    mydns에서는 일정주기마다 글로벌 IP를 통지하지 않으면 IP가 삭제됩니다.
    글로벌 IP를 알리는 shellscript를 cron으로 설정해야합니다.
    $ crontab -e
    # 0,30 * * * * wget -q -O - --http-user=${MYDNS_USER_ID} --http-password=${MYDNS_PASS} http://www.mydns.jp/logwww.in.html
    #これで30分ごとにIPを通知
    

    액세스



    http(80번 포트)의 경우
    브라우저에서 http://${MYDNS_NAME}.mydns.jp:80에 액세스

    ssh(22번 포트)의 경우
    $ ssh ${USER_NAME}@${MYDNS_NAME}.mydns.jp:22
    

    참고



    ぇtps://우ぇb네 t후레세. 네 t/우ぇb-카메라-mjpg-st레아메 r/
    htps //w w. 요코우 b. 네 t/2018/05/04/우분츠-18_04-세 rゔぇr-tぁb-인 s타르/
    htps : // thr3 아. 하테나 bぉg. 코m/엔트리/20140625/1403638550
    htp : //바샤ぉg. c-b 라이언 s. jp/09/10/15-132615. php
    htp // d. 하테나. 네. jp/혼부노리/20110328/1301250660
    htps : // 이 m / t-kuma r / ms / d1880382 et b06 a 8 fc

    좋은 웹페이지 즐겨찾기