여기서 셋팅하는 프로그램 목록입니다
- 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 ACCEPT iptables -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하드디스크의 속도를 일정부분 커버 해 줍니다.