아래 내용 복습 해보길..
1. 데몬을 이용하는 방법
- 설정파일을 수정
# cd /etc/xnetd.d
# vi rsync
-- rsync --
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
-- rsync --
- 방화벽 설정 (873 ACCEPT)
# iptables -F
# iptables -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# iptables -A INPUT -j DROP
# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:873
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
DROP all -- 0.0.0.0/0 0.0.0.0/0
- 서비스 환경설정 파일 생성
- 보안상 600으로 설정한다.
# install -m 600 /dev/null /etc/rsyncd.conf
# ls -l /etc/rsyncd.conf
-rw------- 1 root root 0 Apr 15 11:25 /etc/rsyncd.conf
~~~~~
# vi /etc/rsyncd.conf
-- /etc/rsyncd.conf --
[home]
path = /home
comment = home directory
uid = root
gid = root
use chroot = yes
read only = yes
# hosts allow = <-- 중요
max connections = 1
timeout 600
-- /etc/rsyncd.conf --
- xinetd 재시작
# /etc/init.d/xinetd restart
- 열린포트 확인 (873 확인)
# netstat -nltup
:
:
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 28419/xinetd
========================================================
LAB> rsync 데몬의 백업의 설정파일에 /etc 디렉토리도 백업
받을 수 있도록 추가하시오.
# vi /etc/rsyncd.conf
-- /etc/rsyncd.conf --
[home]
path = /home
comment = home directory
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 127.0.0.1
max connections = 1
timeout 600
[etc] <-- 여기부터 끝까지 추가
path = /etc
comment = etc directrory
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 127.0.0.1
max connections = 1
timeout 600
-- /etc/rsyncd.conf --
- 확인
# rsync -az 127.0.0.1::
home home directory
etc etc directrory <-- 출력되면 성공
- 백업
# cd /backup
# rsync -az 127.0.0.1::etc etc <-- etc 에 백업이 된다.
- 백업확인
# du -sh etc
112M etc
# du -sh /etc
112M /etc
# du -s /etc
113700 /etc
# du -s etc
113712 etc
(복사가 안대는것도 있는거 같다.)
========================================================
========================================================
LAB> 위에서 설정한 rsync 데몬의 백업 설정파일을 외부에서도
받을 수 있도록 변경 하시오.
rsync 서버 : 192.168.56.200
rsync 클라이언트 : 192.168.56.250
(CentOS 5.8 2대 필요)
- IP alias
rsync server # ifconfig eth1:1 192.168.56.200
rsync server # ifconfig eth1:1
eth1:1 Link encap:Ethernet HWaddr 08:00:27:0C:5A:E9
inet addr:192.168.56.200 Bcast:192.168.56.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
rsync client # ifconfig eth1:1 192.168.56.250 \
> netmask 255.255.255.0
- rsync server 설정
# vi /etc/rsyncd.conf
-- /etc/rsyncd.conf --
[home]
:
:
hosts allow = 192.168.56.250 <-- IP address 변경
[etc]
:
:
hosts allow = 192.168.56.250 <-- IP address 변경
-- /etc/rsyncd.conf --
- rsync client 접속
- IP ADDRESS 가 여러개 있을 경우 특정 IPADDRESS 를
- 사용하기 위해서 -s --address=<IPaddress> 를 사용한다.
rsync clinet# mkdir /backup; cd /backup
rsync clinet# rsync -s --address=192.168.56.250 \
> -avz 192.168.56.200::home home
rsync clinet# rsync -s --address=192.168.56.250 \
> -avz 192.168.56.200::etc etc
내가 실습한 환경
server = 192.168.219.198
client = 192.168.219.157
server에서....
# vim /etc/rsyncd.conf
-- /etc/rsyncd.conf --
[home]
:
:
hosts allow = 192.168.219.157 <-- IP address 변경 (Client IP)
[etc]
:
:
hosts allow = 192.168.219.157 <-- IP address 변경 (Client IP)
-- /etc/rsyncd.conf --
service xinetd restart
Client 에서....
mkdir /backup ; cd /backup
rsync -axH 192.168.219.198::home home
ls
du -sh home
========================================================
telnet : 암호화 X
ssh : 암호화 O
rsync 데몬 : 인증방법 : 호스트
rsync over ssh : 인증방법 : 사용자/비밀번호(공개키비번)
========================================================
LAB> rsync over ssh 를 사용해서 백업을 받아보자.
!!! rsync 데몬이 필요없다 !!!
!!! sshd 데몬이 떠있어야 한다. !!!
- rsync server 종료
rsync server# /etc/init.d/xinetd stop
- rsync clinet 로 server 로 연결시도 (에러발생)
rsync client# rsync -s --address=192.168.56.250 \
> -avz 192.168.56.200::etc etc
- ssh 로 가져와보자.
- /etc 디렉토리 전체를 가져올때 사용(디렉토리가 복사)
- 계정명@ 가 생략되면 현재 사용자의 계정이 자동으로 지정된다.
rsync client# rsync -avz -e ssh 192.168.56.200:/etc .
rsync client# rsync -avz -e ssh 192.168.56.200:/home .
- /etc/* 파일을 가져올때 사용(파일들이 현재 디렉토리에 복사)
rsync client# rsync -avz -e ssh 192.168.56.200:/etc/ .
- /etc/passwd 파일 한 개만 가져올때 사용
rsync client# rsync -avz -e ssh \
> 192.168.56.200:/etc/passwd .
========================================================
========================================================
LAB> 방화벽에서 ssh와 localhost 는 자동으로 접속할 수 있도록 세팅하는 방화벽룰
# iptables -A INPUT -p tcp -m state --state NEW \
> --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state ESTABLISHED \
> -j ACCEPT
# iptables -A INPUT -j DROP
# iptables -I INPUT 3 -i lo -j ACCEPT
# iptables-save > /etc/sysconfig/iptables
========================================================
========================================================
LAB> ssh 에서 공개키를 이용한 로그인 연습
!!! 키는 쌍으로 생성된다.
!!! 개인키, 공개키 !!!
!!! 개인키 : 남에게 보여주는 안되는 키
!!! 공개키 : 남에게 보여주는 키
!!! 키를 저장하는 디렉토리 : $HOME/.ssh
!!! sshuser1 : /home/sshuser1/.ssh
!!! sshuser2 : /home/sshuser2/.ssh
A서버(CentOS 5.8) 와 B서버(CentOS 5.8) 이용 실습
+----------+ +----------+
| A | | B |
| sshuser1 | | sshuser3 |
| sshuser2 | | sshuser4 |
| | | |
+----------+ +----------+
-- 순서 --
1. 공개키를 생성한다. (ssh-keygen)
2. 공개키를 복사한다. (scp)
3. 공개키로 접속한다. (ssh)
- A 서버 사용자 생성
# useradd sshuser1
# useradd sshuser2
# passwd --stdin sshuser1
# passwd --stdin sshuser2
# su - sshuser1
$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs
- 공개키 생성과정
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sshuser1/.ssh/id_rsa):
Created directory '/home/sshuser1/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sshuser1/.ssh/id_rsa.
Your public key has been saved in /home/sshuser1/.ssh/id_rsa.pub.
The key fingerprint is:
1b:ad:6f:fd:25:32:e6:00:a0:a5:f1:19:b0:dc:93:35 sshuser1@localhost.localdomain
$ ls -al .ssh
total 5
drwx------ 2 sshuser1 sshuser1 1024 Apr 16 10:18 .
drwx------ 3 sshuser1 sshuser1 1024 Apr 16 10:18 ..
-rw------- 1 sshuser1 sshuser1 1675 Apr 16 10:18 id_rsa
-rw-r--r-- 1 sshuser1 sshuser1 412 Apr 16 10:18 id_rsa.pub
$ exit
# su - sshuser2
- 공개키 생성과정
sshuser2$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sshuser2/.ssh/id_rsa):
Created directory '/home/sshuser2/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/sshuser2/.ssh/id_rsa.
Your public key has been saved in /home/sshuser2/.ssh/id_rsa.pub.
The key fingerprint is:
ac:1f:ca:af:9e:87:54:67:8b:e5:97:49:76:96:47:e9 sshuser2@localhost.localdomain
$ ls -al .ssh
total 5
drwx------ 2 sshuser2 sshuser2 1024 Apr 16 10:21 .
drwx------ 4 sshuser2 sshuser2 1024 Apr 16 10:21 ..
-rw------- 1 sshuser2 sshuser2 1743 Apr 16 10:21 id_rsa
-rw-r--r-- 1 sshuser2 sshuser2 412 Apr 16 10:21 id_rsa.pub
- B 서버 사용자 생성
# useradd sshuser3
# useradd sshuser4
# passwd sshuser3
# passwd sshuser4
# su - sshuser3
$ ssh-keygen
:
:
$ exit
# su - sshuser4
$ ssh-keygen
:
:
$ exit
-- A 서버 -> B서버로 공개키 복사 --
- sshuser1 -> sshuser3 으로 공개키 로그인 세팅
- sshuser1 사용자는 공개키의 비번이 없었기 때문에 자동으로
로그인이 된다.
A # su - sshuser1
sshuser1$ scp .ssh/id_rsa.pub sshuser3@192.168.56.103:.ssh/authorized_keys
sshuser1$ ssh sshuser3@192.168.56.103 <-- 자동 로그인
sshuser3$ <-- B서버의 sshuser3 으로 접속성공!!!
- sshuser2 -> sshuser4 로 공개키 로그인 세팅
- sshuser2 사용자의 공개키 비번을 입력해서 로그인한다.
A # su - sshuser2
sshuser2$ scp .ssh/id_rsa.pub sshuser4@192.168.56.103:.ssh/authorized_keys
(이때 sshuser4 의 pw를 입력)
sshuser2$ ssh sshuser4@192.168.56.103
Enter passphrase for key '/home/sshuser2/.ssh/id_rsa': (sshuser2의 공개키 PW 입력)
sshuser4$ <-- B서버의 sshuser4로 접속성공!!!
-- B 서버 -> A서버로 공개키 복사 --
- sshuser3 -> sshuser1 로 공개키 로그인을 세팅하시오.
B # su - sshuser3
sshuser3$ scp .ssh/id_rsa.pub sshuser1@192.168.56.102:.ssh/authorized_keys
sshuser1@192.168.56.102's password:
id_r 100% 412 0.4KB/s 00:00
sshuser3$ ssh sshuser1@192.168.56.102
Enter passphrase for key '/home2/sshuser3/.ssh/id_rsa':
sshuser1$ <-- A서버의 sshuser1로 접속성공!!!
- sshuser4 -> sshuser2 로 공개키 로그인을 세팅하시오.
B # su - sshuser4
sshuser4$ scp .ssh/id_rsa.pub sshuser2@192.168.56.102:.ssh/authorized_keys
sshuser2@192.168.56.102's password:
id_r 100% 412 0.4KB/s 00:00
sshuser4$ ssh sshuser2@192.168.56.102
Enter passphrase for key '/home2/sshuser4/.ssh/id_rsa':
sshuser2$ <-- A서버의 sshuser2로 접속성공!!!