1. **IPtables 기본 규칙 추가 방법**
IPtables의 기본 규칙은 `ACCEPT`, `DROP`, `REJECT` 등이 있으며, 이를 사용하여 특정 트래픽을 허용하거나 차단할 수 있습니다.
```bash
# Inbound 22번 포트(SSH) 트래픽을 허용하는 규칙 추가
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```
위의 명령어는 TCP 프로토콜의 22번 포트로 들어오는 모든 트래픽을 허용합니다.
2. **특정 IP 주소 차단**
특정 IP 주소에서 오는 트래픽을 차단하여, 의심스러운 접근을 막을 수 있습니다.
```bash
# 특정 IP(192.168.1.100)에서 오는 모든 트래픽 차단
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
```
위의 명령어는 192.168.1.100 IP에서 오는 모든 트래픽을 차단합니다.
3. **로그 기록하기**
모든 차단된 패킷을 로깅하여, 보안 이벤트를 모니터링할 수 있습니다.
```bash
# 로그 기록 후 패킷을 DROP
sudo iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
sudo iptables -A INPUT -j DROP
```
이 규칙은 패킷을 드롭하기 전에 로그에 기록합니다.
4. **기본 체인 정책 설정**
기본 체인 정책을 설정하여, 명시적으로 허용되지 않은 모든 트래픽을 기본적으로 차단할 수 있습니다.
```bash
# 기본 정책을 DROP으로 설정
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
```
위의 설정은 들어오고(forwarded) 나가는 트래픽은 허용하지 않되, 명시적으로 허용된 트래픽만 허용하게 합니다.
5. **IPtables 규칙 보기**
현재 설정된 IPtables 규칙을 확인하고 관리할 수 있습니다.
```bash
# 현재 설정된 모든 규칙 보기
sudo iptables -L -v -n
```
위의 명령어를 사용하여, 현재의 규칙을 상세하게 볼 수 있습니다.
6. **규칙 저장 및 복원**
시스템 재부팅 후에도 규칙이 유지되도록 저장합니다.
```bash
# 규칙 저장
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
# 규칙 복원
sudo iptables-restore < /etc/iptables/rules.v4
```
위 명령어는 현재 규칙을 파일에 저장하고, 필요할 때 이를 복원합니다.
IPtables는 서버의 보안을 강화하기 위한 필수적인 도구이며, 위에 소개한 방법들을 통해 트래픽을 세밀하게 조절할 수 있습니다. 올바른 사용 방법을 익혀 서버의 보안을 강화해 보세요.