REDIS 서버를 구성 중이며 특정 IP 주소 집합의 연결만 허용하고 싶습니다.
이것은 Debian 10 서버이고 권장 프레임워크는 nft인데, 이전에는 사용하지 않았습니다.
기본 규칙 세트는 다음과 같습니다.
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0;
}
}
1.1.1.1
IP에서 Redis로 들어오는 연결을 허용 하고 2.2.2.2
다른 모든 연결을 삭제 하려면 이 파일에 어떤 규칙을 추가해야 합니까 ?
포트가 REDIS에서 사용 중입니다 6379
.
답변1
다른 사람이 같은 문제를 우연히 발견할 경우를 대비해, 제가 가장 큰 문제는 규칙을 잘못된 순서로 사용했다는 것입니다.
수락 규칙 앞에 삭제 규칙을 추가했는데 그 반대인 것 같습니다.
다음은 2를 제외한 모든 IP 주소를 삭제하는 예제 규칙입니다.
ip saddr 1.1.1.1 tcp dport 6379 accept
ip saddr 2.2.2.2 tcp dport 6379 accept
tcp dport 6379 drop
전체 규칙 파일:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0;
# allow connection to redis from
ip saddr 1.1.1.1 tcp dport 6379 accept
ip saddr 2.2.2.2 tcp dport 6379 accept
tcp dport 6379 drop
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0;
}
}
답변2
적극 추천하는 것 중 하나는
chain input {
type filter hook input priority 0;
policy drop;
# required items below
}
명시적으로 허용되지 않는 한 모든 것이 삭제되므로 이것이 방화벽을 관리하는 가장 안전한 방법입니다.