본문 바로가기
Embedded

Linux- netstat, nmap. ufw로 네트워크 접근 관리

by gigasound 2021. 8. 10.
hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style5" />

netstat

netstat -a 명령어로 모든 network의 동작 상태를 볼 수 있습니다.

netstat -l은 리스닝 상태만 보여줍니다. 

netstat -lnpt로 tcp의 리스닝 상태의 포트만 볼 수 있습니다. 

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      556/mono
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      513/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1246/cupsd
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      1033/sshd: pi@pts/0
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      504/vncserver-x11-c

특정 포트의 사용 상태를 알고 싶으면 다음의 명령어를 사용합니다. 여기서는 22번의 ssh 연결 상태를 보여줍니다.

결과는 보면 192.168.0.9번과 연결되어 사용되고 있음을 보여줍니다. 

sudo netstat -anp | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      513/sshd
tcp        0      0 192.168.0.27:22         192.168.0.9:57880       ESTABLISHED 1026/sshd: pi [priv
tcp        0     36 192.168.0.27:22         192.168.0.9:57878       ESTABLISHED 1023/sshd: pi [priv
unix  2      [ ACC ]     STREAM     LISTENING     15422    1/init               /run/thd.socket
unix  3      [ ]         STREAM     CONNECTED     18522    573/systemd
unix  3      [ ]         STREAM     CONNECTED     22945    1246/cupsd
unix  3      [ ]         STREAM     CONNECTED     14022    457/cron
unix  3      [ ]         STREAM     CONNECTED     22951    1246/cupsd
unix  2      [ ]         DGRAM                    6722     119/systemd-journal
unix  3      [ ]         STREAM     CONNECTED     15229    573/systemd
unix  3      [ ]         STREAM     CONNECTED     22001    430/dbus-daemon      /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     22003    430/dbus-daemon      /var/run/dbus/system_bus_socket

 


nmap

사용 중인 포트의 정보는 nmap를 통해서 쉽게 알아볼 수 있습니다. 먼저 nmap을 설치합니다.

sudo apt-get install nmap

그리고 다음과 같이 실행하면 현재 네트워크의 포트 상태를 볼 수 있습니다. 22번이 ssh를 위해 5900에 vnc를 위해 사용되고 있음을 보여줍니다. 

sudo nmap localhost
Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-11 01:23 KST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000084s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
631/tcp  open  ipp
5900/tcp open  vnc
8084/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 3.49 seconds

ufw

ufw로 포트 관리를 통해 보안 상태를 제어할 수 있습니다.

먼저 다음 명령어로 ufw를 설치합니다.

sudo apt-get install ufw

다음 명령어로 포트 개방을 설정합니다. 이 방법으로 외부 네트워크에서 접근 가능한 포트를 제한합니다. ssh 22, vnc 59**, 기타 목적으로 800*만 개방한 상태입니다. 

sudo ufw enable 
sudo ufw allow 8002
sudo ufw allow 8001
sudo ufw allow 22
sudo ufw allow 5900
sudo ufw allow 5901

ufw를 사용하고 싶지 않으면 다음과 같이 실행합니다. 실행하려면 enable을 적용하면 됩니다. 

sudo ufw disable

ufw의 상태를 알고 싶으면 다음 명령어를 사용합니다.

sudo ufw status

특정 포트의 사용 여부는 다음 명령어를 사용합니다.

sudo ufw allow 8015/tcp
sudo ufw deny 8015/tcp