IP 매스커레이딩을 허용하고 결국 프록시 사용에서 전환하기 위해 게이트웨이/프록시/방화벽으로 사용하고 있는 상자를 구성하려고 합니다. 이것은 데비안 스퀴즈 시스템입니다.
현재 내 호스트.allow 파일은 비어 있습니다(hosts.deny는 말합니다 ALL: PARANOID
). 왜냐하면 squid는 어쨌든 필요한 포트에 대한 요청을 허용하기 때문입니다(또한 ssh를 통해 상자에 연결할 수 있습니다).
iptables는 동일한 방식으로 작동합니까? 즉, iptables가 올바르게 설정되면 호스트.허용 파일이 비어 있을 수 있습니까?
답변1
짧은 대답: 그렇습니다. TCPwrapper(예:hosts.allow 및host.deny 쿼리)는 iptables와 독립적인 액세스 제어 방법이며 한 가지 방법을 사용해도 다른 방법의 사용이 필요하거나 금지되지 않습니다. 유일한 관심사는 필요한 액세스가 두 가지 모두를 통해 허용되는지 확인하는 것입니다(두 가지가 모두 시스템에서 활성화된 경우).
답변2
hosts.*
iptables를 사용할 때는 이러한 파일이 필요하지 않습니다. 둘 다 액세스를 거부/허용하는 기능이 있지만 작동 방식은 매우 다릅니다.
Network
|
IPTables
/ \
TCPWrapper Squid/Daemon
Daemon
Iptables는 tcpwrappers 아래 계층을 실행하는 커널 기반 패킷 필터링 프레임워크입니다. 무언가를 삭제하거나 거부하면 iptables
패킷이 사용자 공간에 도달하지 않습니다. 프로그램이 무엇이든, 어떻게 작성되었든, 그 관점에서 보면 패킷은 존재하지 않습니다.
TCPwrapper와 hosts.*
해당 기능을 사용하는 프로그램은 사용자 공간에서 실행되며 다음을 사용해야 합니다.도서관 래퍼이러한 파일을 사용하거나 호스트 파일을 읽고 거부된 클라이언트로부터 수신된 연결을 닫아 이를 에뮬레이트하세요.
오징어는 파일을 읽지 않습니다 hosts.deny|allow
. 다음과 같이 지정된 자체 액세스 제어 구현이 있습니다.acl의 위치는 다음과 같습니다.squid.conf
. 같은 방식으로 iptables 위에 Squid 액세스 제어를 구성할 수 있으며, iptables 위에 호스트.deny/allow를 사용할 수 있습니다. 이 규칙은 iptables가 트래픽 통과를 허용하는 경우에만 작동합니다. 현재 tcp_wrappers를 지원하는 프로그램은 많지 않으며, inetd
메인 슈퍼서버로서 점차 사라지고 있습니다.
답변3
SSH에 대한 null 연결을 계속 사용할 수 있는 이유호스트.허용그럴 수도 있지기본적으로 tcpwrapper는 모든 연결을 허용합니다.명시적으로 부정하지 않는 이상 말이죠.
반대(기본적으로 거부) 동작을 수행하는 한 가지 방법은 다음 줄을 추가하는 것입니다./etc/hosts.deny(자신을 배제하지 않도록 주의하세요!)
ALL: ALL
Tcpwrappers(hosts.allow 및hosts.deny)는 iptables처럼 모든 네트워크 서비스에서 작동하지 않습니다.
일반적으로 다음과 같이 데몬이 libwrap과 연결되어 있는지 확인하여 데몬이 tcpwrappers를 지원하는지 확인할 수 있습니다.
$ ldd /usr/sbin/sshd | grep libwrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f389b5a2000)
출력이 없으면 데몬이 tcpwrappers를 지원하지 않을 수 있습니다.
마지막으로, 매우 일반적인 설정은 iptables를 사용하고 tcpwrapper는 구성되지 않은 상태로 두는 것입니다.