아래 내용 복습 해보길..



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로 접속성공!!!