본문 바로가기
프로그래밍/LINUX

[LINUX 40일차] CentOS ss( netstat ) / Firewalld( 실행, 영역, 설정 )

by B T Y 2017. 5. 7.
반응형

CentOS ss( netstat ) / Firewalld( 실행, 영역, 설정 )에 대해서 정리한다.

 

 

※ ss ( netstat )

 

 

- socket 상태 확인 command

 

- 옵션

  -a     all, 모든 소켓 표시
  -n     numeric, 숫자로만 표시
  -t     tcp
  -u     udp
  -l     listening
  -4     ipv4
  -6     ipv6
  -p     process

 

 

1. State 

LISTEN      (클라이언트한테) 서비스 요청을 기다리고 있는 상태
 UNCONN      UDP
 ESTAB      실제로 데이터를 교환하고 있는 상태
 TIME-WAIT     연결 종료 후 일정시간동안 유지하고 있는 상태
 FIN-WAIT      연결 종료 중인 상태
 SYN-SENT      SYN 패킷을 보낸후 연결을 요청한 상태
 SYN-RECEVIED     SYN 패킷을 받은후 ACK 패킷을 기다리고 있는 상태

 

 

2. Recv-Q, Send-Q
 소켓 버퍼 사이즈

 

 

3. Local Address:Port , Peer Address:Port ( Local Address에 연결 되있는 주소 )
 - ipv4
  0.0.0.0:<port_number>
  *:<port_number>


 - ipv6
  :::<port_number> ( ipv4 포함한 모든 주소 )

 -> ipv6에서 ipv4 표현 방법
  ::ffff:<ipv4_address>:<port_number>

 

 

 

( 보통 ss -ant 명령어를 자주 사용하고 출력하고 싶은 내용을 기준으로 옵션을 여러개 사용하면 된다 )

 


 

※ Firewalld

 

 

1. firewalld 실행
 #>systemctl restart firewalld
 #>systemctl enable firewalld

 

 * firewalld를 실행하면 따로 서비스 포트를 열어주지 않으면 클라이언트가 서버의 서비스로 접속 불가

 

 - reload
 #>firewall-cmd --reload
 - state
 #>firewall-cmd --state

 

 

2. zone ( 영역 )


 - 영역의 종류 확인
  #>firewall-cmd --get-zones
  
 - ( default zone ) 기본 영역 확인
  #>firewall-cmd --get-default
  #>firewall-cmd --get-active
 -> /etc/firewalld/firewalld.conf

 

 

( firewalld.conf 파일에 들어가보면 기본 영역이 public으로 설정 되있는걸 볼 수 있다 )

 

 

3. 설정


 #>firewall-cmd 
  --zone=<zone_name>      영역 설정
  --permanent      영구적
  --list-all       영역의 설정 값 출력
  --get-service   모든 서비스 목록 확인 ( 사용하려는 서비스가 없을때는 포트를 적어주면 된다 )
 ( zone 옵션을 쓰지 않으면 default zone에 설정 )


1) 영역 생성/삭제
 #>firewall-cmd --new-zone=<zone_name>
  #>firewall-cmd --permanent --new-zone=korea
  ( firewall-cmd --get-zone으로는 결과를 확인 불가 )
 #>firewall-cmd --delete-zone=<zone_name>
  #>firewall-cmd --permanent --delete-zone=work
  ( 기본값 영역은 지울수 없다 )

 

2) interface 설정
 #>firewall-cmd --zone=<zone_name> --change-interface=<interface_name>
  #>firewall-cmd --reload
  #>firewall-cmd --zone=work --change-interface=eno16777736
  #>firewall-cmd --zone=work --list-all
  #>firewall-cmd --reload

  ( korea 영역은 새로 만들어서 기본 설정이 없어서 --change-interface 적용 불가 )

 

3) 서비스 설정


 - 서비스 추가
  #>firewall-cmd --zone=<zone_name> --permanent --add-service=<service_name>

  #>firewall-cmd --permanent --add-service=ftp
  #>firewall-cmd --reload
  #>firewall-cmd --list-all

 

 - 서비스 제거
  #>firewall-cmd --zone=<zone_name> --permanent --remove-service=<service_name>

  #>firewall-cmd --permanent --remove-service=ftp
  
4) 포트 설정 ( 서비스 이름을 모르거나 제공하지 않을때 등... )


 - 포트 추가
  #>firewall-cmd --zone=<zone_name> --permanent --add-port=<port_number>/<protocol>

  #>firewall-cmd --permanent --add-port=21/tcp
  #>firewall-cmd --reload
  #>firewall-cmd --list-all

 

 - 포트 제거
  #>firewall-cmd --zone=<zone_name> --permanent --remove-port=<port_number>/<protocol>

  #>firewall-cmd --permanent --remove-port=21/tcp
  #>firewall-cmd --reload
  #>firewall-cmd --list-all

 

 

( firewall-cmd 명령어를 이용할때 영역을 따로 지정해주지 않는다면 기본 영역으로 실행이 된다 )

 

 

( firewall-cmd --get-service를 통해서 서비스명으로 설정을 할 수도 있고 포트 번호를 통해서 설정을 할 수도 있다 )

 

 

ex) work 영역에 http 서비스를 추가( 영구적으로!! )
 #>firewall-cmd --zone=work --permanent --add-port=80/tcp
   or
 #>firewall-cmd --zone=work --permanent --add-service=http

 #>firewall-cmd --reload
 #>firewall-cmd --zone=work --list-all

 

 

 

반응형

댓글