Доступ к локальному порту заблокирован iptables

Хотя опыт работы с Linux, я новичок в iptables, настроив его в соответствии с руководством по настройке виртуального сервера Rackspace.

Используя сканирование портов и проверку удаленного доступа к требуемым портам, я вижу, что весь трафик блокируется, за исключением портов, которые я специально открыл.

Однако я не могу получить доступ к портам, которые я открыл локально (например, w3m http://localhost:4848).

Вот мои iptables правила:

# Generated by iptables-save v1.4.12 on Tue Oct  7 20:06:11 2014
*filter
:INPUT DROP [44:3960]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [184:19472]
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 4848 -j ACCEPT
COMMIT
# Completed on Tue Oct  7 20:06:11 2014

Как сбрасывается sudo iptables -L -n -v

Chain INPUT (policy DROP 45 packets, 4050 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  106 10697 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    1    64 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:4848
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 77 packets, 9149 bytes)
 pkts bytes target     prot opt in     out     source               destination   

Больше вывода, как требуется в комментариях:

$ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.XXX/24 brd XXX.XXX.XXX.255 scope global eth0
    inet6 XXXX::XXXX:XXXX:XXXX:XX/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.XXX/19 brd XXX.XXX.XXX.255 scope global eth1
    inet6 XXXX::XXXX:XXXXX:XXXX:XXXX/64 scope link 
       valid_lft forever preferred_lft forever

Я подозреваю, что отсутствие локального доступа к этим портам является основной причиной glassfish не работает правильно.

Итак, мои вопросы:

  • Как я могу открыть локальный доступ к этим портам, не ставя под угрозу удаленную безопасность?
  • Есть ли какие-либо другие рекомендуемые изменения, которые вы бы сделали для повышения безопасности?

1 ответ

Решение

Чтобы выяснить, какие правила вам не хватает, удобно установить правило ведения журнала в конце цепочки.

iptables -A INPUT -j LOG 

Вы увидите в dmesg вывести все пакеты, которые достигли конца цепочки INPUT, а затем были отброшены из-за вашей политики DROP. Как я уже говорил в комментариях, возможно, вам не хватает правила для вашего устройства с обратной связью:

iptables -I INPUT -i lo -j ACCEPT

Но попробуйте добавить правило ведения журнала, чтобы узнать более конкретные критерии для iptables.

Другие вопросы по тегам