mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2026-09-22 15:29:03 -07:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdc3b0834b | ||
|
|
1a285e5342 | ||
|
|
8912515011 | ||
|
|
6ec3464ee9 | ||
|
|
4b5e43ab0d | ||
|
|
a6d9ae3a36 | ||
|
|
34e7c8652a | ||
|
|
1861f67fa7 | ||
|
|
b5e9d3f6f4 | ||
|
|
9785fde32a | ||
|
|
9657675755 | ||
|
|
5d7174b162 | ||
|
|
cdb5ceac7b | ||
|
|
23391ff9da | ||
|
|
3f2b21ce71 | ||
|
|
6535730255 | ||
|
|
765082fdb6 | ||
|
|
aff62e9e10 | ||
|
|
2d598dd433 | ||
|
|
f86e9b7df2 |
No files matched your search
Vendored
+19
@@ -1,3 +1,22 @@
|
||||
zerotier-one (1.1.12) unstable; urgency=medium
|
||||
|
||||
* See https://github.com/zerotier/ZeroTierOne for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Tue, 12 Jul 2016 03:02:22 -0700
|
||||
|
||||
zerotier-one (1.1.10) unstable; urgency=medium
|
||||
|
||||
* See https://github.com/zerotier/ZeroTierOne for release notes.
|
||||
* ZeroTier Debian packages no longer depend on http-parser since its ABI is too unstable.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Tue, 12 Jul 2016 12:29:00 -0700
|
||||
|
||||
zerotier-one (1.1.8) unstable; urgency=low
|
||||
|
||||
* See https://github.com/zerotier/ZeroTierOne for release notes.
|
||||
|
||||
-- Adam Ierymenko <adam.ierymenko@zerotier.com> Fri, 08 Jul 2016 01:56:00 -0700
|
||||
|
||||
zerotier-one (1.1.6) unstable; urgency=medium
|
||||
|
||||
* First Debian release on ZeroTier, Inc. private apt repository.
|
||||
|
||||
Vendored
+2
-2
@@ -3,14 +3,14 @@ Maintainer: Adam Ierymenko <adam.ierymenko@zerotier.com>
|
||||
Section: net
|
||||
Priority: optional
|
||||
Standards-Version: 3.9.6
|
||||
Build-Depends: debhelper (>= 9), libhttp-parser-dev (>= 2.1), liblz4-dev, libnatpmp-dev, dh-systemd, ruby-ronn
|
||||
Build-Depends: debhelper (>= 9), liblz4-dev, libnatpmp-dev, dh-systemd, ruby-ronn
|
||||
Vcs-Git: git://github.com/zerotier/ZeroTierOne
|
||||
Vcs-Browser: https://github.com/zerotier/ZeroTierOne
|
||||
Homepage: https://www.zerotier.com/
|
||||
|
||||
Package: zerotier-one
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libhttp-parser2.1, liblz4-1, libnatpmp1, iproute2
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, liblz4-1, libnatpmp1, iproute2
|
||||
Homepage: https://www.zerotier.com/
|
||||
Description: ZeroTier network virtualization service
|
||||
ZeroTier One lets you join ZeroTier virtual networks and
|
||||
|
||||
@@ -759,7 +759,7 @@
|
||||
<key>OVERWRITE_PERMISSIONS</key>
|
||||
<false/>
|
||||
<key>VERSION</key>
|
||||
<string>1.1.6</string>
|
||||
<string>1.1.12</string>
|
||||
</dict>
|
||||
<key>PROJECT_COMMENTS</key>
|
||||
<dict>
|
||||
|
||||
@@ -116,6 +116,11 @@ extern "C" {
|
||||
*/
|
||||
#define ZT_MAX_PEER_NETWORK_PATHS 4
|
||||
|
||||
/**
|
||||
* Maximum number of trusted physical network paths
|
||||
*/
|
||||
#define ZT_MAX_TRUSTED_PATHS 16
|
||||
|
||||
/**
|
||||
* Maximum number of hops in a ZeroTier circuit test
|
||||
*
|
||||
@@ -887,6 +892,11 @@ typedef struct
|
||||
*/
|
||||
uint64_t lastReceive;
|
||||
|
||||
/**
|
||||
* Is this a trusted path? If so this will be its nonzero ID.
|
||||
*/
|
||||
uint64_t trustedPathId;
|
||||
|
||||
/**
|
||||
* Is path active?
|
||||
*/
|
||||
@@ -1837,6 +1847,29 @@ void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned
|
||||
*/
|
||||
void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs);
|
||||
|
||||
/**
|
||||
* Set trusted paths
|
||||
*
|
||||
* A trusted path is a physical network (network/bits) over which both
|
||||
* encryption and authentication can be skipped to improve performance.
|
||||
* Each trusted path must have a non-zero unique ID that is the same across
|
||||
* all participating nodes.
|
||||
*
|
||||
* We don't recommend using trusted paths at all unless you really *need*
|
||||
* near-bare-metal performance. Even on a LAN authentication and encryption
|
||||
* are never a bad thing, and anything that introduces an "escape hatch"
|
||||
* for encryption should be treated with the utmost care.
|
||||
*
|
||||
* Calling with NULL pointers for networks and ids and a count of zero clears
|
||||
* all trusted paths.
|
||||
*
|
||||
* @param node Node instance
|
||||
* @param networks Array of [count] networks
|
||||
* @param ids Array of [count] corresponding non-zero path IDs (zero path IDs are ignored)
|
||||
* @param count Number of trusted paths-- values greater than ZT_MAX_TRUSTED_PATHS are clipped
|
||||
*/
|
||||
void ZT_Node_setTrustedPaths(ZT_Node *node,const struct sockaddr_storage *networks,const uint64_t *ids,unsigned int count);
|
||||
|
||||
/**
|
||||
* Do things in the background until Node dies
|
||||
*
|
||||
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
#RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
|
||||
#RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
#RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
|
||||
#RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -4,6 +4,8 @@ MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y build-essential debhelper ruby-ronn g++ make devscripts
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
|
||||
RUN mv -f /ZeroTierOne/debian/control.wheezy /ZeroTierOne/debian/control
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
FROM zerotier/zt1-build-debian-wheezy-x86-base
|
||||
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
|
||||
RUN mv -f /ZeroTierOne/debian/control.wheezy /ZeroTierOne/debian/control
|
||||
|
||||
@@ -5,5 +5,6 @@ RUN yum update -y
|
||||
RUN yum install -y make rpmdevtools gcc-c++ rubygem-ronn json-parser-devel lz4-devel http-parser-devel libnatpmp-devel
|
||||
|
||||
RUN rpm --erase http-parser-devel
|
||||
RUN yum install -y rubygem-ronn ruby
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -14,5 +14,6 @@ MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
|
||||
RUN echo 'i686-redhat-linux' >/etc/rpm/platform
|
||||
|
||||
RUN rpm --erase http-parser-devel
|
||||
RUN yum install -y rubygem-ronn ruby
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -31,5 +31,34 @@ for db in `find /tmp/zt-rpm-repo -mindepth 2 -maxdepth 2 -type d`; do
|
||||
createrepo --database $db
|
||||
done
|
||||
|
||||
# Stupid RHEL stuff
|
||||
cd /tmp/zt-rpm-repo/el
|
||||
ln -sf 6 6Client
|
||||
ln -sf 6 6Workstation
|
||||
ln -sf 6 6Server
|
||||
ln -sf 6 6.0
|
||||
ln -sf 6 6.1
|
||||
ln -sf 6 6.2
|
||||
ln -sf 6 6.3
|
||||
ln -sf 6 6.4
|
||||
ln -sf 6 6.5
|
||||
ln -sf 6 6.6
|
||||
ln -sf 6 6.7
|
||||
ln -sf 6 6.8
|
||||
ln -sf 6 6.9
|
||||
ln -sf 7 7Client
|
||||
ln -sf 7 7Workstation
|
||||
ln -sf 7 7Server
|
||||
ln -sf 7 7.0
|
||||
ln -sf 7 7.1
|
||||
ln -sf 7 7.2
|
||||
ln -sf 7 7.3
|
||||
ln -sf 7 7.4
|
||||
ln -sf 7 7.5
|
||||
ln -sf 7 7.6
|
||||
ln -sf 7 7.7
|
||||
ln -sf 7 7.8
|
||||
ln -sf 7 7.9
|
||||
|
||||
echo
|
||||
echo Repo created in /tmp/zt-rpm-repo
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.6 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.6 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.6 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.6 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.7 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.7 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -7,4 +7,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
RUN ln -sf /usr/bin/clang++-3.7 /usr/bin/clang++
|
||||
RUN ln -sf /usr/bin/clang-3.7 /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -9,4 +9,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
|
||||
RUN rm -f /usr/bin/clang++ /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
@@ -9,4 +9,6 @@ RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev l
|
||||
|
||||
RUN rm -f /usr/bin/clang++ /usr/bin/clang
|
||||
|
||||
RUN dpkg --purge libhttp-parser-dev
|
||||
|
||||
ADD zt1-src.tar.gz /
|
||||
+24
-6
@@ -42,9 +42,24 @@ namespace ZeroTier {
|
||||
|
||||
bool IncomingPacket::tryDecode(const RuntimeEnvironment *RR,bool deferred)
|
||||
{
|
||||
const Address sourceAddress(source());
|
||||
try {
|
||||
if ((cipher() == ZT_PROTO_CIPHER_SUITE__C25519_POLY1305_NONE)&&(verb() == Packet::VERB_HELLO)) {
|
||||
const Address sourceAddress(source());
|
||||
|
||||
// Check for trusted paths or unencrypted HELLOs (HELLO is the only packet sent in the clear)
|
||||
const unsigned int c = cipher();
|
||||
bool trusted = false;
|
||||
if (c == ZT_PROTO_CIPHER_SUITE__NO_CRYPTO_TRUSTED_PATH) {
|
||||
// If this is marked as a packet via a trusted path, check source address and path ID.
|
||||
// Obviously if no trusted paths are configured this always returns false and such
|
||||
// packets are dropped on the floor.
|
||||
if (RR->topology->shouldInboundPathBeTrusted(_remoteAddress,trustedPathId())) {
|
||||
trusted = true;
|
||||
TRACE("TRUSTED PATH packet approved from %s(%s), trusted path ID %llx",sourceAddress.toString().c_str(),_remoteAddress.toString().c_str(),trustedPathId());
|
||||
} else {
|
||||
TRACE("dropped packet from %s(%s), cipher set to trusted path mode but path %llx@%s is not trusted!",sourceAddress.toString().c_str(),_remoteAddress.toString().c_str(),trustedPathId(),_remoteAddress.toString().c_str());
|
||||
return true;
|
||||
}
|
||||
} else if ((c == ZT_PROTO_CIPHER_SUITE__C25519_POLY1305_NONE)&&(verb() == Packet::VERB_HELLO)) {
|
||||
// Unencrypted HELLOs require some potentially expensive verification, so
|
||||
// do this in the background if background processing is enabled.
|
||||
if ((RR->dpEnabled > 0)&&(!deferred)) {
|
||||
@@ -61,12 +76,15 @@ bool IncomingPacket::tryDecode(const RuntimeEnvironment *RR,bool deferred)
|
||||
|
||||
SharedPtr<Peer> peer(RR->topology->getPeer(sourceAddress));
|
||||
if (peer) {
|
||||
if (!dearmor(peer->key())) {
|
||||
TRACE("dropped packet from %s(%s), MAC authentication failed (size: %u)",peer->address().toString().c_str(),_remoteAddress.toString().c_str(),size());
|
||||
return true;
|
||||
if (!trusted) {
|
||||
if (!dearmor(peer->key())) {
|
||||
TRACE("dropped packet from %s(%s), MAC authentication failed (size: %u)",sourceAddress.toString().c_str(),_remoteAddress.toString().c_str(),size());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!uncompress()) {
|
||||
TRACE("dropped packet from %s(%s), compressed data invalid",peer->address().toString().c_str(),_remoteAddress.toString().c_str());
|
||||
TRACE("dropped packet from %s(%s), compressed data invalid",sourceAddress.toString().c_str(),_remoteAddress.toString().c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Loaded 20 of 32 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user