■ Linux 방화벽 - iptable / firewall
ㆍiptable
- 위에서부터 차례로 각 규칙에 대해 검사한다.
- CentOS 6 버전에서 사용된다.
=> 파일 위치: /etc/sysconfig/iptables
=> 참고 [1]
1) Chain
① INPUT: 외부에서 호스트 컴퓨터로 들어오는 패킷
② OUTPUT: 호스트 컴퓨터에서 외부 나가는 패킷
③ FORWARD: Server가 목적지는 아니고 통과하는 지점인 패킷
2) iptables 명령어 (Ex> iptables -L)
① -A (--append): 새로운 규칙을 추가(맨 아래에 추가)
② -I (--insert): 새로운 규칙 삽입(맨 앞쪽에 삽입)
③ -R (--replace): 새로운 규칙으로 교체
④ -D (--delete): 규칙을 삭제
⑤ -C (--check): 패킷을 테스트
⑥ -L (--list): 적용되어 있는 목록을 출력.
⑦ -N (--new): 새로운 chain을 만든다.
⑧ -X (--delete-chain): chain을 삭제한다.
⑨ -P (--policy): 정책을 변경한다(Target(ACCEPT 등)으로 변경 가능, 보통은 Policy를 DROP으로 설정하고 규칙에서 ACCEPT를 해준다. )
⑩ -F (--flush): chain으로부터 모든 규칙을 삭제
3) 제어 옵션
① -s (--source): 출발지 주소
② -d (--destination): 목적지 주소
③ --sport: 출발지 포트번호
④ --dport: 목적지 포트번호
⑤ -p (--protocol): 프로토콜(tcp, udp 등)
⑥ -i (--in-interface): 패킷이 들어오는 네트워크 인터페이스
⑦ -o (--out-interface): 패킷이 나가는 네트워크 인터페이스
⑧ --state: 연결 상태와의 매칭
⑨ -m (--match): 특정 모듈과의 매치(보통 state와 쓰이면, tcp, limit 등도 있다.)
⑩ -j (--jump): 규칙에 맞는 패킷을 어떻게 처리할 것인가(Target)를 명시한다.
Ex> iptables -A INPUT -m state --state ESTABLISHED, RELATED -m tcp -p tcp --dport 22 -j ACCEPT
=> INPUT 패킷에 대해 상태가 ESTABLISHED이거나 RELATED이고, TCP 패킷에 Destination 포트가 22번인 경우 패킷을 허용한다는 의미
4) Target
① ACCEPT: 패킷을 받아들인다.
② DROP: 패킷을 버린다(REJECT와 다르게 전송된 것이 없던 것처럼 아무런 응답을 하지 않는다.)
④ REJECT: 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다. REJECT 시 기본적으로 송신자에게 icmp-port-unreachable 이 전달되며 --rejct-with 옵션 뒤에 송신할 ICMP 에러 유형을 지정할 수 있으며 icmp-net-unreachable, icmp-host-unreachable,icmp-proto-unreachable, icmp-net-prohibited 등이 있다.
④ LOG: 패킷을 syslog에 기록한다.
=> https://www.lesstif.com/pages/viewpage.action?pageId=18219518
ㆍfirewall
- 방화벽 관리 데몬
- CentOS 7부터는 iptable 대신 firewall을 사용한다.
○ 명령어 정리
① #firewall-cmd --state: 방화벽 실행 여부 확인
② #firewall-cmd --reload: 방화벽 다시 로드, 설정 후 바로 적용
③ #firewall-cmd --get-zones: 모든 Zone 리스트 출력
④ #firewall-cmd --get-default-zone: 기본 Zone 출력
⑤ #firewall-cmd --get-active-zone: 현재 활성화된 Zone 출력
⑥ #firewall-cmd --list-all-zones: 모든 Zone 설정 정보 출력
⑦ #firewall-cmd --list-all: 현재 활성화된 Zone 설정 정보 출력
⑧ #firewall-cmd --set-default-zone=[Zone name]: 해당 Zone으로 기본 Zone 변경
⑨ #firewall-cmd --permanent --new-zone=[Zone name]: Zone 생성
⑩ #firewall-cmd --add-service=[Service name]: 해당 Service 추가
=> firewall-cmd --add-service=http
⑪ #firewall-cmd --remove-service=[Service name]: 해당 Service를 삭제
⑫ #firewall-cmd --add-port=[Port Number/Protocol]: 해당 Port를 추가
=> firewall-cmd --add-port=80/tcp
⑬ #firewall-cmd --remove-port=[Port Number/Protocol]: 해당 Port를 삭제
⑭ #firewall-cmd --permanent --add-service=ftp: --permanent를 사용해야 시스템 재부팅 또는 방화벽 재시작 후에도 지속적으로 적용시키니다. permanent를 사용하지 않으면 일회성으로 사용된다.
⑮ #firewall-cmd --zone=[Zone name] --add-service=ftp: --zone, 해당 Zone에 Service를 추가
참고
[1] https://webdir.tistory.com/170
'Server > Cent OS' 카테고리의 다른 글
Linux Server - DHCP(설치 & 설정) (0) | 2019.07.08 |
---|---|
Linux 패키지 설치 - YUM & Source (0) | 2019.07.08 |
Linux 네트워크 카드 추가 (0) | 2019.07.08 |
Linux 디스크 관리 - Quota (0) | 2019.07.08 |
Linux 디스크 관리 (0) | 2019.07.05 |