라즈베리파이를 NAS나 웹서버등 각종 서버로 운영하는 경우가 많다.
이럴때 특정 ip만 접속을 허용하거나 반대로 특정 ip 의 접속을 차단할 필요가 있는 경우가 있는데 iptables를 사용하면 간단히 구현할 수 있다.
iptables는 arp나 이더넷 프레임보다는 ipv4에 적용하는 방화벽이라고 생각하면 된다.
아래처럼 하면 (차단할 IP 주소)의 접속은 차단된다.
# sudo iptables -A INPUT -s (차단할 IP 주소) -j DROP
그러나 재부팅하면 설정된 iptables는 지워져서 다시 설정해야 하는데,
iptables-persistent 로 이 문제도 해결할 수 있다.
# sudo apt-get install iptables-persistent
# sudo vi /etc/iptables/rules.v4
COMMIT 위에 설정을 적으면 된다.
아래 설정은 port 8000 으로의 모든 접속을 차단하되, IP 1.2.3.4 으로부터의 접속은 허용한다는 의미이다.
-A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT -A INPUT -p tcp --dport 8000 -j DROP COMMIT |
설정 완료 후 재부팅을 해도 iptables 가 적용되어 있음을 확인할 수 있다.
# sudo reboot
# sudo iptables -L
pi@retropie:/etc/iptables $ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 anywhere tcp dpt:8000
DROP tcp -- anywhere anywhere tcp dpt:8000
'지식 > Linux' 카테고리의 다른 글
Linux - GDB 사용법 (0) | 2022.04.13 |
---|---|
sed 사용법 (0) | 2022.03.31 |
Raspberry pi - minidlna (0) | 2022.01.09 |
Raspberry pi - mopidy 설치 (0) | 2021.05.30 |
Raspberry pi - Python3 설치 (0) | 2021.05.30 |
댓글