2015. 5. 8. 23:19


여기서 셋팅하는 프로그램 목록입니다

- 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

CONF_MAXSWAP=100

- 주석을 해제하고 원하는 용량을 지정할 수도 있다. (단위 MB)




쉘 프롬프트 색상 설정

$ cd ~

$ vim .bashrc

force_color_prompt=yes

- 주석처리 되어있다면 풀어준다.

- 저장 후 로그아웃 했다가 다시 로그인 한다.




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하드디스크의 속도를 일정부분 커버 해 줍니다.









Posted by 해비