Linux

UFW(Uncomplicated Firewall)

LeeJaeJun 2024. 2. 24. 23:51
728x90
반응형

IP와 Port

  • IP(Internet Protocol)
    • IP는 컴퓨터 네트워크에서 통신에 사용되는 프로토콜
    • 네트워크에 연결된 각 기기를 식별하는 데 사용
    • IPv4, IPv6 주소 형식을 주로 사용
  • 포트 (Port)
    • 컴퓨터 내에서 특정 프로세스나 서비스를 식별하는 데 사용
    • 네트워크 통신은 송신자와 수신자 간의 IP 주소뿐만 아니라 포트 번호도 포함하여 이루어짐
    • 포트 번호는 0에서 65535까지의 범위
    • Well-known ports: 0에서 1023번까지의 포트로, 널리 알려진 서비스가 할당
      • HTTP (포트 80), HTTPS (포트 443), SSH(포트 22)
    • Registered ports: 1024에서 49151번까지의 포트로, 등록된 서비스가 할당
    • Dynamic or private ports: 49152에서 65535번까지의 포트로, 일반적으로 클라이언트 프로그램이 사용

 

내부 IP와 외부 IP

  • 내부 IP
    • 로컬 네트워크 내에서 사용되는 IP 주소
    • 로컬 네트워크에 연결된 각 기기에 할당
    • 일반적으로 로컬 네트워크에만 유효하며, 외부 네트워크(인터넷)에서는 직접적으로 접근할 수 없음
    • 내부 IP 주소 범위
      • 10.0.0.0 ~ 10.255.255.255 (CIDR: 10.0.0.0/8)
      • 172.16.0.0 ~ 172.31.255.255 (CIDR: 172.16.0.0/12)
      • 192.168.0.0 ~ 192.168.255.255 (CIDR: 192.168.0.0/16)
  • 외부 IP (External IP 또는 Public IP):
    • 인터넷에 연결된 각 기기에 할당되는 고유한 IP 주소
    • 인터넷을 통해 기기에 접근할 때 사용
    • 인터넷 서비스 제공업체(ISP)에 의해 할당되며, 공개적으로 접근 가능
    • 외부 IP 주소는 ISP에 따라 다를 수 있음

즉, 내부 IP는 로컬 네트워크 내에서 통신에 사용되고, 외부 IP는 인터넷 통신에 사용!

 

 

ifconfig

네트워크 인터페이스의 상태를 보여주고, 해당 인터페이스에 할당된 IP 주소를 확인하는 데 사용

ifconfig

 

netstat

  • 네트워크 연결 및 라우팅 테이블을 보여주는 데 사용
  • 특히, 현재 시스템에서 수신 및 송신되는 네트워크 연결의 상태와 포트를 확인하는 데 유용
  • -t: TCP 연결 정보 표시
  • -u: UDP 연결 정보 표시
  • -a: 모든 연결 정보 표시
  • -l: 리스닝 상태인 소켓만 표시
  • -n: 숫자로 표시 (호스트 이름을 숫자로 변환하지 않고 IP 주소 자체를 출력)
# 모든 연결 및 포트 확인
netstat -tuln

# 리스닝 상태인 TCP 포트 표시
netstat -tln

# 모든 TCP 연결 표시
netstat -tan  

# 특정 프로토콜에 대한 연결 및 포트 확인 (예: TCP)
netstat -tuln | grep "tcp" # grep: 주어진 텍스트에서 패턴과 일치하는 행을 검색

# 특정 포트를 사용하는 연결 확인 (예: 포트 80):
netstat -tuln | grep ":80"

 

UFW(Uncomplicated Firewall)

  • Ubuntu 및 기타 Debian 계열의 Linux 시스템에서 사용되는 간단한 방화벽 구성 도구
  • 즉, Ubuntu에서 기본적으로 제공하는 방화벽 툴
  • iptables를 기반으로 하지만 iptables보다 사용하기 쉽고 직관적
  • ufw를 사용하면 네트워크 트래픽을 제어하고 방화벽 규칙을 설정 가능
  • 기본적으로 모든 인바운드 연결을 차단하고, 모든 아웃바운드 연결을 허용하는 정책
  • 즉, 새로운 UFW 설치 후에는 모든 네트워크 트래픽이 거부
  • sudo ufw enable: 방화벽을 활성화합니다.
  • sudo ufw disable: 방화벽을 비활성화합니다.
  • sudo ufw allow 포트번호: 지정된 포트로의 연결을 허용합니다.
  • sudo ufw deny 포트번호: 지정된 포트로의 연결을 차단합니다.
  • sudo ufw allow 서비스명: 지정된 서비스로의 연결을 허용합니다.
  • sudo ufw deny 서비스명: 지정된 서비스로의 연결을 차단합니다.
  • sudo ufw status: 현재 방화벽 규칙의 상태를 표시합니다.
sudo ufw allow 80/tcp   # HTTP 서비스 허용
sudo ufw allow 22/tcp   # SSH 서비스 허용
sudo ufw allow from 192.168.0.100 # 특정 IP 주소(예: 192.168.0.100)로부터의 모든 연결을 허용

 

모든 ip접근을 막았을 때 변화

 

  1. 외부로의 접근 제한:
    • 외부에서 시스템에 SSH, HTTP, HTTPS 등과 같은 서비스에 접근할 수 없습니다.
    • 외부에서의 ICMP 패킷을 통한 ping과 같은 네트워크 도구를 사용하여 시스템에 대한 연결 상태를 확인할 수 없습니다.
  2. 로컬 서비스 접근에는 영향이 없음:
    • 로컬에서 실행 중인 서비스에는 영향이 없습니다. 즉, 시스템 내부에서 서비스에 접근할 수는 있습니다.
  3. 시스템 자체는 정상 작동:
    • ufw가 모든 외부 접근을 차단하는 것이지만, 시스템 자체는 정상적으로 작동합니다. 외부 서비스에 의존하지 않는 서버의 경우에는 이러한 설정을 적용할 수 있습니다.
  4. 보안 강화:
    • 모든 IP 접근을 막음으로써 시스템의 보안이 강화됩니다. 외부에서의 공격이나 불법적인 접근을 막을 수 있습니다.

 

22번 포트 접근 막았을 때 변화

22번 포트는 SSH 서비스에 사용되는 기본 포트

  1. SSH 접근 불가능:
    • 외부에서 SSH 클라이언트를 사용하여 시스템에 접속할 수 없습니다. SSH 클라이언트는 22번 포트를 통해 SSH 서버와 통신하므로 해당 포트에 대한 접근이 차단되면 원격으로 시스템에 접속할 수 없습니다.
  2. 원격 관리 제한:
    • SSH를 사용하여 원격으로 시스템을 관리하던 경우, 해당 방법이 더 이상 작동하지 않습니다. 원격으로 시스템에 접속하여 파일을 전송하거나 명령을 실행할 수 없게 됩니다.
  3. 보안 강화:
    • SSH 포트를 차단함으로써 시스템의 보안이 강화됩니다. 공격자는 SSH를 통해 시스템에 액세스하는 시도를 차단되어 시스템 보안이 더욱 향상됩니다.
  4. 다른 포트 사용 가능:
    • SSH 서비스를 사용할 수 있도록 하려면 다른 포트를 사용하여 SSH 서비스를 구성해야 합니다. 그러나 보안상의 이유로 다른 포트를 사용할 때에도 안전한 비밀번호 및 키 인증 방법을 사용하는 것이 좋습니다.
728x90
반응형

'Linux' 카테고리의 다른 글

심볼릭 링크(Symbolic Link)  (0) 2024.02.25
SSH (Secure Shell), NC (Netcat)  (1) 2024.02.25
VIM과 shell script  (1) 2024.02.24
Permission of Linux  (0) 2024.02.23
Ubuntu 운영체제의 패키지  (0) 2024.02.22