-
νλ‘μ(Proxy)π» IT Study/Knowledge 2021. 9. 26. 14:01
νλ‘μ(Proxy) μλ²
A proxy server is an intermediate program or computer used when navigating through different networks of the Internet.
ν΄λΌμ΄μΈνΈκ° μμ μ ν΅ν΄ λ€λ₯Έ λ€νΈμν¬ μλΉμ€μ κ°μ μ μΌλ‘ μ μν μ μκ² ν΄ μ£Όλ μ»΄ν¨ν° μμ€ν μ΄λ μμ© νλ‘κ·Έλ¨μ λ§νλ€.
λ°©λ¬Ένλ μΉμ¬μ΄νΈμ κΈ°κΈ°κ°μ μ€κ³μν μ νλ€.
νλ‘μλ μμ²λ°μ λ°μ΄ν°λ₯Ό μΊμμ μ μ₯ν΄λκ³ , μΊμμ μ μ₯λ λ°μ΄ν° μμ²μ λν΄μλ μ€μ μλ²μ μμ²νμ§ μκ³ μ§μ μλ΅νλ€. μ΄λ‘μ¨ λ°μ΄ν° μ μ‘μκ°κ³Ό λΆνμν νΈλν½ λ°μμ μ€μ΄λ€μ΄ μλ²μΈ‘μ λ€νΈμν¬ λ³λͺ©νμμ λ°©μ§ν μ μλ€.
λν 보μμ μΈ‘λ©΄μμ νλ‘μ μλ² μΈ‘μμ μνμ΄ μμλλ μΉ μ½ν μΈ λ° μ μ±μ½λλ₯Ό νν°λ§ν¨μΌλ‘μ¨ ν΄λΌμ΄μΈνΈ μΈ‘μ 보μμ ν₯μμν¬ μ μλ€.
νμ¬ λ° μ€μκΈ°κ΄μμ νλ‘μ μλ²λ₯Ό ν΅ν΄ λ΄λΆ ν΅μ κ³Ό μΈλΆ λ°μ΄ν° μ κ·Όμ ν΅μ νμ¬ λ³΄μ μ μ§λ₯Ό νλ€.
λν νλ‘μ μλ²μλ λ‘κ·Έκ° λ¨κΈ° λλ¬Έμ μΈν°λ· μ΄μ©λ₯ ν΅κ³λ₯Ό μμ§νμ¬ λΆμνλ λ° νλ‘μ μλ²λ₯Ό μ¬μ©νλ€.
μκΈ°λ₯μΌλ‘λ μ¬μ©μμ μ μ₯μμ μμ μ μΉ μνκΈ°λ‘μ μ΅λͺ ννκΈ° μν΄ μΉ νλ‘μ(anonymizer)λ₯Ό μ¬μ©νλ€.
νλ‘μλΌλ μ€κ³μλ²λ₯Ό κ±°μΉκΈ°μ μμ μ IPλ₯Ό λ¨κΈ°μ§ μμ μ μλ€.
νλ‘μλ λ€μν λ°©λ²μΌλ‘ κ΅¬λΆ κ°λ₯νλ€. μ¬κΈ°μλ νλ‘μ μμΉμ νλ‘ν μ½μ λ°λ₯Έ ꡬλΆμ λ³΄λ €κ³ νλ€.
1. νλ‘μ μμΉμ λ°λ₯Έ κ΅¬λΆ : Forward νλ‘μ, Reverse νλ‘μ
2. μ¬μ©νλ νλ‘ν μ½μ λ°λ₯Έ κ΅¬λΆ : HTTP νλ‘μ, Socks νλ‘μ
νλ‘μ μμΉμ λ°λ₯Έ ꡬλΆ
1. Forward Proxy
handles requests from and to anywhere on the Internet.
- μΌλ°μ μΌλ‘ μ¬μ©νλ νλ‘μ λ°©λ²
ν΄λΌμ΄μΈνΈκ° μλ²λ‘ μμ²ν λ μ§μ μμ²νμ§ μκ³ , νλ‘μ μλ²λ₯Ό ν΅ν΄ μμ²νλ λ°©μμ λ§νλ€. ν¬μλ νλ‘μλ μΉμλ²μ ν΄λΌμ΄μΈνΈλ₯Ό λΆλ¦¬νλ μ€κ° μλ²λ₯Ό λ§νλ€. μ ν΅μ μΌλ‘ ν¬μλ νλ‘μλ front-endμ κ°κΉκ² ꡬμ±λμλ€. κ·Έλμ μΌλ°μ μΌλ‘ Proxy ServerλΌ νλ©΄ Forwarding Proxy μ¦, Clientμ κ°κΉμ΄ μλ²λ₯Ό μΌμ»«λλ€.
μλμ κ°μ λ°©μμΌλ‘ μ΄λ€μ§λ€.
1) ν΄λΌμ΄μΈνΈλ λͺ©μ μ§ μλ² μ£Όμλ₯Ό κΈ°λ°μΌλ‘ μμ² ν¨ν·μ νλ‘μ μλ²μ μ λ¬νλ€.
2) νλ‘μ μλ²λ λͺ©μ μ§ μ£Όμλ₯Ό νμΈνμ¬ λͺ©μ μ§ μλ² λμ ν΄λΌμ΄μΈνΈμ ν¨ν·μ μ λ¬νλ€.
μ΄ λ ν΄λΌμ΄μΈνΈλ λͺ©μ μ§ μλ² IP μ£Όμλ‘ μμ²νκΈ° λλ¬Έμ DNS μ€μ μ΄ νμμλ€.
λμ CSLB(Cache Server Lod Balancing)λ₯Ό μ§μνλ L4 μ€μμΉμ μ°κ²°λμ΄μΌ νλ€.
2. Reverse Proxy
taking requests from the Internet and forwarding them to servers in an internal network.
- ν¬μλ νλ‘μμ λ°λ κ°λ
ν΄λΌμ΄μΈνΈκ° λͺ©μ μ§ μλ²μ μμ² ν¨ν·μ μ λ¬ν λ μ€κ°μμ νλ‘μ μλ²κ° μμ²μ λμ λ°μ μ€μ μλ²μ μ λ¬νλ λ°©μμ΄λ€. μ΄ λ ν΄λΌμ΄μΈνΈκ° μμ²νλ λͺ©μ μ§ μλ² μ£Όμλ νλ‘μ μλ² μ£Όμμ΄λ€. ν¬μλ νλ‘μμλ λ€λ₯΄κ² λ΄λΆ back-endμ μΆμνλ λ¨κ³μ΄λ€.
ν΄λΌμ΄μΈνΈλ μ€μ λͺ©μ μ§ μλ² μ£Όμλ μ μ μλ€. νλ‘μ μλ²λ μ€μ μλ²λ€μ λν μ£Όμλ₯Ό μ μ§νκ³ μμ΄μΌ νλ€.
λͺ¨λ μ μμ νλ‘μ μλ²λ₯Ό κ±°μ³ μλ²λ‘ μ λ¬λκΈ° λλ¬Έμ DNS μ€μ μμ μ£Όμλ₯Ό νλ‘μ μλ² IPλ‘ μ€μ νλ€.
리λ²μ€ νλ‘μλ 보μμ΄λ μνΈν, λͺ©μ μ§ μλ²λ€μ λν μμ²μ λ‘λλ°Έλ°μ±μ μν΄μ μ¬μ©λκΈ°λ νλ€.
* λ‘λλ°Έλ°μ±(load balancing)
: μΉ μλ²μ μ λ¨μ μμΉνκ³ μκΈ° λλ¬Έμ Network Trafficμ μ μ΄νλ€.
λλ¬Έμ μ¬μ©μμ μμ² λ° μΉ μλ²μ μνμ λ§κ² Network Trafficμ λΆμ°νλ€.
μ¬μ©νλ νλ‘ν μ½μ λ°λ₯Έ ꡬλΆ
1-1. HTTP νλ‘μ
HTTP νλ‘μ μλ²λ μΉ μλ²μ΄λ©΄μ μΉ ν΄λΌμ΄μΈνΈμ΄λ€. ν΄λΌμ΄μΈνΈλ‘λΆν° HTTP μμ²(request)μ λ°κ²λλ―λ‘ μΉ μλ²μ²λΌ μμ²κ³Ό 컀λ₯μ μ μ μ ν λ€λ₯΄κ³ μλ΅(response)μ λλ €μ€μΌ νλ€. ν΄λΌμ΄μΈνΈμ HTTP μμ²(request)μ μμ² μΉ μλ²λ‘ 보λ΄κ³ μμ² μΉμλ²μ μλ΅(response)μ λ°κΈ°μ μ¬λ°λ₯Έ HTTP ν΄λΌμ΄μΈνΈ μ²λΌ λμν΄μΌ νλ€.
HTTP λΈλΌμ°μ λ₯Ό μ€μ νλ©΄ λͺ¨λ λΈλΌμ°μ νΈλν½μ΄ ν΄λΉ κ²½λ‘λ₯Ό ν΅ν΄ λΌμ°ν λλ€.
μ΄ λ μΉ λΈλΌμ°μ μμ μΉ νλ‘μ μλ² μ€μ μ ν΅ν΄ μ΄μ©κ°λ₯νλ€.
1-2. HTTPS νλ‘μ
HTTPS νλ‘μλ HTTP νλ‘μμμ κΈ°λ°ν κ²μΌλ‘, HTTPSμ λ¬Έμ Sλ SSL μ°κ²°μ μ§μνλ 보μμ μλ―Ένλ€.
λ―Όκ°ν μ 보(μ: μ¬μ©μ μ΄λ¦/λΉλ°λ²νΈ, νλΌμ€ν± μΉ΄λ λ²νΈ)λ₯Ό λ³΄λΌ λ μ¬μ©λλ€.
HTTPS νλ‘μλ λΈλΌμ°μ λ‘λΆν° μνΈνλ λ°μ΄ν°λ₯Ό λ°μμ μμ² μΉμλ²λ‘ 보λΈλ€.
μ΄ λ μ μ‘λ μ 보μ μνΈν λ° λ³΅νΈν μ²λ¦¬λ μννμ§ μλλ€.
HTTPS νλ‘μλ₯Ό ν΅ν΄ λλΆλΆμ TCP νλ‘ν μ½μ μ μ‘ν μ μλ€.
μ¦ HTTPS νλ‘μλ POP3, SMTP, IMAP, NNTP νλ‘μλ‘ μ¬μ©κ°λ₯νλ€.
SSL(Secure Socket Layer)
: μΉ μ¬μ΄νΈμ λΈλΌμ°μ μ¬μ΄μ μ μ‘λ λ°μ΄ν°λ₯Ό μνΈννμ¬ μΈν°λ· μ°κ²° μ 보μμ μ μ§νλ νμ€ κΈ°μ2. SOCKS νλ‘μ
SOCKS(Socket Secure)λ νλ‘μ μλ²λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈμ μλ²κ°μ λ€νΈμν¬ ν¨ν·μ κ΅ννλ μΈν°λ· νλ‘ν μ½μ΄λ€.
SOCKS νλ‘μλ μΈν°λ· νΈλν½μ λΌμ°ν νκΈ°μν΄μ TCP(Transmission Control Protocol)μ λ§λ λ€. TCPλ₯Ό μ¬μ©νλ©΄ μλ‘μ΄ IP μ£Όμκ° ν λΉλμ΄ μΉ νΈμ€νΈκ° μ νν μμΉλ₯Ό μΆμ νκΈ° μ΄λ ΅λ€. μ€μ λ‘ SOCKS μλ²λ TCP μ°κ²°μ μμμ IPμ£Όμμ νλ‘μνκ³ UDP ν¨ν·μ μ λ¬νκΈ° μν μλ¨μ μ 곡νλ€. μ΄ μλ²λ μ΄λ€ λ°©μμΌλ‘λ μ₯μΉμ μλ²κ°μ νΈλν½μ ν΄μνμ§ μλλ€.
SOCKS νλ‘μμλ μ¬λ¬ λ²μ μ΄ μλ€. κ·Έ μ€ SOCKS5λ λ€νΈμν¬ νΈλν½ μ νμ ꡬλ³ν μ μκΈ° λλ¬Έμ κ°μ₯ μ μ°ν μλ² νλ‘ν μ½λ‘ κ°μ£Όλλ νμ₯μ΄λ€. (ν λ νΈ νμΌμ FTP, μΉ λΈλΌμ°μ§μ HTTP, μ΄λ©μΌμ SMTP λ±) κ·Έλ κΈ°μ μΉ νΈλν½μ κ΅ννμ§ μκ³ μμ©νλ‘κ·Έλ¨ μμ€μμλ μλνλ€.
IPμ£Όμλ₯Ό μ¨κΈ°κ³ λ°μ΄λ μ±λ₯μ μ 곡νκΈ°μ ν λ νΈ, P2Pμ μ΄μμ μ΄λ€. λν μνΈνκ° μκΈ° λλ¬Έμ μλμ μν₯μ λ―ΈμΉμ§ μμΌλ―λ‘ VPNλ³΄λ€ λΉ λ₯΄λ€. νΈλν½ λν μνΈννμ§ μμΌλ―λ‘ μΈν°λ· μ¬μ©κΈ°λ‘ λ° λͺ¨λ μ¨λΌμΈ νλμ΄ λ ΈμΆλλ€.
μ΄λ₯Ό κ³ λ €νλ©΄ VPNκ³Ό ν¨κ» μ¬μ©νλ κ²μ΄ μ°κ²°μ΄ λ¦μ΄μ§λλΌλ μμ ν κ²μ΄λ€.
TCPμ UDPλ μ μ‘κ³μΈ΅μμ μ¬μ©λλ νλ‘ν μ½ (λ°μ΄ν° μ λ¬)
- TCP(Transmission Control Protocol) : μΈν°λ·μμμ λ°μ΄ν°λ₯Ό λ©μΈμ§μ ννλ‘ λ³΄λ΄κΈ° μν΄ IPμ ν¨κ» μ¬μ©νλ νλ‘ν μ½
- UDP(User Datagram Protocol) : λ°μ΄ν°λ₯Ό λ°μ΄ν°κ·Έλ¨ λ¨μλ‘ μ²λ¦¬νλ νλ‘ν μ½
TCPλ λμ μ λ’°μ±μ, UDPλ λΉ λ₯Έ μλλ₯Ό νΉμ§μΌλ‘ κ°λλ€.HTTPλ₯Ό μ΄μ©ν λλ HTTP νλ‘μ! λ€μν νλ‘ν μ½μ μ΄μ©ν λλ SOCKS νλ‘μ !
HTTP νλ‘μλ SOCKS νλ‘μ λ³΄λ€ HTTP λ°μ΄ν°λ₯Ό λ€λ£¨λ λ° μλκ° λΉ λ₯΄κ³ λ‘λ©μ΄ 짧λ€. HTTP νλ‘μκ° νλμ νλ‘ν μ½μ μ λ¬ΈμΌλ‘ νκΈ° λλ¬Έμ HTTP μ²λ¦¬λ₯Ό μν΄ λ λ§μ λꡬλ₯Ό κ°μΆκ³ μκΈ° λλ¬Έμ΄λ€.
β» μ°Έκ³ μλ£
https://developer.mozilla.org/en-US/docs/Glossary/Proxy_server
https://nordvpn.com/ko/blog/peuroksi-seobeo/
https://dany-it.tistory.com/107
https://realforce111.tistory.com/2
https://code-masterjung.tistory.com/53
https://m.blog.naver.com/any9122/221865812776
'π» IT Study > Knowledge' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ©μ΄μ 리] μ»΄νμΌ(Compile), λ§ν¬(Link), λΉλ(Build) (0) 2022.04.10 [μ©μ΄μ 리] JVM , JRE, JDK κ°λ¨ν μμ보기 (0) 2021.11.07 μ±κΈν€(Singleton) (0) 2020.07.23 DNS(Domain Name System) (0) 2020.02.13 λͺ¨λμ°κ³ ; EAI, ESB (0) 2020.02.06