여기서 셋팅하는 프로그램 목록입니다
- NAS 기능을 위한 것.
samba (네트워크 드라이브)
openVPN (원격에서 네트워크 드라이브 연결용)
- 시스템 설정
iptables (방화벽)
SSH (원격 쉘 접속)
디스크 마운트
배포판은 아무거나 취향에 따라서~~
여기 설정은 데비안 8 기준입니다.
SSH, 기본구성유틸리티를 제외한 모든 체크를 해제 후 설치 진행합니다. (권장)
설치 시 파티션 설정
|  /boot |  ext4 |  250 MB | 
|  / |  ext4 |  29.5 GB | 
- 32GB MicroSD 에 설치 해서 USB로 부팅하였다.
- /boot 에 250 MB 제외한 모든 용량을 / 에 할당 하였다.
- MicroSD 에 운영체제를 설치하는 이유는 관리의 편의성 때문이다. usbit 로 통째로 이미지 백업을 해두고, 필요시 복원하면 간편하게 관리가 된다. (32GB 기준으로 이미지 백업 하는데 약 50분 소요되는 듯 하다)
스왑공간 생성
$ sudo apt-get install dphys-swapfile
- 설치만 하면 기본 2 GB의 스왑공간이 생성된다.
스왑공간 설정(옵션)
$ sudo vim /etc/dphys-swapfile
- 주석을 해제하고 원하는 용량을 지정할 수도 있다. (단위 MB)
쉘 프롬프트 색상 설정
$ cd ~
$ vim .bashrc
- 주석처리 되어있다면 풀어준다.
- 저장 후 로그아웃 했다가 다시 로그인 한다.
ll 명령어 사용(ls -l)
$ sudo vim /etc/profile
| alias ll='ls $LS_OPTIONS -l' | 
- 일일이 ls -l 치는거 귀찮다. 그냥 ll 입력을 위해 설정한다.
SSH 설치 및 설정
$ sudo apt-get install ssh
$ sudo vim /etc/ssh/sshd_config
| Port 22 PermitRootLogin no | 
- SSH 접속포트 설정
- Root 계정 로그인 금지
방화벽 설정
$ vim iptables
| iptables -P INPUT ACCEPTiptables -F
 
 
 iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
 iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
 iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
 
 
 # Allow any connection from this host.
 iptables -A INPUT -i lo -j ACCEPT
 
 # Allow all broadcast traffic.
 iptables -A INPUT -m pkttype --pkt-type broadcast -j ACCEPT
 
 # Avahi
 iptables -A INPUT -m udp -p udp --dport 5353 -j ACCEPT
 
 
 
 # SSH
 iptables -A INPUT -m tcp -p tcp --dport 22 -j ACCEPT
 
 # SAMBA
 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 137:139 -j ACCEPT
 iptables -A INPUT -m udp -p udp --dport 137:139 -j ACCEPT
 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
 
 # OpenVPN
 iptables -A INPUT -m udp -p udp --dport 1194 -j ACCEPT
 
 
 
 iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
 
 iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
 iptables -P INPUT DROP
 
 
 iptables -P OUTPUT ACCEPT
 
 
 iptables -nL
 
 
 iptables -t nat -F
 #iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
 iptables -t nat -nL
 | 
방화벽 설정 스크립트 파일 생성 및 적용
$chmod 700 iptables
$sudo ./iptables
현재 방화벽 설정을 담은 파일 생성 및 /etc/ 폴더 아래에 복사
$sudo iptables-save > iptables.conf
$sudo mv iptables.conf /etc/
부팅시 지금 설정한 규칙이 유지되도록 설정
$sudo vim /etc/network/interfaces
| pre-up iptables-restore < /etc/iptables.conf | 
- 부팅시 iptables 규칙 자동 재적용 설정.
장치마운트
마운트 할 경로 생성
$ sudo mkdir /mnt/hdd1
장치의 UUID 확인
$ sudo blkid
장치의 UUID와 현재 파일시스템을 설정.
$ sudo vim /etc/fstab
| UUID=장치의UUID       /mnt/hdd1       ext4      defaults        0        0  | 
장치 마운트
$ sudo mount -a
- /etc/fstab 설정이 잘못된 경우 부팅시 문제가 되므로 꼭 마운트 하여 테스트 해 보도록 한다.
Samba 설치 및 설정
$ sudo apt-get install samba
$ sudo apt-get install samba-common-bin 
사용자 추가
먼저 시스템 사용자를 추가하고, samba 유저에 추가를 한다.
$ sudo useradd net1
$ sudo useradd netr
$ sudo smbpasswd -a net1
$ sudo smbpasswd -a netr
- 기존 samba 사용자 패스워드 변경 시 -a 옵션(samba사용자 추가)을 제거 한다.
$ sudo vim /etc/samba/smb.conf
| workgroup = WORKGROUP dos charset = CP949 display charset = UTF8 unix charset = UTF8 
 
 [nas_rw] path = /mnt/hdd1/nas writable = yes valid users = net1 
 [nas_r] path = /mnt/hdd1/nas writable = no guest = yes | 
- smb.conf 는 기존 내용을 전부 지우고 이 내용으로 대체 한다.
- 동일 경로를 공유명칭 2개 (nas_rw, nas_r) 로 권한을 달리 하여 공유 하고 있다.
- nas_rw 는 쓰기권한이 주어졌고, nas_r 은 쓰기가 허용되지 않는다.
- net1 로 로그인 하면 nas_rw, nas_r 둘 다 접근이 가능하며, net1을 제외한 smbuserpasswd 에 등록된 모든 계정에 대해 nas_r 에만 접근이 가능하다.
OpenVPN 설정
- 이 블로그의 OpenVPN 설치 항목을 참고... (너무 길다 -_-)
넉넉한 메모리는 파일 복사시 버퍼로 활용되기도 합니다.

- 넉넉한 용량의 메모리는 파일 복사시 기가비트 랜의 빠른 속도를 감당하지 못하는 느린 5400 rpm하드디스크의 속도를 일정부분 커버 해 줍니다.