1. Ставим Debian, выбираем русскую локаль
Если локаль по умолчанию английская, сменить её можно так:
https://wiki.debian.org/ChangeLanguage
# env | grep LANG
# export LANG=ru_RU.UTF-8
# dpkg-reconfigure locales
2. Настраиваем Iptables
Перед настройкой IPtables (запланировать перезагрузку через 10 минут)
shutdown -t 10 –r
shutdown –c
2.1. Создаем скрипт для iptables (не забываем chmod 0740)
nano /usr/local/firewall/firewall_static.sh
2.2. Правила
#!/bin/sh
PATH='/sbin'
ALLOW_SSH='10.10.10.0/24,192.168.1.1/32'
ALLOW_RDP='10.10.10.0/24,192.168.1.1/32'
WAN='eth0'
# Flush previous rules, delete chains and reset counters
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Default policies
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Disable source-routed packets
echo -n '0' > /proc/sys/net/ipv4/conf/all/accept_source_route
# Disable ICMP Redirect Acceptance
echo -n '0' > /proc/sys/net/ipv4/conf/all/accept_redirects
# Enable broadcast echo protection
echo -n '1' > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Enable bad error message protection
echo -n '1' > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Enable loopback traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Enable statefull rules (after that, only need to allow NEW conections)
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Drop invalid state packets
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
# Allow SSH management
iptables -A INPUT -i $WAN -s $ALLOW_SSH -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
# Enable all outgoing traffic to internet
iptables -A OUTPUT -o $WAN -d 0.0.0.0/0 -j ACCEPT
# Allow RDP
iptables -A INPUT -i $WAN -s $ALLOW_RDP -p tcp --dport 3389 -m conntrack --ctstate NEW -j ACCEPT
## LOGGING to /var/log/messages
#iptables -A INPUT -j LOG --log-level debug --log-prefix '[FW INPUT]: '
#iptables -A OUTPUT -j LOG --log-level debug --log-prefix '[FW OUTPUT]: '
#iptables -A FORWARD -j LOG --log-level debug --log-prefix '[FW FORWARD ]: '
2.3 Создаем также правила для ipv6 в файле /usr/local/firewall/ipv6_firewall.sh
(не забываем chmod 0740)
#!/bin/sh
PATH='/sbin'
# Flush the tables to apply changes
ip6tables -F
#ACCEPT POLICY
ip6tables -P INPUT DROP #If it doesn't match a rule Drop it
ip6tables -P FORWARD DROP #NO ROUTING POLICY DROP
ip6tables -P OUTPUT ACCEPT #If it doesn't match a rule
########
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -m state --state ESTABLISHED,RELATED -A INPUT -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
2.4. Добавляем . /usr/local/firewall/firewall_static.sh и . /usr/local/firewall/ipv6_firewall.sh
в /etc/rc.local перед exit0
2.5. Проверяем счетчики iptables
iptables -vL
3. Ставим XFCE
apt update
apt install mc
apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
4. Собираем xrdp
https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8
apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev
mkdir Downloads
cd Downloads
git clone https://github.com/neutrinolabs/xrdp.git
git clone https://github.com/neutrinolabs/xorgxrdp.git
cd /home/user/Downloads/xrdp
./bootstrap
./configure --enable-fuse --enable-jpeg
make
make install
cd /home/user/Downloads/xorgxrdp
./bootstrap
./configure
make
make install
systemctl daemon-reload
systemctl enable xrdp.service
systemctl enable xrdp-sesman.service
systemctl start xrdp
systemctl status xrdp
5. Ставим браузер и офис с пакетом локализации
apt install iceweasel libreoffice xfonts-mathml libreoffice-l10n-ru myspell-ru hyphen-ru libreoffice-grammarcheck-ru libreoffice-help-ru mythes-ru
6. Создаём группу rdp-users и добавляем в неё пользователей
addgroup rdp-users
adduser <username> --ingroup rdp-users
7. Смотрим логи
tail -F /var/log/xrdp.log
tail -F /var/log/xrdp-sesman.log
8. Для того, чтобы добавить клавиатурный шорткат для смены раскладки в xfce сначала добавляем на панель индикатор раскладки, далее, щёлкнув по нему правой кнопкой переходим в настройку параметров и выбираем шорткат.
Если локаль по умолчанию английская, сменить её можно так:
https://wiki.debian.org/ChangeLanguage
# env | grep LANG
# export LANG=ru_RU.UTF-8
# dpkg-reconfigure locales
2. Настраиваем Iptables
Перед настройкой IPtables (запланировать перезагрузку через 10 минут)
shutdown -t 10 –r
shutdown –c
2.1. Создаем скрипт для iptables (не забываем chmod 0740)
nano /usr/local/firewall/firewall_static.sh
2.2. Правила
#!/bin/sh
PATH='/sbin'
ALLOW_SSH='10.10.10.0/24,192.168.1.1/32'
ALLOW_RDP='10.10.10.0/24,192.168.1.1/32'
WAN='eth0'
# Flush previous rules, delete chains and reset counters
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Default policies
iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
# Disable source-routed packets
echo -n '0' > /proc/sys/net/ipv4/conf/all/accept_source_route
# Disable ICMP Redirect Acceptance
echo -n '0' > /proc/sys/net/ipv4/conf/all/accept_redirects
# Enable broadcast echo protection
echo -n '1' > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Enable bad error message protection
echo -n '1' > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Enable loopback traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Enable statefull rules (after that, only need to allow NEW conections)
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Drop invalid state packets
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP
iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
# Allow SSH management
iptables -A INPUT -i $WAN -s $ALLOW_SSH -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
# Enable all outgoing traffic to internet
iptables -A OUTPUT -o $WAN -d 0.0.0.0/0 -j ACCEPT
# Allow RDP
iptables -A INPUT -i $WAN -s $ALLOW_RDP -p tcp --dport 3389 -m conntrack --ctstate NEW -j ACCEPT
## LOGGING to /var/log/messages
#iptables -A INPUT -j LOG --log-level debug --log-prefix '[FW INPUT]: '
#iptables -A OUTPUT -j LOG --log-level debug --log-prefix '[FW OUTPUT]: '
#iptables -A FORWARD -j LOG --log-level debug --log-prefix '[FW FORWARD ]: '
2.3 Создаем также правила для ipv6 в файле /usr/local/firewall/ipv6_firewall.sh
(не забываем chmod 0740)
#!/bin/sh
PATH='/sbin'
# Flush the tables to apply changes
ip6tables -F
#ACCEPT POLICY
ip6tables -P INPUT DROP #If it doesn't match a rule Drop it
ip6tables -P FORWARD DROP #NO ROUTING POLICY DROP
ip6tables -P OUTPUT ACCEPT #If it doesn't match a rule
########
ip6tables -A INPUT -i lo -j ACCEPT
ip6tables -m state --state ESTABLISHED,RELATED -A INPUT -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j ACCEPT
2.4. Добавляем . /usr/local/firewall/firewall_static.sh и . /usr/local/firewall/ipv6_firewall.sh
в /etc/rc.local перед exit0
2.5. Проверяем счетчики iptables
iptables -vL
3. Ставим XFCE
apt update
apt install mc
apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
4. Собираем xrdp
https://github.com/neutrinolabs/xrdp/wiki/Building-on-Debian-8
apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev
mkdir Downloads
cd Downloads
git clone https://github.com/neutrinolabs/xrdp.git
git clone https://github.com/neutrinolabs/xorgxrdp.git
cd /home/user/Downloads/xrdp
./bootstrap
./configure --enable-fuse --enable-jpeg
make
make install
cd /home/user/Downloads/xorgxrdp
./bootstrap
./configure
make
make install
systemctl daemon-reload
systemctl enable xrdp.service
systemctl enable xrdp-sesman.service
systemctl start xrdp
systemctl status xrdp
5. Ставим браузер и офис с пакетом локализации
apt install iceweasel libreoffice xfonts-mathml libreoffice-l10n-ru myspell-ru hyphen-ru libreoffice-grammarcheck-ru libreoffice-help-ru mythes-ru
6. Создаём группу rdp-users и добавляем в неё пользователей
addgroup rdp-users
adduser <username> --ingroup rdp-users
7. Смотрим логи
tail -F /var/log/xrdp.log
tail -F /var/log/xrdp-sesman.log
8. Для того, чтобы добавить клавиатурный шорткат для смены раскладки в xfce сначала добавляем на панель индикатор раскладки, далее, щёлкнув по нему правой кнопкой переходим в настройку параметров и выбираем шорткат.