OpenBSD에서 rsync를 사용하여 소켓/연결을 여는 권한이 거부되었습니다.

OpenBSD에서 rsync를 사용하여 소켓/연결을 여는 권한이 거부되었습니다.

최근에 rsync를 사용하여 uceprotect.net에서 UCE(스팸) 보낸 사람 IP 복사본을 검색하려고 시도했지만 다음 오류가 발생했습니다.

[user@host ucedata]$ rsync -rzv rsync-mirrors.uceprotect.net::RBLDNSD-ALL/ ./                                                                                                                                                            
rsync: failed to connect to rsync-mirrors.uceprotect.net (67.58.96.162): Permission denied (13)                                                                                                                                             
rsync: failed to connect to rsync-mirrors.uceprotect.net (69.30.193.210): Permission denied (13)                                                                                                                                            
rsync: failed to connect to rsync-mirrors.uceprotect.net (72.13.86.154): Permission denied (13)                                                                                                                                             
rsync: failed to connect to rsync-mirrors.uceprotect.net (88.198.110.110): Permission denied (13)                                                                                                                                           
rsync: failed to connect to rsync-mirrors.uceprotect.net (96.31.84.20): Permission denied (13)                                                                                                                                              
rsync: failed to connect to rsync-mirrors.uceprotect.net (185.248.148.6): Permission denied (13)                                                                                                                                            
rsync: failed to connect to rsync-mirrors.uceprotect.net (193.138.29.11): Permission denied (13)                                                                                                                                            
rsync: failed to connect to rsync-mirrors.uceprotect.net (199.48.69.42): Permission denied (13)                                                                                                                                             
rsync: failed to connect to rsync-mirrors.uceprotect.net (199.187.241.194): Permission denied (13)                                                                                                                                          
rsync: failed to connect to rsync-mirrors.uceprotect.net (209.44.102.199): Permission denied (13)                                                                                                                                           
rsync: failed to connect to rsync-mirrors.uceprotect.net (209.126.213.95): Permission denied (13)                                                                                                                                           
rsync: failed to connect to rsync-mirrors.uceprotect.net (217.23.49.207): Permission denied (13)                                                                                                                                            
rsync: failed to connect to rsync-mirrors.uceprotect.net (41.208.71.58): Permission denied (13)                                                                                                                                             
rsync: failed to connect to rsync-mirrors.uceprotect.net (66.240.236.50): Permission denied (13)                                                                                                                                            
rsync error: error in socket IO (code 10) at clientserver.c(127) [Receiver=3.1.3]                                                                                                                                                           

현재 디렉토리에 쓸 수 있습니다. 왜 "권한 거부(13)"가 발생합니까?

답변1

처음에는 이것이 다른 사용자 권한이나 사용자 제한 때문일 수 있다고 생각했습니다. 그러나 내 특정 시스템에서 이 특정 질문에 대한 대답은 간단합니다. OpenBSD PF는 포트 53, 80, 123 또는 443으로 향하지 않는 모든 나가는 트래픽을 차단하도록 구성되어 있습니다. OpenBSD는 PF 규칙 로드로 인해 처음부터 TCP 소켓 생성을 허용하지 않습니다.

netcat을 사용한 테스트에서는 사용자나 루트 모두 PF 금지 대상이 있는 소켓을 생성할 수 없음을 보여줍니다.

[user@host ucedata]$ nc -v 67.58.96.162 873
nc: connect to 67.58.96.162 port 873 (tcp) failed: Permission denied
[root@host ucedata]# nc -v 67.58.96.162 873
nc: connect to 67.58.96.162 port 873 (tcp) failed: Permission denied

다음 커널 추적 발췌에서는 연결 시도로 인해 권한 거부가 발생했음을 보여줍니다.

 70602 rsync    CALL  connect(3,0xccece01e770,16)
 70602 rsync    STRU  struct sockaddr { AF_INET, 69.30.193.210:873 }
 70602 rsync    RET   connect -1 errno 13 Permission denied

방화벽 규칙( )을 추가 pass out log on $ext_if proto tcp to any port 873하고 다시 로드하여 연결할 수 있었습니다./etc/pf.confpfctl -f /etc/pf.conf

관련 정보