목차 열기
티스토리 뷰
728x90
반응형
우분투에서 IPTables을 사용하자
ufw 해제 및 iptables-persistent 설치
먼저, ufw를 끈다. sudo ufw disable
IPTables는 재부팅시 설정이 초기화된다. 따라서 설정을 지속시켜주는 iptables-persistent를 설치할 것이다. 설치시 IPv4 규칙과 IPv6 규칙을 저장할건지 물어보는데, 초기화할 것이므로 그냥 Enter
를 누른다.
sudo apt update
sudo apt install iptables-persistent
앞으로 규칙 설정이 완료되면, IPTables의 규칙을 적용하는 명령어를 입력한다.
netfilter-persistent save
netfilter-persistent reload
IPTables 설정 초기화
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
-F : 체인의 모든 규칙 초기화
-X : 기본 체인 외, 비어있는 체인 제거
-t : 테이블
기본 체인(Chain) 설정
먼저 모든 체인을 허용(ACCEPT)으로 바꾸어 본다.
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
-P : 기본 정책을 설정
앞으로 정책 설정 현황은 -S
옵션으로 확인한다.
iptables -S
iptables -t nat -S
iptables -t mangle -S
-t : 테이블
-S : 규칙 생성 (Status)
또한 방화벽 적용시 아까 설치한 iptables-persistent
로 저장하고 리로드한다.
netfilter-persistent save
netfilter-persistent reload
규칙 생성
localhost ACCEPT
iptables -A INPUT -i lo -j ACCEPT
루프백 주소 사칭 DROP
iptables -A INPUT -s 127.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -d 127.0.0.0/255.0.0.0 -j DROP
양방향 통신 패킷 ACCEPT
이미 연결했거나 기존 연결 기반의 접속(ESTABLISHED와 RELATED)을 허용하는 규칙을 추가한다.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
HTTP 80 포트
iptables -A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
HTTPS 443 포트
logaccept 사용시 로그를 남기고 허가, 내부망에서만 연결 가능하다.
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 443 -m state --state NEW -j logaccept
SSH ACCEPT
22번 포트일 경우
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
- 가급적 22번 포트가 아닌, 다른 포트를 사용하도록 하자.
22222번 포트일 경우, logaccept 사용시 로그를 남기고 허가
내부망에서만 연결 가능하다.
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -p tcp -m tcp --dport 22222 -m state --state NEW -j logaccept
log- 체인 생성
iptables -N logaccept
iptables -N logdrop
iptables -A INPUT -j logdrop
iptables -A logaccept -j LOG --log-prefix [Accept-log] 허가 패킷 기록
iptables -A logaccept -j ACCEPT 패킷 허가
iptables -A logdrop -j LOG --log-prefix [Drop-log] 드랍 패킷 기록
iptables -A logdrop -j DROP 패킷 드랍
기본 정책 수정
이제 기본 정책을 설정한다.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
위에서 허용한 규칙만 허용되고, 나머지의 패킷은 DROP된다.
iptables -nL
설정한 내용을 검토한다.
iptables를 저장하고 리로드한다.
netfilter-persistent save
netfilter-persistent reload
추가적인 규칙 목록
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT TCP/SMTP
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT TCP/DNS
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT TCP/DNS
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT TCP/WWW
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT TCP/SSL-WWW
728x90
반응형
'Ubuntu' 카테고리의 다른 글
[Linux] 명령어 - 시스템 (0) | 2021.03.19 |
---|---|
[NginX] 리버스 프록시 구성하기 (0) | 2021.03.19 |
[NginX] 기본 구성 / 경로 (0) | 2021.03.19 |
[IPTables] IPTables는 무엇일까? (0) | 2021.03.14 |
[Apache2] Could not reliably determine the server's fully qualified domain name (0) | 2021.01.30 |
[Apache2] Function not implemented: AH00023: Couldn't create the proxy mutex (0) | 2021.01.24 |
[Apache2] 아파치2 구성 / Configuration (0) | 2021.01.24 |
댓글