[CentOS] 7으로 버전업된 방화벽관리(firewall-cmd)
출처: http://xmodulo.com/install-puppet-server-client-centos-rhel.html
방화벽상태확인
firewall-cmd --list-all
포트추가허용 sample
# firewall-cmd --permanent --zone=public --add-port=8140/tcp
# firewall-cmd --reload
포트제거차단 sample
# firewall-cmd --permanent --zone=public --remove-port=8140/tcp
# firewall-cmd --reload
포트 포워딩 sample
# firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
# firewall-cmd --reload
[CentOS] 7으로 버전업되면서 달라진 것
출처: https://www.certdepot.net/rhel7-rc-local-service/
1. 기본설정상태에서 rc.local이 자동 실행되지 않는다.
-- 해결법
# chmod u+x /etc/rc.d/rc.local
# systemctl start rc-local
2. 'ifconfig'가 없다T_T
--해결법(설치해도 되지만...)
'ip addr'로 대체
3. 'netstat'이 없다T_T
--해결법(설치해도 되지만...)
'ss'로 대체
firewalld 각종 명령어
출처:
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-firewalld-on-centos-7
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html
* 설정하고 나면 리로드해야 변경된 상태를 확인할 수 있다.
firewall-cmd --reload
* firewalld 데몬 시작하기
systemctl start firewalld.service
* firewalld 실행여부 확인하기
firewall-cmd --state
* 디펄트 존 확인하기
firewall-cmd --get-default-zone
* 활성화된 존과 연결된 인터페이스 확인하기
firewall-cmd --get-active-zones
* 디펄트 존의 환경설정 보기
firewall-cmd --list-all
* 사용가능한 존 목록 확인하기
firewall-cmd --get-zones
* home존의 환경설정 보기
firewall-cmd --zone=home --list-all
* 인터페이스의 존을 변경하기
firewall-cmd --zone=home --change-interface=eth0
or "/etc/sysconfig/network-scripts/"에 있는 ifcfg-eth0와 같은 파일에 ZONE=home과 같이 설정을 추가하면 해당 존으로 인터페이스가 잡힌다.
* 디펄트 존 변경하기
firewall-cmd --set-default-zone=home
* 미리 정의된 서비스 포트 목록 확인하기(정의된 위치: /usr/lib/firewalld/services/) [해당 서비스정의 파일을 복사하여 내용수정하면 다른 정의 파일 생성가능]
firewall-cmd --get-services
* 사용자 존 생성하기
firewall-cmd --permanent --new-zone=publicweb
* 사용자 존 삭제하기
firewall-cmd --permanent --delete-zone=publicweb
***************************************************
Configuring IP Address Masquerading
***************************************************
* external존을 Masquerading 가능상태인지 확인하기
firewall-cmd --zone=external --query-masquerade
* external존을 Masquerading 가능상태로 만들기
firewall-cmd --zone=external --add-masquerade
* external존을 Masquerading 불가능상태로 만들기
firewall-cmd --zone=external --remove-masquerade
* 설정된 포워딩 포트(22)로 들어온 패킷을 특정 IP(192.0.2.55)의 같은 포트로 포워딩하기
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55
* 설정된 포워딩 포트(22)로 들어온 패킷을 특정 IP(192.0.2.55)의 다른 포트(2055)로 포워딩하기
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55