After i came on new work i found that can not send email thru SMTPS, because port 465 closed on router. At this point i already had configured VPN access on my home router, so i think that it is good idea to route SMTPS traffic thru VPN, let’s start.
For this purposes i needed iproute2 and iptables. First i created new route table and add default route:
$ echo "1 VPN" >> /etc/iproute2/rt_tables
$ ip route add default via 192.168.107.5 src 192.168.107.6 dev tun_vpn table VPN
$ ip route show table VPN
default via 192.168.107.5 dev tun_vpn src 192.168.107.6 |
$ echo "1 VPN" >> /etc/iproute2/rt_tables
$ ip route add default via 192.168.107.5 src 192.168.107.6 dev tun_vpn table VPN
$ ip route show table VPN
default via 192.168.107.5 dev tun_vpn src 192.168.107.6
Where 192.168.107.5 – ip of my router into VPN and tun_vpn – VPN interface.
After that i created rule, that route marked packets thru VPN route table:
$ ip rule add from all fwmark 0x16 lookup VPN
$ ip ru sh
0: from all lookup local
32765: from all fwmark 0x16 lookup VPN
32766: from all lookup main
32767: from all lookup default |
$ ip rule add from all fwmark 0x16 lookup VPN
$ ip ru sh
0: from all lookup local
32765: from all fwmark 0x16 lookup VPN
32766: from all lookup main
32767: from all lookup default
There is time to mark SMTPS packets:
$ iptables -t mangle -I PREROUTING -p tcp --dport 465 -j MARK --set-mark 0x16
$ iptables -t mangle -I OUTPUT -p tcp --dport 465 -j MARK --set-mark 0x16 |
$ iptables -t mangle -I PREROUTING -p tcp --dport 465 -j MARK --set-mark 0x16
$ iptables -t mangle -I OUTPUT -p tcp --dport 465 -j MARK --set-mark 0x16
Let’s check:
$ traceroute -n -T -p 993 imap.gmail.com
traceroute to imap.gmail.com (173.194.69.109), 30 hops max, 60 byte packets
1 192.168.130.1 0.217 ms 0.233 ms 0.201 ms
2 * 2.318 ms 2.377 ms 2.503 ms
3 * 1.411 ms 1.714 ms 1.947 ms
4 * 1.486 ms 1.733 ms 1.796 ms
5 * 12.762 ms 72.14.212.22 12.791 ms 12.836 ms
6 * 65.528 ms 61.534 ms 67.431 ms
7 216.239.43.250 66.606 ms 209.85.248.132 61.808 ms 216.239.43.250 60.219 ms
8 216.239.48.53 66.225 ms 209.85.254.153 61.190 ms 64.233.174.55 66.038 ms
9 66.249.95.67 60.271 ms 66.249.95.175 60.510 ms 60.956 ms
10 64.233.174.55 65.304 ms 65.610 ms 64.233.174.29 76.697 ms
11 173.194.69.109 66.954 ms 65.824 ms 61.563 ms
$ traceroute -n -T -p 465 imap.gmail.com
traceroute to imap.gmail.com (173.194.69.108), 30 hops max, 60 byte packets
1 192.168.107.1 26.088 ms 42.767 ms 42.748 ms
2 * 42.813 ms 42.799 ms 68.297 ms
3 * 42.668 ms 42.665 ms 42.619 ms
4 * 42.539 ms 42.521 ms 42.504 ms
5 * 42.522 ms 68.071 ms 68.039 ms
6 * 68.015 ms 76.070 ms 85.085 ms
7 * 136.618 ms 136.634 ms 136.555 ms
8 216.239.43.250 110.732 ms 110.744 ms 110.712 ms
9 64.233.174.55 136.549 ms 209.85.254.153 136.506 ms 136.463 ms
10 * 66.249.95.67 137.978 ms 66.249.95.175 137.887 ms
11 173.194.69.108 137.893 ms 216.239.48.53 137.846 ms 64.233.174.55 130.177 ms |
$ traceroute -n -T -p 993 imap.gmail.com
traceroute to imap.gmail.com (173.194.69.109), 30 hops max, 60 byte packets
1 192.168.130.1 0.217 ms 0.233 ms 0.201 ms
2 * 2.318 ms 2.377 ms 2.503 ms
3 * 1.411 ms 1.714 ms 1.947 ms
4 * 1.486 ms 1.733 ms 1.796 ms
5 * 12.762 ms 72.14.212.22 12.791 ms 12.836 ms
6 * 65.528 ms 61.534 ms 67.431 ms
7 216.239.43.250 66.606 ms 209.85.248.132 61.808 ms 216.239.43.250 60.219 ms
8 216.239.48.53 66.225 ms 209.85.254.153 61.190 ms 64.233.174.55 66.038 ms
9 66.249.95.67 60.271 ms 66.249.95.175 60.510 ms 60.956 ms
10 64.233.174.55 65.304 ms 65.610 ms 64.233.174.29 76.697 ms
11 173.194.69.109 66.954 ms 65.824 ms 61.563 ms
$ traceroute -n -T -p 465 imap.gmail.com
traceroute to imap.gmail.com (173.194.69.108), 30 hops max, 60 byte packets
1 192.168.107.1 26.088 ms 42.767 ms 42.748 ms
2 * 42.813 ms 42.799 ms 68.297 ms
3 * 42.668 ms 42.665 ms 42.619 ms
4 * 42.539 ms 42.521 ms 42.504 ms
5 * 42.522 ms 68.071 ms 68.039 ms
6 * 68.015 ms 76.070 ms 85.085 ms
7 * 136.618 ms 136.634 ms 136.555 ms
8 216.239.43.250 110.732 ms 110.744 ms 110.712 ms
9 64.233.174.55 136.549 ms 209.85.254.153 136.506 ms 136.463 ms
10 * 66.249.95.67 137.978 ms 66.249.95.175 137.887 ms
11 173.194.69.108 137.893 ms 216.239.48.53 137.846 ms 64.233.174.55 130.177 ms
Profit!
PS
In my situation i observed strange effect, although that i set src ip, my host trying to send packets with src ip of local ethernet interface, so i just add masquerade rule into iptables.
$ iptables -A POSTROUTING -o tun_vpn -J MASQUERADE |
$ iptables -A POSTROUTING -o tun_vpn -J MASQUERADE
Another way to fix it, set route to local work network on router, but i too lazy to do it.