저는 Red Hat Enterprise Linux를 사용하여 두 개의 네트워크 인터페이스가 있는 Amazon EC2 인스턴스를 실행하고 있습니다.
지금:
eth0은 현재 공용 IP로 활성화되어 있으며 SSH를 통해 원격으로 로그인하여 VPN을 구성합니다(VPN이 완료되면 더 이상 해당 IP 및 인터페이스에 원격으로 액세스할 수 없습니다).
eth1이 표시됩니다(Amazon을 사용하여 다른 새 공용 IP를 할당했지만 SSH를 사용하여 핑하거나 로그인할 수 없습니다).
eth1이 작동하고 원격으로 액세스할 수 있게 되면 eth0에서 VPN 클라이언트를 구성하여 다른 원격 서버에 연결해야 합니다.
eth1에 원격으로 액세스할 수 있고 eth0을 호스트 간 VPN IPSec 호스트 전용으로 사용할 수 있도록 eth1을 어떻게 설정합니까?
[ec2-user@ip-10-0-0-41 ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0e:29:01:a8:c6:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.41/24 brd 10.0.0.255 scope global eth0
inet6 fe80::c29:1ff:fea8:c698/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 0e:29:01:a9:6e:32 brd ff:ff:ff:ff:ff:ff
편집하다:
$ system-config-network-tui
eth1 is added as dhcp
$ ifup eth1
Determining IP information for eth1...
편집하다:
$ ssh [email protected] - fails
$ ssh [email protected] - allow to login
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0e:29:01:a8:c6:98 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.41/24 brd 10.0.0.255 scope global eth0
inet6 fe80::c29:1ff:fea8:c698/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0e:29:01:a9:6e:32 brd ff:ff:ff:ff:ff:ff
inet 10.0.0.110/24 brd 10.0.0.255 scope global eth1
inet6 fe80::c29:1ff:fea9:6e32/64 scope link
valid_lft forever preferred_lft forever
편집하다:
$ yum install openswan
$ cat /etc/ipsec.conf
version 2.0 # conforms to second version of ipsec.conf specification
config setup
protostack=netkey
nat_traversal=yes
virtual_private=
oe=off
include /etc/ipsec.d/*.conf
$ cat /etc/ipsec.d/test.conf
### Administrator given this to setup
# Phase1: Encryption: AES128 Integrity: MD5 IKE Lifetime: 28800 sec.
# Phase2: Encryption: AES128 Integrity: MD5 IPsec lifetime: 3600 sec.
### Red hat we use Phase 1 and Phase 2 for IPSec
conn test
type=tunnel
authby=secret
pfs=no
# Lifetime: 1440 sec
ike=aes128-md5;modp1024!
# Lifetime: 3600 sec
phase2alg=aes128-md5;modp1024
aggrmode=no
left=194.x.x.x
right=54.x.x.x
leftsubnet=10.109.0.0/24
rightsubnet=10.0.0.0/24
#auto=start
$ service ipsec restart && ipsec auto --add test
ipsec_setup: Stopping Openswan IPsec...
ipsec_setup: Starting Openswan IPsec U2.6.32/K2.6.32-358.6.2.el6.x86_64...
ipsec_setup: /usr/libexec/ipsec/addconn Non-fips mode set in /proc/sys/crypto/fips_enabled
/usr/libexec/ipsec/addconn Non-fips mode set in /proc/sys/crypto/fips_enabled
$ ipsec auto --up test
022 "test": We cannot identify ourselves with either end of this connection.
- 추가가 오류 없이 작동하면 구성 파일이 올바른 것이며 나머지는 터널의 다른 문제입니다.
답변1
효과가있다!
#!/bin/bash
# Version 1.0 - Stable
# --------------------------------------------
# Amazon EC2 instance + VPC + RHEL 6.4 64-bit
# eth0: 10.0.0.108 public ip: 8.8.8.8
# eth1: 10.0.0.27 public ip: 9.9.9.9
#
# VPN Sever: 2.2.2.2
#
amazonEth0="10.0.0.8"
amazonWan0="8.8.8.8"
vpnServer="2.2.2.2"
hosttoHost=(10.109.0.20/32 10.109.0.21/32 10.109.58.6/32 10.109.59.3/32)
pingHost=(10.109.0.20 10.109.0.21 10.109.58.6 10.109.59.3)
# Step 0
yum -y install openswan
cat > /etc/ipsec.d/secret.secrets << EOF
# Step 1
$vpnServer 0.0.0.0 %any: PSK "123"
EOF
cat > /etc/ipsec.conf << \EOF
# Step 2
version 2.0 # conforms to second version of ipsec.conf specification
config setup
plutodebug="all"
plutostderrlog=/var/log/pluto.log
protostack=netkey
nat_traversal=no
virtual_private=
oe=off
include /etc/ipsec.d/*.conf
EOF
for i in 1 2 3 4
do
cat > /etc/ipsec.d/test$i.conf << EOF
#Step 3
conn test$i
#auto=start
type=tunnel
authby=secret
pfs=no
aggrmode=no
ikelifetime=28800s
lifetime=3600s
ike=aes128-md5;modp1024!
phase2alg=aes128-md5;modp1024
forceencaps=yes
left=$amazonEth0
leftid=$amazonWan0
leftsourceip=$amazonWan0
right=$vpnServer
rightsubnet=${hosttoHost[$i-1]}
EOF
done
### Run me
cat > /tmp/vpn.sh << EOF
#!/bin/bash
service ipsec restart
ipsec auto --add test1
ipsec auto --add test2
ipsec auto --add test3
ipsec auto --add test4
ipsec auto --up test1
ipsec auto --up test2
ipsec auto --up test3
ipsec auto --up test4
ipsec auto --status
ip xfrm policy
ip route show
ping -c 1 ${pingHost[0]};
ping -c 1 ${pingHost[1]};
ping -c 1 ${pingHost[2]};
ping -c 1 ${pingHost[3]};
EOF
chmod +x /tmp/vpn.sh
# Finishing - touch
/tmp/vpn.sh