Я записал сообщение в блоге на основных правилах Iptables для настольного пользователя давным-давно, и необходимо, вероятно, считать его и его связанную статью о дизайне брандмауэра С сохранением информации. Но пред ядро 2.6.39 (который включает ipset
и можно хотеть использовать это для белого списка IP, если у Вас есть больше чем 10 для белого списка (где 10 произвольно)).
Сначала обработайте состояние, что мы знаем, что хотим принять или отбросить, и интерфейсы.
iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept
Если Вы просто хотите сделать позволение IP только без состояния
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP
Вы, вероятно, столкнетесь с проблемами, делающими это, хотя, и я предлагаю использовать состояние для создания жизни легче. Например, не разрешение -i lo
и -o lo
конечно, вызовет проблемы для определенных приложений.
Ядро Linux имеет способность сделать формирование трафика / QoS, который может быть создан с помощью tc(8)
команда (нет iptables
). Полное изложение слишком много для входа к ответу здесь, но как первый шаг можно хотеть посмотреть на практическое руководство Linux Advanced Routing & Traffic Control.
Существует также много приложений, которые основываются tc
команда, чтобы позволить Вам более легко определять правила формирования, такие как wondershaper или как часть системы брандмауэра, такие как shorewall.