enp0s3: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.23.11 netmask 255.255.255.0 broadcast 192.168.23.255
inet6 fe80 :: a00: 27ff: fec2: bae4 prefixlen 64 scopeid 0x20 ether 08: 00: 27: c2: ba: e4 txqueuelen 1000 (Ethernet)
Paquets RX 61 octets 7873 (7,6 Ko)
Erreurs RX 0 supprimées 0 dépassements 0 trame 0
Paquets TX 65 octets 10917 (10,6 Kio)
Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0
enp0s8: flags = 4163 <UP, BROADCAST, RUNNING, MULTICAST> mtu 1500
inet 192.168.201.254 netmask 255.255.255.0 broadcast 192.168.201.255
inet6 fe80 :: a00: 27ff: fe79: a7e3 prefixlen 64 scopeid 0x20 ether 08: 00: 27: 79: a7: e3 txqueuelen 1000 (Ethernet)
Paquets RX 0 octets 0 (0,0 B)
Erreurs RX 0 supprimées 0 dépassements 0 trame 0
Paquets TX 8 octets 648 (648,0 B)
Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0
lo: flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: 1 prefixlen 128 scopeid 0x10 loop txqueuelen 1 (boucle locale)
Paquets RX 0 octets 0 (0,0 B)
Erreurs RX 0 supprimées 0 dépassements 0 trame 0
Paquets TX 0 octets 0 (0,0 B)
Erreurs TX 0 abandonnées 0 dépassements 0 porteuse 0 collisions 0
3. Tout s'est avéré, vous devez maintenant configurer 3proxy pour un proxy transparent.
root@debian9:~# cd /home/joke/proxy/
root@debian9:/home/joke/proxy# cat > 3proxytransp.conf
Exemple de configuration du serveur proxy transparent # 1démon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
délais d'expiration 1 5 30 60180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- + _L% t.%.% N.% p% E% U% C:% c% R:% r% O% I% h% T"
tourner 3
rincer
auth iponly
dnspr
permettre *
parent 1000 chaussettes5 Testeur IP_EXTERNAL_PROXY 3128 1234
plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
4. Exécutez maintenant 3proxy avec la nouvelle configuration
root@debian9:/home/joke/proxy# /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
5. Ajoutez Ă nouveau crontab
root@debian9:/home/joke/proxy# crontab -e
@reboot /usr/local/bin/3proxy /home/joke/proxy/3proxytransp.conf
6. Voyons ce que notre proxy écoute maintenant
root@debian9:~# netstat -nlp
journal netstatConnexions Internet actives (uniquement serveurs)
Proto Recv-Q Send-Q Adresse locale État de l'adresse étrangère PID / Nom du programme
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 349 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 354 / 3proxy
tcp6 0 0 ::: 22 ::: * ÉCOUTER 349 ​​/ sshd
udp 0 0 0.0.0.0:53 0.0.0.0:* 354 / 3proxy
udp 0 0 0.0.0.0:68 0.0.0.0:* 367 / dhclient
7. Le proxy est maintenant prêt à accepter toutes les connexions TCP sur le port 888, DNS sur le port 53, afin qu'elles puissent ensuite être redirigées vers les chaussettes distantes5 - proxy Google et DNS 8.8.8.8. Il nous reste à configurer les règles netfilter (iptables) et DHCP pour l'émission des adresses.
8. Installez le paquet persistant iptables et dhcpd
root@debian9:~# apt-get install iptables-persistent isc-dhcp-server
9. Modifiez le fichier de démarrage dhcpd
root@debian9:~# nano /etc/dhcp/dhcpd.conf
dhcpd.conf# dhcpd.conf
#
# Exemple de fichier de configuration pour dhcpd ISC
#
# définitions d'options communes à tous les réseaux pris en charge ...
option nom-de-domaine "example.org";
option serveurs de noms de domaine ns1.example.org, ns2.example.org;
durée de bail par défaut 600;
max-bail-time 7200;
ddns-update-style aucun;
# Si ce serveur DHCP est le serveur DHCP officiel du réseau local
# network, la directive faisant autorité ne doit pas être commentée.
faisant autorité;
# Une configuration légèrement différente pour un sous-réseau interne.
sous-réseau 192.168.201.0 masque de réseau 255.255.255.0 {
gamme 192.168.201.10 192.168.201.250;
option serveurs de noms de domaine 192.168.201.254;
routeurs en option 192.168.201.254;
option adresse de diffusion 192.168.201.255;
durée de bail par défaut 600;
max-bail-time 7200;
}
11. Redémarrez et vérifiez le service sur le port 67
root@debian9:~# reboot
root@debian9:~# netstat -nlp
journal netstatConnexions Internet actives (uniquement serveurs)
Proto Recv-Q Send-Q Adresse locale État de l'adresse étrangère PID / Nom du programme
tcp 0 0 0.0.0.0:22 0.0.0.0:* ECOUTER 389 / sshd
tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN 310 / 3proxy
tcp6 0 0 ::: 22 ::: * ÉCOUTER 389 / sshd
udp 0 0 0.0.0.0:20364 0.0.0.0:* 393 / dhcpd
udp 0 0 0.0.0.0:53 0.0.0.0:* 310 / 3proxy
udp 0 0 0.0.0.0:67 0.0.0.0:* 393 / dhcpd
udp 0 0 0.0.0.0:68 0.0.0.0:* 405 / dhclient
udp6 0 0 ::: 31728 ::: * 393 / dhcpd
brut 0 0 0.0.0.0:1 0.0.0.0:* 393 / dhcpd
12. Il reste à rediriger toutes les requêtes tcp vers le port 888 et enregistrer la règle dans iptables
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -p tcp -j REDIRECT --to-ports 888
root@debian9:~# iptables-save > /etc/iptables/rules.v4
13. Pour étendre la bande passante du canal, vous pouvez utiliser plusieurs serveurs proxy à la fois. Le montant total doit être de 1000. De nouvelles connexions sont établies avec une probabilité de 0,2, 0,2, 0,2, 0,2, 0,1, 0,1 aux serveurs proxy spécifiés.
Remarque: si nous avons un proxy Web, au lieu de socks5, vous devez écrire connect, if socks4, then socks4 (socks4 NE PREND PAS EN CHARGE LA CONNEXION / L'AUTORISATION DE MOT DE PASSE!)
Exemple de configuration de serveur proxy transparent # 2démon
pidfile /home/joke/proxy/3proxy.pid
nserver 8.8.8.8
nscache 65536
maxconn 500
délais d'expiration 1 5 30 60180 1800 16 60
log /home/joke/proxy/logs/3proxy.log D
logformat "- + _L% t.%.% N.% p% E% U% C:% c% R:% r% O% I% h% T"
tourner 3
rincer
auth iponly
dnspr
permettre *
parent 200 chaussettes5 IP_EXT_EXT_PROXY # 1 3128 testeur 1234
parent 200 chaussettes5 IP_EXT_EXT_PROXY # 2 3128 testeur 1234
parent 200 chaussettes5 IP_EXT_EXT_PROXY # 3 3128 testeur 1234
parent 200 chaussettes5 IP_EXT_EXT_PROXY # 4 3128 testeur 1234
parent 100 chaussettes5 IP_EXT_EXT_PROXY # 5 3128 testeur 1234
parent 100 chaussettes5 IP_EXT_EXT_PROXY # 6 3128 testeur 1234
plugin /opt/proxy/3proxy-0.8.12/src/TransparentPlugin.ld.so transparent_plugin
tcppm -i0.0.0.0 888 127.0.0.1 11111
Configurer et exécuter la configuration du proxy transparent NAT +
Dans cette configuration, nous utiliserons le mécanisme NAT habituel avec un proxy sélectif ou totalement transparent d'adresses individuelles ou de sous-réseaux. Les utilisateurs du réseau interne travailleront avec certains services / sous-réseaux sans même se rendre compte qu'ils fonctionnent via un proxy. Toutes les connexions https fonctionnent correctement, aucun certificat n'a besoin d'être généré / remplacé.
Tout d'abord, nous décidons quels sous-réseaux / services nous voulons proxy. Supposons que des proxys externes se trouvent là où un service tel que pandora.com est en cours d'exécution. Reste maintenant à déterminer son sous-réseau / adresse.
1. Ping
root@debian9:~# ping pandora.com
PING pandora.com (208.85.40.20) 56 (84) octets de données.
2. Nous tapons Google BGP 208.85.40.20
Accédez au site Web
bgp.he.net/net/208.85.40.0/24#_netinfoVous pouvez voir que je cherche le sous-réseau AS40428 Pandora Media, Inc
bgp.he.net/net/208.85.40.0/24#_netinfoOuvrir les préfixes v4
bgp.he.net/AS40428#_prefixesVoici les sous-réseaux souhaités!
199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
199.116.164.0/24
199.116.165.0/24
208.85.40.0/24
208.85.41.0/24
208.85.42.0/23
208.85.42.0/24
208.85.43.0/24
208.85.44.0/24
208.85.46.0/23
208.85.46.0/24
208.85.47.0/24
3. Pour réduire le nombre de sous-réseaux, l'agrégation doit être effectuée. Allez sur
ip-calculator.ru/aggregate et copiez notre liste là -bas. En conséquence - 6 sous-réseaux au lieu de 14.
199.116.161.0/24
199.116.162.0/24
199.116.164.0/23
208.85.40.0/22
208.85.44.0/24
208.85.46.0/23
4. Règles claires pour iptables
root@debian9:~# iptables -F
root@debian9:~# iptables -X
root@debian9:~# iptables -t nat -F
root@debian9:~# iptables -t nat -X
Activer le transfert et le NAT
root@debian9:~# echo 1 > /proc/sys/net/ipv4/ip_forward
root@debian9:~# iptables -A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
root@debian9:~# iptables -A FORWARD -i enp0s8 -o enp0s3 -j ACCEPT
root@debian9:~# iptables -t nat -A POSTROUTING -o enp0s3 -s 192.168.201.0/24 -j MASQUERADE
Pour que l'avant soit toujours activé après le redémarrage, modifiez le fichier
root@debian9:~# nano /etc/sysctl.conf
Et décommenter la ligne
net.ipv4.ip_forward = 1
Ctrl + X pour enregistrer le fichier
5. Nous enveloppons les sous-réseaux pandora.com dans le proxy
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.201.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888
6. Enregistrez les règles
root@debian9:~# iptables-save > /etc/iptables/rules.v4
Configurer et exécuter le proxy transparent via la configuration du routeur
Dans cette configuration, le serveur proxy transparent peut être un PC séparé ou une machine virtuelle derrière un routeur domestique / d'entreprise. Il suffit d'enregistrer des routes statiques sur le routeur ou les périphériques et l'ensemble du sous-réseau utilisera des proxys sans avoir besoin de paramètres supplémentaires.
IMPORTANT! Il est nécessaire que notre passerelle reçoive une IP statique du routeur, ou soit configurée pour statique elle-même.
1. Configurer une adresse de passerelle statique (adaptateur enp0s3)
root@debian9:~# nano /etc/network/interfaces
Fichier / etc / network / interfaces# Ce fichier décrit les interfaces réseau disponibles sur votre système
# et comment les activer. Pour plus d'informations, voir interfaces (5).
source /etc/network/interfaces.d/*
# L'interface réseau de bouclage
auto lo
iface lo inet loopback
# L'interface réseau principale
allow-hotplug enp0s3
iface enp0s3 inet statique
adresse 192.168.23.2
masque de réseau 255.255.255.0
passerelle 192.168.23.254
# L'interface réseau secondaire
allow-hotplug enp0s8
iface enp0s8 inet statique
adresse 192.168.201.254
masque de réseau 255.255.255.0
2. Autoriser les périphériques du sous-réseau 192.168.23.0/24 à utiliser le proxy
root@debian9:~# iptables -t nat -A PREROUTING -s 192.168.23.0/24 -d 199.116.161.0/24,199.116.162.0/24,199.116.164.0/23,208.85.40.0/22,208.85.44.0/24,208.85.46.0/23 -p tcp -j REDIRECT --to-ports 888
3. Enregistrez les règles
root@debian9:~# iptables-save > /etc/iptables/rules.v4
4. Nous enregistrerons les sous-réseaux sur le routeur
Liste des réseaux de routeurs199.116.161.0 255.255.255.0 192.168.23.2
199.116.162.0 255.255.255.0 192.168.23.2
199.116.164.0 255.255.254.0 192.168.23.2
208.85.40.0 255.255.252.0 192.168.23.2
208.85.44.0 255.255.255.0 192.168.23.2
208.85.46.0 255.255.254.0 192.168.23.2
Matériaux / ressources utilisés
1. Le site officiel du
programme 3proxy
3proxy.ru2. Instructions d'installation pour 3proxy Ă partir de la source
www.ekzorchik.ru/2015/02/how-to-take-your-socks-proxy3. Branche de développement 3proxy sur github
github.com/z3APA3A/3proxy/issues/274