Table of Contents

Прокси сервер Dante на Centos6

Понадобился простой прокси сервер для выхода в интернет через работу.
Нужно было проверять как доступны сайты с рабочих ip адресов.

В качестве простого решения хорошо подходит Dante, его и будем использовать.

Установка Dante

Ставить будем из исходников т.к. для Centos6 есть только rpm версии 1.4.0.

Скачиваем свежую версию - https://www.inet.no/dante/download.html

wget https://www.inet.no/dante/files/dante-1.4.2.tar.gz

Распаковываем.

tar -zxvf dante-1.4.2.tar.gz

Устанавливаем.

cd dante-1.4.2
./configure 
make 
make install 

Настройка Dante

Конфигурационный файл /etc/sockd.conf

[root@noc14 etc]# cat /etc/sockd.conf
logoutput: stderr
internal: eth1 port = 11223
external: eth2

socksmethod: username
user.privileged: root
user.unprivileged: nobody

client pass {
from: 0/0 to: 0/0
log: error
}

socks pass {
from: 0/0 to: 0/0
log: error
}

где:

Init файл /etc/init.d/sockd.

#!/bin/bash

### BEGIN INIT INFO
# Provides:          sockd
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the sockd  sockd5 server
# Description:       starts sockd using start-stop-daemon
### END INIT INFO

NAME=sockd
SOCKED_BIN=/usr/local/sbin/sockd
CONFIGFILE=/etc/sockd.conf
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
  start)
    echo -n "Starting $NAME...."
    if netstat -tnpl | grep -q sockd;then
    echo "$NAME (pid `pidof $NAME`) already running."
    exit 1
    fi
    $SOCKED_BIN -f $CONFIGFILE -D

    if [ "$?" != 0 ] ; then
      echo " failed"
      exit 1
    else
      echo " done"
    fi
  ;;

  stop)
    echo -n "Stoping $NAME..."
    if ! netstat -tnpl | grep -q sockd; then
      echo "$NAME is not running."
      exit 1
    fi

    /usr/bin/pkill $NAME

    if [ "$?" != 0 ] ; then
      echo " failed"
      exit 1
    else
      echo " done"
    fi
  ;;

  status)
    if netstat -tnpl | grep -q sockd; then
      PID=`pidof sockd`
      echo "$NAME (pid $PID) is running..."
    else
      echo "$NAME is stopped"
      exit 0
    fi
  ;;

  restart)
          $SCRIPTNAME stop
                sleep 1
                $SCRIPTNAME start
        ;;

   *)
                echo "Usage: $SCRIPTNAME {start|stop|restart|status}"
                exit 1
        ;;
esac

Делаем /etc/init.d/sockd исполняемым.

chmod +x /etc/init.d/sockd

Запускаем.

/etc/init.d/sockd start
/etc/init.d/sockd status

Включаем автозагрузку.

chkconfig --add sockd
chkconfig --level 2345 sockd on
chkconfig --list sockd

Добавляем iptables правила.

-A INPUT -p tcp -m state --state NEW -m tcp --dport 11223 -s x.x.x.x/y -j ACCEPT

Заводим пользователя для работы с прокси.

useradd -M -s /sbin/nologin proxyuser
passwd proxyuser

Подключаемся к прокси

Для подключения к прокси я в Firefox использую плагин FoxyProxy.
Настройки FoxyProxy:


Полезные ссылки