Назад | Перейти на главную страницу

Разрешение трафика только с указанных IP-адресов с помощью iptables

У меня есть выделенный сервер (который я использую только в лабораторной / тестовой среде). На сервере работает 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 серьезно снизит ее производительность, использование мостовой сети намного быстрее и эффективнее. Более простой настройкой будет установка моста и настройка собственного брандмауэра виртуальной машины для удаления всего нежелательного.