Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: к ssh -серверу нет доступа  (Прочитано 1335 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jedai108

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
к ssh -серверу нет доступа
« : 12 Декабря 2009, 13:57:01 »
нет доступа к моему ssh серверу на 22 порту?
где может быть ощибка?


#!/bin/sh

# Задаем некоторые переменные:

# Переменная, задающая путь к файлу запуска iptables.
IPT="/sbin/iptables"

# Ваш сетевой интерфейс. Это нужно, чтобы не писать в правилах одно и тоже.
INET_IFACE="eth0"

# Номера непривилегированных портов
UNPRIPORTS="1024:65535"

start_fw()
{
    # Включить перенаправление пакетов через ядро.
    echo 1 > /proc/sys/net/ipv4/ip_forward
   
    # Сбросить правила и удалить цепочки.
    $IPT -F
    $IPT -X
   
    # Политики по умолчанию.
    $IPT -P INPUT DROP
    $IPT -P FORWARD ACCEPT
    $IPT -P OUTPUT DROP

    # Разрешаем прохождение любого трафика по интерфейсу обратной петли.
    $IPT -A INPUT -i lo -j ACCEPT
    $IPT -A OUTPUT -o lo -j ACCEPT
   
    # Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру.
    $IPT -A INPUT -m state ! -i lo --state NEW -j DROP
   
    # Если интерфейс не lo, то запрещаем входить в список его адресов.
    $IPT -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP
   
    # Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
    $IPT -A INPUT   -m state --state INVALID -j DROP
    $IPT -A FORWARD -m state --state INVALID -j DROP
   
    # Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
    # Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
    $IPT -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
    $IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
   
    # Предупреждаю вас о туповатых провайдерах, которые назначают IP адреса, отведенные IANA для локальных сетей.
    # Например адреса 10.X.X.X. Для этого надо установить правило, пропускающие трафик с этих серверов, ранее цепочки INPUT.
    #$IPT -t nat -I PREROUTING -i $INET_IFACE -s 192.168.6.1/32 -j ACCEPT
   
    # Эти правила предохраняют от некоторых типов атак:
   
    # SYN наводнение.
    # Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
    $IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
    $IPT -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP
   
    # UDP наводнение
    # Службы использующие UDP, очень часто становятся мишенью для атак с целью вывода системы из строя.
    $IPT -A INPUT -p UDP -s 0/0 --destination-port 138 -j DROP
    $IPT -A INPUT -p UDP -s 0/0 --destination-port 113 -j REJECT
    $IPT -A INPUT -p UDP -s 0/0 --source-port 67 --destination-port 68 -j ACCEPT 
    $IPT -A INPUT -p UDP -j RETURN
    $IPT -A OUTPUT -p UDP -s 0/0 -j ACCEPT
   
    # ICMP - перенаправление
    # ICMP - сообщение указывает системе изменить содержимое таблиц маршрутизации с тем, что бы направлять
    # пакеты по более короткому маршруту. Может быть использовано взломщиком для перенаправления вашего трафика через свою машину.
    $IPT -A INPUT --fragment -p ICMP -j DROP
    $IPT -A OUTPUT --fragment -p ICMP -j DROP
   
    # Разрешаем  ICMP соединение. Значительная часть ICMP используется для передачи сообщений о
    # том, что происходит с тем или иным UDP или TCP соединением.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type source-quench -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type source-quench -j ACCEPT
   
    # Разрешаем себе ping наружу - нас же не попингуешь - пакеты отбрасываются.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type echo-reply -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type echo-request -j ACCEPT

    # Разрешаем передачу пакета - некорректный параметр - используется, если в заголовке пакета содержится недопустимая запись,
    # или если контрольная сумма заголовка не соответствует контрольной сумме, указанной передающим узлом.
    $IPT -A INPUT -p icmp -m icmp -i $INET_IFACE --icmp-type parameter-problem -j ACCEPT
    $IPT -A OUTPUT -p icmp -m icmp -o $INET_IFACE --icmp-type parameter-problem -j ACCEPT

    # Запрещаем подключение к X серверу через сетевые интерфейсы.
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 6000:6063 -j DROP --syn
   
    # Прописываем порты, которые открыты в системе, но которые не должны быть открыты на сетевых интерфейсах:
    # $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports #порта
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 783
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 3310
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE -j DROP --dports 10000
   
    # DNS сервер имен разрешаем.
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 53 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport $UNPRIPORTS --sport 53 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1024:65353 --sport 53 -j ACCEPT
   
    # Разрешаем AUTH-запросы на удаленные сервера, на свой же компьютер - запрещаем.
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 113 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 113 -j ACCEPT ! --syn
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 113 -j DROP
   
    # Открываем некоторые порты:
   
    # SMTP клиент (25)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 25 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 25 -j ACCEPT ! --syn
   
    # POP3 клиент (110)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 110 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 110 -j ACCEPT ! --syn
   
    #ssh_server_my
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 22 --sport 1020:65535 -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT   
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT
   
 
    # IMAP4 клиент (143)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 143 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 143 -j ACCEPT ! --syn
   
    # SSH клиент (22)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 22 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 22 --sport 1020:1023 -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport 1020:1023 --sport 22 -j ACCEPT ! --syn
   
    # FPT клиент (21)
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 21 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 21 -j ACCEPT ! --syn
   
    # HTTP/HTTPS клиент (80, 443)
    $IPT -A OUTPUT -p tcp -m tcp -m multiport -o $INET_IFACE --sport $UNPRIPORTS -j ACCEPT --dports 80,443
    $IPT -A INPUT -p tcp -m tcp -m multiport -i $INET_IFACE --dport $UNPRIPORTS -j ACCEPT --sports 80,443 ! --syn
   
    # Разрешаем finger, whois, gorper, wais. Traceroute - разрешаем себе, к нам не проломятся - запрещено. Telnet
    # запретил, чтобы соблазна не было передавать пароли прямым текстом.
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 20 -j ACCEPT
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 20 --sport $UNPRIPORTS -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport $UNPRIPORTS -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 23 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 23 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 79 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 79 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 43 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 43 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 70 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 70 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p tcp -m tcp -o $INET_IFACE --dport 210 --sport $UNPRIPORTS -j ACCEPT
    $IPT -A INPUT -p tcp -m tcp -i $INET_IFACE --dport $UNPRIPORTS --sport 210 -j ACCEPT ! --syn
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 33434:33523 --sport 32769:65535 -j ACCEPT
     
    # Разрешаем прохождение DHCP запросов через iptables. Нужно, если IP адрес динамический.
    $IPT -A OUTPUT -p udp -m udp -o $INET_IFACE --dport 67 --sport 68 -j ACCEPT
    $IPT -A INPUT -p udp -m udp -i $INET_IFACE --dport 68 --sport 67 -j 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
мой маленький UNIX  для мам 
Nokia N810(Ubuntu 9.04, Maemo5.2008.43-7)+8gb

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: к ssh -серверу нет доступа
« Ответ #1 : 12 Декабря 2009, 14:32:01 »
# Запрещаем любые новые подключения с любых интерфейсов, кроме lo к компьютеру.
    $IPT -A INPUT -m state ! -i lo --state NEW -j DROP
м?

Оффлайн jedai108

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: к ssh -серверу нет доступа
« Ответ #2 : 12 Декабря 2009, 14:41:52 »
круто, пасибо, получается елси это правило убиру, то и сервак можно атаковать мой?  ;D
мой маленький UNIX  для мам 
Nokia N810(Ubuntu 9.04, Maemo5.2008.43-7)+8gb

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: к ssh -серверу нет доступа
« Ответ #3 : 12 Декабря 2009, 14:53:14 »
Если правила копипастишь, то хотя бы вдумывайся в то, чего они делают. А если твой сервак в сети, то его уже можно атаковать.

 

Страница сгенерирована за 0.027 секунд. Запросов: 20.