Firewall - Leo-Mun/UROP_SDN GitHub Wiki
Firewall
- κΆνμ΄ λΆμ¬ λ ν΅μ μ νμ©νλ©΄μ λ¬΄λ¨ μ‘μΈμ€λ₯Ό μ°¨λ¨νλλ‘ μ€κ³λ μ»΄ν¨ν° μμ€ν λλ λ€νΈμν¬μ μΌλΆ
- κ·μΉκ³Ό μ μ± μ κΈ°λ°νμ¬ λ€νΈμν¬ μ μ‘μ νμ©νκ±°λ κ±°λΆνλλ‘ κ΅¬μ±λλ€.
- λ°©νλ²½μ κ·μΉμ΄ μ¬λ°λ₯΄κ² ꡬμ±λ κ²½μ°μλ§ μμ νλ€.
λ°©νλ²½ κΈ°λ₯
1.μ κ·Ό μ μ΄(Access Control)
- ν΅κ³Όμν¬ μ κ·Όκ³Ό κ·Έλ μ§ μμ μ κ·Όμ κ²°μ νμ¬ νμ©κ³Ό μ°¨λ¨μ ν¨
- μ κ·Ό μ μ΄ λ°©μμ ꡬν λ°©λ²μ λ°λΌ ν¨ν· νν°λ§ λ°©μ(λΌμ°ν°)κ³Ό νλ‘μ λ°©μ(κ²μ΄νΈμ¨μ΄)μΌλ‘ λλ¨
2.λ‘κΉ (Logging)κ³Ό κ°μ¬ μΆμ (Auditing)
- νμ© λλ κ±°λΆλ μ κ·Όμ λν κΈ°λ‘μ μ μ§
3.μΈμ¦(Authentication)
- λ©μμ§ μΈμ¦, μ¬μ©μ μΈμ¦, ν΄λΌμ΄μΈνΈ μΈμ¦μ ν μ μμ
4.λ°μ΄ν° μνΈν
- λ°©νλ²½μμ λ€λ₯Έ λ°©νλ²½κΉμ§ μ μ‘λλ λ°μ΄ν°λ₯Ό μνΈνν΄μ 보λ΄λ κ²μΌλ‘, λ³΄ν΅ VPNμ κΈ°λ₯μ μ΄μ©
λ°©νλ²½ νκ³
1.λ°μ΄λ¬μ€λ₯Ό λ§μ μ μμ
- λ°©νλ²½μ ν¨ν·μ IP μ£Όμμ ν¬νΈ λ²νΈλ‘ μ κ·Ό μ μ΄λ₯Ό νλ κ²μ΄ 보ν΅μ΄μλ§ μ’ λ λμ μμ€μ μ κ·Ό μ μ΄κ° κ°λ₯λλΌλ ν¨ν·μ λ°μ΄ν° λ΄μ© μ체λ κ²μ¬νμ§ μλ κ²μ΄ 보ν΅μ΄λ€. κ·Έ μ΄μ λ λ°©νλ²½μ λ³΄ν΅ λ λ€νΈμν¬ μ¬μ΄μ μ‘΄μ¬νλ©°, λμ νΈλν½μ μ²λ¦¬ν΄μΌ νλ―λ‘ λ°μ΄ν° λ΄μ©κΉμ§ κ²μ¬νλ©΄, ν° μ€λ²ν€λ(overhead)κ° λ°μνκ³ λ€νΈμν¬ λμνμ ν° μμ€μ κ°μ Έμ€κΈ° λλ¬Έμ΄λ€.
2.λ°©νλ²½μ μμ μ ν΅κ³Όνμ§ μμ ν΅μ μ λν μ μ΄κ° λΆκ°λ₯
- λ΄λΆ μ¬μ©μκ° λ°©νλ²½μ ν΅κ³Όνλ ν΅μ μ λ‘κ° μλ 무μ μ΄λ μ¬μ€ ν΅μ μ λ‘λ₯Ό μ΄μ©ν΄ ν΅μ μ νλ€λ©΄, 곡격μλ λ°©νλ²½μ μ°ννμ¬ λ΄λΆ λ€νΈμν¬λ‘ μ μν μ μμ
- λ΄λΆ μ¬μ©μ μμ λ°©νλ²½μ μ°ννμ¬ μΈλΆλ‘ νμ©λμ§ μμ μ μμ μλν μ μμ
3.λ°©νλ²½μ μ ν μλ‘μ΄ ννμ 곡격μ λ§μ μ μμ
-λ°©νλ²½μ μμΈ‘λ μ μμ λν κ·μΉμ μΈμ°κ³ μ΄μ λν΄μλ§ λ°©μ΄νκΈ° λλ¬Έμ μλ‘μ΄ ννμ 곡격μλ λ₯λμ μΌλ‘ μ μ©ν μ μμ -μ€μ λ‘ λ§μ ν΄νΉ κ³΅κ²©μ΄ λ°©νλ²½μ μ°ννκ±°λ ν΅κ³Όνλ λ° μ±κ³΅νμ¬ κ³΅κ²©μ μ€ννλ―λ‘ λ³΄μμ μμ±μ μ λ μλ
Firewall Rules
- (s_ip, s_port, d_ip, d_port, protocol, action, interface) λ‘ μΈνμ΄ λ€μ΄μ¨λ€.
- μ΄ λ€μ΄μ¨ μΈνκ°μμ νν°λ§μ νμ¬ λ°©νλ²½μ΄ μλλλ€.
Stateless Firewall v.s Stateful Firewall
- Stateless λ httpμ κ°μ΄ μ΄μ μ μνλ₯Ό κΈ°λ‘νμ§ μλ μ μμ΄λ€ λ°λ©΄ Statefulμ 보ν΅μ κ²μκ³Ό κ°μ΄ μνλ₯Ό κΈ°μ΅νκ³ μλκ²μ΄λ€.
- μ΄μ λ°©νλ²½μμ μκ°μ νλ©΄, statefulμ μμ² μ 보(λ΄λΆ μΈλΆλ‘ μ μνλ μ μμ λν μ 보,syn)μ μ μ₯νμ¬, μΈλΆλ‘ λΆν° λ΄λΆλ‘ μ€λ μλ΅ ( syn-ack )μ λ°μ λ synμ λΉκ΅νμ¬ ν΅κ³Ό μ¬λΆλ₯Ό κ²°μ νλ λ°©μ
- λ°λ©΄ statelessλ μμ²κ³Ό μλ΅μ λν΄μ λ€ κ²μ¬λ₯Ό ν΄μΌνλ©° μλ΅μ λν΄μλ tcp ν€λλ₯Ό νμΈν΄μΌ λλ κ³Όμ μ΄ μΆκ°λμ΄ κ³ μμ²λ¦¬κ° νλ€λ€.
Firewall ꡬ쑰
1. μ€ν¬λ¦¬λ λΌμ°ν°
ν¨ν·νν°λ§ λ°©μμ λ°©νλ²½
- IP/ TCP/ UDPμ ν€λ λΆλΆλ§ λΆμ -> λ€νΈμν¬ κ³μΈ΅μμλ§ λμ, μλ δΈ
- μμκ³μΈ΅ λ°©μ΄X, λ‘κΉ κ΄λ¦¬ X
2. λ°°μ€μ² νΈμ€νΈ
λ°©νλ²½μ΄ μ€μΉλ νΈμ€νΈ(λ‘κΉ , νλ‘μ, λ°©νλ²½ κΈ°λ₯)
- λ°©νλ²½ μν μ μννλ μλ²λ‘ μ λμ€ μν¬μ€ν μ΄μ μ΄λ μλμ° NTμλ²κ° μ΄ν΄ ν΄λΉ
- μΈν°λ· λ±μ μΈλΆ λ€νΈμν¬μ λ΄λΆ λ€νΈμν¬λ₯Ό μ°κ²°ν΄ μ£Όλ λ°©νλ²½ μμ€ν μν μ μν
- μ κ·Ό μ μ΄μ μΈμ¦ λ° λ‘κ·Έ κΈ°λ₯μ μ 곡
- λ² μ€μ² νΈμ€νΈκ° μμλκ±°λ λ‘κ·ΈμΈ μ λ³΄κ° λμΆλλ©΄ λ΄λΆ λ€νΈμν¬λ₯Ό 보νΈν μ μλ€.
- 2κ³μΈ΅ 곡격 μ°ν κ°λ₯
3. λμΌ νλ νΈμ€νΈ
λ°°μ€μ² νΈμ€νΈμ λμΉ΄λ 2κ°λ₯Ό μ€μΉ (λ΄λΆμ©, μΈλΆμ©)
- λ² μ€μ² νΈμ€νΈμμ IP ν¨ν· νν°λ§X -> νλ‘μ κΈ°λ₯λΆμ¬
- ν¨ν· μΈλΆλ§κ³Ό λ΄λΆλ§ κ°μ μ§μ ν΅μ X
- 보μμ± δΈ, ν¬λͺ μ± δΈ
4.μ€ν¬λ¦°λ νΈμ€νΈ
- λ°°μ€μ² νΈμ€νΈ + μ€ν¬λ¦° λΌμ°ν° λΌκ³ 보면 λ¨
- λ€νΈμν¬ & μμ©κ³μΈ΅μμ λ°©μ΄ => 보μμ±, μ΅ν΅μ± δΈ
- μ€ν¬λ¦¬λ λΌμ°ν°μ λΌμ°ν ν μ΄λΈλ§ λ³κ²½λλ©΄ λ°©μ΄ν μ μμ
5.μ€ν¬λ¦°λ μλΈλ·
- μΈλΆ λ€νΈμν¬μ λ΄λΆ λ€νΈμν¬ μ¬μ΄μ μλΈλ·(subnet)μ΄λΌλ μμΆ©μ§λλ₯Ό λλ κ²
- λ°©νλ²½λ μλΈλ·μ μμΉνλ©° μ£Όλ‘ νλ‘μκ° μ€μΉλ¨
- λ€λ₯Έ λ°©νλ²½μ μ₯μ μ λͺ¨λ κ°μΆκ³ μμΌλ©° μ΅ν΅μ±μ΄ μμ£Ό λ°μ΄λ¨
- ν΄μ»€κ° μΉ¨μ νλ €λ©΄ ν΅κ³Όν κ²μ΄ λ§μ μλΉν μμ ν νΈ
- λ€λ₯Έ λ°©νλ²½λ³΄λ€ μ€μΉμ κ΄λ¦¬κ° μ΄λ ΅κ³ , μλΉμ€ μλκ° λ리며, λΉμ©λ λ§λ§μΉ μμ
- μ΄μ€ ν κ²μ΄νΈμ¨μ΄μ μ μ©ν κ²½μ° λ¨μΌ ν κ²μ΄νΈμ¨μ΄λ₯Ό μ΄ κ²½μ°λ³΄λ€λ λΉ λ₯΄λ©° μ’ λ κ°λ ₯ν 보μ μ μ± μ μ€νν μ μμ
λ°©νλ²½ μ ν
ν¨ν· νν°λ§
OSI 7 Layerμμ Layer3(λ€νΈμν¬κ³μΈ΅)κ³Ό Layer4(μ μ‘κ³μΈ΅)λ¨μμ ν¨ν·μ΄ ν€λλ₯Ό κ²μ¬νμ¬ μΆλ°μ§ λ° λͺ©μ μ§ IP μ£Όμ μ 보, κ° μλΉμ€μ port λ²νΈλ₯Ό μ΄μ©ν΄ μ μμ μ΄λ₯Ό νλ λ°©νλ²½μ λλ€. μ²λ¦¬μλκ° λΉ λ₯΄λ©° μ μ© λ° μ΄μ©μ΄ μ½μ΅λλ€. νμ§λ§ TCP/IP νλ‘ν μ½μ ꡬ쑰μ μΈ λ¬Έμ λλ¬Έμ TCP/IP ν¨ν·μ ν€λλ μ½κ² μ‘°μ κ°λ₯νκ³ ftp, mailμ λ°μ΄λ¬μ€κ° κ°μΌλ νμΌ μ μ‘μ μνν Dataμ λν λΆμμ΄ λΆκ°λ₯ν©λλ€. λ μ μμ μ΄ κ·μΉμ κ°―μ λ° μ μμ μ΄ κ·μΉ μμμ λ°λΌ λ°©νλ²½μ λΆνλ₯Ό λ§μ΄ μ€ μ μμ΅λλ€.
μ ν리μΌμ΄μ κ²μ΄νΈμ¨μ΄ λ°©μ
μ΄ λ°©μμ OSI 7κ³μΈ΅ λͺ¨λΈμ€ **μ ν리μΌμ΄μ (Application)**κ³μΈ΅κΉμ§ λμνλ©° μ§λκ°λ ν¨ν·μ ν€λ(Header)μμ Data μμκΉμ§λ 체ν¬νμ¬ ν΅μ νλ€.
ν΄λΉ μλΉμ€λ³λ‘ νλ½μ(Proxy)λΌλ ν΅μ μ€κ³μ© λ°λͺ¬μ΄ ꡬλλμ΄ κ° μλΉμ€ μμ²μ λνμ¬ λ°©νλ²½μ΄ μ κ·Όκ·μΉμ μ μ©νκ³ μ°κ²°μ λμ νλ μν μ μννλ€. μΈλΆ μμ€ν κ³Ό λ΄λΆ μμ€ν μ λ°©νλ²½μ νλ½μ(Proxy)λ₯Ό ν΅ν΄μλ§ μ°κ²°μ΄ νμ©λκ³ , μ§μ μ°κ²°(IP Connection)μ νμ©λμ§ μκΈ° λλ¬Έμ μΈλΆμ λν λ΄λΆλ§μ μλ²½ν κ²½κ³μ λ°©μ΄ λ° λ΄λΆμ IP μ£Όμλ₯Ό μ¨κΈΈ μ μλ€. μ¦, ν¨ν· νν°λ§(Packet Filtering) κΈ°λ₯μ λ°©νλ²½λ³΄λ€ λ³΄μμ±μ΄ λ°μ΄λ©λλ€. λν λ€λ₯Έ λ°©νλ²½μ λΉν΄μ κ°λ ₯ν λ‘κΉ (Logging) λ° κ°μ¬(Audit) κΈ°λ₯μ μ 곡νλ©°, νλ½μμ νΉμ±μΈ νλ‘ν μ½ λ° λ°μ΄ν° μ λ¬κΈ°λ₯μ μ΄μ©νμ¬ μ¬μ©μ μΈμ¦μ΄λ λ°μ΄λ¬μ€ κ²μκΈ°λ₯κ³Ό κ°μ λΆκ°μ μΈ μλΉμ€λ₯Ό μ§μν©λλ€.
λ¨μ μΌλ‘λ νΈλν½μ΄ OSI 7κ³μΈ΅μμ μ²λ¦¬λκΈ° λλ¬Έμ λ€λ₯Έ λ°©μκ³Ό λΉκ΅ν΄μ λ°©νλ²½μ μ±λ₯μ΄ λ¨μ΄μ§λ©°, λν μΌλΆ μλΉμ€μ λν΄μλ μ¬μ©μμκ² ν¬λͺ ν μλΉμ€λ₯Ό μ 곡νκΈ° μ΄λ ΅λ€. λ°©νλ²½μμ μλ‘μ΄ μλΉμ€λ₯Ό μ 곡νκΈ° μν΄μ μλ‘μ΄ νλ½μ(Proxy) λ°λͺ¬μ΄ μΆκ°μ μΌλ‘ νμνκΈ° λλ¬Έμ. μλ‘μ΄ μλΉμ€μ λν μ μ°μ±μ΄ λ¨μ΄μ§λ€. λν λ°©νλ²½μ΄ μμλκ±°λ κ·Έ κΆνμ λΉΌμκΈ°λ©΄ λμ΄μ 보νΈν μ μκ³ , 2κ³μΈ΅ 곡격 λ±μ ν΅ν΄ λ°©νλ²½μ μ°νν μ μλ€.
μν· κ²μ΄νΈμ¨μ΄
μν· κ²μ΄νΈμ¨μ΄(Circult Gateway) λ°©μμ OSI 7κ³μΈ΅ ꡬ쑰μμ μΈμ
κ³μΈ΅(Sessionο»Ώ Layer)μμ μ΄ν리μΌμ΄μ
κ³μΈ΅(Application Layer) μ¬μ΄μμ μ κ·Όμ μ΄(Access Control)λ₯Ό μ€μνλ λ°©νλ²½μ μ§μΉνλ€.
μ΄ν리μΌμ΄μ κ²μ΄νΈμ¨μ΄(Application Gateway)μλ λ¬λ¦¬ κ° μλΉμ€λ³λ‘ νλ½μ(Proxy)κ° μ‘΄μ¬νλ κ²μ΄ μλκ³ , μ΄λ μλΉμ€ νλ‘ν μ½λ μ΄μ©ν μ μλ μΌλ°μ μΈ λν νλ½μλ₯Ό μ΄μ©νλ€.
μν· κ²μ΄νΈμ¨μ΄(Circult Gateway) λ°©νλ²½μ ν΅ν΄μ λ΄λΆ μμ€ν μΌλ‘ μ μνκΈ° μν΄μλ μ¬μ©μμΈ‘ PCμ λ°©νλ²½μ μμΉν λν νλ½μμ ν΅μ νκΈ° μν μμ λ ν΄λΌμ΄μΈνΈ νλ‘κ·Έλ¨μ΄ νμνλ€.
ν΄λΌμ΄μΈνΈ νλ‘κ·Έλ¨μ λͺ¨λ ν΅μ μ μμ λ°©νλ²½μ μλ νλ½μμ μ°κ²°μ λ§Ίκ³ μμ ν ν΅μ μ±λμΈ μν·(Circult)μ ꡬμ±ν ν μ΄ μν·(Circult)μ ν΅ν΄ λ΄λΆ μμ€ν κ³Ό ν΅μ μ νλ€.
μ΄ λ°©μμ λ΄λΆμ IP μ£Όμλ₯Ό μ¨κΈΈ μ μμΌλ©°, μμ λ ν΄λΌμ΄μΈνΈ νλ‘κ·Έλ¨μ΄ μ€μΉλ μ¬μ©μμκ² λ³λμ μΈμ¦μ μ°¨ μμ΄ ν¬λͺ ν μλΉμ€λ₯Ό μ 곡ν μ μλ€λ κ²μ΄λ€.
λ¨μ μΌλ‘λ λ°©νλ²½μ μ μμ μν΄μ μν· κ²μ΄νΈμ¨μ΄λ₯Ό μΈμν μ μλ μμ λ ν΄λΌμ΄μΈνΈ νλ‘κ·Έλ¨μ΄ νμνλ―λ‘ μ¬μ©μλ€μκ² νλ‘κ·Έλ¨μ λ°°ν¬ν΄μΌ νκ±°λ μ¬μ©μ€μΈ μμ©νλ‘κ·Έλ¨μ μμ ν΄μΌ νλ λ²κ±°λ‘μμ΄ μλ€.
Stateful Inspection
Stateful Inspectionμ 1μΈλμ Packet filtering λ°©μκ³Ό 2μΈλμ Application Gateway λ°©μμ μ₯μ μ νΌν©ν 3μΈλ λ°©νλ²½ κΈ°μ
λ€νΈμν¬ κ³μΈ΅(Network Layer)μμ ν¨ν·μ μ²λ¦¬νλ©΄μλ νλ‘ν μ½μ μνμ 보 ν μ΄λΈμ μ μ§νμ¬, νλ‘ν μ½ νΉμ±μ λ°λ₯Έ λ³νλ₯Ό λμ μΌλ‘ λμν΄ μ£Όλ κΈ°λ₯μΌλ‘ μ΅κ·Ό κ±°μ λͺ¨λ λ°©νλ²½ μμ€ν μμ μ¬μ©λκ³ μλ€.
νλμ μλΉμ€μ λν μ κ·Όκ·μΉ(Access Rule)μ μμ±ν λμ λλμλκ°λ Flowμ λν λ λ€λ₯Έ μ κ·Όκ·μΉμ μ€μ ν νμκ° μλ€λ κ²μ΄λ€. ν¨ν· νν°λ§μ κ²½μ° λ΄λΆ μλ²μ λν νμ©μ μν΄ λ€μ΄μ€λ λ°©ν₯(Incoming)μ λν μ κ·Όκ·μΉμ μ€μ νμλ€λ©΄ λλμλκ°λ μλ΅(Outgoing)μ λνμ¬λ λ³λμ μ κ·Όκ·μΉμ΄ νμνλ€. νμ§λ§ μ€ν μ΄νΈν μΈμ€νμ (Stateful Inspection) μμλ μλΉμ€μ λν νΉμ± λ° ν΅μ μνλ₯Ό κ΄λ¦¬ν μ μκΈ° λλ¬Έμ λμλκ°λ ν¨ν·μ λν΄μλ λμ μΌλ‘ μ κ·Όκ·μΉμ μλμμ±νλ€. νμ§λ§ λ°μ΄ν° λ΄λΆμ μ μμ μΈ μ 보λ₯Ό ν¬ν¨ν μ μλ νλ‘ν μ½μ λν λμμ΄ μ΄λ ΅λ€.
λ°©νλ²½ μ·¨μ½μ
- λλμ€, λμ€μ μ·¨μ½ν¨
- μμ ν¨ν·, νλκ·Έλ¨ΌνΈ ν¨ν·
- ν΄κ²°λ°©λ²: λ°©νλ²½μ λ‘λ λ°Έλ°μ±, λ€νΈμν¬ λ°±μ , μ κ·Έλ μ΄λ νλ€.
- μν° λλμ€ μ₯λΉλ₯Ό μ¬μ©νλ€
- Well-known weakness
- μΉμ λ°±λμ΄ μ»¨νΈλ‘€
- P2P
- μΉνλ
DMZ
- μ‘°μ§μ λ΄λΆ λ€νΈμν¬μ μΈλΆλ€νΈμν¬ μ¬μ΄μ μμΉ ν μλΈλ·μ΄λ€.
- λ΄λΆ λ€νΈμν¬μ μΈλΆ λ€νΈμν¬κ° DMZλ‘ μ°κ²°ν μ μλλ‘ νμ©νλ©΄μλ, DMZ λ΄μ μ»΄ν¨ν°λ μ€μ§ μΈλΆ λ€νΈμν¬μλ§ μ°κ²°κ°λ₯νλ€.
- λ°λΌμ λ΄λΆ λ€νΈμν¬λ‘ λΆλ²μ μ°κ²°μ μλνλ μΈλΆ λ€νΈμν¬κ° μλ€λ©΄, DMZκ° λ§λ€λ₯Έ 골λͺ©μ΄ λλ€.
- μ μ λ©μΌ, DNS, μΉμ© μλ²λ λ°μ΄ν° λ² μ΄μ€μ κ°μ μ€μν μλ²μ λΆλ¦¬λλλ‘ DMZμ μμ΄μΌνλ€