iptables는 IP 주소를 제외하고 포트 8000에 대한 액세스를 차단합니다.


80

나는 iptables를 사용한 적이 없으며 온라인 문서는 약간 불투명 해 보입니다.

특정 IP 주소에서 오는 요청을 제외하고 내 서버의 포트 8000에 대한 모든 요청을 차단하고 싶습니다. iptables를 사용하여 어떻게합니까?


2
//, 불투명 한 문서에 대한 링크를 공유해 주시겠습니까?
Nathan Basanese

답변:


149

이 질문은 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

3
여기서 설정 한 IP / 포트 제한을 어떻게 되돌릴 수 있습니까? (나중에이 작업을 취소하려는 경우)
tester

4
- 테스터, 물건을 제거하기 위해,이 참조 stackoverflow.com/questions/10197405/...
퀘스트 상인

2
나는 이것이 상대적으로 오래되었다는 것을 알고 있으며 이것은 내가 필요한 것을 완전히 못 박았습니다. 어쨌든 답변이 수락되었으므로 특정 IP 범위에서 동일한 작업을 어떻게 수행합니까? 감사! :)
jagc

1
@JiegoCordoviz 소스 주소에 마스크를 추가 할 수 있습니다. "-s 1.2.3.0/24"는 "1.2.3."으로 시작하는 모든 항목을 허용합니다. 범위가 있고 넷 마스크를 계산하려면 "넷 마스크 계산기"를 검색하십시오.
존 밝은

17

또 다른 대안은 다음과 같습니다.

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

1
이제 느낌표 ( !)는 -s매개 변수 앞에 있어야합니다 sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP.
Fernando Silveira 2013 년

여기서 느낌표가 무엇을하는지 잘 모르겠습니다. 받아 들여진 대답보다 낫습니까?
aexl

한 줄을 제외하고 거의 같은 일을 @aexl
HRgiger

5

항상 iptables를 사용하여 규칙을 삭제할 수 있습니다. 규칙이 많은 경우 다음 명령을 사용하여 출력하십시오.

iptables-save > myfile

vi추천 라인에서 편집 할 수 있습니다. 더 이상 원하지 않는 줄을 삭제하려면 "dd"를 사용하십시오.

iptables-restore < myfile and you're good to go.  

규칙을 파일에 저장하도록 OS를 구성하지 않고 부팅하는 동안 파일을로드하면 규칙이 손실된다는 점을 기억하십시오.


3
데비안이 더 iptables에 부하 없지만, iptables에가-복원 iptables-restore < myfile// wiki.debian.org/iptables을
Fedir RYKHTIK
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.