본문 바로가기

Linux/기타

ssh터널링


아래 설정시 각 서버는 IP주소가 다를 수 있으므로 각자의 IP주소를 확인한 후 설정하고 실습을 IP주소가 아닌 도메인주소를 이용한다. -- 서버명 : IP주소 -- s1.boaniyagi.com : 192.168.56.112 s2.boaniyagi.com : 192.168.56.103 s3.boaniyagi.com : 192.168.56.104 -- 서버명 : IP주소 -- 1. hosts 파일 세팅 - 3개의 호스트 모두 아래와 같이 /etc/hosts 파일에 추가적으로 설정한다. -- /etc/hosts -- 127.0.0.1 localhost.localdomain localhost 192.168.56.112 s1.boaniyagi.com 192.168.56.103 s2.boaniyagi.com 192.168.56.104 s3.boaniyagi.com -- /etc/hosts -- - 각 서버의 호스트명을 설정한다. s1# hostname s1.boaniyagi.com s2# hostname s2.boaniyagi.com s3# hostname s3.boaniyagi.com - 각 설정이 완료되면 xshell 에서 각 서버의 터미널을 2개씩 접속한다. - 각 서버의 방화벽을 모두 해제한다. s1# iptables -F s2# iptables -F s3# iptables -F - 각 서버가 서로 통신이 되는지 ping으로 확인한다. s1# ping -c 1 s2.boaniyagi.com s1# ping -c 1 s3.boaniyagi.com s2# ping -c 1 s1.boaniyagi.com s2# ping -c 1 s3.boaniyagi.com s3# ping -c 1 s1.boaniyagi.com s3# ping -c 1 s2.boaniyagi.com 2. Local Port Forwarding 실습 - bind shell 과 비슷하게 생각하면 된다. - -L 옵션을 사용한다 s1.boaniyagi.com s2.boaniyagi.com s3.boaniyagi.com +------------------+ +------------------+ +------------------+ | | connection | | | | | =====================> | | | | | | | | | | =============================================================== | | 3333 SSH 터널링 (암호화 채널) | | =============================================================== | | | | | | | +------------------+ +------------------+ +------------------+ 192.168.56.112 192.168.56.103 192.168.56.104 [root@s1 ~]# ssh -L 3333:s3.boaniyagi.com:22 s2.boaniyagi.com root@s2.boaniyagi.com's password: Last login: Wed May 20 22:21:40 2015 from 192.168.56.1 [root@s2 ~]# [root@s1 ~]# netstat -nltp|grep ssh tcp 0 0 127.0.0.1:3333 0.0.0.0:* LISTEN 5276/ssh tcp 0 0 ::1:3333 :::* LISTEN 5276/ssh tcp 0 0 :::22 :::* LISTEN 5188/sshd [root@s1 ~]# ssh -p 3333 localhost root@localhost's password: Last login: Thu Jun 18 22:05:24 2015 from 192.168.56.1 [root@s3 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:7F:EB:A2 inet addr:192.168.56.104 Bcast:192.168.56.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5804 errors:0 dropped:0 overruns:0 frame:0 TX packets:8529 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:483029 (471.7 KiB) TX bytes:2821738 (2.6 MiB) 3. Remote Port Forwarding 실습 - reverse shell 과 비슷하게 생각하면 된다. - -R 옵션을 사용한다. s1.boaniyagi.com s2.boaniyagi.com s3.boaniyagi.com +------------------+ +------------------+ +------------------+ | | connection | | | | | <==================== | | | | | | | | | | =============================================================== | | 3333 SSH 터널링 (암호화 채널) | | =============================================================== | | | | | | | +------------------+ +------------------+ +------------------+ 192.168.56.112 192.168.56.103 192.168.56.104 [root@s2 ~]# ssh -R 3333:s3.boaniyagi.com:22 s1.boaniyagi.com root@s1.boaniyagi.com's password: Last login: Thu Jun 18 22:06:13 2015 from 192.168.56.1 [root@s1 ~]# hostname s1.boaniyagi.com [root@s1 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:C4:F5:7A inet addr:192.168.56.112 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fec4:f57a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6374 errors:0 dropped:0 overruns:0 frame:0 TX packets:4412 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:565814 (552.5 KiB) TX bytes:443400 (433.0 KiB) [root@s1 ~]# netstat -nltp|grep 3333 tcp 0 0 127.0.0.1:3333 0.0.0.0:* LISTEN 5280/2 tcp 0 0 ::1:3333 :::* LISTEN 5280/2 [root@s1 ~]# ssh -p 3333 localhost root@localhost's password: Last login: Fri Jun 19 00:51:56 2015 from 192.168.56.103 [root@s3 ~]# hostname s3.boaniyagi.com [root@s3 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 08:00:27:7F:EB:A2 inet addr:192.168.56.104 Bcast:192.168.56.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7032 errors:0 dropped:0 overruns:0 frame:0 TX packets:9380 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:608769 (594.5 KiB) TX bytes:2887548 (2.7 MiB) 4. SSH 터널링을 이용한 방화벽 우회 - SSH 터널링을 이용하여 방화벽을 우회할 수 있다. s3# iptables -A INPUT -p tcp --dport ssh -s 127.0.0.1 -j ACCEPT ==> 자기자신의 ip s3# iptables -A INPUT -p tcp --dport 22 -s s2.boaniyagi.com -j ACCEPT ==> 허용할 ip s3# iptables -A INPUT -p tcp --dport 22 -s 192.168.56.1 -j ACCEPT ==> xshell 에 접속한 windows ip s3# iptables -A INPUT -p tcp --dport 22 -j DROP ==> 나머지는 모두 막기 s3# iptables -nL s3# ssh localhost <-- o s2# ssh s3.boaniyagi.com <-- o s1# ssh s3.boaniyagi.com <-- x


'Linux > 기타' 카테고리의 다른 글

RHEL4에서 yum 사용하기  (0) 2015.11.17
부팅 시 ssh 자동시작  (0) 2015.10.21
NFS & SAMBA  (0) 2015.06.18
chroot환경의_OpenSSH설치하기  (0) 2015.06.17
rsync + ssh + 공개키 + crond 를 이용한 백업시스템 구축하기  (0) 2015.06.17