임베디드 Yocto-Linux에 iptables와 failure2ban을 설치했습니다. Fail2ban 시 다음 명령을 설정하십시오.
iptables -w -I INPUT -p tcp -m multiport --dports http,https -j f2b-NoScript
이 오류가 있습니다.
iptables v1.8.4 (legacy): Couldn't load match `multiport':No such file or directory
그러나 라이브러리 다중 포트는 다음 경로에 존재합니다.
/usr/lib/xtables/libxt_multiport.so
어떤 제안이 있으십니까? 다른 옵션을 사용하여 iptables 레시피를 구축해야 합니까?
답변1
iptables v1.8.4(레거시): 일치하는 '멀티포트'를 로드할 수 없습니다. 해당 파일이나 디렉터리가 없습니다.
/usr/lib/xtables/
이는 관련 .so 라이브러리(일반적으로 로드하지 않음 ) 를 로드할 수 없기 때문에 iptables용 멀티포트 모듈이 없다는 것을 의미합니다 /usr/lib/iptables/
. "멀티포트" 모듈에 무엇이 필요한지 확인하기 위해
전화할 수 있지만 ...man iptables
"레거시"라고 적혀 있으므로 아마도 또 다른 주요 네트워크 필터링 하위 시스템(아마도 iptables
그냥 에뮬레이션됨)이 있을 것이므로 iptables 대신 직접 사용할 수 있습니다.
예를 들어, nftables( sudo nft -v
버전으로 응답)인 경우 기본값 섹션에서 이를 지정할 수 있습니다 jail.local
(그리고 pass2ban을 다시 시작합니다).
[DEFAULT]
# banaction = nftables-multiport
banaction = nftables[type=multiport]
# banaction_allports = nftables-allports
banaction_allports = nftables[type=allports]
그러나 이 경우 iptables는 주로 쓰기 (nf_tables)
보다는 쓰기를 수행합니다.(legacy)
따라서 달라질 수 있습니다. 이 경우 시스템에서 주로 사용하는 네트워크 필터가 무엇인지 확인하고 적절한 필터를 선택합니다.금지된 행위아니면 직접 쓰세요.
도움이 되지 않거나 적절한 조치를 찾을 수 없고 시스템이 다중 포트를 지원하지 않는 경우 allports 조치를 사용해 보십시오.
[DEFAULT]
banaction = iptables-allports
banaction_allports = iptables-allports
(이 경우 감옥에 구성된 포트에 관계없이 IP를 완전히 금지하므로 잘못된 긍정이나 http 측과 같은 일부 테스트 시도로 인해 모든 포트에 대한 IP가 금지될 수 있으므로 불가능합니다. 수동으로 차단을 해제하려면 이 IP에서 SSH를 통해 연결하세요.
답변2
해결책을 찾았고 다음 옵션을 사용하여 커널을 다시 컴파일했습니다.
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y