-
LINUX TCP DUMP를 활용한 포트 확인System of Infra/Linux System 2021. 8. 8. 16:49728x90반응형
Linux TCPDUMP를 활용한 포트 확인
[root@test_svr01 /]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core) -> 해당 운영체제의 버전
-> 해당 OS의 버전 확인 명령어를 통해서 TCP DUMP 테스트를 진행할 운영체제 버전을 확인합니다. 현재 OS의 버전은 Cent 7.8 버전인 것을 확인할 수 있습니다.
[root@test_svr01 /]# yum list | grep -i tcpdump tcpdump.x86_64 14:4.9.2-4.el7_7.1 @anaconda [root@test_svr01 /]# tcpdump -V tcpdump: option requires an argument -- 'V' tcpdump version 4.9.2 -> 해당 TCPDUMP의 버전 libpcap version 1.5.3 OpenSSL 1.0.2k-fips 26 Jan 2017
-> 해당 운영체제에 TCPDUMP의 파일 셋이 존재하는지의 여부와 설치가 되었다면 해당 명령어를 통해서 확인을 합니다. 현재 TCPDUMP는 4.9.2를 사용하고 있는것을 확인할 수 있습니다.
[root@test_svr01 /]# rpm -qa | grep -i openssh openssh-clients-7.4p1-21.el7.x86_64 openssh-7.4p1-21.el7.x86_64 openssh-server-7.4p1-21.el7.x86_64 [root@test_svr01 /]# yum list installed | grep -i openssh Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast openssh.x86_64 7.4p1-21.el7 @anaconda openssh-clients.x86_64 7.4p1-21.el7 @anaconda openssh-server.x86_64 7.4p1-21.el7 @anaconda [root@test_svr01 /]# ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
-> 원격지에서 SSH 접속을 통해서 접근을 시도하기 위해서 해당 운영체제에 Openssh의 버전과 파일 셋이 설치가 되어 있는지 확인합니다. rpm, yum 또는 ssh -v를 통해서 확인할 수 있습니다.
[root@test_svr01 /]# netstat -ntl | grep 22 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN [root@test_svr01 /]# ps -ef | grep sshd root 52038 1 0 Jun09 ? 00:00:00 /usr/sbin/sshd -D root 176588 173862 0 11:34 pts/1 00:00:00 grep --color=auto sshd [root@test_svr01 /]# cat /etc/ssh/sshd_config | grep sftp Subsystem sftp /usr/libexec/openssh/sftp-server
-> test_svr01 서버의 22번 ssh포트가 listen 상태인 것을 확인하고 데몬 역시 활성화가 되어 있는지 확인을 합니다. 추가적으로 sftp를 사용하게 된다면 sftp의 활성화가 된 것을 확인합니다.
[root@test_svr02 /]# cat /etc/services | grep sftp sftp 115/tcp sftp 115/udp venus-se 2431/udp # udp sftp side effect codasrv-se 2433/udp # udp sftp side effectQ utsftp 2529/tcp # UTS FTP utsftp 2529/udp # UTS FTP [root@test_svr02 /]# ps -ef | grep sshd root 212487 1 0 Jun09 ? 00:00:00 /usr/sbin/sshd -D root 244982 241921 0 11:34 pts/0 00:00:00 grep --color=auto sshd [root@test_svr02 /]# cat /etc/services | grep sftp sftp 115/tcp sftp 115/udp utsftp 2529/tcp # UTS FTP utsftp 2529/udp # UTS FTP [root@test_svr02 /]# cat /etc/ssh/sshd_config | grep sftp Subsystem sftp /usr/libexec/openssh/sftp-server
-> test_svr02 서버 역시 test_svr01과 동일한 ssh 데몬 및 22번 포트가 활성화되어 있는지 확인을 합니다.
[root@test_svr01 /]# systemctl restart sshd [root@test_svr02 /]# systemctl restart sshd
-> test_svr01,test_svr02 서버의 sshd 데몬을 재기동을 진행하도록 합니다.
[root@test_svr01 /]# ifconfig -a bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 172.17.***.**1 netmask 255.255.255.0 broadcast 172.17.***.*** [root@test_svr02 /]# ifconfig -a | more bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 172.17.***.**2 netmask 255.255.255.0 broadcast 172.17.***.***
-> 1번서버의 IP와 2번 서버의 IP 정보를 확인합니다.
[root@test_svr02 /]sftp root@172.17.***.**1 The authenticity of host '172.17.***.**1 (172.17.***.**1)' can't be established. RSA key fingerprint is SHA256:/tBl27oVj8DdB15sFHM30NnyO8BWJN2y+WJnUskqz7c. Are you sure you want to continue connecting (yes/no/[fingerprint])? Warning: Permanently added '172.17.***.**1' (RSA) to the list of known hosts. root@172.17.***.**1's password: Connected to 172.17.***.**1. sftp>
-> 2번 서버에서 1번 서버로 sftp 시도 시 패스워드 여부를 묻게 되고 패스워드를 입력하게 되면 접속이 허용되는 것을 확인할 수 있습니다.
[root@test_svr02 /]sftp root@172.17.***.**1 root@172.17.***.**1's password:
-> 2번 서버에서 1번 서버로 sftp를 다시 한번 시도한 뒤 1번 서버에서 TCPDUMP를 통해서 패킷이 들어오는지 지켜보도록 하겠습니다.
[root@test_svr01 /]# tcpdump -i bond0 src 172.17.***.**2 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on Team0, link-type EN10MB (Ethernet), capture size 262144 bytes 13:49:50.813404 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [SEW], seq 4184010278, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0 13:49:50.815380 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [.], ack 1715537856, win 8212, length 0 13:49:50.819340 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [P.], seq 0:33, ack 1, win 8212, length 33 13:49:50.830577 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [P.], seq 33:1353, ack 22, win 8212, length 1320 13:49:50.834425 172.17.***.**2.530722 > test_svr02.ssh: Flags [P.], seq 1353:1401, ack 1302, win 8207, length 48 13:49:50.847861 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [P.], seq 1401:1417, ack 1666, win 8212, length 16 13:49:50.916230 IP 172.17.***.**2.53072 > test_svr02.ssh: Flags [.], ack 1794, win 8212, length 0
-> 1번 서버에서 SRC(출발지)의 IP를 바탕으로 패킷이 전송되면서 접근이 허용되고 있는지 확인을 할 수 있습니다. 이 같은 방법으로 방화벽 또는 어느 포인트에서 통신이 막혀 있는지 추측을 해볼 수 있습니다.
PS. 포스팅의 내용은 제 기준으로 작성한 것이기 때문에 참고해서 보시면 감사하겠습니다.
포스팅 과정의 오류 및 오타 그리고 궁금한 점에 대해서는 댓글 남겨주세요.
728x90반응형'System of Infra > Linux System' 카테고리의 다른 글
LINUX MCCS 클러스터 구축하기 실습(3) (0) 2021.09.06 LINUX MCCS 클러스터 구축하기 실습(2) (2) 2021.08.24 LINUX Locale 언어 변경하는 방법 (0) 2021.07.23 LINUX Centos 7 타임스탬프 설정 (0) 2021.07.08 LINUX Centos 7 방화벽 설정 및 확인 (0) 2021.06.01