Хорошо, я прочитал Ваши полные правила.
Одна важная вещь сначала: не смешивайте-A с-I.
-A
добавляет правила в конец цепочки-I
вставляет правила в цепочку (если положение не указано, это вставляется во-первых),Так, Ваши правила iptables на самом деле:
-A INPUT -p tcp --dport 5678:5679 -j ACCEPT
-A INPUT -p tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp --dport 8099 -j ACCEPT
-A INPUT -p tcp --dport 8098 -j ACCEPT
-A INPUT -s 192.168.1.181 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 2500 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT
-A FORWARD -j REJECT
-A OUTPUT -j ACCEPT
Как Вы видите, ВХОДНЫЕ правила № 1 через № 4 не ограничивает исходного адреса.
Теперь, если Вы действительно хотите ограничить доступ к тем портам к 192.168.1.181, необходимо будет сделать это как это:
# Established connections should just pass
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Loopbacks will not match 192.168.1.181, so we ACCEPT them here
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Other than 192.168.1.181, we reject
-A INPUT -s 192.168.1.181 -j in_allow
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A INPUT -j REJECT
# Allow only the following ports
-A in_allow -p tcp --dport 5678:5679 -j ACCEPT
-A in_allow -p tcp --dport 4369 -j ACCEPT
-A in_allow -p tcp --dport 8099 -j ACCEPT
-A in_allow -p tcp --dport 8098 -j ACCEPT
-A in_allow -p tcp -m state --state NEW --dport 2500 -j ACCEPT
-A in_allow -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
-A FORWARD -j REJECT
-A OUTPUT -j ACCEPT
Только один вопрос: почему -m state --state NEW
для --dport 2500
?
Важное примечание: не забывайте сначала СБРАСЫВАТЬ и СТИРАТЬ целые правила iptables прежде, чем применить вышеупомянутое.
Конфигурация контроля доступа изменилась в версии 2.4, и старые конфигурации несовместимы без некоторых изменений. См. здесь .
Если ваша старая конфигурация была Разрешить от всех
(нет IP-адресов, заблокированных для доступа к службе), то Требовать все разрешено
- это новый функциональный эквивалент.
Я знаю, что это старый пост, но думаю, что могу больше помочь с функциональным примером, который я всегда использую!
В apache 2.2 будет примерно так:
<Location />
Order deny, allow
allow from all
</Location>
<Location /adm>
Order deny, allow
deny from all
allow from myniceip
</Location>
<Location /disabled>
Order deny, allow
deny from all
</Location>
В apache 2.4 будет примерно так:
<Location />
require all granted
</Location>
#Note that you dont need to use require all denied
#to require only a group of ips..
<Location /adm>
require ip myniceip
</Location>
<Location /disabled>
Require all denied
</Location>
Будьте осторожны при использовании аутентификации htacess , этот новый синтаксис может делать некоторые неприятные и неожиданные вещи , если это ваш случай, прочтите: https://unix.stackexchange.com/questions/413309/apache-2-4-wants-me-to-decide-require-valid-ip-or-require-valid-user и вам следует будь умницей!