ufw에서 iptables로 마이그레이션 중입니다.
ufw에는 기본 "제한" 규칙이 있는데, 이는 IP 주소가 30초 내에 6개 이상의 연결을 시작하는 경우 적용됩니다( sudo ufw limit ssh
). 저는 SSH 트래픽(포트 22)에 이 제한 규칙을 사용합니다.
나는 iptables에서 이 작업을 수행하는 다양한 방법을 읽었으며 정말 혼란스럽습니다. 다른 모듈을 사용해야 connlimit
할지 잘 모르겠습니다 .limit
이 규칙을 iptables에 1:1로 매핑하는 가장 쉬운 방법은 무엇입니까?
답변1
ufw
iptables 조작, ufw에서 이동 중이므로 iptables를 캡처하고 ufw가 거기서 무엇을 하고 있는지 확인할 수 있다고 생각했습니다.
답변2
recent
확장 프로그램 사용
@Tomasz의 아이디어에 따라 ufw에 규칙을 만들고 iptables에서 결과를 확인했습니다. ufw는 확장을 사용하는 것 같습니다 recent
.
:LOG_REJECT - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 30 --hitcount 6 -j LOG_REJECT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A LOG_REJECT -m limit --limit 3/min -j LOG --log-prefix "[LIMITED SSH]"
-A LOG_REJECT -j REJECT --reject-with icmp-port-unreachable
limit
확장 프로그램 사용
약간 더 깔끔하고 간단합니다.
:LOG_REJECT - [0:0]
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -m limit --limit 12/minute -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j LOG_REJECT
-A LOG_REJECT -m limit --limit 3/minute -j LOG --log-prefix "[LIMITED SSH]" --log-level 7
-A LOG_REJECT -j REJECT --reject-with icmp-port-unreachable
icmp-port-unreachable
( 이 경우에는 이것이 올바른 거부 메시지인지는 확실하지 않습니다 .)
connlimit
확장 프로그램 사용
...다른 사람이 이것을 추가할 수도 있습니다. :)