우선, 누구든지 제공할 수 있는 도움에 감사드립니다. 정말 감사하겠습니다!
테스트를 위해 기본 네트워크를 설정했습니다. 게이트웨이/DHCP/DNS 호스트로 pfSense가 있고 그 뒤에 두 대의 Linux 시스템이 있습니다. Linux 시스템 중 하나가 Apache 웹 서버를 호스팅하는데 다른 Linux 시스템에서 웹 페이지를 로드하는 데 문제가 있습니다.
나는 이것이 루프백 IP 주소에 대한 httpd 바인딩과 관련이 있다고 생각했지만 문제를 해결한 것 같고 문제가 지속됩니다. 마지막 nmap을 보면 웹 서버에 외부 액세스를 위해 포트 80 또는 443이 열려 있지 않은 것 같습니다.
다음은 netstat
웹 서버의 출력입니다.
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1502/mariadbd
tcp 0 0 127.0.0.1:44321 0.0.0.0:* LISTEN 1570/pmcd
tcp 0 0 127.0.0.1:60999 0.0.0.0:* LISTEN 809/glance-apiuWSGI
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 760/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1199/sshd: /usr/sbi
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1247/httpd
tcp 0 0 0.0.0.0:8775 0.0.0.0:* LISTEN 811/nova-api-metauW
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN 1190/beam.smp
tcp 0 0 0.0.0.0:9696 0.0.0.0:* LISTEN 820/ml2_conf.ini
tcp 0 0 127.0.0.54:53 0.0.0.0:* LISTEN 760/systemd-resolve
tcp 0 0 127.0.0.1:6640 0.0.0.0:* LISTEN 1013/ovsdb-server
tcp 0 0 0.0.0.0:6642 0.0.0.0:* LISTEN 937/ovsdb-server
tcp 0 0 0.0.0.0:6641 0.0.0.0:* LISTEN 909/ovsdb-server
tcp 0 0 127.0.0.1:39711 0.0.0.0:* LISTEN 811/nova-api-metauW
tcp 0 0 20.20.20.11:2379 0.0.0.0:* LISTEN 1169/etcd
tcp 0 0 127.0.0.1:4330 0.0.0.0:* LISTEN 2234/pmlogger
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 760/systemd-resolve
tcp 0 0 0.0.0.0:6080 0.0.0.0:* LISTEN 815/python3.11
tcp6 0 0 :::2380 :::* LISTEN 1169/etcd
tcp6 0 0 ::1:4330 :::* LISTEN 2234/pmlogger
tcp6 0 0 :::22 :::* LISTEN 1199/sshd: /usr/sbi
tcp6 0 0 :::443 :::* LISTEN 1247/httpd
tcp6 0 0 :::9090 :::* LISTEN 1/systemd
tcp6 0 0 :::4369 :::* LISTEN 1/systemd
tcp6 0 0 ::1:44321 :::* LISTEN 1570/pmcd
tcp6 0 0 :::5355 :::* LISTEN 760/systemd-resolve
tcp6 0 0 :::5672 :::* LISTEN 1190/beam.smp
이것은 웹 서버의 내 IP 테이블입니다.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination type here
이것은 nmap
웹 서버 자체입니다.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-09 19:18 CDT
Nmap scan report for opendevhost.testing.prox (20.20.20.11)
Host is up (0.0000080s latency).
Not shown: 995 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3306/tcp open mysql
9090/tcp open zeus-admin
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
이것은 nmap
LAN에 있는 다른 Linux 상자에 있는 웹 서버입니다.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-08-09 19:17 CDT
Nmap scan report for opendevhost.testing.prox (20.20.20.11)
Host is up (0.00041s latency).
Not shown: 988 filtered tcp ports (no-response), 10 filtered tcp ports (admin-prohibited)
PORT STATE SERVICE
22/tcp open ssh
9090/tcp open zeus-admin
MAC Address: 46:0E:A2:7D:12:1A (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 5.20 seconds
I added http and https services through the firewall by logging into the server via the web console.
답변1
항상 일치하는 일반 REJECT 규칙 뒤에 활성화 규칙을 추가했습니다. 추가 규칙은 통과되지 않으므로 쓸모가 없습니다. 터미널 규칙은 항상 즉각적입니다. REJECT가 평가되면 이 후크(INPUT)에서 더 이상 규칙이 평가되지 않습니다.
이 문제를 해결하는 한 가지 방법은 REJECT 규칙을 제거(어디에 있든)하고 다시(마지막) 배치하는 것입니다. 그동안 REJECT 규칙 앞에 INVALID 상태를 삭제하는 규칙을 추가하여 지연된 패킷과 관련된 드문 경우(예:거부하다새 버전에서는 경고).
iptables -D INPUT -j REJECT
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A INPUT -j REJECT
스크립트를 사용하든 쌍을 사용하든 알려진 좋은 소스에서 규칙 세트를 다시 빌드하는 것이 가장 좋습니다.iptables-save
파일에 저장/iptables-restore
이 파일 또는 방화벽 프레임워크에서(예:방화벽또는극세사 묶음.