У меня есть выделенный сервер (который я использую только в лабораторной / тестовой среде). На сервере работает CentOS 5.6, работающая как узел KVM.
Чтобы немного обезопасить вещи, я хочу сделать следующее: используйте iptables, чтобы разрешить трафик только с определенных IP-адресов (мои собственные адреса).
Мой нынешний iptables
конфигурация выглядит следующим образом:
[kvm]# iptables -L -v
Chain INPUT (policy ACCEPT 4927K packets, 6424M bytes)
pkts bytes target prot opt in out source destination
41 2744 ACCEPT udp -- virbr0 any anywhere anywhere udp dpt:domain
0 0 ACCEPT tcp -- virbr0 any anywhere anywhere tcp dpt:domain
66 21810 ACCEPT udp -- virbr0 any anywhere anywhere udp dpt:bootps
0 0 ACCEPT tcp -- virbr0 any anywhere anywhere tcp dpt:bootps
3573K 3515M fail2ban-SSH tcp -- any any anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
470K 700M ACCEPT all -- any virbr0 anywhere 192.168.122.0/24 state RELATED,ESTABLISHED
171K 9558K ACCEPT all -- virbr0 any 192.168.122.0/24 anywhere
0 0 ACCEPT all -- virbr0 virbr0 anywhere anywhere
0 0 REJECT all -- any virbr0 anywhere anywhere reject-with icmp-port-unreachable
0 0 REJECT all -- virbr0 any anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT 3115K packets, 5798M bytes)
pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- any any somehost1.net anywhere
19 2176 DROP all -- any any somehost2.net anywhere
21 1668 DROP all -- any any somehost3.net anywhere
3573K 3515M RETURN all -- any any anywhere anywhere
Я сам не вносил изменений в iptables
конфигурация, хотя я думаю, что KVM (virt-manager и т.п.) и fail2ban внесли в него некоторые изменения.
Может ли кто-нибудь помочь мне создать iptables
скрипт, который гарантирует, что KVM по-прежнему работает, но разрешен только трафик с определенного IP-адреса. ВСЕ остальное можно отбросить. Не должно быть никаких ограничений со стороны самого сервера в Интернет.
Обновить: как запрошенный выше вывод теперь с -v
.
# Set default action to drop anything not explicitly allowed
iptables -P INPUT DROP
# Allow an incoming connection from 192.168.0.1
iptables -I INPUT -s 192.168.0.1 -j ACCEPT
# Allow incoming packets from a self initiated connection to "outside"
itpables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Это должно работать. Замените 192.168.0.1 на IP-адрес, к которому вы хотите иметь доступ.
Будьте осторожны, все остальные подключения будут разорваны (включая ваше собственное, если вы подключены через SSH или telnet).
поддержание виртуальной машины в соединении с NAT серьезно снизит ее производительность, использование мостовой сети намного быстрее и эффективнее. Более простой настройкой будет установка моста и настройка собственного брандмауэра виртуальной машины для удаления всего нежелательного.