-
[리눅스] 방화벽 ( Firewalld )서버/리눅스 2017. 5. 4. 21:17
사용하는 데몬
firewalld
열려 있는 포트 확인
사용 커멘드
#>ss ( netstat )
[옵션] [기능]
-a all ( 모든 소켓 표시 )
-n numeric ( 숫자로 표시 )
-t tcp
-u udp
-l listening
-4 ipv4
-6 ipv6
-p process ( 해당 소켓을 사용한 프로세스 찾기)
옵션 a의 표시
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
#1 #2 #3 #4
#1 : Netid ( 프로토콜 상태 )
tcp : 3 handshaking ( ping, syn, ack )
up : 비연결
#2 : State ( 상태 )
LISTEN : 서비스 요청을 기다리고 있는 상태 ( tcp )
UNCONN : 서비스 요청을 기다리고 있는 상태 ( udp )
ESTAB : 실제로 데이터를 교환하고 있는 상태
TIME-WAIT : 연결이 종료되었지만 일정시간 유지하고 있는 상태
FIN-WAIT : 연결 종료 중인 상태
SYN-SENT : SYN 패킷을 보낸후 연결을 요청한 상태
SYN-RECEVIED : SYN패킷을 받안 후 ACK 패킷을 기다리고 있는 상태
#3 : Recv-Q Send-Q : 소켓의 버퍼 사이즈
#4 : Local Address:Port , Peer Address:Port
-ipv4
*:port ( 0.0.0.0:port ) : 모든주소
-ipv6
:::port : 모든주소 ( 4도 포함 )
ipv4를 ipv6로 표현할떄
100.100.100.128:80 > ::ffff:100.100.100.128:80
Firewalld
서비스를 구축할떄 포트를 여는 것 뿐만아니라 방화벽도 열어줘야 한다.
방화벽은 클라이언트와 제일먼저 마주친다 ( 지구의 오존층같은 개념인가.. )
SSH는 리눅스에서 기본적으로 방화벽에 들어있으므로 putty 같은 프로그램이 원격접속을 할 수 있는것이다. ( putty는 기본 SSH )
데몬설정파일
/etc/firewalld/firewalld.conf
firewalld-cmd ( firewalld 데몬을 제어 할 수 있는 명령어 )
데몬 명령어
#>firewall-cmd --reload : 방화벽 재시작 (방화벽 설정적용)
#>firewall-cmd --state : 방화벽 상태
zone ( 영역 )
#>firewall-cmd --get-zones ( 영역별로 방화벽 설정을 지정할 수 있다 )
work drop internal external trusted home dmz public block :
기본영역
#>firewall-cmd --get-default : 영역만 출력
#>firewall-cmd --get-active : 인터페이스 ( 랜카드번호 ) 까지 출력
특정 서비스에 대한 설정
firewall-cmd 명령어 사용
#1 어느 영역에 설정을 할 것인가 ?
> 방화벽은 영역마다 설정이 가능하며 기본값은 public이다.
option]] --new-zone=<zone_name> : 새로운 영역생성
--zone=<zone_name> : 영역이름 지정
--delete-zone=<zone_name> : 기존영역 삭제
--change-interface=<i_name> : 인터페이스 변겅 ( ip addr 명령어로 확인 )
> --permanent 옵션없이도 고정
#2 영구적으로 사용할 것인가?
> 방화벽설정은 1회성이다 . 따라서 reload 옵션사용시 설정사항도 모두 사라진다.
option]] --permanent : 설정한 방화벽을 영구적으로 사용한다.
#3 영역에 대한 설정값을 출력할 수 있다.
> 해당 영역에 대한 설정값을 확인해보자
option]] --list-all
#4 서비스
option]] --get-service : 서비스목록
--add-service=<s_name> : 서비스 이름 등록
--removce-service=<s_name> : 서비스 해제
--add-port=<port_num>/<protocol> : 포트 열기
--remove-port=<port_num>/<protocol> : 포트 닫기
#설정 사항 기재 후 설정이 적용이 되지 않았다면 reload 할 것.
영역 생성 / 삭제
#생성
#>firewall-cmd --permanent --new-zone=korea
#삭제
#>firewall-cmd -petmanent --delete-zone=korea
#인터페이스 설정
#>firewall-cmd --zone=korea change-interface=ens33
서비스 설정 ( --get-service에 등록되어 있는 서비스만 허용 )
#서비스 추가
#>firewall-cmd --permanent --zone=korea --add-service=ftp
#서비스 제거
#>firewall-cmd --permanent --zone=korea --remove-service=ftp
포트 설정 ( ss -ant로 설정 )
방화벽에 서비스로 등록이 안되있을 떄 사용
#열기
#>firewall-cmd --permanent --add-port=21/tcp
#닫기
#>firewall-cmd --permanent --remove-port=21/tcp
'서버 > 리눅스' 카테고리의 다른 글
AWS 자동결재 (0) 2019.06.04 [리눅스] DNS설정 후 웹서버 (0) 2017.05.02 [리눅스] DNS (0) 2017.04.28 [리눅스] SSH(Secure Shell) (0) 2017.04.27 [리눅스] Telnet (0) 2017.04.26