Показаны сообщения с ярлыком vpn. Показать все сообщения
Показаны сообщения с ярлыком vpn. Показать все сообщения

вторник, 18 марта 2014 г.

openvpn bridge и selinux

Появилась нужда поднять openvpn как мост. Чтобы сразу клиента в частную сеть совать.
Сделал ключи, серты - как обычно.
Настроил сервер:
port 1194
proto tcp
dev tap0
tls-server
keepalive 10 120
persist-key
client-config-dir /etc/openvpn/cc
server-bridge 172.30.4.0 255.255.254.0 172.30.5.240 172.30.5.253
duplicate-cn
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh2048.pem
Сделал тап и мост:
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
HWADDR=00:AA:BB:11:22:33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
BRIDGE=br1

# cat /etc/sysconfig/network-scripts/ifcfg-tap0
DEVICE=tap0
ONBOOT=yes
TYPE=Tap
BOOTPROTO=none
BRIDGE=br1

# cat /etc/sysconfig/network-scripts/ifcfg-br1
DEVICE=br1
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.30.4.1
NETMASK=255.255.254.0
 А дальше запускаю сервер - и selinux не дает ему взлететь из-за отсутствия прав на тап:
Mar 18 22:24:09 vpn openvpn[1103]: ERROR: Cannot ioctl TUNSETIFF tap0: Permission denied (errno=13)
Mar 18 22:24:09 vpn openvpn[1103]: Exiting due to fatal error

type=SYSCALL msg=audit(1395167049.663:28): arch=c000003e syscall=16 success=no exit=-13 a0=6 a1=400454ca a2=7fffa15bc350 a3=8 items=0 ppid=1094 pid=1103 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="openvpn" exe="/usr/sbin/openvpn" subj=unconfined_u:system_r:openvpn_t:s0 key=(null)
type=AVC msg=audit(1395167130.413:29): avc:  denied  { relabelfrom } for  pid=1122 comm="openvpn" scontext=unconfined_u:system_r:openvpn_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=tun_socket
Решил не отключать селинукс,  а сделать разрешение.

# audit2allow -w -a
type=AVC msg=audit(1395167049.663:28): avc:  denied  { relabelfrom } for  pid=1103 comm="openvpn" scontext=unconfined_u:system_r:openvpn_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=tun_socket
        Was caused by:
                Unknown - would be allowed by active policy
                Possible mismatch between this policy and the one under which the audit message was generated.

                Possible mismatch between current in-memory boolean settings vs. permanent ones.

# audit2allow -a
#============= openvpn_t ==============

#!!!! This avc is allowed in the current policy
allow openvpn_t initrc_t:tun_socket relabelfrom;


# audit2allow -a -M myopenvpn
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i myopenvpn.pp

# cat myopenvpn.te

module myopenvpn 1.0;

require {
        type openvpn_t;
        type initrc_t;
        class tun_socket relabelfrom;
}

#============= openvpn_t ==============

#!!!! This avc is allowed in the current policy
allow openvpn_t initrc_t:tun_socket relabelfrom;

# semodule -i myopenvpn.pp
Вот теперь все работает )

суббота, 10 марта 2012 г.

Как заставить работать 6pm.com

1. Купить за 4.5$ в месяц впс в BurstNET. Я там на какую-то срочную акцию попал, поэтому мну скинули доллар. Взял в Лос Анжелесе.
2. Вкатить openvpn. Не забыть врубить tun. Настроить можно, например, как тут:
http://wolandblog.com/1103-ustanovka-i-nastrojka-openvpn-na-centos-5-3

Мой хистори:
   17  wget http://mirror.optus.net/epel/5Server/x86_64/epel-release-5-4.noarch.rpm
   18  yum localinstall epel-release-5-4.noarch.rpm --nogpgcheck
   19  yum install openvpn
   20  touch /etc/openvpn/openvpn.conf
   21  mkdir /etc/openvpn/ccd
   22  mkdir /etc/openvpn/keys
   26  mkdir /etc/openvpn/easy-rsa
   36  cp -r /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
   38  cd /etc/openvpn/easy-rsa/
   39  chmod +x clean-all
   40  chmod +x build*
   41  vi /etc/openvpn/easy-rsa/vars
   42  cd /etc/openvpn/easy-rsa
   48  source ./vars
   49  ./clean-all
   50  ./build-ca
   51  ./build-key-server vpnserver
   52  cp /etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/keys/ca.crt
   53  cp /etc/openvpn/easy-rsa/keys/vpnserver.crt /etc/openvpn/keys/vpnserver.crt
   54  cp /etc/openvpn/easy-rsa/keys/vpnserver.key /etc/openvpn/keys/vpnserver.key
   56  ./build-dh
   57  cp /etc/openvpn/easy-rsa/keys/dh1024.pem /etc/openvpn/keys/dh1024.pem
   58  vi /etc/openvpn/openvpn.conf
   59  echo "ifconfig-push 172.16.0.101 172.16.0.102" > /etc/openvpn/ccd/accessd
   61  ./build-key accessd
   68  cd /etc/openvpn/easy-rsa/keys/
   69  tar czf accessd.tgz accessd.key accessd.crt ca.crt

3. Настроить NAT:
sysctl net.ipv4.ip_forward=1
/sbin/iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
/sbin/iptables -A FORWARD -i venet0 -o tun0 -m state/sbin/iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
 4. Настроить клиента и можно пулять трафик в заппосовскую сеть через наш впс в ЛА.

Альтернатива - халявный инстанс в амазоне. Но на мои 2 акка халява не положена, а ещё один делать впадлу.