쉘에서 다음과 같이 치면 현재 열린 포트 목록을 확인할 수 있다.
sudo lsof -PiTCP -sTCP:LISTEN
특정 포트를 찾아 포트를 닫고 싶으면 다음과 같이 쳐서 PID를 알아낸다.
sudo lsof -i :3000
여기서 3000이 포트번호이다.
위에서 나온 PID를 다음 명령어에 넣으면 포트가 닫힌다.
sudo kill -9 PID
현재 네트워크의 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 출력
netstat [옵션]
# 주요 옵션
-a : 모든 네트워크 상태 출력
-t : TCP 프로토콜만 출력
-n : 도메인 주소를 숫자로 출력
-l : 리스닝 중인 네트워크 출력
-p : PID와 사용중인 프로그램명 출력
lecc /etc/services
리눅스에서 방화벽 구성이나 NAT, 포트에 대한 설정시 사용하는 기본 명령어
#기본 사용 문법
iptables [-t 테이블] [액션] [체인] [매치] [-j 타겟]
-A (Append) : 정책 추가
-I (Insert) : 정책 삽입
-D (Delete) : 정책 삭제
-R (Replace) : 정책 교체
-F (Flush) : 모든 정책 삭제
-P (Policy) : 기본 정책 설정
-L (List) : 정책 나열
INPUT : 입력
OUTPUT : 출력
FORWARD : 내부망
-s (source) : 출발지 매칭
-d (destination) : 목적지 매칭
-p (protocol) : 프로토콜 매칭
-i (in) : 입력 인터페이스 매칭
-o (out) : 출력 인터페이스 매칭
-j (jump) : 매치되는 패킷을 어떻게 처리할 지 지정
ACCEPT : 패킷 허용
DROP : 패킷 거부
REJECT : 패킷 거부, + 거부 메시지 출력
LOG : 패킷을 syslog에 기록
RETURN : 호출 체인 내에 패킷 처리를 지속
iptables -L
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
iptables -I INPUT -p tcp --dport 8080 -j DROP
iptables -D [뒤 내용은 정책 삽입 시와 동일)
iptables -I INPUT -p tcp -j ACCEPT
iptables -I INPUT -p tcp -j DROP
service iptables save
service iptables restart
ufw는 데비안 계열, 우분투 OS에서 작동되는 사용하기 쉬운
간단하고 직관적인 명령어 set의 쉘 명령어이다.
# default가 방화벽 disable 상태이다.
# 방화벽 실행
ufw enable
# 방화벽 정지
ufw disable
ufw status
or
systemctl status ufw
or
service ufw status
# default는 외부접속은 모두 허용, 외부에서 내부로 접속은 모두 차단
# 방화벽 모두 허용
ufw default allow
# 방화벽 모두 차단
ufw default deny
# 80포트 허용
ufw allow 80/[tcp/udp]
# 80포트 거부
ufw deny 80/[tcp/udp]
# 등록된 80포트 삭제
ufw delete deny 80
# 특정 IP 허용
ufw allow from 192.168.0.0
# 특정 IP 차단
ufw deny from 192.168.0.0
ufw reload
ufw reset