파일 서버로 사용하려면 FTP를 설치해야 하는데.. 너무 귀찮고 또 설정해야 한다... 하지만! openSSH에서 기본적으로 SFTP를 제공한다. SFTP는 SSH와 같은 포트를 사용하고 기존의 FTP보다 더 보안상 우수하다! 다만 조금 TCP를 사용하다 보니 조금 느릴 수 있다. # groupadd sftpusers # useradd -G sftpusers -s /sbin/nologin dataman // 로그인이 안되는 단순히 sftp만을 위해 존재하는 계정 ㅎ # passwd dataman # vi /etc/ssh/sshd_config #Subsystem sftp /usr/lib/openssh/sftp-server subsystem sftp internal-sftp Match group sftpus..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP6hYj%2FbtqPDJhXi1B%2FeJA2D5ELY3VQMhSOnzTBF0%2Fimg.png)
메인보드에서 그 흔한 WOL(wake on lan)을 지원하지 않는다. 그러므로 안타깝게도 사용할 수 없다... 서버를 상시 가동하는데 있어서 계속 켜두면 적지 않은 부담이 있다. 그래서 특정 시간대... 예를 들어 새벽? 그 시간대에는 잠시 꺼두는게 좋을 것 같아서 RTC wakeup을 알아보았다. RTC 백업 배터리는 시스템의 시간을 저장하여 시스템이 꺼졌을 때도 시간을 기억하고 있다. 시스템의 시간 오차를 줄여주는 역할을 한다. 덕분에 시스템을 몇 시에 끄고 몇 시에 켜라고 스케쥴링을 할 수 있다! 앞서 시스템의 시간을 한국 시간으로 설정하고 지정한 타임서버에서 시간을 가져와 RTC 백업 배터리와 연동하여 오차를 줄이는 설정부터 할 것이다. 1. 한국 시간 설정 및 타임서버 동기화 # dpkg-re..
서버는 상시 가동 중이어야 한다. 하지만 개인 서버를 운영하는데 있어서 계속 서비스를 해줄 필요는 없다. 필요할 때만 꺼내 쓰는 것 밖에 더하겠는가? 그런데 HDD가 계속 돌아가게되면 수명이 더 줄어들 것이다. 그래서 필요하지 않을 때 HDD가 절전에 들어갈 수 있게 해주자! # vi /etc/hdparm.conf /dev/sda { spindown_time = 240 # 240*5 = 1200초 = 20분 }
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQMi32%2FbtqPENdilM2%2FpsgiWOEEXICjT6HYUnAqVK%2Fimg.png)
너무나도 걸리적 거린다. 이 에러가 왜 뜨는지 알아봤더니.. 별 것 아니었다. 보통은 /bin/sh가 bash를 가리키는데 우분투는 dash를 가리킴으로써 생기는 에러다. 이 에러는 간단히 /bin/sh와 bash를 링크시켜주면 되는 문제이다. # ls -ahl /bin/sh lrwxrwxrwx 1 root root 4 4월 12 2018 /bin/sh -> dash // dash로 링크되어 있음 # unlink /bin/sh // 링크 해제 # ls -ahl /bin/sh ls: '/bin/sh'에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다 // 링크 해제 확인 # ln -s /bin/bash /bin/sh // bash로 링크 # ls -ahl /bin/sh lrwxrwxrwx 1 roo..
우리의 서버는 램 메모리가 2GB 밖에 없다. 지금 당장은 트래픽이 적어 처리할 용량이 별로 없지만 훗날 버거워 지는 일이 발생하기 전에 swap 영역을 지정해주자. swap은 주기억장치(RAM) 공간이 부족할 때 지정한 보조기억장치(HDD, SSD 등)에 영역을 지정하여 RAM의 역할을 대신 수행하는 것이다. 그 후 서버의 핵심인 HDD를 마운트 하자! 마운트 함으로써 진정한 파일서버가 된다. 1. Swap 메모리 영역 설정 보통 램의 두 배 정도 지정해준다. # fallocate -l 4G /swapfile // 용량이 4G인 빈파일 생성 # chmod 600 /swapfile // 권한 주기. rw------- # mkswap /swapfile // 스왑메모리로 변경 # swapon /swapfil..
최상의 보안 상태를 유지하기 위해서 사용하는 포트 외의 다른 포트들은 모두 막을 것이다. 우리가 사용하는 포트는 SSH포트, HTTP(S)포트, FTP포트 정도? 주의! SSH 포트를 잘못쓰게되면 통신이 안된다! UART 모듈로 살릴 순 있지만... 없다면 다시 설치해야한다. # apt-get install iptables-persistent // iptables-persistent 설치 # mkdir /firewall # vi /firewall/servermode // iptables 스크립트로 관리하기. #!/bin/bash # 쉘스크립트 선언 # iptables setting auto script # iptables setting reset iptables -F # SSH TCP PORT 22->7..
앞으로 통신은 SSH로 할 것이기 때문에 SSH를 설정해주어야 한다. 제일 중요한 점은 우리가 통신할 수 있는 유일한 수단이면서 뚫리면 끝나는 대문같은 존재이다. 그래서 포트를 바꾸어줘야 한다. # vi /etc/ssh/sshd_config Port 7070 # 포트 번호를 기존 22번에서 7070으로 변경 PermitRootLogin no # 루트로 로그인이 안되게 설정 # service sshd restart // ssh 서비스 재시작. 이로써 포트를 7070으로 변경해주었고 루트로 로그인하는 것을 막았다. 이제 SSH 연결할 때는 포트를 7070으로 써야하고 계정은 전에 만든 dorothy로 로그인을 하여 su 명령어로 root로 전환해야 한다.
제일 중요한 보안 기법 중 하나이다. 기법이라기 보다는 당연히 해야하는 것이다. SSH에 접근할 때 root로 접근하면 안된다. 그렇기 때문에 미리 SSH 접근용 계정을 만들고 로그인한 계정이 su 명령어를 사용해 루트계정으로 접근할 수 있도록 만들어 주는 것이 중요하다. (sudo를 사용하게 하는 것이 제일 좋은 방법이긴 하지만..) # mkdir /home/dorothy // dorothy라는 계정을 만들건데 dorothy의 홈 디렉터리 # useradd -d /home/dorothy dorothy // dorothy 계정 만들기. -d는 홈디렉터리 지정 # chown /home/dorothy dorothy // /home/dorothy 디렉터리를 dorothy가 소유하도록 설정 # groupadd ..