나는 iptables를 사용한 적이 없으며 온라인 문서는 약간 불투명 해 보입니다.
특정 IP 주소에서 오는 요청을 제외하고 내 서버의 포트 8000에 대한 모든 요청을 차단하고 싶습니다. iptables를 사용하여 어떻게합니까?
답변:
이 질문은 Server Fault 에 있어야합니다 . 그럼에도 불구하고 TCP에 대해 이야기하고 있고 허용하려는 IP가 1.2.3.4라고 가정하면 다음이 트릭을 수행해야합니다.
iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP
또 다른 대안은 다음과 같습니다.
sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
3 브리지 가상 머신이 서로 다른 조합으로 서로 액세스해야한다는 유사한 문제가 있었기 때문에이 명령을 테스트했으며 잘 작동합니다.
편집하다**
Fernando 설명에 따르면이 링크 느낌표 (
!
)는-s
매개 변수 보다 앞에 배치 됩니다.
sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP
!
)는 -s
매개 변수 앞에 있어야합니다 sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP
.
항상 iptables를 사용하여 규칙을 삭제할 수 있습니다. 규칙이 많은 경우 다음 명령을 사용하여 출력하십시오.
iptables-save > myfile
vi
추천 라인에서 편집 할 수 있습니다. 더 이상 원하지 않는 줄을 삭제하려면 "dd"를 사용하십시오.
iptables-restore < myfile and you're good to go.
규칙을 파일에 저장하도록 OS를 구성하지 않고 부팅하는 동안 파일을로드하면 규칙이 손실된다는 점을 기억하십시오.
iptables-restore < myfile
// wiki.debian.org/iptables을