Доступ к локальному порту заблокирован 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.