리눅스 포트 관리

리눅스 시스템에서 포트 관리는 네트워크 보안과 관련된 중요한 작업입니다. 포트는 컴퓨터와 네트워크 간에 데이터 통신을 위해 사용되며, 악의적인 공격으로부터 시스템을 보호하기 위해 포트의 열림과 닫힘을 제어해야 합니다.

Bash는 리눅스/유닉스 환경에서 가장 일반적으로 사용되는 셸 스크립팅 언어입니다. 쉘 스크립트를 사용하여 리눅스 포트를 관리하는 방법을 알아보겠습니다.

포트 확인하기

특정 포트의 상태를 확인하려면 netstat 명령어를 사용할 수 있습니다. 다음은 특정 포트(예: 80)의 현재 상태를 확인하는 예제입니다.

netstat -tuln | grep ":80"

결과는 해당 포트의 상태(열려있는지 닫혀있는지)와 해당 포트를 사용하는 프로그램을 알려줍니다.

포트 닫기

리눅스에서 포트를 닫으려면 iptables 명령어를 사용하여 방화벽 규칙을 설정해야 합니다. 다음은 포트 80을 닫는 예제입니다.

iptables -A INPUT -p tcp --dport 80 -j DROP

위 명령어는 입력(INPUT) 체인에 TCP 프로토콜을 사용하고 목적지 포트로 80을 지정한 경우 패킷을 DROP하는 규칙을 추가합니다.

포트 열기

리눅스에서 포트를 열려면 iptables 명령어를 사용하여 방화벽 규칙을 설정해야 합니다. 다음은 포트 80을 열고 특정 IP 주소(예: 192.168.1.100)에서의 접근만 허용하는 예제입니다.

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 80 -j ACCEPT

위 명령어는 입력(INPUT) 체인에 TCP 프로토콜을 사용하고 출발지 IP 주소로 192.168.1.100을 지정하며 목적지 포트로 80을 지정한 경우 패킷을 ACCEPT하는 규칙을 추가합니다.

규칙 확인하기

모든 방화벽 규칙을 확인하려면 iptables 명령어를 -L 옵션과 함께 사용합니다.

iptables -L

위 명령어는 현재 설정된 모든 방화벽 규칙을 보여줍니다. 이를 통해 포트 관리에 대한 규칙을 확인할 수 있습니다.

규칙 삭제하기

이전에 추가한 방화벽 규칙을 삭제하려면 iptables 명령어로 -D 옵션을 사용합니다. 다음은 특정 규칙을 삭제하는 예제입니다.

iptables -D INPUT 1

위 명령어는 입력(INPUT) 체인에서 1번째 규칙을 삭제합니다.

위의 예제는 리눅스에서 포트 관리를 위한 기본적인 Bash 스크립트를 보여줍니다. 포트 관리는 보안과 관련하여 중요한 작업이므로 신중하게 수행해야 합니다.