iptables란?
iptables는 netfliter라는 프로젝트에서 만든 패킷 제어 기능이다.
패킷의 필터링, 제어 등의 기능을 제공한다.
iptables는 방화벽 cmd보다는 한 단계 아래 레벨에서 룰을 정의할 수 있기 때문에 설정의 자유도가 높은 편이고, 데비안/레드햇 등 OS에 관계 없이 보편적으로 사용할 수 있다는 장점이 있다.
하지만 CentOS7 이상부터는 Firewalld라는 동적 방화벽이 대중화 되고 있다.
iptables 종류 및 용어
- filter : 패킷을 걸러내는 용도 In/Out bound 및 Forward 총 3가지 종류의 패킷을 처리하는 규칙
- nat : Source ↔︎ Destination 등을 변경할 수 있도록 각종 규칙을 정의하는 테이블
- mangle
- raw
- chain : 규칙의 속성
- PREROUTING(DNAT) : 패킷의 도착지 주소를 변경하는 것(Destination NAT)
- PPOSTROUTING(SNAT) : 패킷의 출발지 주소를 변경하는 것(Source NAT)
- OUTPUT : 호스트에서 밖으로 흐르는 패킷의 도착지 주소를 변경하는 것
- INPUT : 호스트에 들어오는 패킷의 주소를 변경하는 것
iptables 실습
목표: 서버에서 iptables를 조회하고, 규칙을 만든 뒤 삭제하여 본다.
- iptables 내용 확인
iptables -nL -t nat
- iptables 재조회
iptables -nL PREROUTING -t nat --line-numbers
- iptables 삭제
iptables -t nat -D PREROUTING {number}
iptables 실전
목표: 실제 서비스 사용되도록 80포트를 8051로 포트포워딩 시킨다.
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8051
service iptables save
#### iptables 설치
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
tip) iptables save 명령어는 설정 바뀌는 것을 저장해주지만, 세션이 끊기면 설정도 사라지게 된다.
이를 방지하기 위해 /etc/sysconfig/iptables에 파일이 생겼는지 확인하고 없으면 만들어주자.
기타 참조
https://stackoverflow.com/questions/24756240/how-can-i-use-iptables-on-centos-7
https://m.blog.naver.com/PostView.nhn?blogId=monkey5255&logNo=221001636693&proxyReferer=https:%2F%2Fwww.google.com%2F
https://sepiros.tistory.com/7
https://m.blog.naver.com/PostView.nhn?blogId=minki0127&logNo=220721115360&proxyReferer=https:%2F%2Fwww.google.com%2F
'June > 리눅스' 카테고리의 다른 글
CentOS 커널 업데이트, GPU 서버 Nvidia update 하기 (0) | 2020.11.14 |
---|---|
yum update로 리눅스 커널 업데이트하기 (2) | 2020.08.24 |
리눅스 계정 패스워드 관리(passwd/ shado) (0) | 2020.08.20 |
리눅스 서버 cache memory 정리 (0) | 2019.08.09 |
Linux 디스크 사용량 현황이 실제와 다를 때 - Linux Phantom Storage_마이다스아이티 (0) | 2019.04.29 |