คุณสามารถสร้างสิ่งนี้ได้โดยการตั้งค่าการส่งต่อพอร์ตไดนามิก SSH:
man ssh
:
-D [bind_address:]port
Specifies a local “dynamic” application-level port forwarding. This works by allocating a socket
to listen to port on the local side, optionally bound to the specified bind_address. Whenever a
connection is made to this port, the connection is forwarded over the secure channel, and the
application protocol is then used to determine where to connect to from the remote machine. Cur‐
rently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only
root can forward privileged ports. Dynamic port forwardings can also be specified in the configu‐
ration file.
IPv6 addresses can be specified by enclosing the address in square brackets. Only the superuser
can forward privileged ports. By default, the local port is bound in accordance with the
GatewayPorts setting. However, an explicit bind_address may be used to bind the connection to a
specific address. The bind_address of “localhost” indicates that the listening port be bound for
local use only, while an empty address or ‘*’ indicates that the port should be available from all
interfaces.
เริ่มต้นพร็อกซี SOCKS บนโลคอลโฮสต์พอร์ต 2302:
$ ssh -v -ND 2302 user@host
ในการกำหนดเส้นทางทราฟฟิก HTTP ผ่านอุโมงค์นี้ใน Firefox:
แก้ไข -> การตั้งค่า -> ขั้นสูง -> แท็บเครือข่าย -> การตั้งค่า -> การกำหนดค่าพร็อกซีด้วยตนเอง -> โฮสต์ SOCKS: localhost และพอร์ต: 2302
ในการใช้งานพร็อกซี SOCKS กับทราฟฟิกอื่นคุณสามารถใช้โปรแกรมถุงเท้าเช่นtsocks
:
[I] net-proxy/tsocks
Available versions: 1.8_beta5-r3 ~1.8_beta5-r4 1.8_beta5-r5 ~1.8_beta5-r6 {tordns}
Installed versions: 1.8_beta5-r5(10:08:28 AM 06/15/2010)(-tordns)
Homepage: http://tsocks.sourceforge.net/
Description: Transparent SOCKS v4 proxying library
ใน Gentoo ของฉันแก้ไขสิ่งที่/etc/socks/tsocks.conf
เป็นรายละเอียดข้างล่าง:
# Otherwise we use the server
server = 127.0.0.1
server_port = 2302
การทดสอบ:
$ tsocks telnet 255.255.255.255 25
คุณจะเห็นสิ่งนี้ใน/var/log/secure
เซิร์ฟเวอร์ SSH:
sshd[28491]: error: connect_to 255.255.255.255 port 25: failed.
ส่วนที่ฉันไม่เข้าใจคือผู้ที่พยายามเชื่อมต่อกับที่อยู่เหล่านั้น
หากต้องการแคบลงให้ดูที่/var/log/secure
( auth.log
ใน distro ของคุณ) และตรวจสอบผู้ที่เข้าสู่ระบบก่อนหน้านี้:
sshd[26898]: pam_unix(sshd:session): session opened for user quanta