Уважаемые гуру. Требуется ваш совет. Хочу поднять сервер на Slackware 13.37 На нем будет крутится только Samba (Предпологается в будующем вэб сервер поднять) Этих правил для максимальной безопасности будет достаточно или что подправить?
#!/bin/sh#################################### Задаем некоторые переменные:
IPTABLES="/usr/sbin/iptables" # Переменная, задающая путь к файлу запуска iptables
####################################start_fw()
{
# Включить перенаправление пакетов через ядро
echo 1 > /proc/sys/net/ipv4/ip_forward
#
$IPTABLES -P OUTPUT DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP# ================ Таблица 'фильтр', автоматические правила
# принимать устанвленные сессии
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT# ================ Таблица 'фильтр', политика набора правил
#
# Правило 0 (eth0)
# правила антиспуфинга
$IPTABLES -N In_RULE_0
$IPTABLES -A INPUT -i eth0 -s 192.168.1.2 -m state --state NEW -j In_RULE_0
$IPTABLES -A FORWARD -i eth0 -s 192.168.1.2 -m state --state NEW -j In_RULE_0
$IPTABLES -A In_RULE_0 -j LOG --log-level info --log-prefix "RULE 0 -- DENY "
$IPTABLES -A In_RULE_0 -j DROP
#
# Правило 1 (lo)
#
$IPTABLES -A INPUT -i lo -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -o lo -m state --state NEW -j ACCEPT
#
# Правило 2 (для всех)
#
# SSH доступ к хосту; полезно для ICMP
# ping запросов
$IPTABLES -N Cid4148X2782.0
$IPTABLES -A OUTPUT -d 192.168.1.2 -m state --state NEW -j Cid4148X2782.0
$IPTABLES -A Cid4148X2782.0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p icmp -m icmp --icmp-type 0/0 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p icmp -m icmp --icmp-type 8/0 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p icmp -m icmp --icmp-type 11/0 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p icmp -m icmp --icmp-type 11/1 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p tcp -m tcp -m multiport --dports 445,113,139,22 -j ACCEPT
$IPTABLES -A Cid4148X2782.0 -p udp -m udp -m multiport --dports 138,137 -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 3 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 0/0 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 8/0 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 11/0 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 11/1 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 445,113,139,22 -m state --state NEW -j ACCEPT
$IPTABLES -A INPUT -p udp -m udp -m multiport --dports 138,137 -m state --state NEW -j ACCEPT
#
# Правило 3 (для всех)
#
$IPTABLES -A INPUT -s 192.168.1.2 -m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -m state --state NEW -j ACCEPT
#
# Правило 4 (для всех)
#
$IPTABLES -N RULE_4
$IPTABLES -A OUTPUT -m state --state NEW -j RULE_4
$IPTABLES -A INPUT -m state --state NEW -j RULE_4
$IPTABLES -A FORWARD -m state --state NEW -j RULE_4
$IPTABLES -A RULE_4 -j LOG --log-level info --log-prefix "RULE 4 -- DENY "
$IPTABLES -A RULE_4 -j DROP$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
#############################################}
case "$1" in
start) echo -n "Starting firewall: iptables"
start_fw
echo "."
;;
stop) echo -n "Stopping firewall: iptables"
iptables -F
iptables -X
echo "."
;;
save) echo -n "Saving firewall: iptables"
iptables-save > /etc/rules-save
echo "."
;;
restart) echo -n "Restarting firewall: iptables"
iptables -F
iptables -X
cat /etc/rules-save | iptables-restore
echo "."
;;
reload|force-reload) echo -n "Reloading configuration files for firewall: iptables"
echo "."
;;
*) echo "Usage: /etc/init.d/rc.iptables start|stop|restart|reload|force-reload"
exit 1
;;
esac
exit 0
Да достаточно конечно, идите, идите...
.... к тому, кто это придумал, пусть он вам и объясняет, почему их достаточно, и зачем на сервере не маршрутизаторе включать ip_forward.
> Да достаточно конечно, идите, идите...
> .... к тому, кто это придумал, пусть он вам и объясняет, почему
> их достаточно, и зачем на сервере не маршрутизаторе включать ip_forward.
> # Включить перенаправление пакетов через ядро
> echo 1 > /proc/sys/net/ipv4/ip_forwardИ еще пусть объяснят этот магический пасс:
> $IPTABLES -P OUTPUT DROP
> $IPTABLES -P INPUT DROP
> $IPTABLES -P FORWARD DROP[skipnuto]
> $IPTABLES -P OUTPUT ACCEPT
> $IPTABLES -P INPUT ACCEPT
> $IPTABLES -P FORWARD ACCEPT
Уважаемый ....
Где такую забористую траву брали ?
Бррр... ощущение что надергали с чужого конфига строчек не разбираясь что к чему.
Получился такой Франкеншней, у которого третья рука торчит из *опы, и кажется что оно так и должно быть.К примеру, не поделитесь ли случайно мудростью, какую смысловую или логическую нагрузку несет данное имя цепочки?
> $IPTABLES -N Cid4148X2782.0
в слаке несилен, но для большинства linux-дистрибутивов для МАКСИМАЛЬНОЙ безопасности подойдет что-то вроде :#!/bin/sh
####################################
IPTABLES="/usr/sbin/iptables" #
####################################
$IPTABLES -P INPUT -j DROP
$IPTABLES -P OUTPUT -j DROP
$IPTABLES -P FORWARD -j DROP$IPTABLES -A INPUT -p tcp -m multiport 22,21..137,139 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m multiport 22,21..137,139 -j ACCEPTinit 0
> $IPTABLES -A INPUT -p tcp -m multiport 22,21..137,139 -j ACCEPT
> $IPTABLES -A OUTPUT -p tcp -m multiport 22,21..137,139 -j ACCEPT
> init 0Ну, учитывая init 0 - да, безопасность будет действительно МАКСИМАЛЬНОЙ. :)))) Только непонятен тогда смысл предыдущих строчек. Сдается мне - Вы не только со слакой не дружите, а ее и с головой. Или это такой тонкий стеб был?
>> $IPTABLES -A INPUT -p tcp -m multiport 22,21..137,139 -j ACCEPT
>> $IPTABLES -A OUTPUT -p tcp -m multiport 22,21..137,139 -j ACCEPT
>> init 0
> Ну, учитывая init 0 - да, безопасность будет действительно МАКСИМАЛЬНОЙ. :))))
> Только непонятен тогда смысл предыдущих строчек. Сдается мне - Вы не
> только со слакой не дружите, а ее и с головой. Или
> это такой тонкий стеб был?хм я вроде бы сделал акцент на слове "МАКСИМАЛЬНЫЙ"... В следующий раз придется комментарии оставлять.
Просто не смотрится как то
#!/bin/sh
/sbin/init 0:)
> Просто не смотрится как то
> #!/bin/sh
> /sbin/init 0
> :)Понял. Прошу прощения за "голову". :)
Да не у кого я ничего не выдергивал. Правила создавались программой fwbuilder, это еще больше пол конфига сократил. Была вообще портянка:) Ну и недоглядел остался форвард. Поэтому и спрашивал достаточно или нет. Решил сделать пинги по проще,типа такого$IPTABLES -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-reply -j ACCEPT
$IPTABLES -A OUTPUT -p icmp -m icmp -o eth0 --icmp-type echo-request -j ACCEPT
> Да не у кого я ничего не выдергивал. Правила создавались программой fwbuilder,
> это еще больше пол конфига сократил. Была вообще портянка:) Ну и
> недоглядел остался форвард. Поэтому и спрашивал достаточно или нет. Решил сделать
> пинги по проще,типа такого
>$IPTABLES -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-reply -j
> ACCEPT
> $IPTABLES -A OUTPUT -p icmp -m icmp -o eth0 --icmp-type echo-request -j
> ACCEPTСлова request и reply смотреть в словаре.
# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
# Cmd Line : 1
# Command : interface eth0 i# Creating chain 'in_i' under 'INPUT' in table 'filter'
/sbin/iptables -t filter -N in_i
/sbin/iptables -t filter -A INPUT -i eth0 -j in_i# Creating chain 'out_i' under 'OUTPUT' in table 'filter'
/sbin/iptables -t filter -N out_i
/sbin/iptables -t filter -A OUTPUT -o eth0 -j out_i# > OK <
# FireHOL [interface:i] > server ping accept# \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
# Cmd Line : 2
# Command : server ping accept# Preparing for service 'ping' of type 'server' under interface 'i'
# Creating chain 'in_i_ping_s1' under 'in_i' in table 'filter'
/sbin/iptables -t filter -N in_i_ping_s1
/sbin/iptables -t filter -A in_i -j in_i_ping_s1# Creating chain 'out_i_ping_s1' under 'out_i' in table 'filter'
/sbin/iptables -t filter -N out_i_ping_s1
/sbin/iptables -t filter -A out_i -j out_i_ping_s1# Running complex rules function rules_ping() for server 'ping'
/sbin/iptables -t filter -A in_i_ping_s1 -p icmp -m state --state NEW\,ESTABLISHED --icmp-type echo-request -j ACCEPT
/sbin/iptables -t filter -A out_i_ping_s1 -p icmp -m state --state ESTABLISHED --icmp-type echo-reply -j ACCEPT# > OK <
# FireHOL [interface:i] > quitversion 5
interface eth0 i
server ping accept
> Да не у кого я ничего не выдергивал. Правила создавались программой fwbuilder,
> это еще больше пол конфига сократил. Была вообще портянка:) Ну и
> недоглядел остался форвард. Поэтому и спрашивал достаточно или нет. Решил сделать
> пинги по проще,типа такого
>$IPTABLES -A INPUT -p icmp -m icmp -i eth0 --icmp-type echo-reply -j
> ACCEPT
> $IPTABLES -A OUTPUT -p icmp -m icmp -o eth0 --icmp-type echo-request -j
> ACCEPTтогда советую потратить немного времени на прочтение основ iptables.
#### устанавливает политику по-умолчанию
$IPTABLES -P INPUT -j DROP
$IPTABLES -P OUTPUT -j DROP
$IPTABLES -P FORWARD -j DROP#### и вот такими простыми правилами открываете нужные порты, можно и через -m multiport
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --sport 22 -j ACCEPT
и больше Вам ничего ненужно. Если хочете поиграть в безопасность, читаем полный ман по iptables и про разные его фичи, после чего сможете накрутить все до вашего уровня паронаидальности