Добрый день!
Помоги те пожалуйста. Мне нужно ограничить доступ к серверу из сети Интрнет до пары ip к примеру 1.1.1.1; 22.33.21.34, 132.124.5.23. Эта машина интернет шлюз работает на OpenSuse 11.1 на нем прозрачный squid и проброс портов из int в ext
Ограничить доступ из интернет до пары 2 ip susefirewal
А по мак адресу не хочешь? У меня где-то было записано как банить!
Открываем /etc/sysconfig/scripts/SuSefirewall2-custom и ищем секцию fw_custom_after_antispoofing() можно наверное и любую другую, там вроде и примеры есть, ну да ладно и приводим к такому вот виду. Банит по маку комп. Ну можно конечно и сквидом вбанить...
fw_custom_after_antispoofing() {
# could also be named "before_port_splitting()"
# these rules will be loaded after the anti-spoofing and icmp handling
# but before any IP protocol or TCP/UDP port allow/protection rules
# will be set.
# You can use this hook to allow/deny certain IP protocols or TCP/UDP
# ports before the SuSEfirewall2 generated rules are hit.
[b] for target in LOG DROP; do
for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
iptables -A $chain -m mac --mac-source вписываймакадресс -j $target
done
done[/b]
#example: always filter backorifice/netbus trojan connect requests and log them.
#for target in LOG DROP; do
# for chain in input_ext input_dmz input_int forward_int forward_ext forward_dmz; do
# iptables -A $chain -j $target -p tcp --dport 31337
# iptables -A $chain -j $target -p udp --dport 31337
# iptables -A $chain -j $target -p tcp --dport 12345:12346
# iptables -A $chain -j $target -p udp --dport 12345:12346
# done
#done
true
}
нет, ине к сожалению требуется имеено по IP. Но спасибо большое за пример может когда нить сгодиться smile
Запустите настройку SuSEfirewall2, загляните в раздел "Правила пользователя" ("Custom rules") и там укажите, с каких IP-адресов и к каким портам вашего сервера разрешается доступ.
allez, извените не могли бы вы по подробней? И мне нужно полность отказать в доступе всем кроме 2-х IP.
Поподробней? Да там вроде и запутаться-то негде. Ну да ладно, вот вам подробности с картинками. :)
1. Сначала убеждаемся, что никакие порты для всей внешней зоны у нас не открыты:

2. Необходимо также нажать кнопку "Дополнительно..." и убедиться, что не были открыты никакие дополнительные порты:

3. Далее переходим в раздел "Правила пользователя":

4. Нажимаем кнопку "Добавить" и вводим нужные параметры:

5. В итоге получаем новое правило в списке:

Вот, собственно, и все. Дальше вам останется только создать нужное количество правил, соответствующих вашим требованиям, да проверить, работают ли они как надо.
allez, спасибо но мне наверное этот способ не совем подходит, мне нужно что бы жестко только 3 IP адреса имели доступ к системе а все остальные шли в сад. К тому же эти у меня отрыты порты для ssh, webmin, и редирект на сервер MS RDP (3389)
Если вы действительно хотите, чтобы "только 3 IP адреса имели доступ к системе а все остальные шли в сад", то описанный мной способ - именно то, что вам нужно. Настройте в "Правилах пользователя" доступ к нужным портам сервера для этих трех IP-адресов и брандмауэр будет пропускать только их, отправляя остальных в тот самый сад. При условии, конечно, что в "Разрешенных службах" все будет чисто.
allez, спасибо большое, я вам очень признателен. Я попробую, а это будет нормально работать с редиректом портов? smile
Будет, конечно.
Огромное вам спасибо, allez, ! smile
allez, сделал все так как вы сказали, но он все равно пропускает со всех iP всеподключения. Все сервиси и порты я из внешней зоны почистил. Настройил жестко на один внешний IP проверил с дургих IP опрпускает подключение
Видимо, что-то где-то как-то не так. :)
Тогда покажите вывод следующих команд (реальные IP-адреса на всякий случай измените):
cat /etc/sysconfig/SuSEfirewall2 | grep -Ev "(^$|^#)"
iptables -LБудем посмотреть, где собака порылась. Есть у меня подозрение, что у вас правила проброса портов слишком либеральны.
Вот пожалуйста посмотрите:
Он еще у меня как шлюз и прозрачная прокси на 80 порту по всем остальным портам доступ из интранет открыт
cat /etc/sysconfig/SuSEfirewall2 | grep -Ev "(^$|^#)"
FW_DEV_EXT="any eth1"
FW_DEV_INT="eth0"
FW_DEV_DMZ=""
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_DEV="zone:ext zone:int"
FW_MASQ_NETS="0/0"
FW_NOMASQ_NETS=""
FW_PROTECT_FROM_INT="no"
FW_SERVICES_EXT_TCP="10000 3389"
FW_SERVICES_EXT_UDP=""
FW_SERVICES_EXT_IP=""
FW_SERVICES_EXT_RPC=""
FW_CONFIGURATIONS_EXT=""
FW_SERVICES_DMZ_TCP=""
FW_SERVICES_DMZ_UDP=""
FW_SERVICES_DMZ_IP=""
FW_SERVICES_DMZ_RPC=""
FW_CONFIGURATIONS_DMZ=""
FW_SERVICES_INT_TCP=""
FW_SERVICES_INT_UDP=""
FW_SERVICES_INT_IP=""
FW_SERVICES_INT_RPC=""
FW_CONFIGURATIONS_INT=""
FW_SERVICES_DROP_EXT=""
FW_SERVICES_DROP_DMZ=""
FW_SERVICES_DROP_INT=""
FW_SERVICES_REJECT_EXT=""
FW_SERVICES_REJECT_DMZ=""
FW_SERVICES_REJECT_INT=""
FW_SERVICES_ACCEPT_EXT="85.XX3.3X.180,tcp,22
85.XX3.3X.180,tcp,443
85.XX3.3X.180,tcp,80
85.XX3.3X.180,tcp,10000
85.XX3.3X.180,tcp,3389"
FW_SERVICES_ACCEPT_DMZ=""
FW_SERVICES_ACCEPT_INT=""
FW_SERVICES_ACCEPT_RELATED_EXT=""
FW_SERVICES_ACCEPT_RELATED_DMZ=""
FW_SERVICES_ACCEPT_RELATED_INT=""
FW_TRUSTED_NETS=""
FW_ALLOW_INCOMING_HIGHPORTS_TCP=""
FW_ALLOW_INCOMING_HIGHPORTS_UDP=""
FW_FORWARD=""
FW_FORWARD_REJECT=""
FW_FORWARD_DROP=""
FW_FORWARD_MASQ="10.1.1.254/24,85.1X8.XX1.XX6,tcp,0,,0.0.0.0
0/0,10.1.1.1,tcp,3389
2X3.XXX.191.XX6/32,10.1.1.1,tcp,80"
FW_REDIRECT="10.1.1.0/24,0/0,tcp,80,8080"
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"
FW_LOG_LIMIT=""
FW_LOG=""
FW_KERNEL_SECURITY="yes"
FW_STOP_KEEP_ROUTING_STATE="no"
FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_PING_EXT="no"
FW_ALLOW_FW_SOURCEQUENCH=""
FW_ALLOW_FW_BROADCAST_EXT="no"
FW_ALLOW_FW_BROADCAST_INT="no"
FW_ALLOW_FW_BROADCAST_DMZ="no"
FW_IGNORE_FW_BROADCAST_EXT="yes"
FW_IGNORE_FW_BROADCAST_INT="no"
FW_IGNORE_FW_BROADCAST_DMZ="no"
FW_ALLOW_CLASS_ROUTING=""
FW_CUSTOMRULES=""
FW_REJECT=""
FW_REJECT_INT="yes"
FW_HTB_TUNE_DEV=""
FW_IPv6=""
FW_IPv6_REJECT_OUTGOING=""
FW_IPSEC_TRUST="no"
FW_ZONES=""
FW_USE_IPTABLES_BATCH=""
FW_LOAD_MODULES="nf_conntrack_netbios_ns"
FW_FORWARD_ALWAYS_INOUT_DEV=""
FW_FORWARD_ALLOW_BRIDGING=""и
iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state ESTABLISHED
ACCEPT icmp -- anywhere anywhere state RELATED
input_int all -- anywhere anywhere
input_ext all -- anywhere anywhere
input_ext all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-IN-ILL-TARGET '
DROP all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
forward_int all -- anywhere anywhere
forward_ext all -- anywhere anywhere
LOG all -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWD-ILL-ROUTING '
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-OUT-ERROR '
Chain forward_ext (1 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp echo-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp redirect
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
LOG tcp -- 10.1.1.0/24 likom-st27-w27-r2-c1-135.sam.unitline.ru limit: avg 3/min burst 5 tcp dpt:0 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDext-ACC-REVMASQ '
ACCEPT tcp -- 10.1.1.0/24 likom-st27-w27-r2-c1-135.sam.unitline.ru tcp dpt:0
ACCEPT tcp -- likom-st27-w27-r2-c1-135.sam.unitline.ru 10.1.1.0/24 state RELATED,ESTABLISHED
LOG tcp -- anywhere server.admaster.local limit: avg 3/min burst 5 tcp dpt:ms-wbt-server state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDext-ACC-REVMASQ '
ACCEPT tcp -- anywhere server.admaster.local tcp dpt:ms-wbt-server
ACCEPT tcp -- server.admaster.local anywhere state RELATED,ESTABLISHED
LOG tcp -- mail.admaster.ru server.admaster.local limit: avg 3/min burst 5 tcp dpt:http state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDext-ACC-REVMASQ '
ACCEPT tcp -- mail.admaster.ru server.admaster.local tcp dpt:http
ACCEPT tcp -- server.admaster.local mail.admaster.ru state RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 3/min burst 5 PKTTYPE = multicast LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '
DROP all -- anywhere anywhere PKTTYPE = multicast
LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '
LOG icmp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '
LOG udp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT '
LOG all -- anywhere anywhere limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-FWDext-DROP-DEFLT-INV '
DROP all -- anywhere anywhere
Chain forward_int (1 references)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp echo-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp destination-unreachable
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp time-exceeded
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp parameter-problem
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp timestamp-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp address-mask-reply
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp protocol-unreachable
ACCEPT icmp -- anywhere anywhere state RELATED,ESTABLISHED icmp redirect
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
LOG tcp -- 10.1.1.0/24 likom-st27-w27-r2-c1-135.sam.unitline.ru limit: avg 3/min burst 5 tcp dpt:0 state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDint-ACC-REVMASQ '
ACCEPT tcp -- 10.1.1.0/24 likom-st27-w27-r2-c1-135.sam.unitline.ru tcp dpt:0
ACCEPT tcp -- likom-st27-w27-r2-c1-135.sam.unitline.ru 10.1.1.0/24 state RELATED,ESTABLISHED
LOG tcp -- anywhere server.admaster.local limit: avg 3/min burst 5 tcp dpt:ms-wbt-server state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDint-ACC-REVMASQ '
ACCEPT tcp -- anywhere server.admaster.local tcp dpt:ms-wbt-server
ACCEPT tcp -- server.admaster.local anywhere state RELATED,ESTABLISHED
LOG tcp -- mail.admaster.ru server.admaster.local limit: avg 3/min burst 5 tcp dpt:http state NEW LOG level warning tcp-options ip-options prefix `SFW2-FWDint-ACC-REVMASQ '
ACCEPT tcp -- mail.admaster.ru server.admaster.local tcp dpt:http
ACCEPT tcp -- server.admaster.local mail.admaster.ru state RELATED,ESTABLISHED
LOG all -- anywhere anywhere limit: avg 3/min burst 5 PKTTYPE = multicast LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '
DROP all -- anywhere anywhere PKTTYPE = multicast
LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '
LOG icmp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '
LOG udp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT '
LOG all -- anywhere anywhere limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-FWDint-DROP-DEFLT-INV '
reject_func all -- anywhere anywhere
Chain input_ext (2 references)
target prot opt source destination
DROP all -- anywhere anywhere PKTTYPE = broadcast
ACCEPT icmp -- anywhere anywhere icmp source-quench
ACCEPT icmp -- anywhere anywhere icmp echo-request
LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:ndmp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TCP '
ACCEPT tcp -- anywhere anywhere tcp dpt:ndmp
LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp dpt:ms-wbt-server flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-TCP '
ACCEPT tcp -- anywhere anywhere tcp dpt:ms-wbt-server
LOG tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ssh state NEW limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC '
ACCEPT tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ssh
LOG tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:https state NEW limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC '
ACCEPT tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:https
LOG tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:http state NEW limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC '
ACCEPT tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:http
LOG tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ndmp state NEW limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC '
ACCEPT tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ndmp
LOG tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ms-wbt-server state NEW limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC '
ACCEPT tcp -- dynamicip-85.XX3.3X.180.pppoe.samara.ertelecom.ru anywhere tcp dpt:ms-wbt-server
LOG all -- anywhere anywhere limit: avg 3/min burst 5 mark match 0x1 state NEW LOG level warning tcp-options ip-options prefix `SFW2-INext-ACC-REDIR '
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED mark match 0x1
LOG all -- anywhere anywhere limit: avg 3/min burst 5 PKTTYPE = multicast LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '
DROP all -- anywhere anywhere PKTTYPE = multicast
LOG tcp -- anywhere anywhere limit: avg 3/min burst 5 tcp flags:FIN,SYN,RST,ACK/SYN LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '
LOG icmp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '
LOG udp -- anywhere anywhere limit: avg 3/min burst 5 LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT '
LOG all -- anywhere anywhere limit: avg 3/min burst 5 state INVALID LOG level warning tcp-options ip-options prefix `SFW2-INext-DROP-DEFLT-INV '
DROP all -- anywhere anywhere
Chain input_int (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
Chain reject_func (1 references)
target prot opt source destination
REJECT tcp -- anywhere anywhere reject-with tcp-reset
REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
Ну вот одна собака и отрылась. :)
FW_SERVICES_EXT_TCP="10000 3389"
Повторюсь: необходимо было также нажать кнопку "Дополнительно..." и убедиться, что не были открыты никакие дополнительные порты. У вас же порты 10000 и 3389 открыты всем желающим.
Далее, как я и подозревал, отдельные правила проброса портов оказались не менее "добрыми":
FW_FORWARD_MASQ="10.1.1.254/24,85.1X8.XX1.XX6,tcp,0,,0.0.0.0
0/0,10.1.1.1,tcp,3389
2X3.XXX.191.XX6/32,10.1.1.1,tcp,80"
Выделенное мной правило перенаправляет запросы на подключение к порту 3389 от всех (0/0) на порт 3389 сервера с адресом 10.1.1.1. Правда, это правило должно отрабатывать только в том случае, если запрос на соединение будет разрешен, но я бы все же и его подправил. Как говорится, "во избежание". :)
allez, Спсибо все работает ну кроме 3389. Ана счет портов странно, потому, что я помню что я их удалил, наверное просто забыл сохранить конфиг smile. Теперь осталась проблема с редиректом.