Просмотреть открытые TCP-порты
Список
netstat -an
netstat -an | grep LISTEN
netstat -a | grep ESTABLISH
Кто работает с портом:
lsof -i tcp:3128
Конфигурирование tcp-wrapper'а
Перекрыть доступ снаружи на узловую машину:
В файл /etc/hosts.deny вставить строчку
ALL : ALL
Открыть доступ на узловую машину с машин локальной сети
195.0.1.0
В файл /etc/hosts.allow вставить строчки
ALL : \
127.0.0.1
ALL : \
195.0.1.0/255.255.255.0
Начиная с RedHat 7.3 inetd заменен на xinetd, кофигур теперь лежит не в
/etc/inetd.conf а в
/etc/xinetd.d/
для каждого сервиса - отдельный файл, например:
/etc/xinetd.d/swat
service swat
{
disable = yes
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 www.lib.ru 195.0.0.0/24
# only_from = 195.0.0.0/255.255.255.0 127.0 - а вот так нельзя
user = root
server = /usr/sbin/swat
log_on_failure += USERID
}
# А так делается проброс порта
service russianproxy
{
port = 8888
bind = 195.0.0.3
socket_type = stream
protocol = tcp
user = root
group = root
redirect = 195.0.0.1 80
type = UNLISTED
wait = no
only_from = 195.0.0.0/24 127.0.0.0/24
}
# если захочется отключить логгинг коннектов, то закомментировать
# в файле /etc/xinetd.conf строку
# log_type = SYSLOG auth
HTTPS дешево и сердито с помощью stunnel
если недосуг поднимать HTTPS в самоом апаче, можно просто завернуть его
в SSL-wrapper stunnel: ДОбавляем в конфигур xinetd.conf
service https
{
port = 443
socket_type = stream
protocol = tcp
user = root
wait = no
disable = no
type = UNLISTED
server = /usr/sbin/stunnel
server_args = -p /etc/webmin/miniserv.pem -r 80
}
Конфигурим sendmail, pop3, imap4 с SSL
stunnel -d 465 -r smtp
stunnel -d 993 -r localhost:imap
stunnel -d 993 -l /usr/sbin/imapd imapd
stunnel -d 995 -l /usr/sbin/in.pop3d -- in.pop3d -s
-d port - daemon mode
-r port - connect to port
-l programm - start inetd-style programm
И добавляем в /etc/services
https 443/tcp
smtps 465/tcp
imaps 993/tcp
pop3s 995/tcp
И добавляем в /etc/hosts.allow
localhost.imap : ALL
Server (-L for pty mode)
stunnel -d 2020 -L /usr/sbin/pppd -- pppd local
Client system
stunnel -c -r server:2020 -L /usr/sbin/pppd -- pppd local
А какой версии sendmail на вашей машине?
Date: 10 апр 97
Кстати CERT советует ставить Sendmail 8.8.5. Более ранние
версии позволяют удаленно выполнять любые команды от имени
суперпользователя на вашей машине.
* Имеющий доступ к консоли Linux может стать суперюзером *
Способы:
0. Загрузка со своей загрузочной дискеты
1. Загрузка с single user mode
2. Указать альтернативную программу init
3. Задать другой root-partition
1. Booting to single-user mode
LILO: linux single
или
LILO: linux 1
Debian обходит это поправками в /etc/initab, а RedHat - пропускает
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
2. Указать альтернативную программу init
Против лома нет приема:
LILO: linux init=/bin/bash
mount -o remount,rw /
3. Задать другой root-partition
LILO: linux root=/dev/hda1
Если создать в отдельной партиции всю положенную для корня
структуру, то можно будет с нее загрузиться.
Эту возможность можно получить, например, если /tmp
монтируется в отдельную партицию. Или машина поддерживает UMS
DOS и имеет досовский раздел.
Закрыть паролем BIOS-setting и отключить возможность
загрузиться с дискеты.
Закрывайте возможность перехвата LILO-prompt
A workaround can be achieved by using PASSWORD and
RESTRICT options in /etc/lilo.conf.
Внимание: /etc/lilo.conf должен быть root.root 600, чтоб
никто не смог этот пароль подсмотреть.
Команда
/sbin/ifconfig module-name
позволяет _любому_ пользователю загрузить модуль из каталога
/lib/modules используя kerneld.
Лечение: Пока не залечено в промышленном масштабе. Отключайте
kerneld или явно указывайте модули, которые можно грузить,
уберите все лишние модули доставшиеся вам после инсталляции.
Xserver -xkbdir 'id > /tmp/I_WAS_HERE;'
Quick fix:
1. as usual chmod u-s,g-s all installed Xserver binaries (*)
2. use xdm or a SAFE and PARANOID wrapper to start Xserver
А вы знаете, что загрузчик lilo может запустить после загрузки
root-овый shell?
Lilo boot: linux init=/bin/sh rw
Кое какие закрывашки в RedHat 5.2
chmod 700 /usr/sbin
chmod 700 /usr/X11R6
chmod -s /usr/lib/emacs/20.3/i386-redhat-linux/movemail
rm /usr/libexec/mail.local # -- это надо? вроде, procmail уже есть.
rm /usr/sbin/userhelper # - дыряв - кусок GUI для админов новичков
rpm -Uvf lpr-0.48-0.5.2.i386.rpm # взять из updates
http://www.openwall.com/bind/
rpm -U vixie-cron-3.0.1-37.5.2.i386.rpm
ps axuw|grep -i cron
root 1151 0.0 0.1 864 416 ? S 21:03 0:00 CROND
root 1804 1.5 0.1 864 496 ? S 21:04 0:00 crond
неплохо бы создать группу crontab и
-rwsr-x--- 1 root crontab 20200 Aug 27 19:12 crontab
ии на файл crontab тогда root.crontab,
chmod 4710 /usr./bin/crontab
crond'а.
поправить ftpaccess'овый regex (чтобы из .файлов давал только .forward)
создавать, а лучше - вообще никаких.
и sendmail (чтобы у таких .forward не позволял запускать скрипты)
Подозрительные services: Какой процесс висит на порту
netstat -an | egrep -v ':80 |udp|:53 '
lsof: продвинутый fuser (открытые файлы, порты и т.д. ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/
sockstat: (послабее, но попроще)
fuser -v 6012/tcp
http://www.bog.pp.ru/work/linux.html#firewall
Генерация ключей для беспарольного входа по ssh2
на клиенте:
1) ssh-keygen -t dsa -b 2048 -f ~/.ssh/id_dsa
2)
Host *
# для новых версий ssh
AddressFamily inet
# компьютер с несколькими интерфейсами или алиасами
BindAddress исходящий-адрес
ChallengeResponseAuthentication no
HostKeyAlgorithms ssh-dss
PreferredAuthentications publickey,password
Protocol 2
RSAAuthentication no
StrictHostKeyChecking yes
ForwardAgent yes
ForwardX11 yes
# если обзавЃлся publickey на t02
PasswordAuthentication no
PreferredAuthentications publickey
3) в системный или свой known_hosts добавляем паблик ключ сервера dsa
(ssh-keyscan -t dsa сервер)
на сервере
1) в .ssh/authorized_keys добавляем клиентский ~/.ssh/id_dsa.pub
кровавые подробности тут:
http://bog.pp.ru/work/ssh.html#config
/etc/ssh/ssh_config или ~/.ssh/config
Last-modified: Mon, 14 Feb 2005 20:07:12 GMT