å€ãã®äººãé·ãéSSHã«ç²ŸéããŠããŸããããç§ã®ããã«ã誰ãããããã®éæ³ã®3æåã®èåŸã«ããæ©äŒãçã£ãŠãããšã¯éããŸããã SSHã䜿çšããŠããŸããŸãªç®¡çã¿ã¹ã¯ã解決ããç§ã®å°ããªçµéšãå
±æãããã§ãã
ç®æ¬¡ïŒ
1ïŒ
ããŒã«ã«TCP転é2ïŒ
ãªã¢ãŒãTCP転é3ïŒ
è€æ°ã®ããŒãã«ãããTCP転éãã§ãŒã³4ïŒ
TCP転ésshæ¥ç¶5ïŒ
SSH VPNãã³ãã«6ïŒ
ãã¹ã¯ãŒãã¬ã¹ã¢ã¯ã»ã¹ã«ã€ããŠç°¡åã«7ïŒ
ããããšãïŒãªã³ã¯ïŒ1ïŒããŒã«ã«TCP転é
ç°¡åãªããšããå§ããŸããã-ããŒã«ã«TCP転éïŒ

ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ãåãããªã¢ãŒãhost2ãµãŒããŒããããŸããããšãã°ãããŒã5432ã§TCPæ¥ç¶ãåãå
¥ããPostgreSQLãµãŒããŒã§ãããã®ãµãŒããŒã«ã¯ãå€éšããããŒã5432ãžã®çŽæ¥æ¥ç¶ãèš±å¯ããªããã¡ã€ã¢ãŠã©ãŒã«ããããŸããã SSHã¢ã¯ã»ã¹ïŒããã©ã«ãã®ããŒã22ã倿Žããããšããå§ãããŸãïŒã ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠã¯ãŒã¯ã¹ããŒã·ã§ã³ãhost1ããããhost2ãäžã®PostgreSQLãµãŒããŒã«æ¥ç¶ããå¿
èŠããããŸãã
ãããè¡ãã«ã¯ãã³ã³ãœãŒã«ã®ãhost1ãã§æ¬¡ã®ããã«å
¥åããŸãã
host1# ssh -L 9999:localhost:5432 host2
ããã§ããhost1ãã§ããŒã«ã«ããŒã9999ãä»ããŠPostgreSQLãµãŒããŒã«æ¥ç¶ã§ããŸãã
host1# psql -h localhost -p 9999 -U postgres
ãhost1ãWindowsã®å Žåããšãã°ãPuTTyã§ã¯ãããã¯æ¬¡ã®ããã«è¡ãããŸãã
èšå®ããªãŒã確èªããŸãïŒæ¥ç¶âSSHâãã³ãã«ã
次ã«ããéä¿¡å
ããŒãããã£ãŒã«ãã§ãDestinationãã®9999ããã©ã€ãããŸã-localhostïŒ5432ã[远å ]ãã¯ãªãã¯ããŸãã
ãã®åŸãå¿
èŠã«å¿ããŠã»ãã·ã§ã³èšå®ãä¿åããããšãå¿ããªãã§ãã ããã

ä»çµã¿ãhost1ãã®ãhost2ãã®SSHãµãŒããŒã«æ£åžžã«æ¥ç¶ããåŸãSSHã¯ã©ã€ã¢ã³ãã¯ããŒã9999ã§ãªãã¹ã³ãéå§ããŸãããhost1ãã®ããŒã9999ã«æ¥ç¶ãããšããhost2ãã®SSHãµãŒããŒã¯localhostãšã®æ¥ç¶ã確ç«ããŸãèªèº«ãhost2ãïŒãããŒã5432ã«éä¿¡ãããã®æ¥ç¶ãä»ããŠsshã¯ã©ã€ã¢ã³ããåä¿¡ããããŒã¿ãããŒã9999ã®ãhost1ãã«éä¿¡ããŸãã
éèŠïŒ å³ã«ç¢å°ã§ç€ºãããŠãããã¹ãŠã®æ¥ç¶ã¯ãåå¥ã®TCPæ¥ç¶ïŒã»ãã·ã§ã³ïŒã§ãã
SSHãµãŒããŒã®ã»ããã¢ããéåžžãããŒã転éã¯ããã©ã«ãã§ãã§ã«sshdã§æå¹ã«ãªã£ãŠããŸãã
/ etc / ssh / sshd_configïŒ
AllowTcpForwarding yes
ãhost2ãèªäœã§ã¯ãªããå©çšå¯èœãªä»»æã®ãã·ã³ã§ã¢ããªã±ãŒã·ã§ã³ã«æ¥ç¶ããããšãã§ããŸãã

ãããè¡ãã«ã¯ããlocalhostãã®ä»£ããã«ããŒãã転éãããšãã«ããhost3ããªã©ã®ãã¹ãåãæå®ããŸãã
host1# ssh -L 9999:host3:5432 host2
ããã§ããhost3ãã¯ïŒIPã¢ãã¬ã¹ã§ã¯ãªãååã®å ŽåïŒæ¢ç¥ã§ããããã·ã³ãhost2ãããã¢ã¯ã»ã¹å¯èœã§ããå¿
èŠãããããšã«æ³šæããããšãéèŠã§ãã
ãhost1ããä»ããŠããhost3ãäžã®ãµãŒãã¹ã«ä»ã®ãã¹ããžã®ã¢ã¯ã»ã¹ãæäŸããããšãã§ããŸãïŒãhost1AããšåŒã³ãŸãïŒã

ãããè¡ãã«ã¯ãããŒã«ã«ããŒã9999ãçºçããã€ã³ã¿ãŒãã§ã€ã¹ã®IPã¢ãã¬ã¹ãsshæ¥ç¶ã³ãã³ãã«æ¿å
¥ããŸãã
ssh -L 0.0.0.0:9999:host3:5432 host2
ãã®äŸã§ã¯ãhost1ã§äœ¿çšå¯èœãªãã¹ãŠã®IPv4ã€ã³ã¿ãŒãã§ã€ã¹ã§ããŒã9999ãéãããŸãã
2ïŒãªã¢ãŒãTCP転é
ããããããšãã°ããhost2ãã«çœãIPã¢ãã¬ã¹ããªãå ŽåãNATã®èåŸã«ããå ŽåããŸãã¯ãããžã®ãã¹ãŠã®çä¿¡æ¥ç¶ãéããŠããå Žåã¯ã©ãã§ããããã ãŸãã¯ãããšãã°ããhost2ãã«ã¯WindowsããããSSHãµãŒããŒãé
眮ããæ¹æ³ã¯ãããŸãããïŒ
ãã®å Žåããªã¢ãŒãTCP転éããããŸãã

ããã§ãå察æ¹å-"host2"ãã "host1"ã«sshæ¥ç¶ã確ç«ããå¿
èŠããããŸãã ã€ãŸã 管çã¯ãŒã¯ã¹ããŒã·ã§ã³ã¯SSHãµãŒããŒã«ãªãããhost2ãããSSHçµç±ã§ã¢ã¯ã»ã¹ã§ããŸãããhost2ãã§ã¯ãSSHã¯ã©ã€ã¢ã³ãã䜿çšããŠæ¥ç¶ããå¿
èŠããããŸãã
ssh -R 9999:localhost:5432 host1
ãhost2ãWindowsã®å Žåããšãã°ãPuTTyã§ã¯ãããã¯æ¬¡ã®ããã«è¡ãããŸãã
èšå®ããªãŒã確èªããŸãïŒæ¥ç¶âSSHâãã³ãã«ã
次ã«ã9999ãããœãŒã¹ããŒãããã£ãŒã«ããlocalhostïŒ5432ããå®å
ãã«ãã©ã€ãããäžã®ããªã¢ãŒãããéžæããŠãã远å ããã¯ãªãã¯ããŸãã
ãã®åŸãå¿
èŠã«å¿ããŠã»ãã·ã§ã³èšå®ãä¿åããããšãå¿ããªãã§ãã ããã

ä»çµã¿æ¥ç¶ã«æåãããšããhost1ãã§SSHãµãŒããŒã¯ããŒã9999ã§ãªãã¹ã³ãéå§ããŸãããhost1ãã§ããŒã9999ã«æ¥ç¶ãããšããhost2ãã§SSHã¯ã©ã€ã¢ã³ãã¯ããŒãã§localhostïŒããèªäœã¯ãhost2ãïŒãšã®æ¥ç¶ã確ç«ããŸã5432ã§ããã®æ¥ç¶ãä»ããŠãhost1ãã®sshãµãŒããŒãåä¿¡ããããŒã¿ãããŒã9999ã«éä¿¡ããŸãã
ãŸãããã¹ããhost2ããä¿¡é ŒããŠããªãå Žåããhost1ãã®ã»ãã¥ãªãã£ã確ä¿ããã®ã¯ããã«å°é£ã«ãªããŸãã ãã ããããã¯ãã®èšäºã®ç¯å²å€ã§ãã
ãããŠãã¡ãããããªãã¯ã©ãã«ãïŒããªãèªèº«ãŸãã¯å€éšã®å©ããåããŠïŒäžèšã®ã³ãã³ããå
¥åããŠãhost2ãã®åŽããsshæ¥ç¶ãéå§ããå¿
èŠãããããhost1ãã«ã¯çœãIPã¢ãã¬ã¹ãšéããSSHããŒããå¿
èŠã§ãã
sshæ¥ç¶ã確ç«ãããšããã¹ãŠãåã®ç« ãšåæ§ã«æ©èœããŸãã
3ïŒè€æ°ã®ããŒãã«ãããTCP転éãã§ãŒã³
éãããããã¯ãŒã¯ã§ã¯ãå¿
èŠãªããŒãã«çŽæ¥ã¢ã¯ã»ã¹ã§ããªãããšããããããŸãã ã€ãŸã ããšãã°ãhost1âhost2âhost3âhost4ã®ããã«ããã§ãŒã³ã«ãã£ãŠã®ã¿ç®çã®ãã¹ãã«ç§»åã§ããŸãã
host1# ssh host2
host2# ssh host3
host3# ssh host4
host4# echo hello host4
ããã¯ãããšãã°ããããã®ããŒããã²ãŒããŠã§ã€ã§ããå Žåããã²ãŒããŠã§ã€ãè¿é£ã®ãµããããã§ã®ã¿äœ¿çšå¯èœãªå Žåã«çºçããå¯èœæ§ããããŸãã
ãã®å Žåããã§ãŒã³ã§TCP転éãè¡ãããšãã§ããŸãã

ããã§ã¯ãããããããããããã«ããŒã9991ã9992ã9993ãéžæãããŠããŸãããå®éã«ã¯ããã¹ãŠã®ããŒãã§ç©ºããŠããå Žåã¯åãããŒãïŒããšãã°ã9999ïŒã䜿çšã§ããŸãã
åèšã§ã次ã®äžé£ã®ã³ãã³ããå®è¡ããå¿
èŠããããŸãã
host1# ssh -L 9991:localhost:9992 host2
host2# ssh -L 9992:localhost:9993 host3
host3# ssh -L 9993:localhost:5432 host4
ä»çµã¿äžèšã®ã³ãã³ããæ£åžžã«å®è¡ããããšãããŒãã§æ¬¡ã®åŠçãå®è¡ãããŸãã
- ãhost1ããžïŒããŒã9991ãéããããã«æ¥ç¶ããããšãããŒã¿ã¯ssh-connectionãä»ããŠãhost2ããžã®ããŒã9992ã«ãªãã€ã¬ã¯ããããŸãã
- ãhost2ããžïŒããŒã9992ãéããæ¥ç¶ããããšãããŒã¿ã¯sshæ¥ç¶ãä»ããŠããŒã9993ãžãhost3ãã«ãªãã€ã¬ã¯ããããŸãã
- ãhost3ããžïŒããŒã9993ãéããããã«æ¥ç¶ããããšãããŒã¿ã¯ssh-connectionçµç±ã§ããŒã5432ãžãhost4ãã«ãªãã€ã¬ã¯ããããŸãã
ãããã£ãŠããhost1ãã®ããŒã9991ã«æ¥ç¶ãããšãããŒã¿ã¯ãã§ãŒã³ã«æ²¿ã£ãŠããŒã5432ã®ãhost4ãã«ãªãã€ã¬ã¯ããããŸãã
éèŠïŒ å³ã«ç¢å°ã§ç€ºãããŠãããã¹ãŠã®æ¥ç¶ã¯ãåå¥ã®TCPæ¥ç¶ïŒã»ãã·ã§ã³ïŒã§ãã
4ïŒTCP転ésshæ¥ç¶
sshãä»ããŠçŽæ¥ã¢ã¯ã»ã¹ã§ããªããµãŒããŒã«æ¥ç¶ããå¿
èŠãããå ŽåããããsshãµãŒããŒã®ãã§ãŒã³ãä»ããŠã®ã¿ã¢ã¯ã»ã¹ã§ããŸãïŒåã®ç« ãåç
§ïŒã ããã§ã次ã®ããšãè¡ãããã«å¿
èŠãªç¥èãåŸãããŸããã

host1# ssh -L 2222:localhost:2222 host2
host2# ssh -L 2222:host4:22 host3
ãããã£ãŠããhost1ãã®ããŒã2222ã§ã¯ããhost4ãã®SSHïŒ22ïŒããŒãã§è»¢éããããã«ãªããŸããã æ¥ç¶ã§ããŸãïŒ
host1# ssh -p 2222 localhost
host4# echo hello host4
ã©ãããŠãããå¿
èŠãªã®ã§ããããïŒ ããšãã°ãçç±ã¯æ¬¡ã®ãšããã§ãã
# host4
host1# scp -P 2222 /local/path/to/some/file localhost:/path/on/host4
# host4
host1# scp -P 2222 localhost:/path/on/host4 /local/path/to/some/file
# TCP forwarding host4
host1# ssh -p 2222 -L 9999:localhost:5432 localhost
host1# psql -h localhost -p 9999 -U postgres
# , ssh -p ,
# scp -P
ãŸããäžè¬çã«ãä»ã§ã¯ãhost4ãããšãŠãè¿ãããšã¯çŽ æŽãããããšã§ã:)
çµè«ïŒå€§éã®ãã¹ããTCP転éããããšãã§ããŸãã
RSAæçŽã¡ã¢å Žåã«ãã£ãŠã¯ãssh -p 2222 localhostãæåã«ééãããªã¢ãŒããµãŒããŒã®RSAãã£ã³ã¬ãŒããªã³ããåãå
¥ãããŸã§scpã¯æ©èœããŸããã
åãããŒãïŒ2222ïŒã䜿çšããŠç°ãªããªã¢ãŒããµãŒããŒã«ã¢ã¯ã»ã¹ãããšã以åã®ãµãŒããŒããã®RSAãã£ã³ã¬ãŒããªã³ããšã©ãŒãæ®ããŸãã ã/ .ssh / known_hostsããåé€ããå¿
èŠããããŸãã
5ïŒSSH VPNãã³ãã«
TCPããŒã転éã¯çŽ æŽãããæ©èœã§ãã ããããããã«å¿
èŠãªå Žåã¯ã©ãã§ããããïŒ UDPçµç±ã®ã¢ã¯ã»ã¹ãè€æ°ã®ããŒããšãã¹ããžã®ã¢ã¯ã»ã¹ãåçããŒããžã®ã¢ã¯ã»ã¹ïŒ çãã¯æããã§ã-VPNã ãããŠãããŒãžã§ã³4.3以éã®å
šèœSSHã¯ãç§ãã¡ã®å©ãã«ãªããŸãã
å°æ¥çã«ã¯ããã®SSHæ©èœã¯ãããã€ãã®ç®¡çã¿ã¹ã¯ã«äžæçãªãœãªã¥ãŒã·ã§ã³ãå¿
èŠãªå Žåã«ããŸãæ©èœããŸãã æ°žç¶çãªVPNãæ§ç¯ããã«ã¯ããã®ãªãã·ã§ã³ã¯TCP-over-TCPãå¿
èŠãšãããããæé©ã§ã¯ãããŸãããæ¥ç¶ã®éåºŠã«æªåœ±é¿ãåãŒããŸãã
TCP転éã®è©³çްããããSSHã䜿çšããTCPããŒããã©ã¯ãŒãã£ã³ã°ã¯ãTCPããŒããã©ã¯ãŒãã£ã³ã°ã§ã¯ããããŒãšäžç·ã«å
ã®ãã±ããã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ããŒã¿ã®ã¿ãéä¿¡ããããããå€ãã®å ŽåãVPNãããåªããŠããŸã
ã //blog.backslasher.net/ssh-openvpn-tunneling.html SSHãµãŒããŒã®ã»ããã¢ããïŒsshdèšå®ã®PermitTunnelã¯ããã©ã«ãã§ãªãã«ãªã£ãŠããŸãã/etc/ssh/sshd_configã§æå¹ã«ããå¿
èŠããããŸãã
PermitTunnel yes
ãŸãã¯
PermitTunnel point-to-point
éèŠ ïŒãã³ãã«ã®æ°ãããããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãäžããã«ã¯ãsshã¯ã©ã€ã¢ã³ããšsshãµãŒããŒã®äž¡æ¹ã«ã¹ãŒããŒãŠãŒã¶ãŒæš©éãå¿
èŠã§ãã ãããã©ãã»ã©å±éºãã«ã€ããŠã¯é·ãéè°è«ããããšãã§ããŸãããã»ãšãã©ã®å ŽåãsshãµãŒããŒã«ã¯ååãªèšå®ããããŸãã
PermitRootLogin without-password
ãããã£ãŠããã¹ã¯ãŒãã«ããã«ãŒããã°ã€ã³ãçŠæ¢ããä»ã®ææ®µãããšãã°RSAããŒã䜿çšããããšã§ã®ã¿èš±å¯ããŸããããã¯ãã¯ããã«å®å
šã§ãã
sshdãåèµ·åããŸãã
sudo service sshd restart # centos
ãŸãã¯
/etc/init.d/ssh restart # (debian/ubuntu)
-wããžãã¯ããŒã䜿çšãããšããã³ãã«ãäžæããŸãã
host1# sudo ssh -w 5:5 root@host2
5ïŒ5ã¯ãããããããŒã«ã«ãã·ã³ãšãªã¢ãŒãã®ã€ã³ã¿ãŒãã§ã€ã¹çªå·ã§ãã ããã§ãifconfigãã€ã³ã¿ãŒãã§ãŒã¹ã®ãªã¹ãã§ãtun5ããåºåããªãããšã«æ··ä¹±ãããããããŸããã ããã¯ããããŠã³ãç¶æ
ã«ããããã§ããããifconfig -aããŸãã¯ãifconfig tun5ããåŒã³åºããšãã€ã³ã¿ãŒãã§ãŒã¹ã衚瀺ãããŸãã
host1# ifconfig tun5
tun5 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
POINTOPOINT NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
ã€ã³ã¿ãŒãã§ã€ã¹ã®IPã¢ãã¬ã¹ãå²ãåœãŠãããããäžããŸãã
host1# sudo ifconfig tun5 192.168.150.101/24 pointopoint 192.168.150.102
host2# sudo ifconfig tun5 192.168.150.102/24 pointopoint 192.168.150.101
ãã¡ã€ã¢ãŠã©ãŒã«ãããå Žåã¯ãtun5ã€ã³ã¿ãŒãã§ã€ã¹ããã®æ¥ç¶ãèš±å¯ããããšãå¿ããªãã§ãã ããã
host1# #
host1# sudo iptables-save > /tmp/iptables.rules.orig
host1# sudo iptables -I INPUT 1 -i tun5 -j ACCEPT
host2# #
host2# sudo iptables-save > /tmp/iptables.rules.orig
host2# sudo iptables -I INPUT 1 -i tun5 -j ACCEPT
host1ã§ãããè¡ãå¿
èŠã¯ãããŸãããããã§ã¯ãpingãäž¡æ¹åã§æ©èœããããã«ãªã£ãŠããŸãã
pingããæ¥œãã¿ãã ããïŒ
host1# ping 192.168.150.102
host2# ping 192.168.150.101
PostgreSQLã®ä»¥åã®äŸãèæ
®ãããšãã¹ããŒã ã¯æ¬¡ã®ããã«ãªããŸãã

ãããŠãPostgreSQLãµãŒããŒã«æ¥ç¶ããã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
host1# psql -h 192.168.150.102 -U postgres
1ã€ã®ããŒãã§ã¯ãªãããããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ãæäŸããå¿
èŠãããå Žåã¯ããããã®ããŒããã²ãŒããŠã§ã€ã«ããããšãã§ããŸãã äŸïŒ
host2# # IP forwarding
host2# sudo sysctl -w net.ipv4.ip_forward=1
host2# # IP forwarding host1
host2# sudo iptables -I FORWARD 1 -s 192.168.150.101 -j ACCEPT
host2# # IP forwarding host1
host2# sudo iptables -I FORWARD 1 -d 192.168.150.101 -j ACCEPT
host2# # IP host1
host2# sudo iptables -t nat -A POSTROUTING -s 192.168.150.101 -j MASQUERADE
host1# # , host2 192.168.2.x, host1
host1# # host2 192.168.2.x
host1# sudo ip route add 192.168.2.0/24 via 192.168.150.2
host1# # host1
host1# ping 192.168.2.1
äœæ¥ãçµäºããããnet.ipv4.ip_forwardãšãã¡ã€ã¢ãŠã©ãŒã«ãå
ã®ç¶æ
ã«æ»ãããšãå¿ããªãã§ãã ããã
host1# sudo iptables-restore < /tmp/iptables.rules.orig
host2# sudo iptables-restore < /tmp/iptables.rules.orig
ãã¿ãã¬ã®äžã§ãã€ã³ã¿ãŒãããã®äžæçãªå
±æã«é¢ããããè峿·±ãã±ãŒã¹ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãçŠæ¢ãããŠããéãããããã¯ãŒã¯äžã«ãµãŒããŒãæ§æããå¿
èŠããããšä»®å®ããŸãããããã§ãããã«æã穎ããããŸã-åäžã®sshãµãŒããŒãŸãã¯sshãµãŒããŒã®ãã§ãŒã³ãä»ããã¢ã¯ã»ã¹ã ããšãã°ããµãŒããŒãæ§æããã«ã¯ããã®ãµãŒããŒãžã®ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãå¿
èŠã§ãã ãã®åŸããµãŒãã¹æ
åœè
ã«äŸé Œããããããèªåã§èšå®ããå¿
èŠããããµãŒããŒã«äžæçãªã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãèšå®ããæ¹ãç°¡åã§ãã
host1ãã¹ããã·ã³ããhost2ãµãŒããŒãžãããããhost3ãžããããŠããããå¿
èŠãªhost4ãžã®sshã¢ã¯ã»ã¹ããããšããŸãã æ¬¡ã«ãsshã®TCP転éãè¡ããŸãïŒhost1ã§host4ã«ããã«æ¥ç¶ã§ããå Žåã¯ããã®æé ãã¹ãããããŠãã ããïŒã
host1# ssh -L 2222:localhost:2222 host2
host2# ssh -L 2222:host4:22 host3
次ã«ãhost4ã«æ¥ç¶ããtun5ã€ã³ã¿ãŒãã§ã€ã¹ãäžããŸãã
host1# sudo ssh -p 2222 -w 5:5 root@localhost
host1# # host4 : sudo ssh -w 5:5 root@host4
host1# sudo ifconfig tun5 192.168.150.101/24 pointopoint 192.168.150.102
host4# sudo ifconfig tun5 192.168.150.102/24 pointopoint 192.168.150.101
host4ã®ã«ãŒãã£ã³ã°ããŒãã«ãèŠãŠã次ãèŠãŠã¿ãŸãããã
host4# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.150.0 0.0.0.0 255.255.255.0 U 0 0 0 tun5
192.168.56.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 192.168.56.254 0.0.0.0 UG 0 0 0 eth0
éèŠ ïŒ æ¬¡ã«ãã€ã³ã¿ãŒããããå©çšã§ããã²ãŒããŠã§ã€192.168.150.101ã䜿çšããŠãããã©ã«ãã«ãŒãtun5ã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããšããå§ãããŸãã ãããã£ãŠããã®æ®µéã§ã¯ãããã©ã«ãã«ãŒãã眮ãæããããã«ã©ã®ã«ãŒãã远å ããå¿
èŠãããããæ£ç¢ºã«ç¥ãããšãéèŠã§ãã å€ãã®å Žåãå¥ã
ã®ãããã¯ãŒã¯ãžã®ã«ãŒãã¯å¥ã
ã«å²ãåœãŠãããããã¹ãŠã®ãããã¯ãŒã¯ãã©ãã£ãã¯ãééããã²ãŒããŠã§ã€ã§ããã©ã«ãã«ãŒãïŒ0.0.0.0/0ïŒãèšå®ããã ããªã®ã§ãããã¯éèŠã§ãã ããã«ããµãŒããŒãžã®sshæ¥ç¶ãå
ã®ããã©ã«ãã²ãŒããŠã§ã€ã䜿çšããå¯èœæ§ããããŸãã
ç°¡åã«ããããã«ããã®äŸã§ã¯ããµãŒããŒãéåžžã®æäœã«192.168.56.0/24以å€ã®ã«ãŒããå¿
èŠãšããã以åã®ssh host3ãåããããã¯ãŒã¯ããã®IPã¢ãã¬ã¹ãæã£ãŠãããšä»®å®ããŸãã
ããã©ã«ãã²ãŒããŠã§ã€ã䜿çšããŠãå
ã®ã«ãŒãã£ã³ã°ããŒãã«ãèšæ¶ããã©ããã«æžã蟌ã¿ãŸãã
host4# route -n > routes.orig
host1ãhost4ã®ã€ã³ã¿ãŒãããã²ãŒããŠã§ã€ãšããŠæ©èœããããã«èšå®ããŸãã
host1# # IP forwarding
host1# sudo sysctl -w net.ipv4.ip_forward=1
host1# #
host1# sudo iptables-save > /tmp/iptables.rules.orig
host1# # IP forwarding host4
host1# sudo iptables -I FORWARD 1 -s 192.168.150.102 -j ACCEPT
host1# # IP forwarding host4
host1# sudo iptables -I FORWARD 1 -d 192.168.150.102 -j ACCEPT
host1# # IP host4
host1# sudo iptables -t nat -A POSTROUTING -s 192.168.150.102 -j MASQUERADE
念ã®ãããããã©ã«ãã§ã¯çŸåšã®ã«ãŒãããã²ãŒããŠã§ã€ã«ã°ã¬ãŒã®ãããã¯ãŒã¯ãç»é²ã§ããŸãç»é²ãããŠããªãå ŽåïŒ
sudo ip route add 192.168.0.0/16 via 192.168.56.254
sudo ip route add 10.0.0.0/8 via 192.168.56.254
sudo ip route add 172.16.0.0/12 via 192.168.56.254
ããã©ã«ãã«ãŒããhost4ã«å€æŽããŸãïŒæ³šæãäžèšã®èŠåãåç
§ããŠãã ããïŒïŒïŒ
host4# sudo ip route replace default via 192.168.150.101
host4# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.150.0 0.0.0.0 255.255.255.0 U 0 0 0 tun5
192.168.56.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 192.168.150.101 0.0.0.0 UG 0 0 0 tun5
ã€ã³ã¿ãŒãããå
šäœã§ã¯ãªããç¹å®ã®IPã¢ãã¬ã¹/ãã¹ã¯ã®ã¿ãå¿
èŠãªå Žåãããã©ã«ãã«ãŒãã倿Žããããšã¯ã§ãããã²ãŒããŠã§ã€ãä»ããŠå¿
èŠãªã¢ãã¬ã¹ã®ã¿ãtun5ã«è¿œå ããŸãã
ã€ã³ã¿ãŒããããããããšã確èªããŸãã
host4# ping 8.8.8.8
çŽ æŽãããã DNSãæ§æããããã«æ®ããŸãã ãããè¡ãã«ã¯å€ãã®æ¹æ³ããããŸãããæãç°¡åãªæ¹æ³ã¯/etc/resolv.confãã¡ã€ã«ãç·šéããŠããã«è¡ã远å ããããšã§ãïŒ
nameserver 8.8.8.8
nameserver 8.8.4.4
ãã®åŸãã€ã³ã¿ãŒãããã«å®å
šã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
host4# ping ya.ru
äœæ¥ãçµäºãããããã¹ãŠãå
ã®ç¶æ
ã«æ»ãããšãå¿ããªãã§ãã ããã
host1# # host1
host1# sudo iptables-restore < /tmp/iptables.rules.orig
host1# # net.ipv4.ip_forward
host2# # - host4:
host2# sudo ip route replace default via 192.168.56.254
host2# # DNS- /etc/resolv.conf
6ïŒãã¹ã¯ãŒãã¬ã¹ã¢ã¯ã»ã¹ã«ã€ããŠç°¡åã«
ãã¹ã¯ãŒãèªèšŒã¯ç§ãã¡ã®ãã®ã§ã¯ãªããšããããšã¯èª°ããæ¢ã«ç¥ã£ãŠãããšæããŸãã ãã ãã念ã®ãããRSAããŒã䜿çšããŠèªèšŒãèšå®ããæ¹æ³ã«ã€ããŠç°¡åã«èª¬æããŸãã
1.ã¯ã©ã€ã¢ã³ããã·ã³ã§ããŠãŒã¶ãŒçšã«ç¬èªã®RSAããŒãçæããŸãã
client1# ssh-keygen -t rsa
ããã©ã«ãã§ã¯ãç§å¯éµã¯ã/ .ssh / id_rsaã«ä¿åãããå
¬ééµã¯ã/ .ssh / id_rsa.pubã«ä¿åãããŸãã ç§å¯éµã¯ããªãã®ç®çãšããŠä¿ç®¡ãã誰ã«ãæž¡ããªãã§ãã ãããã©ãã«ãã³ããŒããªãã§ãã ããã
ããŒãäœæãããšãã«ãããŒãæå·åããããã®ãã¹ã¯ãŒãïŒãã¹ãã¬ãŒãºïŒãèšå®ã§ããŸãã
2.ã¯ã©ã€ã¢ã³ãå
¬ééµã¯ãsshãµãŒããŒã®ã/ .ssh / authorized_keysãã¡ã€ã«ïŒããã¯ãã°ã€ã³ãããŠãŒã¶ãŒã®ããŒã ãã£ã¬ã¯ããªã§ãïŒã«ãããããå¥ã®è¡ã«ä¿åããå¿
èŠããããŸãã ãããæåã§è¡ããªãããã«ãåã¯ã©ã€ã¢ã³ãã§æ¬¡ã®ã³ãã³ãã䜿çšã§ããŸãã
ssh-copy-id user@sshserver
userã¯ãµãŒããŒäžã®ãŠãŒã¶ãŒåã§ãããsshserverã¯sshãµãŒããŒã®ååãŸãã¯IPã¢ãã¬ã¹ã§ãã
ãã¡ã€ã«èš±å¯ã/ .ssh / authorized_keysSabio UPDïŒsshãµãŒããŒã§ã/ .ssh / authorized_keysãã¡ã€ã«ãæåã§äœæããå Žåã¯ãæ¬¡ã®æš©éãèšå®ããå¿
èŠããããŸãã
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/authorized_keys
3.ãã¹ã¯ãŒããå
¥åããã«ãããŒã§ãµãŒããŒãå
¥åã§ããããšã確èªããŸãïŒãã¹ãã¬ãŒãºãšæ··åããªãã§ãã ããïŒã
ssh user@sshserver
ã»ããã¢ãããå®äºãããã¹ãŠãæ©èœããããšã確èªãããŸã§ããµãŒããŒãšã®å°ãªããšã1ã€ã®ã¢ã¯ãã£ããªsshã»ãã·ã§ã³ãéããªãããšããå§ãããŸãã
4. SSHãµãŒããŒäžã®/ etc / ssh / sshd_configãã¡ã€ã«ã®ãã¹ã¯ãŒãã«ãã°ã€ã³ããæ©èœãç¡å¹ã«ããŸãã
PasswordAuthentication no
å
¬ééµã§å
¥åããæ©èœã¯éåžžãããã©ã«ãã§ãã§ã«æå¹ã«ãªã£ãŠããŸãã
PubkeyAuthentication yes
éåžžãæ¬¡ã®2ã€ã®ãªãã·ã§ã³ãç¡å¹ã«ããŸãã
GSSAPIAuthentication no
UseDNS no
å Žåã«ãã£ãŠã¯ãããã«ããæ¥ç¶ããã»ã¹ãé«éåã§ããŸãïŒããšãã°ããµãŒããŒã«ã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ããªãå ŽåïŒã
5. sshdãåèµ·åããŸãã
service sshd restart
ãŸãã¯
/etc/init.d/ssh restart
ãšã©ãŒãçºçããå Žåã/ var / log / secure logã確èªãããã-vã-vvããŸãã¯-vvvãªãã·ã§ã³ã䜿çšããŠè©³çŽ°ãªæ¥ç¶ãã°ã衚瀺ãããšäŸ¿å©ã§ãã
ssh -vvv user@sshserver
7ïŒããããšãïŒãªã³ã¯ïŒ
help.ubuntu.com/community/SSH_VPNhabrahabr.ru/post/87197blog.backslasher.net/ssh-openvpn-tunneling.html