본문 바로가기

SBC관련

Rock Pi 주요서버 설정 : Samba, Webdav, 네트워크백업, SSH

https://velog.io/@gmelan/proxmox-Nginx로-webdav-서버-돌려보기

 

[proxmox] Nginx로 webdav 서버 돌려보기

지난 포스팅에서 proxmox 환경에서 리버스 프록시 서버와 webdav 서버를 설치했다. apache로 구성된 webdav 서버는 안정적이긴 했지만 리버스 프록시 적용 시 특정 명령에 502 에러가 뜨고 설정도 복잡한

velog.io

Webdav는 위링크 참고

 

1. Command 모드 부팅 : #systemctl set-default multi-user.target

2. GUI 모드 부팅 : #systemctl set-default graphical.target

3. Samba 설치 및 설정

     #apt install samba

     #smbpasswd -a kimwida      => 기존 우분투 계정을 적는다.

     #cp /etc/samba/smb.conf /etc/samba/smb.conf_temp      => 기본설정 백업한다.

     #vim /etc/samba/smb.conf 후 아래의 내용을 추가한다.

               [data]                               => 윈도우에서 접속할때 \\2.1.1.2\data 이렇게 접속  

               comment = 컴퓨터명           => 접속이 성공하면 드라이브 옆에 "\\컴퓨터명" 이렇게 뜬다        

               path = /mnt/data    => 공유할 디렉토리       

               valid users = 계정명             => 아까 추가한 계정명   

               writeable = yes                                                    

               read only = no                                                    

               create mode = 0777                                              

               directory mode = 0777                                           

     #chown kimwida:kimwida /mnt/data

     #chmod 755 /mnt/data

     => 쓰기가 가능하려면 해당 폴더에 쓰기가 가능해야한다.

     #systemctl start smbd

     #systemctl enable smbd

4. Webdav 설치 및 설정

     #apt install nginx nginx-full

     #mkdir /var/www/html/dav

     #chown www-data:www-data /var/www/html/dav

     #vim /etc/nginx/sites-available/default 해서 아래의 코드를 server {  } 안에 넣는다.

     server {

               listen 8012 default_server;        => 해킹 방지를 위해 포트 번호를 80에서 8012로 바꾼다.
               listen [::]:8012 default_server;
               client_max_body_size 0;            => 클라이언트의 파일 업로드 크기제한을 없게 한다.

               ......

                location /webdav {                              
                autoindex on;                                     
                alias /mnt/data;                                   
                auth_basic "Restricted Access";                
                auth_basic_user_file /etc/nginx/.htpasswd;
                client_body_temp_path /var/www/html/dav;
                dav_methods PUT DELETE MKCOL COPY MOVE;
                dav_ext_methods PROPFIND OPTIONS;
                dav_access user:rw group:rw all:r;
                create_full_put_path on;
                 }

     #apt install apache2-utils             => htpasswd 사용하기 위해 설치

     #htpasswd -c /etc/nginx/.htpasswd kimwida

     #systemctl start nginx

     #systemctl enable nginx

이후  다른 컴에서 http://ip주소:8012/webdav 로 접속 후 아이디 패쓰워드로 접속. (**https가 아니다.**)

클라이언트 컴퓨터에서 RaiDrive 다운로드 후 설치 실행해서 내장 하드처럼 사용가능하다.

5. 중복 파일 삭제

    #fdupes -d /mnt/data1 /mnt/data2     

    => data1 디렉토리와 data2 디렉토리의 합쳐서 중복되는 파일을 삭제한다.

    => fdupes -rd /mnt 써도 같은 작동한다.

6. 네트워크 백업

    #rsync -avz --delete root@2.1.1.4:/mnt/data /mnt   

    => 2.1.1.4 컴퓨터의 /mnt/data 디렉토리를 내 컴퓨터 /mnt에 똑같이 복사한다. 만약 2.1.1.4에 없는 파일이 내 컴퓨 

         터 /mnt에 있으면 삭제한다.

7. root로 ssh 접속하기

     #passwd root  => 먼저 루트의 비밀번호를 정해준다.

     #vim /etc/ssh/sshd_config      에서 PermitRootLogin without-password 에서 without-password를 yes로

     #service ssh restart

8. ssh 비번없이 접속하기

     #ssh-keygen -t rsa          => 키생성

     #ssh-copy-id -i /root/.ssh/id_rsa.pub 2.1.1.89        => 공개키 원격지에 보낸 뒤 패스워드를 입력

     => 원격지 서버 /root/.ssh/authorized_keys 가 있는지 확인

----ssh port 변경하기

    #vim /etc/ssh/sshd_config

               =>#Port22   ---> Port22xx 로 변경 후 저장

    #service sshd restart

9. crontab 사용해서 자동으로 실행하게 만들기

     #crontab -e  => 편집            #crontab -l  => 목록 보기

10. 외장 windows 하드 /mnt/usb에 마운트 하기

     #fdisk -l    => 여기에서 윈도우 외장하드 위치 알아내기

     #mount -t ntfs-3g -o rw /dev/sdc1 /mnt/usb

11. 하드디스크 스피드 테스트

     #apt install hdparm

     #hdparm -Tt /dev/sda